1 Chapter 4 Search Methodologies
2 Chapter 4 Contents l Brute force search l Depth-first search l Breadth-first search l Properties of search methods l Implementations l Depth first iterative deepening l Heuristics
3 Chapter 4 Contents Continued l Hill climbing l Best first search l Beam search l Optimal paths l A* algorithms l Uniform cost search l Greedy search
4 Brute Force Search l Search methods that examine every node in the search tree – also called exhaustive. l Generate and test is the simplest brute force search method: nGenerate possible solutions to the problem. nTest each one in turn to see if it is a valid solution. nStop when a valid solution is found. l The method used to generate possible solutions must be carefully chosen.
5 Depth-First Search l An exhaustive search method. l Follows each path to its deepest node, before backtracking to try the next path.
6 Breadth-First Search l An exhaustive search method. l Follows each path to a given depth before moving on to the next depth.
7 Comparison of Depth-First and Breadth-First Search l It is important to choose the correct search method for a given problem. l In some situations, for example, depth first search will never find a solution, even though one exists.
8 Properties of Search Methods l Complexity nHow much time and memory the method uses. l Completeness nA complete method is one that is guaranteed to find a goal if one exists. l Optimality & Admissibility nA method is optimal (or admissible) if it is guaranteed to find the best path to the goal. l Irrevocability nA method is irrevocable if, like hill climbing, it does not ever back-track.
9 Implementations l Depth-first search can be implemented using a queue to store states nBut a stack makes more sense nAnd enables us to create a recursive depth-first search function l Breadth-first search implementations are almost identical to depth-first nExcept that they place states on the back of the queue instead of on the front.
10 Depth-First Iterative Deepening l An exhaustive search method based on both depth-first and breadth-first search. l Carries out depth-first search to depth of 1, then to depth of 2, 3, and so on until a goal node is found. l Efficient in memory use, and can cope with infinitely long branches. l Not as inefficient in time as it might appear, particularly for very large trees, in which it only needs to examine the largest row (the last one) once.
11 Heuristics l Heuristic: a rule or other piece of information that is used to make methods such as search more efficient or effective. l In search, often use a heuristic evaluation function, f(n): nf(n) tells you the approximate distance of a node, n, from a goal node. l f(n) may not be 100% accurate, but it should give better results than pure guesswork.
12 Heuristics – how informed? l The more informed a heuristic is, the better it will perform. l Heuristic h is more informed than j, if: h(n) j(n) for all nodes n. l A search method using h will search more efficiently than one using j. l A heuristic should reduce the number of nodes that need to be examined.
13 Hill Climbing l An informed, irrevocable search method. l Easiest to understand when considered as a method for finding the highest point in a three dimensional search space: l Check the height one foot away from your current location in each direction; North, South, East and West. l As soon as you find a position whose height is higher than your current position, move to that location, and restart the algorithm.
14 Foothills nCause difficulties for hill-climbing methods. nA foothill is a local maximum.
15 Plateaus nCause difficulties for hill-climbing methods. nFlat areas that make it hard to find where to go next.
16 Ridges nCause difficulties for hill-climbing methods nB is higher than A. n At C, the hill- climber can’t find a higher point North, South, East or West, so it stops.
17 Best-First Search l Works rather like hill-climbing: l Picks the most likely path (based on heuristic value) from the partially expanded tree at each stage. l Tends to find a shorter path than depth- first or breadth-first search, but does not guarantee to find the best path.
18 Beam Search l Breadth-first method. l Only expands the best few paths at each level. l Thus has the memory advantages of depth-first search. l Not exhaustive, and so may not find the best solution. l May not find a solution at all.
19 Optimal Paths l An optimal path through a tree is one that is the shortest possible path from root to goal. l In other words, an optimal path has the lowest cost (not necessarily at the shallowest depth, if edges have costs associated with them). l The British Museum procedure finds an optimal path by examining every possible path, and selecting the one with the least cost. l There are more efficient ways.
20 A* Algorithms l Uses the cost function: nf(node) = g(node) + h(node). l g(node) is the cost of the path so far leading to the node. l h(node) is an underestimate of how far node is from a goal state. l f is a path-based evaluation function. l An A* algorithm expands paths from nodes that have the lowest f value.
21 A* Algorithms (continued) l A* algorithms are optimal: nThey are guaranteed to find the shortest path to a goal node. l Provided h(node) is always an underestimate. (h is an admissible heuristic). l A* methods are also optimally efficient – they expand the fewest possible paths to find the right one. l If h is not admissible, the method is called A, rather than A*.
22 Uniform Cost Search l Also known as branch and bound. l Like A*, but uses: nf(node) = g(node). ng(node) is the cost of the path leading up to node. l Once a goal node is found, the method needs to continue to run in case a preferable solution is found.
23 Greedy Search l Like A*, but uses: nf(node) = h(node). l Hence, always expands the node that appears to be closest to a goal, regardless of what has gone before. l Not optimal, and not guaranteed to find a solution at all. l Can easily be fooled into taking poor paths.