Tree search Best-first search Romania with step costs in km Greedy

Best-first search
Idea: use an evaluation function for each node
– estimate of “desirability”
⇒ Expand most desirable unexpanded node
Informed search algorithms
Implementation:
fringe is a queue sorted in decreasing order of desirability
Special cases:
greedy search
A∗ search
Chapter 4, Sections 1–2
Chapter 4, Sections 1–2
Chapter 4, Sections 1–2
1
Outline
4
Romania with step costs in km
♦ Best-first search
71
♦ A∗ search
75
♦ Heuristics
Oradea
Neamt
Zerind
87
151
Iasi
Arad
140
92
Sibiu
99
Fagaras
118
Vaslui
80
Rimnicu Vilcea
Timisoara
111
Lugoj
Pitesti
97
142
211
70
98
Mehadia
75
Dobreta
146
85
101
138
120
86
Bucharest
90
Craiova
Giurgiu
Chapter 4, Sections 1–2
Hirsova
Urziceni
Eforie
Chapter 4, Sections 1–2
2
Review: Tree search
Straight−line distance
to Bucharest
Arad
366
Bucharest
0
Craiova
160
Dobreta
242
Eforie
161
Fagaras
178
Giurgiu
77
Hirsova
151
Iasi
226
Lugoj
244
Mehadia
241
Neamt
234
Oradea
380
Pitesti
98
Rimnicu Vilcea 193
Sibiu
253
Timisoara
329
Urziceni
80
Vaslui
199
Zerind
374
5
Greedy search
Evaluation function h(n) (heuristic)
= estimate of cost from n to the closest goal
function Tree-Search( problem, fringe) returns a solution, or failure
fringe ← Insert(Make-Node(Initial-State[problem]), fringe)
loop do
if fringe is empty then return failure
node ← Remove-Front(fringe)
if Goal-Test[problem] applied to State(node) succeeds return node
fringe ← InsertAll(Expand(node, problem), fringe)
E.g., hSLD (n) = straight-line distance from n to Bucharest
Greedy search expands the node that appears to be closest to goal
A strategy is defined by picking the order of node expansion
Chapter 4, Sections 1–2
3
Chapter 4, Sections 1–2
6
Greedy search example
Greedy search example
Arad
Arad
366
Sibiu
Arad
366
Chapter 4, Sections 1–2
Fagaras
Sibiu
Bucharest
253
0
Sibiu
Timisoara
Zerind
253
329
374
193
8
Greedy search example
Chapter 4, Sections 1–2
10
Chapter 4, Sections 1–2
11
Properties of greedy search
Complete?? No–can get stuck in loops, e.g., with Oradea as goal,
Iasi → Neamt → Iasi → Neamt →
Complete in finite space with repeated-state checking
Arad
Oradea
380
Rimnicu Vilcea
Complete??
Chapter 4, Sections 1–2
Fagaras
176
374
Properties of greedy search
Arad
Arad
366
Zerind
329
7
Greedy search example
Sibiu
Oradea
380
Timisoara
Timisoara
Zerind
329
374
Time??
Rimnicu Vilcea
193
Chapter 4, Sections 1–2
9
Chapter 4, Sections 1–2
12
Properties of greedy search
A∗ search
Idea: avoid expanding paths that are already expensive
Complete?? No–can get stuck in loops, e.g.,
Iasi → Neamt → Iasi → Neamt →
Complete in finite space with repeated-state checking
Evaluation function f (n) = g(n) + h(n)
g(n) = cost so far to reach n
h(n) = estimated cost to goal from n
f (n) = estimated total cost of path through n to goal
Time?? O(bm), but a good heuristic can give dramatic improvement
Space??
A∗ search uses an admissible heuristic
i.e., h(n) ≤ h∗(n) where h∗(n) is the true cost from n.
(Also require h(n) ≥ 0, so h(G) = 0 for any goal G.)
E.g., hSLD (n) never overestimates the actual road distance
Theorem: A∗ search is optimal
Chapter 4, Sections 1–2
13
Properties of greedy search
Chapter 4, Sections 1–2
16
Chapter 4, Sections 1–2
17
A∗ search example
Complete?? No–can get stuck in loops, e.g.,
Iasi → Neamt → Iasi → Neamt →
Complete in finite space with repeated-state checking
Arad
366=0+366
Time?? O(bm), but a good heuristic can give dramatic improvement
Space?? O(bm)—keeps all nodes in memory
Optimal??
Chapter 4, Sections 1–2
14
Properties of greedy search
A∗ search example
Complete?? No–can get stuck in loops, e.g.,
Iasi → Neamt → Iasi → Neamt →
Complete in finite space with repeated-state checking
Arad
Time?? O(bm), but a good heuristic can give dramatic improvement
Sibiu
Timisoara
Zerind
393=140+253
447=118+329
449=75+374
Space?? O(bm)—keeps all nodes in memory
Optimal?? No
Chapter 4, Sections 1–2
15
Chapter 4, Sections 1–2
18
A∗ search example
A∗ search example
Arad
Sibiu
Arad
Fagaras
Oradea
Arad
Timisoara
Zerind
447=118+329
449=75+374
Fagaras
Arad
Rimnicu Vilcea
Rimnicu Vilcea
Oradea
Sibiu
Bucharest
Craiova
591=338+253
450=450+0
526=366+160
Pitesti
Sibiu
553=300+253
Bucharest
418=418+0
Chapter 4, Sections 1–2
Zerind
449=75+374
671=291+380
646=280+366
646=280+366 415=239+176 671=291+380 413=220+193
Timisoara
447=118+329
Sibiu
Craiova
Rimnicu Vilcea
615=455+160 607=414+193
Chapter 4, Sections 1–2
19
A∗ search example
22
Optimality of A∗ (standard proof )
Suppose some suboptimal goal G2 has been generated and is in the queue.
Let n be an unexpanded node on a shortest path to an optimal goal G1.
Arad
Start
Sibiu
Arad
Fagaras
Timisoara
Zerind
447=118+329
449=75+374
n
Oradea
Rimnicu Vilcea
646=280+366 415=239+176 671=291+380
Craiova
Pitesti
G
Sibiu
G2
526=366+160 417=317+100 553=300+253
f (G2) = g(G2)
> g(G1)
≥ f (n)
since h(G2) = 0
since G2 is suboptimal
since h is admissible
Since f (G2) > f (n), A∗ will never select G2 for expansion
Chapter 4, Sections 1–2
Chapter 4, Sections 1–2
20
A∗ search example
Optimality of A∗ (more useful)
Lemma: A∗ expands nodes in order of increasing f value∗
Arad
Sibiu
23
Timisoara
Zerind
447=118+329
449=75+374
Gradually adds “f -contours” of nodes (cf. breadth-first adds layers)
Contour i has all nodes with f = fi, where fi < fi+1
O
Arad
Fagaras
646=280+366
Oradea
Rimnicu Vilcea
671=291+380
Sibiu
Bucharest
591=338+253
450=450+0
N
Z
Craiova
Pitesti
I
A
Sibiu
S
380
526=366+160 417=317+100 553=300+253
F
V
400
T
R
P
L
H
M
U
B
420
D
E
C
G
Chapter 4, Sections 1–2
21
Chapter 4, Sections 1–2
24
Properties of A∗
Properties of A∗
Complete??
Complete?? Yes, unless there are infinitely many nodes with f ≤ f (G)
Time?? Exponential in [relative error in h × length of soln.]
Space?? Keeps all nodes in memory
Optimal??
Chapter 4, Sections 1–2
25
Chapter 4, Sections 1–2
Properties of A∗
28
Properties of A∗
Complete?? Yes, unless there are infinitely many nodes with f ≤ f (G)
Complete?? Yes, unless there are infinitely many nodes with f ≤ f (G)
Time??
Time?? Exponential in [relative error in h × length of soln.]
Space?? Keeps all nodes in memory
Optimal?? Yes—cannot expand fi+1 until fi is finished
A∗ expands all nodes with f (n) < C ∗
A∗ expands some nodes with f (n) = C ∗
A∗ expands no nodes with f (n) > C ∗
Chapter 4, Sections 1–2
26
Chapter 4, Sections 1–2
Properties of A∗
29
Proof of lemma: Consistency
A heuristic is consistent if
Complete?? Yes, unless there are infinitely many nodes with f ≤ f (G)
h(n) ≤ c(n, a, n0) + h(n0)
Time?? Exponential in [relative error in h × length of soln.]
If h is consistent, we have
Space??
f (n0) =
=
≥
=
g(n0) + h(n0)
g(n) + c(n, a, n0) + h(n0)
g(n) + h(n)
f (n)
n
c(n,a,n’)
n’
h(n)
h(n’)
G
I.e., f (n) is nondecreasing along any path.
Chapter 4, Sections 1–2
27
Chapter 4, Sections 1–2
30
Admissible heuristics
Relaxed problems
E.g., for the 8-puzzle:
Admissible heuristics can be derived from the exact
solution cost of a relaxed version of the problem
h1(n) = number of misplaced tiles
h2(n) = total Manhattan distance
(i.e., no. of squares from desired location of each tile)
7
2
5
8
3
4
5
1
2
3
6
4
5
6
1
7
8
If the rules of the 8-puzzle are relaxed so that a tile can move anywhere,
then h1(n) gives the shortest solution
If the rules are relaxed so that a tile can move to any adjacent square,
then h2(n) gives the shortest solution
Key point: the optimal solution cost of a relaxed problem
is no greater than the optimal solution cost of the real problem
Goal State
Start State
h1(S) =??
h2(S) =??
Chapter 4, Sections 1–2
31
Admissible heuristics
5
8
3
4
5
1
2
3
6
4
5
6
1
7
8
Start State
Chapter 4, Sections 1–2
35
Well-known example: travelling salesperson problem (TSP)
Find the shortest tour visiting all cities exactly once
h1(n) = number of misplaced tiles
h2(n) = total Manhattan distance
(i.e., no. of squares from desired location of each tile)
2
34
Relaxed problems contd.
E.g., for the 8-puzzle:
7
Chapter 4, Sections 1–2
Goal State
Minimum spanning tree can be computed in O(n2)
and is a lower bound on the shortest (open) tour
h1(S) =?? 6
h2(S) =?? 4+0+3+3+1+0+2+1 = 14
Chapter 4, Sections 1–2
32
Summary
Dominance
If h2(n) ≥ h1(n) for all n (both admissible)
then h2 dominates h1 and is better for search
Heuristic functions estimate costs of shortest paths
Good heuristics can dramatically reduce search cost
Typical search costs:
Greedy best-first search expands lowest h
– incomplete and not always optimal
d = 14 IDS = 3,473,941 nodes
A∗(h1) = 539 nodes
A∗(h2) = 113 nodes
d = 24 IDS ≈ 54,000,000,000 nodes
A∗(h1) = 39,135 nodes
A∗(h2) = 1,641 nodes
A∗ search expands lowest g + h
– complete and optimal
– also optimally efficient (up to tie-breaks, for forward search)
Admissible heuristics can be derived from exact solution of relaxed problems
Given any admissible heuristics ha, hb,
h(n) = max(ha(n), hb(n))
is also admissible and dominates ha, hb
Chapter 4, Sections 1–2
33
Chapter 4, Sections 1–2
36