heuristic search heuristic search
play

Heuristic Search Heuristic Search Best-First A * Heuristic - PowerPoint PPT Presentation

RN, Chapter 4.1 4.2 Heuristic Search Heuristic Search Best-First A * Heuristic Functions Some material from: D Lin, J You, JC Latombe 1 Search Overview Introduction to Search Blind Search Techniques Heuristic


  1. RN, Chapter 4.1 – 4.2 Heuristic Search Heuristic Search � Best-First � A * � Heuristic Functions Some material from: D Lin, J You, JC Latombe 1

  2. Search Overview � Introduction to Search � Blind Search Techniques � Heuristic Search Techniques � Best-First � A * � Heuristic Functions � Stochastic Algorithms � Game Playing search � Constraint Satisfaction Problems 2

  3. Heuristic Search � “Blind” methods only know Goal / NonGoal � Often ∃ other problem-specific knowledge that can guide search: h(n): Nodes →ℜ � Heuristic fn estimate of distance from n to a goal 5 4 3 4 Eg: straight line on map, 3 4 3 2 or “Manhattan distance”, 2 or … 2 1 0 1 � Use: Given list of nodes to expand, choose node n with min'l h(.) 3

  4. Heuristic Function Heuristic Function � h(n) estimates cost of cheapest path from node n to goal node � Example: 8-puzzle h 1 (n) = number of misplaced tiles = 6 5 5 8 8 1 2 3 4 4 2 2 1 1 4 5 6 7 7 3 3 6 6 7 8 goal n 4

  5. Heuristic Function Heuristic Function � h(n) estimates cost of cheapest path from node n to goal node � Example: 8-puzzle h 1 (n) = number of misplaced tiles = 6 5 8 1 2 3 4 2 2 1 1 4 5 6 h 2 (n) = sum of the distances of every tile to its goal position 7 3 6 7 8 = 3 + 1 + 3 + 0 + 2 + 1 + 0 + 3 goal n = 13 5

  6. Greedy Best- -First Search First Search Greedy Best BestF_Search( start, operations, is_goal ): path L := makeList( start ) loop n := arg min n i ∈ L h(n i ) ;; “most promising” node in L according to h(.) if [ i s_goal ( n ) ] return( n ) S := successors( n , operators ) Idea: choose frontier node with smallest h-value L := insert( S , L ) ie, “closest to goal" until L is empty Can also return “path from start to n ” return( failure ) . . . by identifying each node with path 6

  7. 7 Robot Navigation Robot Navigation

  8. Robot Navigation Robot Navigation Edmonton h(n) = Manhattan distance to the goal 8 7 6 5 4 3 2 3 4 5 6 7 5 4 3 5 6 3 2 1 0 0 1 2 4 7 7 6 5 8 7 6 5 4 3 2 3 4 5 6 9

  9. Heuristic Function – Bulgaria h SLD ( n ) is straight-line distance from n to goal (Bucharest) 10

  10. Best First 11

  11. Best First 12

  12. BestFirst is SubOptimal � h SLD finds path: Arad → Sibiu → Fagaras → Bucharest (Cost = 140 + 99 + 211 = 450) � Not optimal! C( Arad → Sibiu → Rimnicu → Pitesti → Bucharest ) = 140 + 80 + 97 + 101 = 418 < h SLD 's solution! � BestFirst is greedy: takes BIGGEST step each time… 14

  13. BestFirst ? can Loop ? � Consider: Iasi → Fagaras h SLD suggests: Iasi → Neamt � Worse: Unless search alg detects repeated states, BestFirst will oscillate: Iasi → Neamt Iasi → Neamt → → … � Loops are a real problem… 15

  14. Properties of Greedy Best-First Search � If state space is finite and we avoid repeated states, THEN Best-First search is complete, but in general is not optimal � If state space is finite and we do not avoid repeated states, THEN Best-First search is not complete. � If the state space is infinite, THEN Best-First search is not complete. 16

  15. Analysis of Greedy BestFirst No � Complete? …can go down ∞ -path (oscillate) � Optimal? No … may not find shortest path O(b m ) � Time: � Space: O(b m ) (if h(.) ≡ 0, could examine entire space) � Worst of both worlds � ≈ DFS: too greedy! � ≈ BFS: too much space! 17

  16. A * Search � Find cheapest path, quickly Start Consider both: � � Path from start to n : g(n) g(n) = cost of path found to n f(n) � Path from n to goal (est.): h(n) = estimate of cost from n to a goal n � f(n) = g(n)+h(n) h(n) � est of cost of path from start to goal, via n Goal 18

  17. A * Search, con’t (to go) (so far) � A * selects node with min'l f(n) � …ie, node with lowest estimated distance from � start to goal, constrained to go via that node … mix of { } searches! lowest-cost-first best-first � 19

  18. Example of A * Note: Finds Optimal Path! � A * expands � Rimnicu (f = (140+80)+193 = 413) over � Faragas (f = (140+99)+178 = 417) � Why? Fagaras is closer to Bucharest (than Rimnicu) but path taken to get to Fargaras is not as efficient at getting close to Bucharest … as Rimnicu 21

  19. Robot Navigation Robot Navigation Edmonton f(n) = g(n)+h(n), with h(n) = Manhattan distance to goal 8+3 8+3 7+4 8 7+4 6+5 7 6+3 5+6 6 5+6 4+7 5 4+7 3+8 4 3+8 2+9 3 2+9 3+10 2 3 4 5 6 7+2 7+2 7 5+6 5 4+7 4 3+8 3+8 3 5 6+1 6+1 6 3 2+9 1+10 2+9 2 1 0 1 2 4 1+10 0+11 7+0 7+0 7 6+1 6+1 6 5 8+1 8+1 8 7+2 6+3 7+2 7 6+3 5+4 6 5+4 4+5 5 4+5 3+6 4 3+6 2+7 3 2+7 3+8 2 3+8 4+9 3 4 5 6 22

  20. How A * Searches � Contour-lines of “equal-f values” � A * expands nodes with increasing f(n) values � If use h(.) ≡ 0 (UniformCost) get Circles ⇒ more nodes expanded (in general) ! 23

  21. Admissible heuristic Admissible heuristic � h*(n) = cost of optimal path from n to a goal node � Heuristic h(n) is admissible if: 0 ≤ h(n) ≤ h*(n) � Admissible heuristic is always optimistic � True for � Straight Line [map traversal] � Manhattan distances [8-puzzle] � Number of attacking queens [n-queens] [place all queens, then move] ⇒ f(.) is under-estimate 24

  22. Heuristics for 8- -Puzzle Puzzle Heuristics for 8 5 8 1 2 3 4 2 1 4 5 6 7 3 6 7 8 Admissible?? n goal + • h 1 (n) = number of misplaced tiles … = 6 + • h 2 (n) = sum of distances of each tile to goal posn … = 13 – • h 3 (n) = h 1 (n) + 3 x h 2 (n) … = 45 + • h 4 (n) ≡ 0 … = 0 + • h 5 (n) = min{ h 1 (n) , h 2 (n) } … = 6 25

  23. f(n) is monotonic h(n) ≤ h * (n) g(n) S n n’ E � f (n) ≤ f (n’) , as from-S-to-E-via-n is less constrained than from-S-to-E-via-n-n’ 26

  24. Monotonic f(.) � If f (.) not monotonic, � f(.) is “monotonic" ≡ can modify to be: f( Successor(n) ) ≥ f(n) Eg, n’ ∈ Successor(n) f(n) = g(n)+h(n) = 3+4 = 7 � Always true if f(n’) = g(n’)+h(n’) = 4+2 = 6 | h(n) – h(m) | ≤ d(n,m) But… any path through n’ is also path � … d(n,m) is distance from through n , so f(n) must be ≥ 7 n to m ⇒ should reset f(n’) = 7 ⇒ use � If true: f(n’) = max{ f(n), g(n’)+h(n’) } first path that A * finds to node, is always shortest Called “path-max equation” … ignores misleading numbers in heuristic 27

  25. A * is OPTIMAL Thrm: A * always returns optimal solution if � ∃ solution � h(n) is under-estimate PROOF: Let G be optimal goal, with f(G) = g(G) = f G 2 be suboptimal goal, with f(G 2 ) = g(G 2 ) > f If A * returns G 2 ⇒ G 2 is chosen over n, where n is node on optimal path to G This only happens if f(G 2 ) ≤ f(n) As f is monotonically increasing along every path, ⇒ f = f(G) ≥ f(n) Hence, f ≥ f(G 2 ) … ie, if g(G) ≥ g(G 2 ) … contradicting claim that G 2 is suboptimal! [] 28

  26. Properties of A * � A * is Optimally Efficient Given the information in h(.) , no other optimal search method can expand fewer nodes. Non-trivial and quite remarkable! � A * is Complete … unless there are ∞ nodes w/ f(n) < f * � A * is Complete if branching factor is finite & arc costs bounded above zero ( ∃ε > 0 s.t. c(a i ) ≥ε ) � Time/ Space Complexity : Still exponential as ≈ breadth-first. … unless |h(n) – h(n * )| ≤ O( log(h(n * ) ) h(n * ) = true cost of getting from n to goal 29

  27. f(n) = g(n) + h(n) 8- -Puzzle Puzzle 8 with h(n) = number of misplaced tiles 3+3 1+5 2+3 3+4 5+2 0+4 3+2 4+1 goal 1+3 2+3 5+0 3+4 1+5 2+4 30

  28. Robot navigation Robot navigation f(n) = g(n) + h(n), with h(n) = straight-line distance from n to goal Cost of one horizontal/vertical step = 1 Cost of one diagonal step = √ 2 31

  29. A * Topics � Which heuristic? � Avoiding Loops � Iterative Deepening A * 32

  30. Heuristics for 8- -Puzzle Puzzle Heuristics for 8 5 8 1 2 3 4 2 1 4 5 6 7 3 6 7 8 Admissible?? n goal + • h 1 (n) = number of misplaced tiles … = 6 + • h 2 (n) = sum of distances of each tile to goal posn …= 13 – • h 3 (n) = h1 (n) + 3 x h2 (n) … = 45 + • h 4 (n) == 0 … = 0 Many admissible heuristics … which to use?? 34

  31. n Importance of h(.) � A * ( h i ) expands all nodes with f(n) = g(n)+h i (n) < f * h 2 (n) … ie, with h i (n) < f * - g(n) f* - g(n) � h 1 (n) < h 2 (n) ⇒ h 1 (n) If A * (h 2 ) expands n , then A * (h 1 ) expands n ! . . . but not vice versa A * (h 2 ) might expand FEWER nodes � So LARGER h i () means fewer n 's expanded! 35

  32. Importance of h(.) � LARGER h i () means fewer n 's expanded! h 2 (n) f* - g(n) � As h C ≤ h M ≤ h * , h 1 (n) prefer h M ! � Gen'l: Want largest h() that is under-estimate 36

  33. Effect of Different Heuristic Functions � “Effective Branching Factor” b is solution to N = 1+(b * )+(b * ) 2 +(b * ) 3 + …+(b * ) d where N is # of nodes searched d is solution depth 37

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend