Upload
gillian-mosley
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
Solving Problems by Searching 2
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 3
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 4
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 5
Toy Problems vs.Real-World Problems
Toy Problems• concise and exact
description
• used for illustration purposes (e.g. here)
• used for performance comparisons
Real-World Problems• no single, agreed-
upon description
• people care about the solutions
Solving Problems by Searching 6
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 7
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 8
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 9
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 10
Missionaries and Cannibals: State Space
1c
1m1c
2c1c
2c
1c
2m
1m1c
1m1c
1c
2c
1m
2m
1c
2c
1c
1m
Solving Problems by Searching 11
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 12
Real-World Problem:Touring in Romania
Oradea
Bucharest
Fagaras
Pitesti
Neamt
Iasi
Vaslui
Urziceni
Hirsova
Eforie
GiurgiuCraiova
Rimnicu Vilcea
Sibiu
Dobreta
Mehadia
Lugoj
Timisoara
Arad
Zerind
120
140
151
75
70
111
118
75
71
85
90
211
101
97
138
146
8099
87
92
142
98
86
Solving Problems by Searching 13
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 14
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 15
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 16
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 17
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 18
Search Trees
search tree: tree structure defined by initial state and successor function
Touring Romania (partial search tree):
In(Arad)
In(Zerind) In(Sibiu) In(Timisoara)
In(Arad) In(Oradea) In(Fagaras) In(Rimnicu Vilcea)
In(Sibiu) In(Bucharest)
Solving Problems by Searching 19
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 20
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 nodes.action actions.pathCost node.pathCost +
problem.stepCost(action, node.state)s.depth node.depth + 1successors successors + s
return successors
Solving Problems by Searching 21
Expanded Search Nodesin Touring Romania Example
In(Arad)
In(Zerind) In(Sibiu) In(Timisoara)
In(Arad) In(Oradea) In(Fagaras) In(Rimnicu Vilcea)
In(Sibiu) In(Bucharest)
Solving Problems by Searching 22
Fringe Nodesin Touring Romania Example
fringe nodes: nodes that have not been expanded
In(Arad)
In(Zerind) In(Sibiu) In(Timisoara)
In(Arad) In(Oradea) In(Fagaras) In(Rimnicu Vilcea)
In(Sibiu) In(Bucharest)
Solving Problems by Searching 23
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 24
General Tree Search Algorithm
function treeSearch(problem, strategy)fringe { new
searchNode(problem.initialState) }loop
if empty(fringe) then return failurenode selectFrom(fringe, strategy)if problem.goalTest(node.state) then
return pathTo(node)fringe fringe + expand(problem, node)
Solving Problems by Searching 25
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 26
Possible Outcomes
algorithm terminates with:• failure: no solution could be found
• success: solution path was found
algorithm does not terminate
Solving Problems by Searching 27
In(Arad) In(Oradea) In(Rimnicu Vilcea)
In(Zerind) In(Timisoara)
In(Sibiu) In(Bucharest)
In(Fagaras)
In(Sibiu)
General Search Algorithm:Touring Romania Example
In(Arad)
fringe
selected
Solving Problems by Searching 28
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 29
Search Problem Complexity Measures
in theoretical Computer Science:• size of the state space graph
in Artificial Intelligence:• 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 30
Problem-Solving Performance: Examples
Touring Romania Missionaries and Cannibals
size of state space
20 16
branching factor 4 3
shallowest goal depth
3 11
maximum path length
16 13
Solving Problems by Searching 31
Search Cost vs. Total Cost
search cost:• time (and memory) used to find a solution
total cost:• search cost + path cost of solution
optimal trade-off point:• further computation to find a shorter path
becomes counterproductive
Solving Problems by Searching 32
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 33
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 34
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 35
de
pth
= 3
Breadth-First Search: Missionaries and Cannibals
de
pth
= 0
de
pth
= 1
de
pth
= 2
Solving Problems by Searching 36
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
• time complexity: O(bd+1)
• space complexity: O(bd+1)
1132 ddd bObbbbbb
Solving Problems by Searching 37
Breadth-First Search: Evaluation
completeness yes
optimality shallowest
time complexity O(bd+1)
space complexity O(bd+1)
Solving Problems by Searching 38
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 39
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 40
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 41
d =
3
Uniform-Cost Search:Touring Romania
Sibiu(290)
Zerind(225)
Timisoara(268) Zerind
(217)Sibiu(297)
Sibiu(300)
Pitesti(317)
Craiova(346) Mehadia
(299)Timisoara
(340)
Arad(280)
Rimnicu Vilcea(220)
Fagaras(239)
Oradea(291)
Arad(300)
Oradea(296)
Arad(292)
Oradea(288)
Arad(150)
Oradea(146)
Arad(236)
Lugoj(229)
Zerind(75)
Sibiu(140)
Timisoara(118)
Arad(0) d =
0d
= 2
d =
1d
= 4
fringe
selected
Solving Problems by Searching 42
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 43
Uniform-Cost Search: Evaluation
completeness yes
optimality yes
time complexity O(b1+⌊C*/ε⌋)
space complexity O(b1+⌊C*/ε⌋)
Solving Problems by Searching 44
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 45
de
pth
= 3
Depth-First Search:Missionaries and Cannibals
de
pth
= 0
de
pth
= 1
de
pth
= 2
Solving Problems by Searching 46
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 47
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 48
Depth-First Search: Evaluation
completeness no
optimality no
time complexity O(bm)
space complexity O(bm)
Solving Problems by Searching 49
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 50
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 51
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 52
Recursive Implementation of Depth-Limited Search
function depthLimitedSearch(problem, limit)return recursiveDLS(
new searchNode(problem.initialState), problem, limit)
function recursiveDLS(node, problem, limit)cutoffOccured falseif problem.goalTest(node) then return pathTo(node)if node.depth = limit then return cutofffor each successor in expand(node, problem) do
result recursiveDLS(successor, problem, limit)if result = cutoff then cutoffOccured trueelse if result ≠ failure then return result
if cutoffOccured then return cutoff else return failure
Solving Problems by Searching 53
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 54
Depth-Limited Search: Evaluation
completeness no
optimality no
time complexity O(bl)
space complexity O(bl)
Solving Problems by Searching 55
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 56
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 57
de
pth
= 3
Iterative Deepening Search:Missionaries and Cannibals
de
pth
= 0
de
pth
= 1
de
pth
= 2
Solving Problems by Searching 58
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 59
Iterative Deepening Search: Evaluation
completeness yes
optimality shallowest
time complexity O(bd)
space complexity O(bd)
Solving Problems by Searching 60
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 61
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 62
Bidirectional Search: Caveats
What search strategy for forward/backward search?• breadth-first search
How to check whether a node is in the other fringe?• 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 63
Bidirectional Search: Evaluation
completeness yes
optimality shallowest
time complexity O(bd/2)
space complexity O(bd/2)
Solving Problems by Searching 64
Comparing Uninformed Search Strategies
Breadth-First
Uniform-Cost
Depth-First
Depth-Limited
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 65
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 66
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 67
Discovering Repeated States: Potential Savings
sometimes repeated states are unavoidable, resulting in infinite search trees
checking for repeated states:• infinite search tree ⇒ finite search tree
•finite search tree ⇒ exponential reduction
stat
e sp
ace
grap
h
sear
ch t
ree
stat
e sp
ace
grap
h
Solving Problems by Searching 68
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 69
General Graph Search Algorithm
function graphSearch(problem, strategy)closed { }fringe { new searchNode(problem.initialState) }loop
if empty(fringe) then return failurenode selectFrom(fringe, strategy)if problem.goalTest(node.state) then
return pathTo(node)if node.state ∉ closed
closed closed + nodefringe fringe + expand(problem, node)
Solving Problems by Searching 70
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 71
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 72
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 73
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 74
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 75
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 76
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 77
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 78
Toy Problem: Sliding-Block Puzzle
876
543
21
138
65
427
the 8-Puzzle
Solving Problems by Searching 79
Other Real-World Problems
Route-Finding Problem Touring Problem (TSP) VLSI Layout Robot Navigation Automatic Assembly Sequencing Internet Searching
Solving Problems by Searching 80
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 81
Systems of Production: N-State Languages states of nature (N-states) consist of
• entities that exist in this state• properties of these entities• relations between the entities
an N-state language L0 is a tuple (U0, P0) where:• 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 82
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 83
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 84
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 85
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 86
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 87
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 88
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 89
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 90
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 91
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 92
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 93
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 94
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):
(MBLR)(LBL), (LBL), …, (LBL)
r times
(UBR), (UBR), …, (UBR)
r times
Solving Problems by Searching 95
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 96
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 97
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
• 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)
• examples: initial state: (N, N, 1), goal state: (0, 0, 0)
Solving Problems by Searching 98
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 99
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 100
Problem Reduction: GM&C with N=3 and b=2
(331)⇒(000)
(310)⇒(000)
(320)⇒(000)
(220)⇒(000)
(321)⇒(000)
(300)⇒(000)
(311)⇒(000)
(110)⇒(000) (221)⇒(000)
(000)⇒(000)
(021)⇒(000) (111)⇒(000)
(010)⇒(000)
(031)⇒(000)
(020)⇒(000)
Solving Problems by Searching 101
Problem Reduction: GM&C with N=5 and b=3
(551)⇒(000)
(440)⇒(000)
(540)⇒(000)
(520)⇒(000)
(541)⇒(000)
(510)⇒(000)
(521)⇒(000)
(220)⇒(000) (331)⇒(000)
(000)⇒(000)
(021)⇒(000) (031)⇒(000)
(010)⇒(000)
(041)⇒(000)
(030)⇒(000)
(530)⇒(000)
(531)⇒(000)
(330)⇒(000) (500)⇒(000)
(511)⇒(000)(441)⇒(000)
(051)⇒(000)
(020)⇒(000)
(111)⇒(000)
Solving Problems by Searching 102
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 103
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)
sb
Θ(sb)
sa
Θ(sa)
Θ Θ
↦
↦↤
Solving Problems by Searching 104
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.
s0
sf
st
Θ(sf)
↦
=
or
Solving Problems by Searching 105
Exploiting Symmetry in the Search Space: Example
(331)⇒(000)
(310)⇒(000)
(320)⇒(000)
(220)⇒(000)
(321)⇒(000)
(300)⇒(000)
(311)⇒(000)
(110)⇒(000) (221)⇒(000)
(000)⇒(000)
(021)⇒(000) (111)⇒(000)
(010)⇒(000)
(031)⇒(000)
(020)⇒(000)
(011)⇒(000){(331)} {(000)}⇒
{(310) (220) (320)} {(011) (021) (111)}⇒
Problem:
{(321)} {(010)}⇒
{(300)} {(031)}⇒
{(311)} {(020)}⇒
{(110)} {(221)}⇒
{(110)} ↦ {(221)}
Solving Problems by Searching 106
Global View of the N-State Space of the M&C Problem
state space: 2(N+1)2 states in two planes
permissible states (white): non-cannibalism condition not violated
potential actions: subject to boat conditions (examples shown)
ML
CL
BL=0BL=1
Solving Problems by Searching 107
Solution to the M&C Problem in the Collapsed N-State Space
ML
CL
0
1
2
3
0 1 2 3
collapsed N-state space :
LTR transfers
RTL transfers
Solving Problems by Searching 108
General Shape of the Collapsed N-State Space
permissible territory: Z-shaped: (ML=0) ∨ (ML=N) ∨ (ML=CL)
initial state: top right goal state: bottom left possible actions: depend
on boat capacity
permissible territory:
Solving Problems by Searching 109
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 110
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 111
Global Movements: Example
problem:• N=9, k=4
• Initial state:(9, 1, 1)
• Goal state:(0, 8, 0)
(911)⇒(080)
(991)⇒(080) (661)⇒(080)
(000)⇒(080) (040)⇒(080)
(080)⇒(080)
(H1,J1)-[6](H1)-[6]
(D)-[15]
(D,J2)-[11] (D)-[9]
(D,J2)-[5]
(H2)-[6] (H2)-[4]
Solving Problems by Searching 112
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 113
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 114
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)
coin
coin
coin
coin
coin
coin
coin
coin
coin
coin
coin
coin
Solving Problems by Searching 115
AND/OR-Graphs: Example
1 1 2 2 3 3 4 4 5 5 6 6
1 111
11
alternativetests
alternativeoutcomes
reoccurringsub-problem
1 1
alternativetests
OR
AND
Solving Problems by Searching 116
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|=kfor AND-connections
nodes with outgoing 1-connectors: OR-nodes
nodes with outgoing k-connectors: AND-nodes
Solving Problems by Searching 117
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 118
Hypergraphs and Solution Graphs: Examples
start nodeterminal node
hypergraph: solution graph 1: solution graph 2:
Solving Problems by Searching 119
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 120
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
• label the node accordingly
• propagate the label the all ancestors (as far as possible)
• until the root node can be labelled solved/unsolvable
Solving Problems by Searching 122
Appropriateness of AND/OR-Graphs
good for problems• in which the solution takes the form of a graph or tree
• example: counterfeit coin problem
• that are decomposable
• 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 123
Sub-Goal Interaction: Towers of Hanoi
aim: transfer disks from peg A to peg B best representation: decompose into
sub-goals (despite sub-goal interference)
A B C
Solving Problems by Searching 124
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 125
Assumptions
environment• fully observable
• deterministic
actions• all effects are known
Not very realistic!
Solving Problems by Searching 126
Three Types of Problems with Partial Information
Sensorless Problems:unknown initial state due to lack of perception
Contingency Problems:• environment only partially observable or
• actions with uncertain outcomes Exploration Problems:
• neither states nor actions are known
Solving Problems by Searching 127
Toy Problem:Vacuum World
R
L
S S
SS
SS
SS
L
L
L
L
L
L
L
R
R
R
R
R
R
R
Solving Problems by Searching 128
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 129
Belief State Space: Vacuum WorldL R
S
L R
S S
L R
R
L
SS
LLR R
SSL
R
Solving Problems by Searching 130
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 131
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 133
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 134
Algorithms forContingency 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