State-space planning

In artificial intelligence and computer programming, state-space planning is a process used in designing programs to search for data or solutions to problems. In a computer algorithm that searches a data structure for a piece of data, for example a program that looks up a word in a computer dictionary, the state space is a collective term for all the data to be searched. Similarly, artificial intelligence programs often employ a process of searching through a finite universe of possible procedures for reaching a goal, to find a procedure or the best procedure to achieve the goal. The universe of possible solutions to be searched is called the state space. State-space planning is the process of deciding which parts of the state space the program will search, and in what order.

Definition

The simplest classical planning {{Crossreference|selfref=no|(see Automated planning and scheduling)}} algorithms are state-space search algorithms. These

are search algorithms in which the search space is a subset of the state space: Each

node corresponds to a state of the world, each arc corresponds to a state transition,

and the current plan corresponds to the current path in the search space.

Forward search and backward search are two of main samples of state-space planning.

In the algorithms that follow, by "non-deterministic", we mean that the chosen graph search algorithm for picking a next branch is arbitrary. One can brute-force (BFS, DFS, IDS, etc.), use heuristics (A*, IDA*, etc.), etc. This is a choice which generally depends on the nature of the problem.

See also

References

  • {{Cite book |last1=Ghallab |first1=Malik |last2=Nau |first2=Dana S. |last3=Traverso |first3=Paolo |year=2004 |title=Automated Planning: Theory and Practice |publisher=Morgan Kaufmann |url=https://books.google.com/books?id=eCj3cKC_3ikC&q=%22state+space%22 |isbn=1-55860-856-7}}

{{Automated reasoning}}