Hi, just talking about Planning?
Planning is a special AI “chapter”, not well known by all the academic nor the programmer’s world. I’ll explain a little.
The first project for planning was born after the scientist realize that computers cannot easily solve chained logic-problems, specially when there are restrictions and conditions which are not static or well known. SHRDLU was a initiative and a system aimed to solve this dilemma.
A typical planning task is playing chess, each “layout” is unique and requires a plan to succeed (or not).
A plan is a sequence of actions which are “legal” and to be “legal” those actions must have no restriction.
So let’s imagine a situation where you have a series of “variables” A, B, C.. and some logical-relations like this:
(A=1 and B>3) (A + B < 3), etc. Even your “state” (the sequence timing) is a Variable (like a program counter) so, the scenario is dynamic: each time you advance to a certain state, all the variables gets changed, and you might or not advance toward this new “state” (read as: combination of variable’s values, including the state counter)
A typical situation for this is the Hanoi Tower Challenge/Game you can start in each “turn” and “do a thing” which indeed changes the things and this ‘change"is conditioned by the “positions” of each ring in the 3 piles, and the size of each ring you might pick to move to another pile!
So, this seems easy.. but where is the trick?
Well, the problem lies on the impossibility of a brute-force solution, because normally the possible states upon each action are so high, mostly a combination, so the problem is NP-hard, thus unsolvable by brute-force attack.
¿is there a solution?
YES, there are many, most are based upon a classical backtracking attack, minimizing repetitive states, but this is not enough, so there have been clever-thinkers who solved the dilemma and proved that the solution was a solution, and not a guess-move thing. The first so called solution was named GraphPlan (google it) and there are more “derivatives” based upon a memorized back-planning schema.
The problem to solve indeed is similar to First Order Logic, but because all the successive “states” change the “logic” its hard to forge an “analytic-symbolic” move so the planning turned into elegant-shaped solutions and problems.
The application is immediate:
Logistic is the first usage, planning how to move merchant, how to load/unload a container’s ship (optimally), typical salesman problem, with many more constraints.
Robotics (planning movements with constrains, including a robot’s arms & position which is the main variable). Finally a new application is Natural Language Generation, because there is a huge possibility of picking up-sentences and grammar sub-constructs and the solution space is so huge, that a surface and often a deep planning turns necessary.
- that’s all, enjoy!
PD: Some links & documents on the fact are here!
en.wikipedia.org/wiki/Graphplan
http://www.cs.nott.ac.uk/~nza/G52PAS/lecture12.pdf
http://web.engr.oregonstate.edu/~afern/classes/cs533/notes/graphplan.pdf