Problem Solving Using Search Brute-force search Heuristic search Competitive search 1 Search Search cont. Many problems can only be solved by searching Copyright P. Doerschuk 2 Importance of efficient search algorithms Search Tic tac toe state space of 9!: 9 possible first moves, followed by 8 possible second moves, followed by 7 possible third moves, etc., or 9x8x7x…x1 moves or 9! Can use exhaustive search Chess 10120 possible paths can’t use exhaustive search Copyright P. Doerschuk 3 State Space Search Search use a state space graph to represent the problem each node represents a partial solution state each arc represents transition between states can be directed or undirected tree - a graph in which 2 nodes have at most one path between them (no loops or cycles) state space search - find a solution path from the start state to a goal state Copyright P. Doerschuk 4 traveling salesperson Fig 3.7 O(N!) ; actually (N-1)! Copyright P. Doerschuk Search 5 Tree-based search Search 6 tree representation is often used to search for a path from the initial state to the goal state (Ex: eights puzzle) 1 2 3 4 8 5 7 6 1 2 3 4 5 6 7 8 Initial state Goal state number of possible states: 9! Copyright P. Doerschuk Eights puzzle state tree 1 2 3 4 8 5 7 6 1 2 3 4 8 5 7 6 Copyright P. Doerschuk 1 2 3 4 5 7 8 6 1 2 3 4 8 5 7 6 Search 7 Search Graph search vs tree search General graph search algorithm must detect and eliminate loops; this is done by ensuring that a state is only examined once trees don’t need to do this because they don’t have loops Copyright P. Doerschuk 8 Unguided (blind) search Search does not use heuristic information during the search process depth first search examines all descendants of a node before the nodes at the same level are examined breadth-first search examines all nodes at a given level before the nodes of the descendants Copyright P. Doerschuk 9 Unguided (blind) search Search 10 cont. Breadth first algorithm: 1. create a queue and add the first node to it 2. Loop: If the queue is empty, quit. Remove the first node from the queue. If the node contains the goal state, exit with the node as the solution. For each child of the current node: Add the new state (no duplicates) to the back of the queue. Copyright P. Doerschuk Breadth-first search Search QUEUE: A BC A B C D H E I J F K L goal ABCDEFGHIJKL Copyright P. Doerschuk G M N O CDE DEFG EFGHI FGHIJK GHIJKLM HIJKLMNO IJKLMNO JKLMNO KLMNO LMNO 11 Unguided (blind) search Search cont. depth first algorithm: 1. create a queue and add the first node to it 2. Loop: If the queue is empty, quit. Remove the first node from the queue. If the node contains the goal state, exit with the node as the solution. For each child of the current node: Add the new state (no duplicates) to the front of the queue. Copyright P. Doerschuk 12 Depth-first search QUEUE: A A B H E I BC DEC HIEC C D J F K L GOAL ABDHIEJKCFL Copyright P. Doerschuk Search G M N O IEC EC JKC KC C FG LMG 13 Breadth first vs depth first Search 14 Breadth first guaranteed to find the shortest path space inefficient • all unexpanded nodes for each level are kept in the queue • if average branching factor is B, have Bn states on level n (root is level 0) • if solution path is long or B is large, memory requirements large depth first not guaranteed to find shortest path space efficient • at each level, keeps only the children of a single node in the queue (B*n) states at level n Copyright P. Doerschuk Unguided (blind) search Search 15 cont. Depth-first search with iterative deepening perform depth-first search up to a maxDepth control loop continually deepens depth-first search more efficient than breadth-first and depth-first on large search spaces Russell and Norvig 1995 time behavior is the same as depth-first and breadth-first search: O(Bn) Note: all unguided search techniques have worst case exponential time behavior Copyright P. Doerschuk Using state space to represent reasoning with predicate calculus Search Use and/or graphs to represent implications of the form pqr r p Copyright P. Doerschuk q 16 Search Two methods of searching graph: data-driven: find path from known true facts to goal goal directed: start with the proposition to be proved (the goal) and search backwards along arcs to find support for the goal among the true propositions Copyright P. Doerschuk 17 Search Examples: p. 110, fig 3.21 p. 112, fig 3.23 financial advisor fig 3.24 sentence parser p. 116, fig 3.25 Copyright P. Doerschuk 18 Guided (heuristic) search Search uses additional information, often in the form of estimates, to guide the search Copyright P. Doerschuk 19 Guided (heuristic) search Search cont. hill-climbing each node has an associated value or cost; move to the node with the highest value (or lowest cost) uses no memory and backtracking can only find local maximum (minimum) Copyright P. Doerschuk 20 Ex: Traveling Salesperson Search Fig. 3.9 Copyright P. Doerschuk 21 Guided (heuristic) search Search cont. Best-first algorithm: 1. create a queue and add the first node to it 2. Loop: If the queue is empty, quit. Remove the first node from the queue. If the node contains the goal state, exit with the node as the solution. For each child of the current node: if the child has not yet been visited or the child is reached by a path of lower cost than when visited previously, add the child node to the queue, in order of cost, eliminating any other higher cost paths to this child Copyright P. Doerschuk 22 Guided (heuristic) search Search cont Heuristic evaluation function may be the sum of two components: f(n) = g(n) + h(n) g(n) measures cost from the start state to state n h(n) estimates cost from state n to goal state Copyright P. Doerschuk 23 Guided (heuristic) search Search cont for the eight puzzle, g(n) = the number of moves from start to the current state. H1(n) = the number of tiles that are out of place; H2(n) = the sum of the Manhattan distances (horizontal and vertical distances) for the tiles that are out of place Copyright P. Doerschuk 24 Guided (heuristic) search Search cont. A* search use evaluation function f(n)=g(n)+h(n) where h(n) <=h*(n) Copyright P. Doerschuk //h*(n) is actual minimum cost from n to goal 25 Shortest path problem Search 26 Find the shortest path from a start node to a goal node must keep track of paths and costs of paths reject paths with loops for the shortest path problem, g(n) is the total distance between the initial state and the state n, and h(n) is the estimated distance from state n to the goal state A* also eliminates the more costly of redundant paths Copyright P. Doerschuk Shortest path problem Search 27 cont. A* shortest path algorithm 1. create a queue and add the first node to it as a zero-length path. 2. Loop: If the queue is empty, quit and announce failure. Remove the first path from the queue. If it ends at the goal state, exit with this path as the solution. Otherwise, create new paths by extending the first path to all the neighbors of the terminal node. Reject all new paths with loops. If two or more paths reach a common node, delete all those paths except the one that reaches the common node with the minimum cost. Sort the entire queue by the sum of the path length and a lower bound estimate of the cost remaining, with least-cost paths in front. Copyright P. Doerschuk Example: TSP Copyright P. Doerschuk Search 28 Ex: robot path planning P. 94-99, Winston 3rd Edition Copyright P. Doerschuk Search 29 Competitive (Game) Search Search Used for competitive games uses a move generator, a position evaluator and a look-ahead strategy game states are represented as a tree initial state is the root the player (computer) is the maximizer, and the opponent is the minimizer; 'minimax' search Copyright P. Doerschuk 30 'minimax' search Search cont. example: tic-tac-toe evaluation function measures the number of rows/columns/diagonals open to the player versus the opponent: E(s) = H(s) = (rX + cX + dX) - (ro + co + do) Copyright P. Doerschuk 31 'minimax' search Search cont. alpha beta pruning prunes branches which are not needed lower bound alpha is the largest current value of all the MAX ancestors of the node upper bound beta is the smallest current value of all its MIN ancestors X tries to maximize alpha at each MAX level; O tries to minimize beta at each MIN level Copyright P. Doerschuk 32 Summary Search methods unguided depth first, breadth first guided hill climbing best first A* competitive minimax Copyright P. Doerschuk Search 33
© Copyright 2026 Paperzz