2 Basic Concepts Initial state Goal/Target state Intermediate states Path from the initial to the target stateOperators/rules to get from one state to anotherAll states - search spaceWe search for a path / sequence of operators to go from the initial state to the goal state
4 Search SpaceSearch problems can be represented as graphs, where the nodes are states and the arcs correspond to operations.The set of all states: search space
5 Graphs and Trees 1Graph: a set of nodes (vertices) with links (edges) between them.A link is represented usually as a pair of nodes, connected by the link.Undirected graphs: the links do not have orientationDirected graphs: the links have orientation
6 Graphs and Trees 2Path: Sequence of nodes such that each two neighbors represent an edgeCycle: a path with the first node equal to the last and no other nodes are repeatedAcyclic graph: a graph without cyclesTree: undirected acyclic graph, where one node is chosen to be the root
7 Graphs and Trees 3 Given a graph and a node: Out-going edges: all edges that start in that nodeIn-coming edges : all edges that end up in that nodeSuccessors (Children): the end nodes of all out-going edgesAncestors (Parents): the nodes that are start points of in-coming edges
8 G1: Undirected graph Path: ABDCAE Cycle: CABEC Successors of A: E, C, BParents of A: E, C, B
9 G2: Directed graph Path: ABDC Cycle: no cycles Successors of A: C, B Parent of A: E
10 Search TreesMore solutions: More than one path from the initial state to a goal stateDifferent paths may have common arcsThe search process can be represented by a search treeIn the search tree the different solutions will be represented as different paths from the initial stateOne and the same state may be represented by different nodes
12 Breadth-First Search Algorithm: using a queue 1. Queue = [initial_node] , FOUND = False2. While queue not empty and FOUND = False do:Remove the first node NIf N = target node then FOUND = trueElse find all successor nodes of N and put them into the queue.In essence this is Dijkstra's algorithm of finding the shortest path between two nodes in a graph.
13 Depth-first search Algorithm: using a stack 1. Stack = [initial_node] , FOUND = False2. While stack not empty and FOUND = False do:Remove the top node NIf N = target node then FOUND = trueElse find all successor nodes of N and put them onto the stack.
14 Comparison of depth-first and breadth-first search Breadth-first: without backtrackingDepth-first : backtracking.Length of path: breadth-first finds the shortest path first.Memory: depth-first uses less memoryTime: If the solution is on a short path - breadth first is better, if the path is long - depth first is better.
15 Heuristic Search Heuristic search is used to reduce the search space. Basic idea:explore only promising states/paths.We need an evaluation function to estimate each state/path.
16 Hill climbing Basic idea: always head towards a state which is better than the current one.There is no exhaustive search, so no node list is maintained.
17 Hill Climbing - Algorithm Start with current-state = initial-state.Until current-state = goal-state OR there is no change in current-state do:Get the successors of the current state and use the evaluation function to assign a score to each successor.If one of the successors has a better score than the current-state then set the new current-state to be the successor with the best score.
18 Hill Climbing Node list is not maintained No problems with loops since we move to a better nodeIf a solution is found, it is found for a very short time with minimal memory requirementsFinding a solution is not guaranteed – the local maxima problem
19 Best First SearchThe node with the best score is chosen to be expanded.Works in breadth-first manner, keeps a data structure (called agenda, based on priority queues) of all successors and their scores.If a node that has been chosen does not lead to a solution, the next "best" node is chosen, so eventually the solution is foundAlways finds a solution, not guaranteed to be the optimal one.
20 Best First Search Algorithm 1. Start with agenda = [initial-state].2. While agenda is not empty doA. Pick the best node on agenda.B. If it is the goal node then return with success. Otherwise find its successors.C. Assign the successor nodes a score using the evaluation function and add the scored nodes to the agenda
21 Comparison with hill-climbing Similarities: best-first always chooses the best nodeDifference: best-first search keeps an agenda as in breadth-first search, and in case of a dead end it will backtrack, choosing the next-best node.
22 The A* Algorithm An evaluation function that accounts for - the cost of the paths- the score of the nodesF(Node) = g(Node) + h(Node)g(Node) - the costs from the initial state to the current nodeh(Node) - future costs, i.e. node scoreDisadvantage of A* is the memory requirement - the algorithm keeps records for the entire tree.
23 The A* AlgorithmA* always finds the best solution, provided that h(Node) does not overestimate the future costs.
24 Example Start: A Goal: G 10 7 8 4 6 9 2 A B: 9 D : 10 F : 6 H : 5 C: 8 K: 5G: 0J: 4Start: AGoal: G