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