The following definitions characterize the data and control structures used to implement state space search:
Representation of a problem solutions as a path from a start state to a goal
Search to test systematically alternative paths to a goal
Backtracking or some other mechanism to allow an algorithm to recover from paths that fail to find a goal
Lists to keep explicit records of states under consideration
- The open list allows the algorithms to explore untried states if necessary
- The closed list of visited states allows the algorithm to implement loop detection and avoid repeating fruitless paths
Implementation of the open list as a stack for depth-first search, a queue for breadth-first search and a priority queue for best-first search