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
© Copyright 2026 Paperzz