Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 02 – Part B Problem Solving by Searching Search Methods : Informed (Heuristic) search.

Similar presentations


Presentation on theme: "Lecture 02 – Part B Problem Solving by Searching Search Methods : Informed (Heuristic) search."— Presentation transcript:

1 Lecture 02 – Part B Problem Solving by Searching Search Methods : Informed (Heuristic) search

2 Using problem specific knowledge to aid searching Without incorporating knowledge into searching, one can have no bias (i.e. a preference) on the search space. Without a bias, one is forced to look everywhere to find the answer. Hence, the complexity of uninformed search is intractable. 2 Search everywhere!!

3 Using problem specific knowledge to aid searching 3 With knowledge, one can search the state space as if he was given hints when exploring a maze. Heuristic information in search = Hints Leads to dramatic speed up in efficiency. A BCED FGHIJ KL O M N Search only in this subtree!!

4 More formally, why heuristic functions work? 4 In any search problem where there are at most b choices at each node and a depth of d at the goal node, a naive search algorithm would have to, in the worst case, search around O(b d ) nodes before finding a solution (Exponential Time Complexity). Heuristics improve the efficiency of search algorithms by reducing the effective branching factor from b to (ideally) a low constant b* such thatbranching factor 1 =< b* << b

5 Heuristic Functions 5 A heuristic function is a function f(n) that gives an estimation on the cost of getting from node n to the goal state – so that the node with the least cost among all possible choices can be selected for expansion first. Three approaches to defining f: f measures the value of the current state (its goodness) f measures the estimated cost of getting to the goal from the current state: f(n) = h(n) where h(n) = an estimate of the cost to get from n to a goal f measures the estimated cost of getting to the goal state from the current state and the cost of the existing path to it. Often, in this case, we decompose f: f(n) = g(n) + h(n) where g(n) = the cost to get to n (from initial state)

6 Approach 1: f Measures the Value of the Current State Usually the case when solving optimization problems Finding a state such that the value of the metric f is optimized Often, in these cases, f could be a weighted sum of a set of component values: N-Queens Example: the number of queens under attack … Data mining Example: the predictive-ness (a.k.a. accuracy) of a rule discovered 6

7 Approach 2: f Measures the Cost to the Goal A state X would be better than a state Y if the estimated cost of getting from X to the goal is lower than that of Y – because X would be closer to the goal than Y 7 8–Puzzle h 1 : The number of misplaced tiles (squares with number). h 2 : The sum of the distances of the tiles from their goal positions.

8 Approach 3: f measures the total cost of the solution path (Admissible Heuristic Functions) A heuristic function f(n) = g(n) + h(n) is admissible if h(n) never overestimates the cost to reach the goal. Admissible heuristics are optimistic: the cost is not that much … However, g(n) is the exact cost to reach node n from the initial state. Therefore, f(n) never over-estimate the true cost to reach the goal state through node n. Theorem: A search is optimal if h(n) is admissible. I.e. The search using h(n) returns an optimal solution. Given h 2 (n) > h 1 (n) for all n, its always more efficient to use h 2 (n). h 2 is more realistic than h 1 (more informed), though both are optimistic. 8

9 Traditional informed search strategies Greedy Best First Search Always chooses the successor node with the best f value where f(n) = h(n) We choose the one that is nearest to the final state among all possible choices A* Search Best first search using an admissible heuristic function f that takes into account the current cost g Always returns the optimal solution path 9

10 Greedy Best-FirstSearch eval-fn: f(n) = h(n) Informed (Huristic) Search Strategies

11 An implementation of Best First Search 11 function BEST-FIRST-SEARCH (problem, eval-fn) returns a solution sequence, or failure queuing-fn = a function that sorts nodes by eval-fn return GENERIC-SEARCH (problem,queuing-fn)

12 Greedy Best First Search 12 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

13 Greedy Best First Search 13 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

14 Greedy Best First Search 14 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

15 Greedy Best First Search 15 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

16 Greedy Best First Search 16 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

17 Greedy Best First Search 17 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

18 Greedy Best First Search 18 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

19 Greedy Best First Search 19 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

20 Greedy Best First Search 20 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140

21 Greedy Best First Search 21 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 f(n) = h (n) = straight-line distance heuristic A B D C E F I G H 80 Start Goal

22 Greedy Best First Search 22 A Start Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

23 Greedy Search: Tree Search 23 ABCE Start [374] [329] [253] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

24 Greedy Search: Tree Search 24 ABCEF 99 GA 80 Start [374] [329] [253] [193] [366] [178] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

25 Greedy Search: Tree Search 25 ABCEFI GA 80 Start Goal [374] [329] [253] [193] [366] [178] E [0] [253] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

26 Greedy Search: Tree Search 26 ABCEFI GA 80 Start Goal [374] [329] [253] [193] [366] [178] E [0] [253] dist(A-E-F-I) = = 450 Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

27 Greedy Best First Search : Optimal ? 27 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic dist(A-E-G-H-I) = =

28 28 StateHeuristic: h(n) A366 B374 ** C250 D244 E253 F178 G193 H98 I0 ABDCEFI GH 80 Start Goal f(n) = h (n) = straight-line distance heuristic 140 Greedy Best First Search : Optimal ?

29 Greedy Search: Tree Search 29 A Start Stateh(n) A366 B374 C250 D244 E253 F178 G193 H98 I0

30 Greedy Search: Tree Search 30 ABCE Start [374] [250] [253] Stateh(n) A366 B374 C250 D244 E253 F178 G193 H98 I0

31 Greedy Search: Tree Search 31 ABCED 111 Start [374] [250] [253] [244] Stateh(n) A366 B374 C250 D244 E253 F178 G193 H98 I0

32 Greedy Search: Tree Search 32 ABCED 111 Start [374] [250] [253] [244] C [250] Infinite Branch ! Stateh(n) A366 B374 C250 D244 E253 F178 G193 H98 I0

33 Greedy Search: Tree Search 33 ABCED 111 Start [374] [250] [253] [244] CD [250] [244] Infinite Branch ! Stateh(n) A366 B374 C250 D244 E253 F178 G193 H98 I0

34 Greedy Search: Tree Search 34 ABCED 111 Start [374] [250] [253] [244] CD [250] [244] Infinite Branch ! Stateh(n) A366 B374 C250 D244 E253 F178 G193 H98 I0

35 Greedy Search: Time and Space Complexity ? 35 ABDCEFI GH 80 Start Goal Greedy search is not optimal. Greedy search is incomplete without systematic checking of repeated states. In the worst case, the Time and Space Complexity of Greedy Search are both O(b m ) Where b is the branching factor and m the maximum path length

36 A* Search eval-fn: f(n)=g(n)+h(n) Informed Search Strategies

37 A* (A Star) 37 Greedy Search minimizes a heuristic h(n) which is an estimated cost from a node n to the goal state. However, although greedy search can considerably cut the search time (efficient), it is neither optimal nor complete. Uniform Cost Search minimizes the cost g(n) from the initial state to n. UCS is optimal and complete but not efficient. New Strategy: Combine Greedy Search and UCS to get an efficient algorithm which is complete and optimal.

38 A* (A Star) 38 A* uses a heuristic function which combines g(n) and h(n) f(n) = g(n) + h(n) g(n) is the exact cost to reach node n from the initial state. Cost so far up to node n. h(n) is an estimation of the remaining cost to reach the goal.

39 A* (A Star) 39 n g(n)g(n) h(n)h(n) f(n) = g(n)+h(n)

40 A* Search 40 StateHeuristic: h(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 f(n) = g(n) + h (n) g(n): is the exact cost to reach node n from the initial state. A B D C E F I G H 80 Start Goal

41 A* Search: Tree Search 41 A Start Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

42 A* Search: Tree Search 42 ABCE Start [393] [449] [447] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0 C[447] = E[393] = B[449] =

43 A* Search: Tree Search 43 ABCEF 99 G 80 Start [393] [449] [447] [417] [413] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

44 A* Search: Tree Search 44 ABCEF 99 G 80 Start [393] [449] [447] [417] [413] H 97 [415] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

45 A* Search: Tree Search 45 ABCEFI 99 GH 80 Start [393] [449] [447] [417] [413] [415] Goal [418] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

46 A* Search: Tree Search 46 ABCEFI 99 GH 80 Start [393] [449] [447] [417] [413] [415] Goal [418] I [450] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

47 A* Search: Tree Search 47 ABCEFI 99 GH 80 Start [393] [449] [447] [417] [413] [415] Goal [418] I [450] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

48 A* Search: Tree Search 48 ABCEFI 99 GH 80 Start [393] [449] [447] [417] [413] [415] Goal [418] I [450] Stateh(n) A366 B374 C329 D244 E253 F178 G193 H98 I0

49 Conditions for optimality Admissibility An admissible heuristic never overestimates the cost to reach the goal Straight-line distance h SLD obviously is an admissible heuristic 49 Admissibility / Monotonicity The admissible heuristic h is consistent (or satisfies the monotone restriction) if for every node N and every successor N of N: h(N) c(N,N) + h(N) (triangular inequality) A consistent heuristic is admissible. A* is optimal if h is admissible or consistent N N h(N) c(N,N)

50 A* with systematic checking for repeated states An Example: Map Searching A* Algorithm

51 SLD Heuristic: h() Straight Line Distances to Bucharest 51 TownSLD Arad366 Bucharest0 Craiova160 Dobreta242 Eforie161 Fagaras178 Giurgiu77 Hirsova151 Iasi226 Lugoj244 TownSLD Mehadai241 Neamt234 Oradea380 Pitesti98 Rimnicu193 Sibiu253 Timisoara329 Urziceni80 Vaslui199 Zerind374 We can use straight line distances as an admissible heuristic as they will never overestimate the cost to the goal. This is because there is no shorter distance between two cities than the straight line distance. Press space to continue with the slideshow.

52 Distances Between Cities 52

53 Map Searching Greedy Search in Action …

54 54 Press space to see an Greedy search of the Romanian map featured in the previous slide. Note: Throughout the animation all nodes are labelled with f(n) = h(n). However,we will be using the abbreviations f, and h to make the notation simpler Oradea Zerind Fagaras Sibiu Rimnicu Timisoara Arad We begin with the initial state of Arad. The straight line distance from Arad to Bucharest (or h value) is 366 miles. This gives us a total value of ( f = h ) 366 miles. Press space to expand the initial state of Arad. F= 366 F= 374 F= 253 F= 329 Once Arad is expanded we look for the node with the lowest cost. Sibiu has the lowest value for f. (The straight line distance from Sibiu to the goal state is 253 miles. This gives a total of 253 miles). Press space to move to this node and expand it. We now expand Sibiu (that is, we expand the node with the lowest value of f ). Press space to continue the search. F= 178 F= 380 F= 193 We now expand Fagaras (that is, we expand the node with the lowest value of f ). Press space to continue the search. Bucharest F= 0

55 Map Searching A* in Action …

56 56 Press space to see an A* search of the Romanian map featured in the previous slide. Note: Throughout the animation all nodes are labelled with f(n) = g(n) + h(n). However,we will be using the abbreviations f, g and h to make the notation simpler Oradea Zerind Fagaras Pitesti Sibiu Craiova Rimnicu Timisoara Bucharest Arad We begin with the initial state of Arad. The cost of reaching Arad from Arad (or g value) is 0 miles. The straight line distance from Arad to Bucharest (or h value) is 366 miles. This gives us a total value of ( f = g + h ) 366 miles. Press space to expand the initial state of Arad. F= F= 366 F= F= 449 F= F= 393 F= F= 447 Once Arad is expanded we look for the node with the lowest cost. Sibiu has the lowest value for f. (The cost to reach Sibiu from Arad is 140 miles, and the straight line distance from Sibiu to the goal state is 253 miles. This gives a total of 393 miles). Press space to move to this node and expand it. We now expand Sibiu (that is, we expand the node with the lowest value of f ). Press space to continue the search. F= F= 417 F= F= 671 F= F= 413 We now expand Rimnicu (that is, we expand the node with the lowest value of f ). Press space to continue the search. F= F= 415 F= F= 526 Once Rimnicu is expanded we look for the node with the lowest cost. As you can see, Pitesti has the lowest value for f. (The cost to reach Pitesti from Arad is 317 miles, and the straight line distance from Pitesti to the goal state is 98 miles. This gives a total of 415 miles). Press space to move to this node and expand it. We now expand Pitesti (that is, we expand the node with the lowest value of f ). Press space to continue the search. We have just expanded a node (Pitesti) that revealed Bucharest, but it has a cost of 418. If there is any other lower cost node (and in this case there is one cheaper node, Fagaras, with a cost of 417) then we need to expand it in case it leads to a better solution to Bucharest than the 418 solution we have already found. Press space to continue. F= F= 418 In actual fact, the algorithm will not really recognise that we have found Bucharest. It just keeps expanding the lowest cost nodes (based on f ) until it finds a goal state AND it has the lowest value of f. So, we must now move to Fagaras and expand it. Press space to continue. We now expand Fagaras (that is, we expand the node with the lowest value of f ). Press space to continue the search. Bucharest (2) F= F= 450 Once Fagaras is expanded we look for the lowest cost node. As you can see, we now have two Bucharest nodes. One of these nodes ( Arad – Sibiu – Rimnicu – Pitesti – Bucharest ) has an f value of 418. The other node (Arad – Sibiu – Fagaras – Bucharest (2) ) has an f value of 450. We therefore move to the first Bucharest node and expand it. Press space to continue Bucharest We have now arrived at Bucharest. As this is the lowest cost node AND the goal state we can terminate the search. If you look back over the slides you will see that the solution returned by the A* search pattern ( Arad – Sibiu – Rimnicu – Pitesti – Bucharest ), is in fact the optimal solution. Press space to continue with the slideshow.

57 Iterative Deepening A* Informed Search Strategies

58 Iterative Deepening A*:IDA* 58 Use f (N) = g(N) + h(N) with admissible and consistent h Each iteration is depth-first with cutoff on the value of f of expanded nodes

59 IDA* Algorithm 59 In the first iteration, we determine a f-cost limit – cut-off value f(n 0 ) = g(n 0 ) + h(n 0 ) = h(n 0 ), where n 0 is the start node. We expand nodes using the depth-first algorithm and backtrack whenever f(n) for an expanded node n exceeds the cut-off value. If this search does not succeed, determine the lowest f-value among the nodes that were visited but not expanded. Use this f-value as the new limit value – cut-off value and do another depth-first search. Repeat this procedure until a goal node is found.

60 8-Puzzle f(N) = g(N) + h(N) with h(N) = number of misplaced tiles Cutoff=4

61 8-Puzzle Cutoff=4 6 f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

62 8-Puzzle Cutoff=4 6 5 f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

63 8-Puzzle Cutoff= f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

64 8-Puzzle Cutoff= f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

65 8-Puzzle Cutoff=5 f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

66 8-Puzzle Cutoff=5 6 f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

67 8-Puzzle Cutoff=5 6 5 f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

68 8-Puzzle Cutoff= f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

69 8-Puzzle Cutoff= f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

70 8-Puzzle Cutoff= f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

71 8-Puzzle Cutoff= f(N) = g(N) + h(N) with h(N) = number of misplaced tiles

72 The Effect of Heuristic Accuracy on Performance An Example: 8-puzzle Heuristic Evaluation

73 Admissible heuristics E.g., for the 8-puzzle: h 1 (n) = number of misplaced tiles h 2 (n) = total Manhattan distance (i.e., no. of squares from desired location of each tile) h 1 (S) = ? h 2 (S) = ?

74 Admissible heuristics E.g., for the 8-puzzle: h 1 (n) = number of misplaced tiles h 2 (n) = total Manhattan distance (i.e., no. of squares from desired location of each tile) h 1 (S) = ? 8 h 2 (S) = ? = 18

75 Dominance If h 2 (n) h 1 (n) for all n (both admissible) then h 2 dominates h 1 h 2 is better for search Why? Typical search costs (average number of nodes expanded): d=12 IDS = 3,644,035 nodes A * (h 1 ) = 227 nodes A * (h 2 ) = 73 nodes d=24 IDS = too many nodes A * (h 1 ) = 39,135 nodes A * (h 2 ) = 1,641 nodes Self Study

76 When to Use Search Techniques 76 The search space is small, and There are no other available techniques, or It is not worth the effort to develop a more efficient technique The search space is large, and There is no other available techniques, and There exist good heuristics

77 Conclusions 77 Frustration with uninformed search led to the idea of using domain specific knowledge in a search so that one can intelligently explore only the relevant part of the search space that has a good chance of containing the goal state. These new techniques are called informed (heuristic) search strategies. Even though heuristics improve the performance of informed search algorithms, they are still time consuming especially for large size instances.

78 References Chapter 3 of Artificial Intelligence: A modern approach by Stuart Russell, Peter Norvig. Chapter 4 of Artificial Intelligence Illuminated by Ben Coppin 78


Download ppt "Lecture 02 – Part B Problem Solving by Searching Search Methods : Informed (Heuristic) search."

Similar presentations


Ads by Google