Problem Reduction Search
Problem Reduction Search
2
3
4
AND/OR Graphs
An OR node represents a choice between
possible decompositions
An AND node represents a given decomposition
Game Trees
Max nodes represent the choice of my opponent
Min nodes represent my choice
5
The AND/OR graph search problem
• Problem definition:
– Given: [G, s, T] where
• G is the (possibly implicitly specified) AND/OR graph
• s is the start node of the AND/OR graph
• T is the (possibly implicitly specified) set of terminal nodes
• h(n) is a heuristic function estimating the cost of solving the sub-
problem represented by node n
– To find:
– A minimum cost solution tree
– During the search, we will use G* to denote the explicit portion of the
AND/OR graph
6
OR
30+120
= 150
AND 12+40
AND
= 52
(0)
(40)
(0) (120)
h =7 h =10 h =14 h =16 h =18
AND
2 1
h =8 h =6 h =16
h =3 h =7
h =4
OR OR
16
8
2 0
h =14 6 0
1
h =2
AND h =7 h =5
9 7
AND
1
0 0
h =3 0
10 3 4
Algorithm AO*
1. Initialize: Set G* = {s}, f(s) = h(s)
If s T, label s as SOLVED
2. Terminate: If s is SOLVED, then terminate
3. Select: Select a non-terminal leaf node n from the
marked sub-tree below s in G*
4. Expand: Make explicit the successors of n
For each successor, m, not already in G*:
Set f(m) = h(m)
If m is a terminal node, label m as
SOLVED
5. Cost Revision: Call cost-revise(n)
6. Loop: Go To Step 2.
9
Cost Revision in AO*: cost-revise(n)
1. Create Z = {n}
2. If Z = { } return
3. Select a node m from Z such that m has no descendants in Z
4. If m is an AND node with successors r1, r 2 , … r k:
Set f(m) = [ f(ri) + c(m, ri) ]
Mark the edge to each successor of m
If each successor is labeled SOLVED, then label m as SOLVED
• If m is an OR node with successors r1, r 2 , … r k:
Set f(m) = min { f(ri) + c(m, ri) }
Mark the edge to the best successor of m
If the marked successor is labeled SOLVED, label m as SOLVED
1. If the cost or label of m has changed, then insert those parents of m into
Z for which m is a marked successor
2. Go to Step 2.
10
Example
11
12
Searching OR Graphs
• How does AO* fare when the graph has only OR nodes?
• What are the roles of lower-bound and upper-bound estimates?
– Pruning criteria: LB > UB
13
Shallow and Deep Pruning
ROOT ROOT
A
10
B
10 F
Max node
14 C D
G Min node
5 E
14
Alpha-Beta Pruning
• Alpha Bound of J:
– The highest current value of all MAX ancestors of J
– Exploration of a min node, J, is terminated as soon as its value
equals or falls below alpha.
– In a min node, we update beta
• Beta Bound of J:
– The lowest current value of all MIN ancestors of J
– Exploration of a max node, J, is terminated as soon as its value
equals or exceeds beta
– In a max node, we update alpha
• In both min and max nodes, we return when
15
Alpha-Beta Procedure: V(J;,)
16