learning objectives - jbnu.ac.krnlp.jbnu.ac.kr › ai2018 › slides › ch03_all.pdf ·...
TRANSCRIPT
Learning Objectives
At the end of the class you should be able to:
define a directed graph
represent a problem as a state-space graph
explain how a generic searching algorithm works
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 1
Searching
Often we are not given an algorithm to solve a problem, butonly a specification of what is a solution — we have to searchfor a solution.
A typical problem is when the agent is in one state, it has aset of deterministic actions it can carry out, and wants to getto a goal state.
Many AI problems can be abstracted into the problem offinding a path in a directed graph.
Often there is more than one way to represent a problem as agraph.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 2
State-space Search
flat or modular or hierarchical
explicit states or features or individuals and relations
static or finite stage or indefinite stage or infinite stage
fully observable or partially observable
deterministic or stochastic dynamics
goals or complex preferences
single agent or multiple agents
knowledge is given or knowledge is learned
perfect rationality or bounded rationality
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 3
Directed Graphs
A graph consists of a set N of nodes and a set A of orderedpairs of nodes, called arcs .
Node n2 is a neighbor of n1 if there is an arc from n1 to n2.That is, if 〈n1, n2〉 ∈ A.
A path is a sequence of nodes 〈n0, n1, . . . , nk〉 such that〈ni−1, ni 〉 ∈ A.
The length of path 〈n0, n1, . . . , nk〉 is k .
Given a set of start nodes and goal nodes, a solution is apath from a start node to a goal node.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 4
Example Problem for Delivery Robot
The robot wants to get from outside room 103 to the inside ofroom 123.
stairs r101 r103 r105 r107 r109 r111
r113
r115
r117
r119r121r123r125r127r129r131
o101 o103 o105 o107 o109 o111
o113
o115
o117
o119o121o123o125o127o129o131
b1
b3 b4
b2
a2
a1
a3
d3
d1 d2
c2 c3
c1
tsmail
storage
mainoffice
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 5
State-Space Graph for the Delivery Robot
16
8 124
64
44 9
7
74
36
86
4
3
7
mail ts o103
b3
b1
c2
c1
c3
b2
b4
o109
o119
o111
o123
r123
o125
storage
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 6
Partial Search Space for a Video Game
Grid game: Rob needs to collect coins C1, C2, C3, C4, withoutrunning out of fuel, and end up at location (1, 1):
FuelRobC3
54
987
.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 7
Partial Search Space for a Video Game
Grid game: Rob needs to collect coins C1, C2, C3, C4, withoutrunning out of fuel, and end up at location (1, 1):
FuelRobC3
5
State:〈X-pos,Y-pos,Fuel,C1,C2,C3,C4 〉
〈5,8,6,f,t,f,f 〉
〈5,9,5,f,t,f,f 〉 〈5,7,5,f,t,t,f 〉
〈4,9,20,f,t,f,f 〉〈5,8,4,f,t,f,f 〉
〈5,8,4,f,t,t,f 〉
〈6,8,5,f,t,f,f 〉
〈5,9,19,f,t,f,f 〉
4
987
Goal:〈1,1,?,t,t,t,t 〉
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 8
Graph Searching
Generic search algorithm: given a graph, start nodes, and goalnodes, incrementally explore paths from the start nodes.
Maintain a frontier of paths from the start node that havebeen explored.
As search proceeds, the frontier expands into the unexplorednodes until a goal node is encountered.
The way in which the frontier is expanded defines thesearch strategy.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 9
Problem Solving by Graph Searching
ends of paths on frontier
explored nodes
unexplored nodes
startnode
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 10
Graph Search Algorithm
Input: a graph,a set of start nodes,Boolean procedure goal(n) that tests if n is a goal node.
frontier := {〈s〉 : s is a start node};while frontier is not empty:
select and remove path 〈n0, . . . , nk〉 from frontier ;if goal(nk)
return 〈n0, . . . , nk〉;for every neighbor n of nk
add 〈n0, . . . , nk , n〉 to frontier ;end while
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 11
Which value is selected from the frontier at each stage definesthe search strategy.
The neighbors define the graph.
goal defines what is a solution.
If more than one answer is required, the search can continuefrom the return.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.1, Page 12
Learning Objectives
At the end of the class you should be able to:
demonstrate how depth-first search will work on a graph
demonstrate how breadth-first search will work on a graph
predict the space and time requirements for depth-first andbreadth-first searches
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 1
Depth-first Search
Depth-first search treats the frontier as a stack
It always selects one of the last elements added to the frontier.
If the list of paths on the frontier is [p1, p2, . . .]I p1 is selected. Paths that extend p1 are added to the front of
the stack (in front of p2).I p2 is only selected when all paths from p1 have been explored.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 2
Illustrative Graph — Depth-first Search
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 16
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 3
Which shaded goal will a depth-first search find first?
Q W
T
U
Y
R
V
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 4
Complexity of Depth-first Search
Does depth-first search guarantee to find the shortest path orthe path with fewest arcs?
What happens on infinite graphs or on graphs with cycles ifthere is a solution?
What is the time complexity as a function of length of thepath selected?
What is the space complexity as a function of length of thepath selected?
How does the goal affect the search?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 5
Breadth-first Search
Breadth-first search treats the frontier as a queue.
It always selects one of the earliest elements added to thefrontier.
If the list of paths on the frontier is [p1, p2, . . . , pr ]:I p1 is selected. Its neighbors are added to the end of the queue,
after pr .I p2 is selected next.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 6
Illustrative Graph — Breadth-first Search
1
2 3
4 5 6 7
8 9 10 11 12 13 14
15 16
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 7
Complexity of Breadth-first Search
Does breadth-first search guarantee to find the shortest pathor the path with fewest arcs?
What happens on infinite graphs or on graphs with cycles ifthere is a solution?
What is the time complexity as a function of the length of thepath selected?
What is the space complexity as a function of the length ofthe path selected?
How does the goal affect the search?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 8
Which shaded goal will a breadth-first search find first?
Q W
T
U
Y
R
V
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 9
Lowest-cost-first Search
Sometimes there are costs associated with arcs. The cost ofa path is the sum of the costs of its arcs.
cost(〈n0, . . . , nk〉) =k∑
i=1
|〈ni−1, ni 〉|
An optimal solution is one with minimum cost.
At each stage, lowest-cost-first search selects a path on thefrontier with lowest cost.
The frontier is a priority queue ordered by path cost.
It finds a least-cost path to a goal node.
When arc costs are equal =⇒ breadth-first search.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 10
Summary of Search Strategies
Strategy Frontier Selection Complete Halts Space
Depth-first Last node added
No No Linear
Breadth-first First node added
Yes No Exp
Lowest-cost-first Minimal cost(p)
Yes No Exp
Complete — if there a path to a goal, it can find one, even oninfinite graphs.Halts — on finite graph (perhaps with cycles).Space — as a function of the length of current path
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 11
Summary of Search Strategies
Strategy Frontier Selection Complete Halts Space
Depth-first Last node added No No LinearBreadth-first First node added Yes No ExpLowest-cost-first Minimal cost(p) Yes No Exp
Complete — if there a path to a goal, it can find one, even oninfinite graphs.Halts — on finite graph (perhaps with cycles).Space — as a function of the length of current path
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.2, Page 12
Learning Objectives
At the end of the class you should be able to:
devise an useful heuristic function for a problem
demonstrate how best-first and A∗ search will work on a graph
predict the space and time requirements for best-first and A∗
search
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 1
Heuristic Search
Idea: don’t ignore the goal when selecting paths.
Often there is extra knowledge that can be used to guide thesearch: heuristics.
h(n) is an estimate of the cost of the shortest path fromnode n to a goal node.
h(n) needs to be efficient to compute.
h can be extended to paths: h(〈n0, . . . , nk〉) = h(nk).
h(n) is an underestimate if there is no path from n to a goalwith cost less than h(n).
An admissible heuristic is a nonnegative heuristic functionthat is an underestimate of the actual cost of a path to a goal.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 2
Example Heuristic Functions
If the nodes are points on a Euclidean plane and the cost isthe distance, h(n) can be the straight-line distance from n tothe closest goal.
If the nodes are locations and cost is time, we can use thedistance to a goal divided by the maximum speed.
If the goal is to collect all of the coins and not run out of fuel,the cost is an estimate of how many steps it will take tocollect the rest of the coins, refuel when necessary, and returnto goal position.
A heuristic function can be found by solving a simpler (lessconstrained) version of the problem.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 3
Best-first Search
Idea: select the path whose end is closest to a goal accordingto the heuristic function.
Best-first search selects a path on the frontier with minimalh-value.
It treats the frontier as a priority queue ordered by h.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 4
Illustrative Graph — Best-first Search
g
s
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 5
Complexity of Best-first Search
Does best-first search guarantee to find the shortest path orthe path with fewest arcs?
What happens on infinite graphs or on graphs with cycles ifthere is a solution?
What is the time complexity as a function of length of thepath selected?
What is the space complexity as a function of length of thepath selected?
How does the goal affect the search?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 6
A∗ Search
A∗ search uses both path cost and heuristic values
cost(p) is the cost of path p.
h(p) estimates the cost from the end of p to a goal.
Let f (p) = cost(p) + h(p).f (p) estimates the total path cost of going from a start nodeto a goal via p.
startpath p−→ n︸ ︷︷ ︸
cost(p)
estimate−→ goal︸ ︷︷ ︸h(p)︸ ︷︷ ︸
f (p)
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 7
A∗ Search Algorithm
A∗ is a mix of lowest-cost-first and best-first search.
It treats the frontier as a priority queue ordered by f (p).
It always selects the node on the frontier with the lowestestimated distance from the start to a goal node constrainedto go via that node.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 8
Complexity of A∗ Search
Does A∗ search guarantee to find the shortest path or thepath with fewest arcs?
What happens on infinite graphs or on graphs with cycles ifthere is a solution?
What is the time complexity as a function of length of thepath selected?
What is the space complexity as a function of length of thepath selected?
How does the goal affect the search?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 9
Admissibility of A∗
If there is a solution, A∗ always finds an optimal solution —thefirst path to a goal selected— if
the branching factor is finite
arc costs are bounded above zero (there is some ε > 0 suchthat all of the arc costs are greater than ε), and
h(n) is nonnegative and an underestimate of the cost of theshortest path from n to a goal node.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 10
Why is A∗ admissible?
If a path p to a goal is selected from a frontier, can there be ashorter path to a goal?
Suppose path p′ is on the frontier. Because p was chosenbefore p′, and h(p) = 0:
cost(p) ≤ cost(p′) + h(p′).
Because h is an underestimate:
cost(p′) + h(p′) ≤ cost(p′′)
for any path p′′ to a goal that extends p′.
So cost(p) ≤ cost(p′′) for any other path p′′ to a goal.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 11
Why is A∗ admissible?
If a path p to a goal is selected from a frontier, can there be ashorter path to a goal?
Suppose path p′ is on the frontier. Because p was chosenbefore p′, and h(p) = 0:
cost(p) ≤ cost(p′) + h(p′).
Because h is an underestimate:
cost(p′) + h(p′) ≤ cost(p′′)
for any path p′′ to a goal that extends p′.
So cost(p) ≤ cost(p′′) for any other path p′′ to a goal.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 12
Why is A∗ admissible?
If a path p to a goal is selected from a frontier, can there be ashorter path to a goal?
Suppose path p′ is on the frontier. Because p was chosenbefore p′, and h(p) = 0:
cost(p) ≤ cost(p′) + h(p′).
Because h is an underestimate:
cost(p′) + h(p′) ≤ cost(p′′)
for any path p′′ to a goal that extends p′.
So cost(p) ≤ cost(p′′) for any other path p′′ to a goal.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 13
Why is A∗ admissible?
A∗ can always find a solution if there is one:
The frontier always contains the initial part of a path to agoal, before that goal is selected.
A∗ halts, as the costs of the paths on the frontier keepsincreasing, and will eventually exceed any finite number.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 14
How do good heuristics help?
Suppose c is the cost of an optimal solution. What happen to apath p where
cost(p) + h(p) < c
cost(p) + h(p) = c
cost(p) + h(p) > c
How can a better heuristic function help?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 15
Summary of Search Strategies
Strategy Frontier Selection Complete Halts Space
Depth-first Last node added
No No Linear
Breadth-first First node added
Yes No Exp
Heuristic depth-first Local min h(p)
No No Linear
Best-first Global min h(p)
No No Exp
Lowest-cost-first Minimal cost(p)
Yes No Exp
A∗ Minimal f (p)
Yes No Exp
Complete — if there a path to a goal, it can find one, even oninfinite graphs.Halts — on finite graph (perhaps with cycles).Space — as a function of the length of current path
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 16
Summary of Search Strategies
Strategy Frontier Selection Complete Halts Space
Depth-first Last node added No No LinearBreadth-first First node added Yes No ExpHeuristic depth-first Local min h(p) No No LinearBest-first Global min h(p) No No ExpLowest-cost-first Minimal cost(p) Yes No ExpA∗ Minimal f (p) Yes No Exp
Complete — if there a path to a goal, it can find one, even oninfinite graphs.Halts — on finite graph (perhaps with cycles).Space — as a function of the length of current path
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.3, Page 17
Learning Objectives
At the end of the class you should be able to:
explain how cycle checking and multiple-path pruning canimprove efficiency of search algorithms
explain the complexity of cycle checking and multiple-pathpruning for different search algorithms
justify why the monotone restriction is useful for A∗ search
predict whether forward, backward, bidirectional orisland-driven search is better for a particular problem
demonstrate how dynamic programming works for a particularproblem
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 1
Summary of Search Strategies
Strategy Frontier Selection Complete Halts Space
Depth-first Last node added
No No Linear
Breadth-first First node added
Yes No Exp
Heuristic depth-first Local min h(p)
No No Linear
Best-first Global min h(p)
No No Exp
Lowest-cost-first Minimal cost(p)
Yes No Exp
A∗ Minimal f (p)
Yes No Exp
Complete — if there a path to a goal, it can find one, even oninfinite graphs.Halts — on finite graph (perhaps with cycles).Space — as a function of the length of current path
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 2
Summary of Search Strategies
Strategy Frontier Selection Complete Halts Space
Depth-first Last node added No No LinearBreadth-first First node added Yes No ExpHeuristic depth-first Local min h(p) No No LinearBest-first Global min h(p) No No ExpLowest-cost-first Minimal cost(p) Yes No ExpA∗ Minimal f (p) Yes No Exp
Complete — if there a path to a goal, it can find one, even oninfinite graphs.Halts — on finite graph (perhaps with cycles).Space — as a function of the length of current path
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 3
Cycle Checking
s
A searcher can prune a path that ends in a node already onthe path, without removing an optimal solution.
In depth-first methods, checking for cycles can be done intime in path length.
For other methods, checking for cycles can be done intime in path length.
Does cycle checking mean the algorithms halt on finitegraphs?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 4
Multiple-Path Pruning
s
Multiple path pruning: prune a path to node n that thesearcher has already found a path to.What needs to be stored?How does multiple-path pruning compare to cycle checking?Do search algorithms with multiple-path pruning always halton finite graphs?What is the space & time overhead of multiple-path pruning?Can multiple-path pruning prevent an optimal solution beingfound?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 5
Multiple-Path Pruning & Optimal Solutions
Problem: what if a subsequent path to n is shorter than the firstpath to n?
remove all paths from the frontier that use the longer path.
change the initial segment of the paths on the frontier to usethe shorter path.
ensure this doesn’t happen. Make sure that the shortest pathto a node is found first.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 6
Multiple-Path Pruning & Optimal Solutions
Problem: what if a subsequent path to n is shorter than the firstpath to n?
remove all paths from the frontier that use the longer path.
change the initial segment of the paths on the frontier to usethe shorter path.
ensure this doesn’t happen. Make sure that the shortest pathto a node is found first.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 7
Multiple-Path Pruning & A∗
Suppose path p to n was selected, but there is a shorter pathto n. Suppose this shorter path is via path p′ on the frontier.
Suppose path p′ ends at node n′.
p was selected before p′, so:
cost(p) + h(n) ≤ cost(p′) + h(n′).
Suppose cost(n′, n) is the actual cost of a path from n′ to n.The path to n via p′ is shorter that p so:cost(p′) + cost(n′, n) < cost(p).
cost(n′, n) < cost(p)− cost(p′) ≤ h(n′)− h(n).
We can ensure this doesn’t occur if|h(n′)− h(n)| ≤ cost(n′, n).
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 8
Multiple-Path Pruning & A∗
Suppose path p to n was selected, but there is a shorter pathto n. Suppose this shorter path is via path p′ on the frontier.
Suppose path p′ ends at node n′.
p was selected before p′, so:cost(p) + h(n) ≤ cost(p′) + h(n′).
Suppose cost(n′, n) is the actual cost of a path from n′ to n.The path to n via p′ is shorter that p so:
cost(p′) + cost(n′, n) < cost(p).
cost(n′, n) < cost(p)− cost(p′) ≤ h(n′)− h(n).
We can ensure this doesn’t occur if|h(n′)− h(n)| ≤ cost(n′, n).
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 9
Multiple-Path Pruning & A∗
Suppose path p to n was selected, but there is a shorter pathto n. Suppose this shorter path is via path p′ on the frontier.
Suppose path p′ ends at node n′.
p was selected before p′, so:cost(p) + h(n) ≤ cost(p′) + h(n′).
Suppose cost(n′, n) is the actual cost of a path from n′ to n.The path to n via p′ is shorter that p so:cost(p′) + cost(n′, n) < cost(p).
cost(n′, n) <
cost(p)− cost(p′) ≤ h(n′)− h(n).
We can ensure this doesn’t occur if|h(n′)− h(n)| ≤ cost(n′, n).
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 10
Multiple-Path Pruning & A∗
Suppose path p to n was selected, but there is a shorter pathto n. Suppose this shorter path is via path p′ on the frontier.
Suppose path p′ ends at node n′.
p was selected before p′, so:cost(p) + h(n) ≤ cost(p′) + h(n′).
Suppose cost(n′, n) is the actual cost of a path from n′ to n.The path to n via p′ is shorter that p so:cost(p′) + cost(n′, n) < cost(p).
cost(n′, n) < cost(p)− cost(p′) ≤
h(n′)− h(n).
We can ensure this doesn’t occur if|h(n′)− h(n)| ≤ cost(n′, n).
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 11
Multiple-Path Pruning & A∗
Suppose path p to n was selected, but there is a shorter pathto n. Suppose this shorter path is via path p′ on the frontier.
Suppose path p′ ends at node n′.
p was selected before p′, so:cost(p) + h(n) ≤ cost(p′) + h(n′).
Suppose cost(n′, n) is the actual cost of a path from n′ to n.The path to n via p′ is shorter that p so:cost(p′) + cost(n′, n) < cost(p).
cost(n′, n) < cost(p)− cost(p′) ≤ h(n′)− h(n).
We can ensure this doesn’t occur if|h(n′)− h(n)| ≤ cost(n′, n).
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 12
Monotone Restriction
Heuristic function h satisfies the monotone restriction if|h(m)− h(n)| ≤ cost(m, n) for every arc 〈m, n〉.If h satisfies the monotone restriction, A∗ with multiple pathpruning always finds the shortest path to a goal.
This is a strengthening of the admissibility criterion.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 13
Direction of Search
The definition of searching is symmetric: find path from startnodes to goal node or from goal node to start nodes.
Forward branching factor: number of arcs out of a node.
Backward branching factor: number of arcs into a node.
Search complexity is bn. Should use forward search if forwardbranching factor is less than backward branching factor, andvice versa.
Note: when graph is dynamically constructed, the backwardsgraph may not be available.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 14
Bidirectional Search
Idea: search backward from the goal and forward from thestart simultaneously.
This wins as 2bk/2 � bk . This can result in an exponentialsaving in time and space.
The main problem is making sure the frontiers meet.
This is often used with one breadth-first method that builds aset of locations that can lead to the goal. In the otherdirection another method can be used to find a path to theseinteresting locations.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 15
Island Driven Search
Idea: find a set of islands between s and g .
s −→ i1 −→ i2 −→ . . . −→ im−1 −→ g
There are m smaller problems rather than 1 big problem.
This can win as mbk/m � bk .
The problem is to identify the islands that the path must passthrough. It is difficult to guarantee optimality.
The subproblems can be solved using islands =⇒hierarchy of abstractions.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 16
Dynamic Programming
Idea: for statically stored graphs, build a table of dist(n) theactual distance of the shortest path from node n to a goal.This can be built backwards from the goal:
dist(n) =
{0 if is goal(n),min〈n,m〉∈A(|〈n,m〉|+ dist(m)) otherwise.
This can be used locally to determine what to do.There are two main problems:
It requires enough space to store the graph.
The dist function needs to be recomputed for each goal.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.4, Page 17
Learning Objectives
At the end of the class you should be able to:
justify why depth-bounded search is useful
demonstrate how iterative-deepening works for a particularproblem
demonstrate how depth-first branch-and-bound works for aparticular problem
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 1
Bounded Depth-first search
A bounded depth-first search takes a bound (cost or depth)and does not expand paths that exceed the bound.
I explores part of the search graphI uses space linear in the depth of the search.
How does this relate to other searches?
How can this be extended to be complete?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 2
Which shaded goal will a depth-bounded search find first?
Q W
T
U
Y
R
V
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 3
Iterative-deepening search
Iterative-deepening search:I Start with a bound b = 0.I Do a bounded depth-first search with bound bI If a solution is found return that solutionI Otherwise increment b and repeat.
This will find the same first solution as what other method?
How much space is used?
What happens if there is no path to a goal?
Surely recomputing paths is wasteful!!!
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 4
Iterative-deepening search
Iterative-deepening search:I Start with a bound b = 0.I Do a bounded depth-first search with bound bI If a solution is found return that solutionI Otherwise increment b and repeat.
This will find the same first solution as what other method?
How much space is used?
What happens if there is no path to a goal?
Surely recomputing paths is wasteful!!!
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 5
Iterative-deepening search
Iterative-deepening search:I Start with a bound b = 0.I Do a bounded depth-first search with bound bI If a solution is found return that solutionI Otherwise increment b and repeat.
This will find the same first solution as what other method?
How much space is used?
What happens if there is no path to a goal?
Surely recomputing paths is wasteful!!!
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 6
Iterative-deepening search
Iterative-deepening search:I Start with a bound b = 0.I Do a bounded depth-first search with bound bI If a solution is found return that solutionI Otherwise increment b and repeat.
This will find the same first solution as what other method?
How much space is used?
What happens if there is no path to a goal?
Surely recomputing paths is wasteful!!!
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 7
Iterative-deepening search
Iterative-deepening search:I Start with a bound b = 0.I Do a bounded depth-first search with bound bI If a solution is found return that solutionI Otherwise increment b and repeat.
This will find the same first solution as what other method?
How much space is used?
What happens if there is no path to a goal?
Surely recomputing paths is wasteful!!!
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 8
Iterative Deepening Complexity
Complexity with solution at depth k & branching factor b:
level breadth-first iterative deepening # nodes
1 1 k b2 1 k − 1 b2
. . . . . . . . . . . .k − 1 1 2 bk−1
k 1 1 bk
total
≥ bk ≤ bk(
bb−1
)2
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 9
Iterative Deepening Complexity
Complexity with solution at depth k & branching factor b:
level breadth-first iterative deepening # nodes
1 1 k b2 1 k − 1 b2
. . . . . . . . . . . .k − 1 1 2 bk−1
k 1 1 bk
total ≥ bk ≤ bk(
bb−1
)2
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 10
Depth-first Branch-and-Bound
combines depth-first search with heuristic information.
finds optimal solution.
most useful when there are multiple solutions, and we want anoptimal one.
uses the space of depth-first search.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 11
Depth-first Branch-and-Bound
Suppose we want to find a single optimal solution.
Suppose bound is the cost of the lowest-cost path found to agoal so far.
What if the search encounters a path p such thatcost(p) + h(p) ≥ bound?
p can be pruned.
What can we do if a non-pruned path to a goal is found?bound can be set to the cost of p, and p can be rememberedas the best solution so far.
Why should this use a depth-first search?Uses linear space.
What can be guaranteed when the search completes?It has found an optimal solution.
How should the bound be initialized?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 12
Depth-first Branch-and-Bound
Suppose we want to find a single optimal solution.
Suppose bound is the cost of the lowest-cost path found to agoal so far.
What if the search encounters a path p such thatcost(p) + h(p) ≥ bound?p can be pruned.
What can we do if a non-pruned path to a goal is found?
bound can be set to the cost of p, and p can be rememberedas the best solution so far.
Why should this use a depth-first search?Uses linear space.
What can be guaranteed when the search completes?It has found an optimal solution.
How should the bound be initialized?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 13
Depth-first Branch-and-Bound
Suppose we want to find a single optimal solution.
Suppose bound is the cost of the lowest-cost path found to agoal so far.
What if the search encounters a path p such thatcost(p) + h(p) ≥ bound?p can be pruned.
What can we do if a non-pruned path to a goal is found?bound can be set to the cost of p, and p can be rememberedas the best solution so far.
Why should this use a depth-first search?
Uses linear space.
What can be guaranteed when the search completes?It has found an optimal solution.
How should the bound be initialized?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 14
Depth-first Branch-and-Bound
Suppose we want to find a single optimal solution.
Suppose bound is the cost of the lowest-cost path found to agoal so far.
What if the search encounters a path p such thatcost(p) + h(p) ≥ bound?p can be pruned.
What can we do if a non-pruned path to a goal is found?bound can be set to the cost of p, and p can be rememberedas the best solution so far.
Why should this use a depth-first search?Uses linear space.
What can be guaranteed when the search completes?
It has found an optimal solution.
How should the bound be initialized?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 15
Depth-first Branch-and-Bound
Suppose we want to find a single optimal solution.
Suppose bound is the cost of the lowest-cost path found to agoal so far.
What if the search encounters a path p such thatcost(p) + h(p) ≥ bound?p can be pruned.
What can we do if a non-pruned path to a goal is found?bound can be set to the cost of p, and p can be rememberedas the best solution so far.
Why should this use a depth-first search?Uses linear space.
What can be guaranteed when the search completes?It has found an optimal solution.
How should the bound be initialized?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 16
Depth-first Branch-and-Bound
Suppose we want to find a single optimal solution.
Suppose bound is the cost of the lowest-cost path found to agoal so far.
What if the search encounters a path p such thatcost(p) + h(p) ≥ bound?p can be pruned.
What can we do if a non-pruned path to a goal is found?bound can be set to the cost of p, and p can be rememberedas the best solution so far.
Why should this use a depth-first search?Uses linear space.
What can be guaranteed when the search completes?It has found an optimal solution.
How should the bound be initialized?
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 17
Depth-first Branch-and-Bound: Initializing Bound
The bound can be initialized to ∞.
The bound can be set to an estimate of the optimal pathcost. After depth-first search terminates either:
I A solution was found.I No solution was found, and no path was prunedI No solution was found, and a path was pruned.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 18
Depth-first Branch-and-Bound: Initializing Bound
The bound can be initialized to ∞.
The bound can be set to an estimate of the optimal pathcost. After depth-first search terminates either:
I A solution was found.I No solution was found, and no path was prunedI No solution was found, and a path was pruned.
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 19
Which shaded goals will be best solutions so far?
Q W
T
U
Y
R
V
c©D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 3.5, Page 20