Solving Problems by Searching Foundations for Uninformed Search Methods Literature S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach, chapter 3. Prentice Hall, 2nd edition, 2003. S. Amarel. On Representations of Problems of Reasoning about Actions. In: D. Michie ,editor, Machine Intelligence 3, pages 131-171, Edinburgh University Press, 1968. Reprinted in: B. Webber and N. Nilsson ,editors, Readings in Artificial Intelligence, pages 2-22, Tioga, 1981. N. Nilsson. Principles of Artificial Intelligence, chapters 1-2. Springer, 1982. Solving Problems by Searching 2 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 3 Problems of Reasoning about Actions aim: find a course of actions that satisfies a number of specified conditions examples: • planning an airplane trip • planning a dinner party Solving Problems by Searching 4 Toy Problems vs. Real-World Problems Toy Problems • • • Real-World Problems concise and exact description used for illustration purposes (e.g. here) used for performance comparisons • • no single, agreedupon description people care about the solutions Solving Problems by Searching 5 Toy Problem: Missionaries and Cannibals On one bank of a river are three missionaries (black triangles) and three cannibals (red circles). There is one boat available that can hold up to two people and that they would like to use to cross the river. If the cannibals ever outnumber the missionaries on either of the river’s banks, the missionaries will get eaten. How can the boat be used to safely carry all the missionaries and cannibals across the river? Solving Problems by Searching 6 Search Problems initial state set of possible actions/applicability conditions • • • successor function: state set of <action, state> successor function + initial state = state space path (solution) goal • goal test function or goal state path cost function • • assumption: path cost = sum of step costs for optimality Solving Problems by Searching 7 Missionaries and Cannibals: Initial State and Actions initial state: • all missionaries, all cannibals, and the boat are on the left bank 5 possible actions: • • • • • one missionary crossing one cannibal crossing two missionaries crossing two cannibals crossing one missionary and one cannibal crossing Solving Problems by Searching 8 Missionaries and Cannibals: Successor Function state set of <action, state> (L:3m,3c,b-R:0m,0c) {<2c, (L:3m,1c-R:0m,2c,b)>, <1m1c, (L:2m,2c-R:1m,1c,b)>, <1c, (L:3m,2c-R:0m,1c,b)>} (L:3m,1c-R:0m,2c,b) {<2c, (L:3m,3c,b-R:0m,0c) >, <1c, (L:3m,2c,b-R:0m,1c)>} (L:2m,2c-R:1m,1c,b) {<1m1c, (L:3m,3c,b-R:0m,0c) >, <1m, (L:3m,2c,b-R:0m,1c)>} Solving Problems by Searching 9 Missionaries and Cannibals: State Space 1c 1c 2c 1m 1c 2c 1m 1m 2c 2c 1m 1c 1c 1c 1c 1c 2m 2m 1m 1c Solving Problems by Searching 10 Missionaries and Cannibals: Goal State and Path Cost goal state: • all missionaries, all cannibals, and the boat are on the right bank. path cost • • step cost: 1 for each crossing path cost: number of crossings = length of path solution path: • • 4 optimal solutions cost: 11 Solving Problems by Searching 11 Real-World Problem: Touring in Romania Oradea 71 Neamt Zerind 87 151 75 Iasi Arad 140 Sibiu 92 Fagaras 99 118 Vaslui 80 Rimnicu Vilcea Timisoara 97 211 142 Pitesti 111 Lugoj 101 146 70 85 98 Hirsova Urziceni Bucharest 86 Mehadia 138 90 75 Dobreta Eforie 120 Giurgiu Craiova Solving Problems by Searching 12 Goal Formulation performance measure • assigns a “happiness value” to all possible world states goal • a condition that either is or is not satisfied in a given world state; a set of world states goal formulation • find a goal that must be true in all desirable world states, i.e. all situations in which the performance measure is high Solving Problems by Searching 13 Problem Formulation problem formulation • • process of deciding what actions and states to consider granularity/abstraction level assumptions about the environment: • • • • static observable discrete deterministic Solving Problems by Searching 14 Touring in Romania: Search Problem Definition initial state: • In(Arad) possible Actions: • DriveTo(Zerind), DriveTo(Sibiu), DriveTo(Timisoara), etc. goal state: • In(Bucharest) step cost: • distances between cities Solving Problems by Searching 15 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 16 Search An agent with several immediate options of unknown value can decide what to do by first examining different possible sequences of actions that lead to states of known value, and then choosing the best sequence. search (through the state space) for • • • a goal state a sequence of actions that leads to a goal state a sequence of actions with minimal path cost that leads to a goal state Solving Problems by Searching 17 Search Trees search tree: tree structure defined by initial state and successor function Touring Romania (partial search tree): In(Arad) In(Zerind) In(Arad) In(Sibiu) In(Oradea) In(Timisoara) In(Fagaras) In(Sibiu) In(Rimnicu Vilcea) In(Bucharest) Solving Problems by Searching 18 Search Nodes search nodes: the nodes in the search tree data structure: • • • • • state: a state in the state space parent node: the immediate predecessor in the search tree action: the action that, performed in the parent node’s state, leads to this node’s state path cost: the total cost of the path leading to this node depth: the depth of this node in the search tree Solving Problems by Searching 19 Expanding a Search Node function expand(node, problem) successors { } for each <action, result> in problem.successorFn(node.state) do s new searchNode(result) s.parentNode node s.action action s.pathCost node.pathCost + problem.stepCost(action, node.state) s.depth node.depth + 1 successors successors + s return successors Solving Problems by Searching 20 Expanded Search Nodes in Touring Romania Example In(Arad) In(Zerind) In(Arad) In(Sibiu) In(Oradea) In(Timisoara) In(Fagaras) In(Sibiu) In(Rimnicu Vilcea) In(Bucharest) Solving Problems by Searching 21 Fringe Nodes in Touring Romania Example fringe nodes: nodes that have not been expanded In(Arad) In(Zerind) In(Arad) In(Sibiu) In(Oradea) In(Timisoara) In(Fagaras) In(Sibiu) In(Rimnicu Vilcea) In(Bucharest) Solving Problems by Searching 22 Search (Control) Strategy search or control strategy: an effective method for scheduling the application of the successor function to generate new states • • • selects the next node to be expanded from the fringe determines the order in which nodes are expanded aim: produce a goal state as quickly as possible examples: • • LIFO-queue for fringe nodes alphabetical ordering Solving Problems by Searching 23 General Tree Search Algorithm function treeSearch(problem, strategy) fringe { new searchNode(problem.initialState) } loop if empty(fringe) then return failure node selectFrom(fringe, strategy) if problem.goalTest(node.state) then return pathTo(node) fringe fringe + expand(problem, node) Solving Problems by Searching 24 Key Features of the General Search Algorithm systematic • guaranteed to not generate the same state • infinitely often guaranteed to come across every state eventually incremental • attempts to reach a goal state step by step (rather than guessing it all at once) Solving Problems by Searching 25 Possible Outcomes algorithm terminates with: algorithm does not terminate • failure: no solution could be found • success: solution path was found Solving Problems by Searching 26 General Search Algorithm: Touring Romania Example In(Arad) In(Zerind) In(Arad) In(Sibiu) In(Oradea) In(Timisoara) In(Fagaras) In(Sibiu) In(Rimnicu Vilcea) In(Bucharest) fringe selected Solving Problems by Searching 27 Measuring Problem-Solving Performance completeness • Is the algorithm guaranteed to find a solution when there is one? optimality • Does the strategy find the optimal solution? time complexity • How long does it take to find a solution? space complexity • How much memory is need to perform the search? Solving Problems by Searching 28 Search Problem Complexity Measures in theoretical Computer Science: in Artificial Intelligence: • size of the state space graph • branching factor: maximum number of • • successors per node depth of the shallowest goal node maximum length of any path in the state space Solving Problems by Searching 29 Problem-Solving Performance: Examples Touring Romania Missionaries and Cannibals size of state space 20 16 branching factor 4 3 3 11 16 13 shallowest goal depth maximum path length Solving Problems by Searching 30 Search Cost vs. Total Cost search cost: total cost: optimal trade-off point: • time (and memory) used to find a solution • search cost + path cost of solution • further computation to find a shorter path becomes counterproductive Solving Problems by Searching 31 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 32 Uninformed vs. Informed Search uninformed search (blind search) • no additional information about states beyond • problem definition only goal states and non-goal states can be distinguished informed search (heuristic search) • additional information about how “promising” a state is available Solving Problems by Searching 33 Breadth-First Search strategy: • expand root node • expand successors of root node • expand successors of successors of root • node etc. implementation: • use FIFO queue to store fringe nodes in general tree search algorithm Solving Problems by Searching 34 depth = 3 depth = 2 depth = 1 depth = 0 Breadth-First Search: Missionaries and Cannibals Solving Problems by Searching 35 Time and Space Complexity for Breadth-First Search assumptions: • • every search node has exactly b successors (b finite) shallowest goal node is at finite depth d analysis: • • worst case: goal node last node at depth d bn successors at depth n b b 2 b3 b d b d 1 b O b d 1 • • time complexity: O(bd+1) space complexity: O(bd+1) Solving Problems by Searching 36 Breadth-First Search: Evaluation completeness yes optimality shallowest time complexity O(bd+1) space complexity O(bd+1) Solving Problems by Searching 37 Exponential Complexity Depth Nodes Time Memory 2 1100 0.11 seconds 1 megabyte 4 111100 11 seconds 106 megabytes 6 107 19 minutes 10 gigabytes 8 109 31 hours 1 terabyte 10 1011 129 days 101 terabytes 12 1013 35 years 10 petabytes 14 1015 3523 years 1 exabyte Solving Problems by Searching 38 Exponential Complexity: Important Lessons memory requirements are a bigger problem for breadth-first search than is the execution time time requirements are still a major factor exponential-complexity search problems cannot be solved by uninformed methods for any but the smallest instances Solving Problems by Searching 39 Uniform-Cost Search breadth-first search is optimal when all step costs are equal uniform-cost search: • always expand the fringe node with lowest path cost first Solving Problems by Searching 40 Uniform-Cost Search: Touring Romania Timisoara (268) Oradea (296) Arad (292) Oradea (291) Fagaras (239) Zerind (217) Zerind (225) Arad (300) Arad (280) Sibiu (297) Rimnicu Vilcea (220) Sibiu (300) Craiova (346) Pitesti (317) Arad (236) Lugoj (229) Timisoara (340) d=2 Oradea (146) Timisoara (118) Mehadia (299) Oradea (288) d=4 Arad (150) Sibiu (140) d=3 Zerind (75) d=1 Arad (0) selected Sibiu (290) d=0 fringe Solving Problems by Searching 41 Time and Space Complexity for Uniform-Cost Search assumptions: • • • every search node has exactly b successors (b finite) every step has cost ≥ ε for some positive constant ε let C* be the cost of an optimal solution analysis: • • time complexity: O(b1+⌊C*/ε⌋) space complexity: O(b1+⌊C*/ε⌋) Solving Problems by Searching 42 Uniform-Cost Search: Evaluation completeness yes optimality yes time complexity O(b1+⌊C*/ε⌋) space complexity O(b1+⌊C*/ε⌋) Solving Problems by Searching 43 Depth-First Search strategy: • • always expand the deepest node in the current fringe first when a sub-tree has been completely explored, delete it from memory and “back up” implementation: • • use LIFO queue (stack) to store fringe nodes in general tree search algorithm alternative: recursive function that calls itself on each of its children in turn Solving Problems by Searching 44 depth = 3 depth = 2 depth = 1 depth = 0 Depth-First Search: Missionaries and Cannibals Solving Problems by Searching 45 Recursive Implementation of Depth-First Search function depthFirstSearch(problem) return recursiveDFS( new searchNode(problem.initialState, problem) function recursiveDFS(node, problem) if problem.goalTest(node.state) then return pathTo(node) for each successor in expand(node, problem) do result recursiveDFS(successor, problem) if result ≠ failure then return result return failure Solving Problems by Searching 46 Time and Space Complexity for Depth-First Search assumptions: • every search node has exactly b successors • (b finite) depth of the deepest node in the tree is m analysis: • time complexity: O(bm) • space complexity: O(bm) Solving Problems by Searching 47 Depth-First Search: Evaluation completeness no optimality no time complexity O(bm) space complexity O(bm) Solving Problems by Searching 48 Depth-First Search: Finding the Optimal Path first solution discovered may not be optimal must keep searching continued search: • assumption: non-decreasing path costs • remember path cost of cheapest path found • so far do not expand nodes for which path cost exceeds cheapest found so far Solving Problems by Searching 49 Backtracking Search a variant of depth-first search • generate only one successor at a time • each node remembers which successor to generate next • space complexity: O(m) • generate successors by modifying current state representation • must be able to undo modifications • may use even less memory (and time) Solving Problems by Searching 50 Depth-Limited Search strategy: • always expand the deepest node in the • current fringe first (like depth-first search) treat nodes at a given depth l as if they have no successors implementation: • like depth-first search, but test for depth limit before expanding a node Solving Problems by Searching 51 Recursive Implementation of Depth-Limited Search function depthLimitedSearch(problem, limit) return recursiveDLS( new searchNode(problem.initialState), problem, limit) function recursiveDLS(node, problem, limit) cutoffOccured false if problem.goalTest(node) then return pathTo(node) if node.depth = limit then return cutoff for each successor in expand(node, problem) do result recursiveDLS(successor, problem, limit) if result = cutoff then cutoffOccured true else if result ≠ failure then return result if cutoffOccured then return cutoff else return failure Solving Problems by Searching 52 Time and Space Complexity for Depth-Limited Search assumptions: • every search node has exactly b successors • (b finite) the given depth limit is l analysis: • time complexity: O(bl) • space complexity: O(bl) Solving Problems by Searching 53 Depth-Limited Search: Evaluation completeness no optimality no time complexity O(bl) space complexity O(bl) Solving Problems by Searching 54 How to Choose the Depth Limit? example: Touring Romania • • there are 20 cities on the map. Thus, choose l=19. the longest distance between two cities on the map is 9 steps; thus, choose l=9. in general: • • the diameter of a search space is the longest distance between two nodes in the search space choose the diameter as the depth limit to guarantee completeness Solving Problems by Searching 55 Iterative Deepening Search strategy: • based on depth-limited (depth-first) search • repeat search with gradually increasing depth limit until a goal state is found implementation: for depth 0 to ∞ do result depthLimitedSearch(problem, depth) if result ≠ cutoff then return result Solving Problems by Searching 56 depth = 3 depth = 2 depth = 1 depth = 0 Iterative Deepening Search: Missionaries and Cannibals Solving Problems by Searching 57 Time and Space Complexity for Iterative Deepening Search assumptions: • every search node has exactly b successors • (b finite) the shallowest goal node is at depth d analysis: • time complexity: • (d)b + (d-1)b2 + … + (2)b(d-1) + (1)bd ∈ O(bd) space complexity: O(bd) Solving Problems by Searching 58 Iterative Deepening Search: Evaluation completeness yes optimality shallowest time complexity O(bd) space complexity O(bd) Solving Problems by Searching 59 Iterative Lengthening Search iterative analogue of uniform-cost search strategy: • • based on cost-limited (depth-first) search repeat search with gradually increasing path cost limit until a goal state is found problem: How to increase the path cost limit? • • use minimum: substantial overhead use fixed step size: no optimality Solving Problems by Searching 60 Bidirectional Search idea: run two simultaneous searches: • one forward from the initial state, • one backward from the goal state, until the two fringes meet. The solution path must cross the meeting point. Start Goal Solving Problems by Searching 61 Bidirectional Search: Caveats What search strategy for forward/backward search? • How to check whether a node is in the other fringe? • breadth-first search hash table must know goal state for backward search must be able to compute predecessors and successors for a given state Solving Problems by Searching 62 Bidirectional Search: Evaluation completeness yes optimality shallowest time complexity O(bd/2) space complexity O(bd/2) Solving Problems by Searching 63 Comparing Uninformed Search Strategies BreadthFirst UniformCost DepthFirst DepthLimited Iterative Deepening Bidirectional Breadth-F. complete? Yes Yes No No Yes Yes optimal? Yes Yes No No Yes Yes time complexity O(bd+1) O(b1+⌊C*/ε⌋) O(bm) O(bl) O(bd) O(bd/2) space complexity O(bd+1) O(b1+⌊C*/ε⌋) O(bm) O(bl) O(bd) O(bd/2) Solving Problems by Searching 64 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 65 Repeated States problem: repeated states waste time and memory by expanding states that have already been encountered, i.e. repeating work solution: formulate the problem in such a way that repeated states are not generated Solving Problems by Searching 66 Discovering Repeated States: Potential Savings infinite search tree ⇒ finite search tree finite search tree ⇒ exponential reduction state space graph • • search tree sometimes repeated states are unavoidable, resulting in infinite search trees checking for repeated states: state space graph Solving Problems by Searching 67 Discovering Repeated States compare node about to be expanded to all previously expanded nodes if there was a match, one node can be discarded issues: • storing the nodes: hash table • matching: usually equality testing Solving Problems by Searching 68 General Graph Search Algorithm function graphSearch(problem, strategy) closed { } fringe { new searchNode(problem.initialState) } loop if empty(fringe) then return failure node selectFrom(fringe, strategy) if problem.goalTest(node.state) then return pathTo(node) if node.state ∉ closed closed closed + node fringe fringe + expand(problem, node) Solving Problems by Searching 69 Repeated States and Depth-First Search problem: depth-first search keeps only nodes on the current path and their siblings in memory two approaches: • test only against the above nodes: • avoids only loops, not all repeated states remember all closed nodes: may increase space complexity of depth-first search to O(bd) Solving Problems by Searching 70 Optimality and Graph Search function graphSearch always discards newly discovered path to the same state which may be shorter • • • retains optimality for (bidirectional) breadth-first search or uniform-cost search with constant step costs depth-first and depth-limited search are not optimal anyway iterative deepening search may become non-optimal: • loop testing only: remains optimal • testing all states: not optimal; requires extension Solving Problems by Searching 71 Representing Sets of States: Splitting idea: instead of individual states, represent (implicit) sets of states actions: splitting into subsets • disjoint subsets avoid repeated states • will reach goal state (set with one state eventually) example: N-queens problem Solving Problems by Searching 72 Toy Problem: N-Queens Problem Place n queens on an n by n chess board such that none of the queens attacks any of the others. Solving Problems by Searching 73 Problem Formulation: N-Queens Problem complete-state formulation: • • • • states: any arrangement of 8 queens on the chess board initial state: any arrangement of 8 queens on the board actions: move a queen on the board goal test: no queen attacks another constructive formulation: • • • • states: any arrangement of 0 to 8 queens on the board initial state: no queens on the board actions: place a queen on the board (next free row!) goal test: 8 queens on board, none attacks another constructive problem formulations lend themselves to systematic search Solving Problems by Searching 74 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 75 Representation and Efficiency there usually is a choice of representation during problem formulation there is a relationship between the chosen representation and the efficiency with which a problem-solving system can be expected to solve the problem understanding this relationship is a prerequisite for designing good representations Solving Problems by Searching 76 Generalized Missionaries and Cannibals (GM&C) Problem On one bank of a river are N missionaries and N cannibals. There is one boat available that can hold up to K people and that they would like to use to cross the river. If the cannibals ever outnumber the missionaries on either of the river’s banks or in the boat, the missionaries will get eaten. How can the boat be used to safely carry all the missionaries and cannibals across the river? Solving Problems by Searching 77 Toy Problem: Sliding-Block Puzzle 7 2 5 8 3 4 1 2 6 3 4 5 1 6 7 8 the 8-Puzzle Solving Problems by Searching 78 Other Real-World Problems Route-Finding Problem Touring Problem (TSP) VLSI Layout Robot Navigation Automatic Assembly Sequencing Internet Searching Solving Problems by Searching 79 Systems of Production a system of production provides a framework for formally representing search problems • more restrictive approach than what we have • • seen so far generic problem solver can solve any problem specified in the framework opens the door for reasoning about the representation Solving Problems by Searching 80 Systems of Production: N-State Languages states of nature (N-states) consist of an N-state language L0 is a tuple (U0, P0) where: • entities that exist in this state • properties of these entities • relations between the entities • U0 is a non-empty set of entities called the basic universe and • P0 is a non-empty set of basic predicates defined for elements of U0 Solving Problems by Searching 81 Example: N-State Language for the GM&C Problem the basic universe U0 contains: • • • • N individuals m1, …, mN representing missionaries N individuals c1, …, cN representing cannibals the boat b (with capacity K) two places pL and pR representing the left and right river bank the set of predicates P0 contains: • • at(x, y): asserts that the entity x (a person or the boat) is at place y (pL or pR) on(x, b): asserts that the person x is aboard b Solving Problems by Searching 82 Systems of Production: Derived Description Languages N-states also require: • additional entities for defining legal states and actions • additional properties and relations for defining legal states and actions a derived description language L1 is a tuple (U1, P1) where: • U1 ⊇ U0 is a non-empty set of entities called the extended universe and • P1 is a non-empty set of basic predicates defined for elements of U1 Solving Problems by Searching 83 Example: Derived Description Language for the GM&C Problem the extended universe U1 additionally contains: • • • {m}L, {m}R, {m}b, {c}L, {c}R, {c}b: the subsets of missionaries/cannibals on the right/left river bank or on the boat ML, MR, Mb, CL, CR, Cb: the respective set sizes 1, …, N: numbers for representing these sizes the set of predicates P1 additionally contains: • =, <, > (relations for comparing numbers) Solving Problems by Searching 84 Production Systems: Configurations a configuration is a finite set (possibly empty) of expressions in an N-state language. • • The empty configuration will be written Λ (upper case lambda). The set union of two configurations α and β is again a configuration and it is written “α, β” configurations list the basic features of a situation at one point in time logical interpretation: conjunction of the true assertions made by the component expressions, true proposition Solving Problems by Searching 85 Example: Configurations in the GM&C Problem configurations in the N-state language L0: for the initial state of the GM&C problem { at(m1, pL),…, at(mN, pL), at(c1, pL), …, at(cN, pL), at(b, pL) } for the goal state of the GM&C problem { at(m1, pR),…, at(mN, pR), at(c1, pR), …, at(cN, pR), at(b, pR) } Solving Problems by Searching 86 Production Systems: Descriptions of N-States a basic description, s, of an N-state is a configuration from which all true statements about the N-state (that can be expressed in terms of the N-state language) can be directly obtained or derived a derived description, d(s), associated with an N-state is a configuration from which all true statements about the N-state (that can be expressed in terms of the derived description language) can be directly obtained or derived in a mixed description s’ = s;d(s), s is a basic description and d(s) its associated derived description Solving Problems by Searching 87 Example: Descriptions in the GM&C Problem mixed description for the goal state of the GM&C problem: { at(m1, pR),…, at(mN, pR), at(c1, pR), …, at(cN, pR), at(b, pR) } }; { {m}L={}, {m}R ={m1…mN}, {m}b ={}, {c}L ={}, {c}R ={c1…cN}, {c}b ={}, ML=0, MR=N, Mb=0, CL=0, CR=N, Cb=0 } Solving Problems by Searching 88 Production Systems: Rules of Action Let A be an action and let (A) denote the corresponding rule of action which must have the form: (A): sa;d(sa) sb;d(sb) The application of A in sa is permissible if both, d(sa) and d(sb) are satisfied. Solving Problems by Searching 89 Example: Rules of Action in the GM&C Problem let α denote an arbitrary configuration and x an individual (missionary or cannibal) action (LBL): load boat at left, one individual at a time: α, at(b, pL), at(x, pL); (Mb+Cb ≤ K-1) α, at(b, pL), on(x, b); Λ action (MBLR): move boat across river from left to right: α, at(b, pL); (Mb+Cb > 0) α, at(b, pR); Λ action (UBR): load boat at left, one individual at a time: α, at(b, pR), on(x, b); Λ α, at(b, pR), at(x, pR); Λ actions: (LBR), (MBRL), (UBL) by swapping pL and pR Solving Problems by Searching 90 Production Systems: Trajectories An N-state sb is directly attainable from an N-state sa (written sa↦sb) if there exists an applicable rule of action (A) that transforms sa into sb. A trajectory from an N-state sa to an N-state sb is a sequence of N-states (s1,…, sm) where • • • sa= s1 and sb= sm and for each i, 1<i≤m, si is directly attainable from si-1 An N-state sb is attainable from an N-state sa (written sa⇒sb) if there exists a trajectory from sa to sb. Solving Problems by Searching 91 Task of a Production System given: • an N-state language • an extended description language • a set of rules of actions • an initial N-state and a terminal N-state find the shortest trajectory from the initial N-state to the terminal N-state Solving Problems by Searching 92 From Verbal to Formal Representations given: verbal formulation formalization – choice points: • extended universe U1 • extended set of predicates P1 • set of actions these choices determine the efficiency with which problems can be solved. Solving Problems by Searching 93 Macro Actions macro actions: sequences of primitive actions level of abstraction: such that all constraints in the problem specification can still be verified GM&C example: load boat; cross and unload transfer r individuals from left to right (1≤r≤K): (LBL), (LBL), …, (LBL) (MBLR) (UBR), (UBR), …, (UBR) r times r times Solving Problems by Searching 94 Example: Specifying Macro Actions for the GM&C Problem Let α denote an arbitrary configuration and x1, …, xr a set of individuals (missionaries and/or cannibals) macro action (LrBL): load empty boat at left with r individuals, 1≤r≤K : α, at(b, pL), at(x1, pL), …, at(xr, pL); (Mb+Cb=0) α, at(b, pL), on(x1, b), …, on(xr, b); ((ML=0) ∨ (ML≥CL)), ((Mb=0) ∨ (Mb≥Cb)) macro action (MBLR+ UrBR): move boat (loaded with r individuals) across river from left to right and unload all passengers at right: α, at(b, pL), on(x1, b), …, on(xr, b); (Mb+Cb=r) α, at(b, pR), at(x1, pR), …, at(xr, pR); ((MR=0) ∨ (MR≥CR)) macro actions: (LrBR), (MBRL+UrBL) by swapping pL and pR Solving Problems by Searching 95 Dropping the Non-Cannibalism Condition for the Boat Theorem: If at both, the beginning and the end of a transfer, the non-cannibalism conditions (ML=0) ∨ (ML≥CL) and (MR=0) ∨ (MR≥CR) are satisfied for the two river banks, then the non-cannibalism condition for the boat, i.e. (Mb=0) ∨ (Mb≥Cb), is also satisfied. Proof: • • (ML=0) ∨ (ML=N) ∨ (ML=CL) must hold before and after each transfer For each transfer from a configuration satisfying one of the three disjuncts to a configuration satisfying one (possibly the same) of the three disjuncts, the non-cannibalism condition on the boat must be satisfied. Solving Problems by Searching 96 Distinguishing Individuals individuals: • • verbal formulation: N cannibals, N missionaries representation: distinguish only those individuals that are distinguishable states: • vector (ML=i1, CL=i2, BL=i3) where • examples: initial state: (N, N, 1), goal state: (0, 0, 0) • ML/CL missionaries/cannibals on left river bank • MR/CR determined by ML+MR=CL+CR=N • BL=1 if at(b,pL), BL=0 if at(b,pR) Solving Problems by Searching 97 Parameterized Actions add parameters to actions to simplify representation macro action (TLR Mb Cb): transfer safely a mix (Mb Cb) from left to right: (ML, CL, 1); Λ (ML-Mb, CL-Cb, 0); ((ML-Mb=0) ∨ (ML-Mb≥CL-Cb)), ((N-(ML-Mb)=0) ∨ (N-(ML-Mb)≥N-(CL-Cb))) macro action (TRL Mb Cb): transfer safely a mix (Mb Cb) from right to left: (ML, CL, 0); Λ (ML+Mb, CL+Cb, 1); ((ML+Mb=0) ∨ (ML+Mb≥CL-Cb)), ((N-(ML+Mb)=0) ∨ (N-(ML+Mb)≥N-(CL+Cb))) Solving Problems by Searching 98 An Alternative View: Reduction Systems search the space of P-states: S=(sa⇒sb) (read sb is attainable from sa) • Example: GM&C initial state: S0=((N, N, 1) ⇒(0, 0, 0)) successors: Let (sa⇒sb) be a P-state and (A) an action that is applicable in sa. Let sc be the result of applying (A) in sa. Then (sc⇒sb) is a successor of (sa⇒sb). goal state: (sb⇒sb) Solving Problems by Searching 99 Problem Reduction: GM&C with N=3 and b=2 (331)⇒(000) (310)⇒(000) (320)⇒(000) (000)⇒(000) (021)⇒(000) (220)⇒(000) (321)⇒(000) (111)⇒(000) (010)⇒(000) (300)⇒(000) (031)⇒(000) (311)⇒(000) (110)⇒(000) (020)⇒(000) (221)⇒(000) Solving Problems by Searching 100 Problem Reduction: GM&C with N=5 and b=3 (551)⇒(000) (540)⇒(000) (440)⇒(000) (520)⇒(000) (530)⇒(000) (541)⇒(000) (531)⇒(000) (000)⇒(000) (111)⇒(000) (021)⇒(000) (031)⇒(000) (010)⇒(000) (330)⇒(000) (510)⇒(000) (500)⇒(000) (041)⇒(000) (441)⇒(000) (521)⇒(000) (511)⇒(000) (030)⇒(000) (220)⇒(000) (020)⇒(000) (051)⇒(000) (331)⇒(000) Solving Problems by Searching 101 Symmetry in the Search Space consider states (311) in normal direction and (020) in reverse direction: • • Reached by (TLR 0 1) and (TRL 0 1) respectively Applicable actions: (TLR 2 0) and (TRL 2 0) respectively Definition: sa↤sb if and only if sb↦sa Definition: Let σ be the N-state space partially ordered under the relation ↦, and let σ’ be the dual space (i.e. the same elements partially ordered under the relation ↤). Then we define the function Θ: σ σ’ for the GM&C problem as: Θ: (ML, CL, BL) (N-ML, N-CL, 1-BL) Note: Θ(Θ(s))=s Solving Problems by Searching 102 Attainability and Symmetry Theorem: For any pair of N-states sa, sb the following equivalence holds: sa↦sb ≡ Θ(sa)↤Θ(sb) or equivalently: sa↦sb ≡ Θ(sb)↦Θ(sa) Corollary: For any pair of N-states sa, sb the following equivalence holds: sa⇒sb ≡ Θ(sb)⇒Θ(sa) Solving Problems by Searching sa Θ Θ(sa) ↦ sb Θ ↤ Θ(sb) ↦ 103 Exploiting Symmetry in the Search Space Let s0 be the initial state and st=Θ(s0) the terminal state. Let sf be the set of fringe nodes during a search process. If there exist two nodes s,s’∈sf such that s=Θ(s’) or s↦s’ then s0⇒st. Θ(sf) sf = s0 or st ↦ Solving Problems by Searching 104 Exploiting Symmetry in the Search Space: Example (331)⇒(000) (310)⇒(000) (320)⇒(000) Problem: {(331)} ⇒ {(000)} (011)⇒(000) (000)⇒(000) (021)⇒(000) (220)⇒(000) {(310) (220) (320)} ⇒ {(011) (021) (111)} (321)⇒(000) (010)⇒(000) {(321)} ⇒ {(010)} {(300)} ⇒ {(031)} (300)⇒(000) (311)⇒(000) {(311)} ⇒ {(020)} (111)⇒(000) (031)⇒(000) (020)⇒(000) {(110)} ⇒ {(221)} (110)⇒(000) (221)⇒(000) {(110)} ↦ {(221)} Solving Problems by Searching 105 Global View of the N-State Space of the M&C Problem ML BL=1 BL=0 CL state space: 2(N+1)2 states in two planes permissible states (white): noncannibalism condition not violated potential actions: subject to boat conditions (examples shown) Solving Problems by Searching 106 Solution to the M&C Problem in the Collapsed N-State Space collapsed N-state space : ML 3 LTR transfers 2 1 RTL transfers 0 0 Solving Problems by Searching 1 2 3 CL 107 General Shape of the Collapsed N-State Space permissible territory: permissible territory: Z-shaped: (ML=0) ∨ (ML=N) ∨ (ML=CL) initial state: top right goal state: bottom left possible actions: depend on boat capacity Solving Problems by Searching 108 Solution Patterns for the GM&C Problem boat capacity k ≥ 4 sliding along the diagonal directly • repeat • (TLR 2 2) • (TRL 1 1) boat capacity k ≤ 3 4 main steps • • • • slide along top leg jump to diagonal jump to bottom leg slide along bottom leg Solving Problems by Searching 109 Global Movements for the GM&C Problem (H1): sliding along the ML=N line: (N, CL, 1); 0<CL<N, k≥2 (N, N, 1) (H1,J1): slide and jump to diagonal: (N, CL, 1); 0<CL<N, k≥2 (N-k+1, N-k+1, 1) (D): sliding along diagonal: (ML, CL, 1); 0<CL=ML<N, k≥4 (0, 0, 0) (J2): jump to the ML=0 line: (ML, CL, 1); 0<CL=ML≤k (0, CL, 0) (D,J2): slide and jump to the ML=0 line: (ML, CL, 1); CL=ML>k≥4 (0, k, 0) (H2): sliding along the ML=0 line: (0, CL, 0); 0≤CL<N, k≥2 (0, C’L, 0); 0≤C’L<N, CL≠C’L Solving Problems by Searching 110 Global Movements: Example (911)⇒(080) problem: (H1)-[6] • N=9, k=4 • Initial state: • (9, 1, 1) Goal state: (0, 8, 0) (H1,J1)-[6] (991)⇒(080) (661)⇒(080) (D,J2)-[11] (D)-[9] (D)-[15] (D,J2)-[5] (000)⇒(080) (040)⇒(080) (H2)-[6] (H2)-[4] (080)⇒(080) Solving Problems by Searching 111 High-Level and Low-Level Search Space high-level space is a subset of the low-level space regions of the search space: • • • search spaces can divided into regions • example: M&C search space: top line, diagonal line, and bottom line of the Z-shape movements within a region are relatively easy transitions between regions are difficult high-level search space provides an abstraction that focuses on the transition points problems: defining the regions and transition points Solving Problems by Searching 112 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 113 The Counterfeit Coin Problem Given 12 gold coins of which one is known to be counterfeit, use a two-pan scale to identify the counterfeit coin and determine whether it is heavy or light in no more than three tests. solution: a weighing strategy – a tree of tests (depth ≤ 3, branching factor = 3) Solving Problems by Searching coin coin coin coin coin coin coin coin coin coin coin coin 114 AND/OR-Graphs: Example OR 1 1 2 2 3 3 4 4 5 5 6 6 alternative tests AND 1 1 1 1 1 alternative outcomes reoccurring sub-problem 1 1 Solving Problems by Searching 1 alternative tests 115 AND/OR-Graphs an AND/OR-graph is a hypergraph G=(N, C) where: • • N is a set of nodes C ⊆ N x ℙ(N) is a set of connectors • 1-connector: (n, s) ∈ C and |s|=1 • for OR-connections k-connector: (n, s) ∈ C and |s|=k for AND-connections nodes with outgoing 1-connectors: OR-nodes nodes with outgoing k-connectors: AND-nodes Solving Problems by Searching 116 Solution Graphs for AND/OR-Graphs a solution graph G’=(N’, C’) for an AND/OR-graph G=(N, C) is a sub-graph for which: • the start node is contained in N’ • every node n’∈N’ that has no outgoing • connectors must be a terminal node if n’∈N’ and there exists a c’=(n, s) ∈ C’ with n’∈s then s ⊆ N’ must hold. Solving Problems by Searching 117 Hypergraphs and Solution Graphs: Examples hypergraph: solution graph 1: solution graph 2: start node terminal node Solving Problems by Searching 118 Labelling Nodes in an AND/OR-Graph as Solved a node in an AND/OR graph can be considered solved if one of the following conditions holds: • it is a terminal node • it is a non-terminal node with • at least one outgoing k-connector for which • all descendants (the nodes the k-connector points to) are solved Solving Problems by Searching 119 Search Algorithms for AND/OR Graphs adaptation of breadth-first or depth-first search main difference: termination condition • • previously: goal is property of single node AND/OR graph: set of solved nodes collectively constitutes a solution approach: • whenever a terminal node is reached • until the root node can be labelled solved/unsolvable • label the node accordingly • propagate the label the all ancestors (as far as possible) Solving Problems by Searching 120 Searching AND/OR-Graphs: Example S U S U U S U S S U S S U Solving Problems by Searching S U 121 Appropriateness of AND/OR-Graphs good for problems • in which the solution takes the form of a graph or tree • that are decomposable • • example: counterfeit coin problem • example: symbolic integration in which the solution is a set of partially ordered actions not good for problems • in which sub-goals interact strongly • example: sliding-tile puzzles Solving Problems by Searching 122 Sub-Goal Interaction: Towers of Hanoi A B C aim: transfer disks from peg A to peg B best representation: decompose into sub-goals (despite sub-goal interference) Solving Problems by Searching 123 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 124 Assumptions environment actions • fully observable • deterministic • all effects are known Not very realistic! Solving Problems by Searching 125 Three Types of Problems with Partial Information Sensorless Problems: unknown initial state due to lack of perception Contingency Problems: Exploration Problems: • environment only partially observable or • actions with uncertain outcomes • neither states nor actions are known Solving Problems by Searching 126 Toy Problem: Vacuum World R L R L S S R R R L L L L S S S S R R L R L S S Solving Problems by Searching 127 Sensorless Problem reason about sets of states rather than single states belief state: a set of states representing an agent’s current belief about the possible physical states it might be in. coercion: perform actions that result in a belief state that contains only one physical state Solving Problems by Searching 128 Belief State Space: Vacuum World L R L R S S S L R S S R R L L R L S L S R Solving Problems by Searching 129 Non-Deterministic Actions non-deterministic actions: • actions may have several possible outcomes • without sensors, agent cannot tell which outcome occurred approach: • unchanged, reason about belief states • add all possible outcomes of an action to the belief state representing the outcome of the action Solving Problems by Searching 130 Example: Murphy’s Law World like Vacuum World except: action S (suck dirt) sometimes deposits dirt on the carpet, but only if there is no dirt there already • two possible outcomes for some actions • renders Vacuum World unsolvable Solving Problems by Searching 131 Belief State Space: Murphy’s Law World L R L S R S Solving Problems by Searching S 132 Contingency Problems the agent can obtain new information from its sensors after acting solution more complex: often tree structure • branching point is decision point • decision depends on perception at the time example: Murphy’s Law World with perception Solving Problems by Searching 133 Algorithms for Contingency Problems contingency problems cannot be solved with the search techniques described here interleaving problem-solving (search) and execution of action • more realistic approach for many real world problems and some toy problems Solving Problems by Searching 134 Overview Characterizing Search Problems Searching for Solutions Uninformed Search Strategies Avoiding Repeated States The Problem of Representation Search in AND/OR-Graphs Searching with Partial Information Solving Problems by Searching 135