Formalizing Search in a State Space
- A state space is a graph, (V, E), where V is a set of nodes
and E is a set of arcs, where each arc is directed from
a node to another node
- Each node is a data structure that contains a state description
plus
other information such as the parent of the node, the name of the
operator that generated the node from that parent, and other bookkeeping
data
- Each arc corresponds to an instance of one of the operators.
When the operator is applied to the state associated with the arc's
source node, then the resulting state is the state associated with the
arc's destination node
- Each arc has a fixed, positive cost associated with it corresponding
to the cost of the operator
- Each node has a set of successor nodes corresponding to
all of the legal operators that can be applied at the source node's
state. The process of expanding a node means to generate all
of the successor nodes and add them and their associated arcs to the
state-space graph
- One or more nodes are designated as start nodes
- A goal test predicate is applied to a state to determine
if its associated node is a goal node
- A solution is a sequence of operators that is associated with
a path in a state space from a start node to a goal node
- The cost of a solution is the sum of the arc costs on the
solution path
- State-space search is the process of searching through a state space
for a solution by making explicit a sufficient portion of an
implicit state-space graph to include a goal node. Hence, initially
V={S}, where S is the start node; when S is expanded, its successors
are generated and those nodes are added to V and the associated arcs are
added to E. This process continues until a goal node is found
- Each node implicitly or explicitly represents a partial
solution path (and cost of the partial solution path) from
the start node to the given node. In general, from this node there
are many possible paths (and therefore solutions) that have this
partial path as a prefix