Home | Looking for something? Sign In | New here? Sign Up | Log out

Thursday, July 31, 2008

Searching Game Trees

Thursday, July 31, 2008
0 comments
In combinatorial game theory, a game tree is a directed graph whose nodes are positions in a game and whose edges are moves. The complete game tree for a game is the game tree starting at the initial position and containing all possible moves from each position.


The diagram shows the first two levels, or ply, in the game tree for tic-tac-toe. We consider all the rotations and reflections of positions as being equivalent, so the first player has three choices of move: in the centre, at the edge, or in the corner. The second player has two choices for the reply if the first player played in the centre, otherwise five choices. And so on.

The number of leaf nodes in the complete game tree is called the game tree complexity. It is the number of possible different ways the game can be played. The game tree complexity for tic-tac-toe is 26,830.

Game trees are important in artificial intelligence because one way to pick the best move in a game is to search the game tree using the minimax algorithm or its variants. The game tree for tic-tac-toe is easily searchable, but the complete game trees for larger games like chess are much too large to search. Instead, a chess-playing program searches a partial game tree: typically as many ply from the current position as it can search in the time available.

Two-person games can also be represented as and-or trees. For the first player to win a game, there must exist a winning move for all moves of the second player. This is represented in the and-or tree by using disjunction to represent the first player's alternative moves and using conjunction to represent all of the second player's moves.

read more
Watch Video

Problem Reduction Search: AND/OR Graphs

0 comments
Sometimes problems only seem hard to solve. A hard problem may be one that can be reduced to a number of simple problems...and, when each of the simple problems is solved, then the hard problem has been solved. This is the basic intuition behind the method of problem reduction. We will have much more to say about this method of search when we cover problem solving and planning in the second half of the course. At this point, our goal is simply to introduce you to this type of search and illustrate the way in which it differs from state space search.




The typical problem that is used to illustrate problem reduction search is the Tower of Hanoi problem because this problem has a very elegant solution using this method. The story that is typically quoted to describe the Tower of Hanoi problem describes the specific problem faced by the priests of Brahmah. Just in case you didn't decide to read this story, the gist of it is that 64 size ordered disks occupy one of 3 pegs and must be transferred to one of the other pegs. But, only one disk can be moved at a time; and a larger disk may never be placed on a smaller disk.
Rather than deal with the 64 disk problem faced by the priests, we will consider only three disks...the minimum required to make the problem mildly interesting and useful for our purpose here...namely to illustrate problem reduction search. The figure below shows the state space associated with a 3-disk Tower of Hanoi Problem. The problem involves moving from a state where the disks are stacked on one of the pegs and moving them so that they end up stacked on a different peg. In this case, we will consider the state at the top of the figure the starting state. In this case all three disks are on the left-most peg. And we will consider the state at the bottom right to be the goal state. In this state the three disks are now all stacked on the right-most peg.

read more
Watch Video

Heuristic Search A* and Beyond

0 comments
Heuristic algorithm or simply a heuristic is an algorithm that gives up finding the optimal solution for an improvement in run time.

Two fundamental goals in computer science are finding algorithms with provably good run times and with provably good or optimal solution quality. A heuristic is an algorithm that abandons one or both of these goals; for example, it usually finds pretty good solutions, but there is no proof the solutions could not get arbitrarily bad; or it usually runs reasonably quickly, but there is no argument that this will always be the case.


For instance, say you are packing odd-shaped items into a box. Finding a perfect solution is a hard problem: there is essentially no way to do it without trying every possible way of packing them. What most people do, then, is "put the largest items in first, then fit the smaller items into the spaces left around them." This will not necessarily be perfect packing, but it will usually give a packing that is pretty good. It is an example of a heuristic solution.

Many commercial anti-virus scanners use heuristic signatures to look for specific attributes and characteristics for detecting viruses and other forms of malware.

Judea Pearl states that heuristic methods are based upon intelligent search strategies for computer problem solving, using several alternative approaches.

Often, one can find specially crafted problem instances where the heuristic will in fact produce very bad results or run very slowly; however, such pathological instances might never occur in practice because of their special structure. Therefore, the use of heuristics is very common in real world implementations. For many practical problems, a heuristic algorithm may be the only way to get good solutions in a reasonable amount of time. There is a class of general heuristic strategies called metaheuristics, which often use randomized search for example. They can be applied to a wide range of problems, but good performance is never guaranteed.

read more
Watch Video

Wednesday, July 30, 2008

Programming Paradigms

Wednesday, July 30, 2008
0 comments
A programming paradigm is a fundamental style of computer programming. (Compare with a methodology, which is a style of solving specific software engineering problems).

A programming language can support multiple paradigms. For example programs written in C++ or Object Pascal can be purely procedural, or purely object-oriented, or contain elements of both paradigms. Software designers and programmers decide how to use those paradigm elements.

Lecture 1



In object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations. When programming computers or systems with many processors, process-oriented programming allows programmers to think about applications as sets of concurrent processes acting upon logically shared data structures.

Just as different groups in software engineering advocate different methodologies, different programming languages advocate different programming paradigms. Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, C#, Visual Basic, Common Lisp, Scheme, Python, Ruby and Oz).

Many programming paradigms are as well known for what techniques they forbid as for what they enable. For instance, pure functional programming disallows the use of side-effects; structured programming disallows the use of the goto statement. Partly for this reason, new paradigms are often regarded as doctrinaire or overly rigid by those accustomed to earlier styles. Avoiding certain techniques can make it easier to prove theorems about a program's correctness—or simply to understand its behavior.



Lecture 2


Lecture 3


Lecture 4



Lecture 5

read more
Watch Video

Tuesday, July 29, 2008

Introduction to Robotics Lecture 16

Tuesday, July 29, 2008
0 comments

read more
Watch Video

Introduction to Robotics Lecture 15

0 comments

read more
Watch Video

Introduction to Robotics Lecture 14

0 comments

read more
Watch Video

Introduction to Robotics Lecture 13

0 comments

read more
Watch Video

Introduction to Robotics Lecture 12

0 comments

read more
Watch Video

Introduction to Robotics Lecture 11

0 comments

read more
Watch Video

Introduction to Robotics Lecture 10

0 comments

read more
Watch Video

Introduction to Robotics Lecture 9

0 comments

read more
Watch Video

Introduction to Robotics Lecture 8

0 comments

read more
Watch Video

Introduction to Robotics lecture 7

0 comments

read more
Watch Video

Introduction to Robotics Lecture 6

0 comments

read more
Watch Video

Introduction to Robotics Lecture 5

0 comments

read more
Watch Video

Introduction to Robotics lecture 4

0 comments

read more
Watch Video

Introduction to Robotics Lecture 3

0 comments

read more
Watch Video

Introduction to Robotics Lecture 2

0 comments

read more
Watch Video

Introduction to Robotics

0 comments
Robotics is the science and technology of robots, their design, manufacture, and application. Robotics requires a working knowledge of electronics, mechanics and software, and is usually accompanied by a large working knowledge of many subjects. A person working in the field is a roboticist.

The structure of a robot is usually mostly mechanical and can be called a kinematic chain (its functionality being similar to the skeleton of the human body). The chain is formed of links (its bones), actuators (its muscles) and joints which can allow one or more degrees of freedom. Most contemporary robots use open serial chains in which each link connects the one before to the one after it. These robots are called serial robots and often resemble the human arm. Some robots, such as the Stewart platform, use closed parallel kinematic chains. Other structures, such as those that mimic the mechanical structure of humans, various animals and insects, are comparatively rare. However, the development and use of such structures in robots is an active area of research (e.g. biomechanics). Robots used as manipulators have an end effector mounted on the last link. This end effector can be anything from a welding device to a mechanical hand used to manipulate the environment. ISO 10248 defines a robotic application on the industrial field.
Lecture 1


Introduction to robotics which covers topics such as Spatial Descriptions, Forward Kinematics, Inverse Kinematics, Jacobians, Dynamics, Motion Planning and Trajectory Generation, Position and Force Control, and Manipulator Design.

read more
Watch Video

Machine Learning lecture 20

0 comments

read more
Watch Video

Machine Learning Lecture 19

0 comments

read more
Watch Video

Machine learning lecture 18

0 comments

read more
Watch Video

Machine Learning lecture 17

0 comments

read more
Watch Video

Machine learning lecture 16

0 comments

read more
Watch Video

Machine Learning lecture 15

0 comments

read more
Watch Video

Machine learning lecture 14

0 comments

read more
Watch Video

Machine learning lecture 13

0 comments

read more
Watch Video

Machine learning Lecture 12

0 comments

read more
Watch Video

Machine learning lecture 11

0 comments

read more
Watch Video

Machine Learning Lecture 10

0 comments

read more
Watch Video

Machine Learning lecture 9

0 comments

read more
Watch Video

Machine Learning lecture 8

0 comments

read more
Watch Video

Machine Learning lecture 7

0 comments

read more
Watch Video

Machine Learning Lecture 6

0 comments

read more
Watch Video

Machine Learning Lecture 5

0 comments

read more
Watch Video

Machine Learning Lecture 4 |

0 comments

read more
Watch Video

Machine Learning lecture 3

0 comments


This course provides a broad introduction to machine learning and statistical pattern recognition. Topics include supervised learning, unsupervised learning, learning theory, reinforcement learning and adaptive control. Recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing are also discussed.

read more
Watch Video

Machine Learning lecture 2

0 comments


Linerar regression,gradient descent,normal equations

read more
Watch Video

Machine Learning lecture

0 comments
Machine learning is concerned with the design and development of algorithms and techniques that allow computers to "learn". At a general level, there are two types of learning: inductive, and deductive. Inductive machine learning methods extract rules and patterns out of massive data sets.

The major focus of machine learning research is to extract information from data automatically, by computational and statistical methods. Hence, machine learning is closely related not only to data mining and statistics, but also theoretical computer science.

Lecture 1



Machine learning algorithms are organized into a taxonomy, based on the desired outcome of the algorithm. Common algorithm types include:
Supervised learning — in which the algorithm generates a function that maps inputs to desired outputs. One standard formulation of the supervised learning task is the classification problem: the learner is required to learn (to approximate) the behavior of a function which maps a vector into one of several classes by looking at several input-output examples of the function.
Unsupervised learning — An agent which models a set of inputs: labeled examples are not available.
Semi-supervised learning — which combines both labeled and unlabeled examples to generate an appropriate function or classifier.
Reinforcement learning — in which the algorithm learns a policy of how to act given an observation of the world. Every action has some impact in the environment, and the environment provides feedback that guides the learning algorithm.
Transduction — similar to supervised learning, but does not explicitly construct a function: instead, tries to predict new outputs based on training inputs, training outputs, and test inputs which are available while training.
Leaning to learn — in which the algorithm learns its own inductive bias based on previous experience.

The computational analysis of machine learning algorithms and their performance is a branch of theoretical computer science known as computational learning theory.

This course provides a broad introduction to machine learning and statistical pattern recognition. Topics include supervised learning, unsupervised learning, learning theory, reinforcement learning and adaptive control. Recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing are also discussed.

read more
Watch Video

Artificial Intelligence:Informed State Space Search

0 comments

read more
Watch Video

Artificial Intelligence-Searching with Costs

0 comments

read more
Watch Video

Artificial Intelligence-Problem Solving by Search

0 comments

read more
Watch Video

Index Properties and Classification of Soils

0 comments

read more
Watch Video

Sampling and Non - Intrusive Methods

0 comments

read more
Watch Video

Introduction to Subsurface Exploration

0 comments

read more
Watch Video

Fluid Mechanics

0 comments

read more
Watch Video

Artificial Intelligence

0 comments

read more
Watch Video

Sediment Transport and Deposition

0 comments

read more
Watch Video

Monday, July 28, 2008

The New Food Wars: Globalization GMOs and Biofuels

Monday, July 28, 2008
0 comments
The New Food Wars: Globalization GMOs and Biofuels

read more
Watch Video

Advanced Concepts of Gravity

0 comments
Advanced Concepts of Gravity

read more
Watch Video

Weathering

0 comments

read more
Watch Video

Metamorphic Rocks

0 comments

read more
Watch Video

Sedimentary Rocks

0 comments

read more
Watch Video

Igneous Rocks lecture

0 comments

read more
Watch Video

Origin And Types of Soils

0 comments

read more
Watch Video

Origin And Types of Rocks

0 comments

read more
Watch Video

Sunday, July 27, 2008

Chemical Characteristics of Minerals

Sunday, July 27, 2008
0 comments
Minerals may be classified according to chemical composition. They are here categorized by anion group. The list below is in approximate order of their abundance in the Earth's crust. The list follows the Dana classification system.


Silicate class
The largest group of minerals by far are the silicates (most rocks are ≥95% silicates), which are composed largely of silicon and oxygen, with the addition of ions such as aluminium, magnesium, iron, and calcium. Some important rock-forming silicates include the feldspars, quartz, olivines, pyroxenes, amphiboles, garnets, and micas.

Carbonate class

The carbonate minerals consist of those minerals containing the anion (CO3)2- and include calcite and aragonite (both calcium carbonate), dolomite (magnesium/calcium carbonate) and siderite (iron carbonate). Carbonates are commonly deposited in marine settings when the shells of dead planktonic life settle and accumulate on the sea floor. Carbonates are also found in evaporitic settings (e.g. the Great Salt Lake, Utah) and also in karst regions, where the dissolution and reprecipitation of carbonates leads to the formation of caves, stalactites and stalagmites. The carbonate class also includes the nitrate and borate minerals.

Sulfate class

Sulfates all contain the sulfate anion, SO42-. Sulfates commonly form in evaporitic settings where highly saline waters slowly evaporate, allowing the formation of both sulfates and halides at the water-sediment interface. Sulfates also occur in hydrothermal vein systems as gangue minerals along with sulfide ore minerals. Another occurrence is as secondary oxidation products of original sulfide minerals. Common sulfates include anhydrite (calcium sulfate), celestine (strontium sulfate), barite (barium sulfate), and gypsum (hydrated calcium sulfate). The sulfate class also includes the chromate, molybdate, selenate, sulfite, tellurate, and tungstate minerals.

Oxide class

Oxides are extremely important in mining as they form many of the ores from which valuable metals can be extracted. They also carry the best record of changes in the Earth's magnetic field. They commonly occur as precipitates close to the Earth's surface, oxidation products of other minerals in the near surface weathering zone, and as accessory minerals in igneous rocks of the crust and mantle. Common oxides include hematite (iron oxide), magnetite (iron oxide), chromite (iron chromium oxide), spinel (magnesium aluminium oxide - a common component of the mantle), ilmenite (iron titanium oxide), rutile (titanium dioxide), and ice (hydrogen oxide). The oxide class includes the oxide and the hydroxide minerals.

Halide class

The halides are the group of minerals forming the natural salts and include fluorite (calcium fluoride), halite (sodium chloride), sylvite (potassium chloride), and sal ammoniac (ammonium chloride). Halides, like sulfates, are commonly found in evaporitic settings such as playa lakes and landlocked seas such as the Dead Sea and Great Salt Lake. The halide class includes the fluoride, chloride, bromide and iodide minerals.

Sulfide class

Many sulfide minerals are economically important as metal ores. Common sulfides include pyrite (iron sulfide - commonly known as fools' gold), chalcopyrite (copper iron sulfide), pentlandite (nickel iron sulfide), and galena (lead sulfide). The sulfide class also includes the selenides, the tellurides, the arsenides, the antimonides, the bismuthinides, and the sulfosalts (sulfur and a second anion such as arsenic).

Phosphate class

The phosphate mineral group actually includes any mineral with a tetrahedral unit AO4 where A can be phosphorus, antimony, arsenic or vanadium. By far the most common phosphate is apatite which is an important biological mineral found in teeth and bones of many animals. The phosphate class includes the phosphate, arsenate, vanadate, and antimonate minerals.

Element class

The elemental group includes metals and intermetallic elements (gold, silver, copper), semi-metals and non-metals (antimony, bismuth, graphite, sulfur). This group also includes natural alloys, such as electrum (a natural alloy of gold and silver), phosphides, silicides, nitrides and carbides (which are usually only found naturally in a few rare meteorites).

Organic class

The organic mineral class includes biogenic substances in which geological processes have been a part of the genesis or origin of the existing compound. Minerals of the organic class include various oxalates, mellitates, citrates, cyanates, acetates, formates, hydrocarbons and other miscellaneous species. Examples include whewellite, moolooite, mellite, fichtelite, carpathite, evenkite and abelsonite.

read more
Watch Video

Crystallography and Optical Properties

0 comments

read more
Watch Video

Physical Properties of Minerals

0 comments

read more
Watch Video

Remote Sensing in Engineering Geology

0 comments

read more
Watch Video

Geologic Maps and Stratigraphic Sections

0 comments

read more
Watch Video

Geologic Structures

0 comments
Structural geology is the study of the three dimensional distribution of rock bodies and their planar or folded surfaces, and their internal fabrics.

Structural geology includes features of and overlaps with facets of geomorphology, metamorphism and geotechnical studies. By studying the three dimensional structure of rocks and regions, inferences on tectonic history, past geological environments and deformation events can be made. These can be fixed in time using stratigraphical controls as well as geochronology, to determine when the structural features formed.

More formally stated it is the branch of geology that deals with the geological processes through which the application of a force results in the transformation of a shape, arrangement or internal fabric of the rock into another shape, arrangement or internal fabric. Petroleum structural geologists can interpret prospect or basin scale geology using several techniques. These techniques include the interpretation of surface data, well data, remote sensing data and seismic data. Many structural geologists now use 2D/3D geological modelling software in order to integrate these varied datasets.

read more
Watch Video

Saturday, July 26, 2008

Introduction to Engineering Geology

Saturday, July 26, 2008
0 comments

read more
Watch Video