Title: State Space Search
1State Space Search
Thinking about Algorithm abstractly
2Structures and Strategies for State Space Search
- Introduction
- Graph Theory
- Structures for state space search
- state space representation of problems
- Strategies for state space search
- Data-Driven and Goal-Driven Search
- Implementing Graph Search
- Depth-First and Breadth-First Search
- Depth-First Search with Iterative Deepening
- Using the State Space to Represent Reasoning with
the Predicate Calculus - State Space Description of a Logical System
- AND/OR graphs
- Examples and Applications
3Introduction (1)
- Questions for designing search algorithms
- Is the problem solver guaranteed to find a
solution? - Will the problem solver always terminate?
- When a solution is found, is it guaranteed to be
optimal? - What is the complexity of the search process?
- How can the interpreter most effectively reduce
search complexity? - How can the interpreter effectively utilize a
representation language? - State space search is the tool for answering
these questions.
4Introduction (2)
- A graph consists of nodes and a set of arcs or
links connecting pairs of nodes. - Nodes are used to represent discrete states.
- A configuration of a game board. (tic-tac-toe)
- Arcs are used to represent transitions between
states. - Legal moves of a game
- Leonhard Euler invented graph theory to solve the
bridge of Königsberg problem - Is there a walk around the city that crosses each
bridge exactly once.
5State space representation of Tic-tac-toe
6Königsberg Bridge System (1)
7Königsberg Bridge System (2)
- Euler focused on the degree of the nodes of the
graph - Even degree node has an even number of arcs
joining it to neighboring nodes. - Odd degree node has an odd number of arcs.
- Unless a graph contained either exactly zero or
two nodes of odd degree, the walk was impossible. - No odd dgree node the walk start at the first
and end at the same node - Two odd degree nodes the walk could start at the
first and end at the second
8Definition of Graph(1)
- A graph consists of nodes and arcs
- A set of nodes N1, N2, , Nn need not be
finite. - A set of arcs connects pairs of nodes.
- A directed graph has an indicated direction for
traversing each arc - If a directed arc connects Nj and Nk, then Nj is
called the parent of Nk and Nk is called the
child of Nj. - A rooted graph has a unique node Ns from which
all paths in the graph originate - A tip or leaf node is a node without children.
- An ordered sequence of nodes N1, N2, N3, Nn
is called a path of length n-1 in the graph
9Definition of Graph (2)
- On a path in a rooted graph, a node is said to be
an ancestor of all nodes positioned after it (to
its right) as well as a descendant of all nodes
before it (to its left). - A path that contains any node more than once is
said to contain a cycle or loop. - A tree is a graph in which there is a unique path
between every pair of nodes - Two nodes in a graph are said to be connected if
a path exists that includes them both.
10State Space Representation of Problems(1)
- In the state space representation of a problem,
the nodes of a graph corresponds to partial
problem solution states, the arcs corresponds to
steps in a problem-solving process. - State space search characterize problem solving
as the process of finding a solution path from
the start state to a goal.
11State Space Representation of Problems(2)
- Definition STATE SPACE SEARCH
- A state space is represented by a four tuple
N, A, S, GD where - N is the set of states.
- A is the set of steps between states
- S is the start state(S) of the problem.
- GD is the goal state(S) of the problem.
- The states in GD are described
- 1. A measurable property of the states.
(winning board in tic-tac-toe) - 2. A property of the path.(shortest path in
traveling sales man problem) - A solution path is a path through this graph
from S to GD.
12Tic-tac-toe (1)
- The set of states are all different
configurations of Xs and Os that the game can
have. N - 39 ways to arrange blank, X, O in nine spaces.
- Arcs(steps) are generated by legal moves of the
game, alternating between placing an X and an O
in an unused location A - The start state is an empty board. S
- The goal state is a board state having three Xs
in a row, column, or diagonal. GD
13Tic-tac-toe (2)
14Tic-tac-toe (3)
- There are no cycles in the state space because
the directed arcs of the graph do not allow a
move to be undone. - The complexity of the problem 9! (362,880)
different path can be generated. - Need heuristics to reduce the search complexity.
- e.g. My possible winning lines Opponents
possible wining lines - Chess has 10120 possible game paths
15Possible Heuristic for Tic-tac-toe
16The 8-puzzle (1)
- The set of states are all different
configurations of 9 tiles (9!). - The legal moves are move the blank tile up(),
right(), down(), and the left(). - make sure that it does not move the blank off the
board. - All four moves are not applicable at all times.
- The start state
- The goal stateunlike tic-tac-toe, cycles are
possible in the 8-puzzle. - Applicable heuristics
17 The 8 puzzle (2)
18Possible Heuristic for 8-puzzle
19The Traveling Salesperson(1)
- The goal of the problem is to find the shortest
path for the salesperson to travel, visiting each
city, and then returning to the starting city. - The goal description requires a complete circuit
with minimum cost. - The complexity of exhaustive search is (N-1)!,
where N is the number of cities - Techniques for reducing the search complexity.
- Branch and Bound, The Nearest neighbor.
20The Traveling Salesperson(2)
21The Traveling Salesperson(3)
- Branch and Bound technique
- 1. Generate paths while keeping track of the best
path found so far. - 2. Use this value as a bound
- 3. As paths are constructed one city at a time,
examine each partially completed path by guessing
the best possible extension of the path (the
branch). - 4. If the branch has greater cost than the bound,
it eliminates the partial path and all of its
possible extensions. - The Nearest Neighbor technique
- Go to the closest unvisited city.
- (A E D B C A) is not the shortest path
22The Traveling Salesperson(4)
23Data-Driven and Goal-Driven Search (1)
- Data-driven search(forward chaining) takes the
facts of the problem and applies the rules and
legal moves to produce new facts that lead to a
goal. - Goal-driven search (backward chaining) focused on
the goal, finds the rules that could produce the
goal, and chains backward through successive
rules and subgoals to the given facts of the
problem. - Both problem solvers search the same state space
graph. The search order and the actual number of
states searched can differ.
24Data-Driven and Goal-Driven Search (2)
- The preferred strategy is determined by the
properties of the problem complexity of the
rules, shape of the state space, the nature and
availability of the problem data. - Confirming or denying the statement I am a
descendant of Thomas Jefferson. - Assume that Thomas Jefferson was born about 250
years ago and that 25 years per generation and
that 3 children per family - I -gt Jefferson (backward) 210 ancestors
- Jefferson -gt I (forward) 310 nodes of family
25Goal-Driven Search is Suggested(1)
- A goal or hypothesis is given in the problem
statement or can easily be formulated. - Mathematics theorem prover, diagnostic systems
- Early selection of a goal can eliminate most
branches, making goal-driven search more
effective in pruning the space. - Mathematics theorem prover.
- Problem data are not given but must be acquired.
- A medical diagnosis program.
26Goal-Driven Search is Suggested(2)
27Data-driven Search is Appropriate
- All or most of the data are given in the initial
problem statement. - PROSPECTOR interpreting geological data.
- There are only a few ways to use the facts and
given information. - DENDRAL finding the molecular structure of
organic compounds. For any organic compound,
enormous number of possible structures. The mass
spectrographic data on a compound allow DENDRAL
to eliminate most of possible structures. - Branching factor, availability of data, and ease
of determining potential goals are carefully
analyzed to determine the direction of search.
28Backtracking Search Algorithm
- Backtracking is a technique for systematically
trying all paths through a state space. - Search begins at the start state and pursues a
path until it reaches either a goal or a dead
end. If it finds a goal, returns the solution
path. If it reaches a dead end, it backtracks to
the most recent node on the path - ABEHIFJCG
29Backtracking Search Example
30Backtrack (1)
- Begin
- SLstart state list (the states in the
current path) - NSLstart new state list(Nodes awaiting
evaluation) - nodes whose children are
not yet been generated - DE dead ends (states whose descendants
have failed to contain a goal node) - CSstart current state
- while NSL is not while there are states
to be tried - do begin
- if CSgoal
- then return (SL) on success, return
list of states in path - if CS has no children (except nodes already
on DE, SL, NSL) - then begin
- while SL is not empty and CSthe first
element of SL - do begin
31Backtrack (2)
- do begin
- add CS to DE
- remove first element from SL
backtrack - remove first element from NSL
- CSfirst element of NSL
- end
- add CS to SL
- end
- else begin when CS has children
- the first child
becomes new current state - and the rest are
placed on NSL for future. - place children of CS (except nodes on
DE) on NSL - CSfirst element of NSL
- add CS to SL
- end
- end
- return FAIL
- end
32Function Backtrack (3)
33Ideas used in Backtrack algorithm
- The list NSL is used to allow the algorithm to
backtrack to any of these states. - The list DE is used to prevent the algorithm from
retrying useless paths. - The list SL is used to keep track of the current
solution path. - Explicit checks for membership of new states in
these lists to prevent looping.
34Depth-First and Breadth-First Search
- A search algorithm must determine the order in
which states are examined. - Breadth-first search explores the space
- A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P,
Q, R, S, T, U - Depth-first search goes deeper into the search
space whenever this is possible. - A, B, E, K, S, L, T, F, M, C, G, N, H, O, P, U,
D, I, Q, J, R
35Search Example
36Breadth-First Search (1)
Procedure breadth_first_search begin open
Start closed while open ?
do begin remove leftmost state from
open, call it X if X is a goal then
return(success) else begin generate
children of X put X on closed eliminate
children of X on open or closed put remaining
children on right end of open end end
return(failure) end.
37Breadth-First Search(2)
- 1. openA closed
- 2. openB,C,D closedA
- 3. openC,D,E,F closedB,A
- 4. openD,E,F,G,H closedC,B,A
- 5. openE,F,G,H,I,J closedD,C,B,A
- 6. openF,G,H,I,J,K,L closedE,D,C,B,A
- 7. openG,H,I,J,K,L,M(as L is already on open)
closedF,E,D,C,B,A - 8. openH,I,J,K,L,M,N closedG,F,E,D,C,B,A
- 9. And so on until either U is found or open
38Breadth first search (3)
39Breadth-First Search (4)
- OPEN lists states that have been generated but
whose children have not been examined. - CLOSED records states that have already been
examined. - OPEN is maintained as a queue, FIFO data
structure. - States are added to the right of the list and
removed from the left - Figure 3.14 (p.101)
- Breadth-first search is guaranteed to find the
shortest path from the start state to the goal. - If the path is required for a solution, we can
store ancestor information along with each state. - open (D,A), (E,B), (F,B), (G,C), (H,C)
- closed (C,A), (B,A), (A,nil)
40Depth-First Search (1)
Procedure depth_first_search begin open
Start closed while open ?
do begin remove leftmost state from open,
call it X if X is a goal then
return(success) else begin generate
children of X put X on closed eliminate
children of X on open or closed put remaining
children on left end of open end end
return(failure) end.
41Depth-First Search (2)
- 1. openA closed
- 2. openB,C,D closedA
- 3. openE,F,C,D closedB,A
- 4. openK,L,F,C,D closedE,B,A
- 5. openS,L,F,C,D closedK,E,B,A
- 6. openL,F,C,D closedS,K,E,B,A
- 7. openT,F,C,D closedL,S,K,E,B,A
- 8. openF,C,D closedT,L,S,K,E,B,A
- 9. openM,C,D, as L is already on closed
closedF,T,L,S,K,E,B,A - 10. openC,D closedM,F,T,L,S,K,E,B,A
- 11. openG,H,D closedC,M,F,T,L,S,K,E,B,A
42Depth-First Search (3)
- OPEN is maintained as a stack, or LIFO data
structure. - The state are both added and removed from the
left end of OPEN. - Figure 3.16 (p.104)
- is not guaranteed to find the shortest path.
43Depth first search (4)
44Depth-First vs. Breadth-First
- The choice depends on the specific problem being
solved. - Significant features include the importance of
finding the shortest path, the branching of the
state space, the available time and space
resources, the average length of paths to a goal
node, and whether we want all solutions or only
the first solution. - Breadth-First
- always finds the shortest path to a goal node.
- If there is a bad branching factor, the
combinatorial explosion may prevent the algorithm
from finding a solution. - Depth-First
- may not waste time searching a large number of
shallow state in the graph. - can get lost deep in a graph missing shorter
paths to goal.
45Depth-First Search with Iterative Deepening
- Depth-First Search with Iterative Deepening
- performs a depth-first search of the space with a
depth bound of 1. If it fails to find a goal, it
performs another depth-first search with a depth
bound of 2. This continues, increasing the depth
bound by one at each iteration. - Best-First Search
- orders the states on the OPEN list according to
some measure of their heuristic merit.