2. This LectureThis Lecture
⢠Problem representation
⢠Problem solving through search
ReadingReading
⢠Chapter 2
AnnouncementsAnnouncements
⢠My office hours: Weds. From 2 to 3pm.
3. The 8-puzzleThe 8-puzzle
2 8 3
1 6 4
7 5
Start
2
8
31
6
4
7 5
Goal
How do we goal from start configuration to the
goal configuration?
5. Toy Problems and Real ProblemsToy Problems and Real Problems
⢠8-puzzle
⢠Vacuum World
⢠Cryptarithmetic
⢠8-queens
⢠The water jug problem
⢠Missionaries and Cannibals
⢠Towers of Hanoi
⢠Traveling salesman
⢠Robot navigation
⢠Process or assembly planning
⢠VLSI Layout
6. Problem Solving:Problem Solving:
⢠World State â values of all attributes of interest in the world.
⢠State Space â the set of all possible world states.
⢠Operators â change one state into another; cost of applying
operator.
⢠Goal â An (often partial) world state or states; in an agent,
often implemented as a function of state and current percept.
⢠Initial State â The values of attributes that are in effect at the
beginning of a problem before any operators have been
applied.
⢠Note: The states and the operators define a directed (possibly
weighted) graph.
⢠Solution (path) â a sequence of operators leading from the initial
state to a goal state.
⢠Path cost â e.g. sum of distances, number of operators executedâŚ
7. In the real worldIn the real world
⢠The real world is absurdly complex.
â Real state space must be abstracted for problem solving.
â An abstract state is equivalent to a set of real states.
⢠Abstract operator is equivalent to a complex combination of
real actions.
â Robot operator: Move down hall â In practice, this
might involve a complex set of sensor and motor
activities.
⢠An abstract solution is equivalent to a set of real paths that
are solutions in the real world.
8. Example: The 8-puzzleExample: The 8-puzzle
⢠States:
⢠Operators:
⢠Goal Test:
⢠Path Cost:
⢠Constraints:
2 8 3
1 6 4
7 5
Start
2
8
31
6
4
7 5
Goal
3ÂŁ 3 array of integer values
Move tile number i left, right, up, down
= goal state (given)
1 per move
Can only move in a direction if that space is empty
9. Example: The 8-puzzleExample: The 8-puzzle
⢠States:
⢠Operators:
⢠Goal Test:
⢠Path Cost:
⢠Constraints:
2 8 3
1 6 4
7 5
Start
2
8
31
6
4
7 5
Goal
Integer location of tiles (ignore intermediate positions)
Move blank left, right, up, down
= goal state (given)
1 per move
Can only move blank in a direction if it stays in puzzle
11. Missionaries and cannibalsMissionaries and cannibals
⢠Three missionaries and three cannibals are on the
left bank of a river.
⢠There is one canoe which can hold one or two
people.
⢠Find a way to get everyone to the right bank,
without ever leaving a group of missionaries in
one place outnumbered by cannibals in that place.
12. Missionaries and cannibalsMissionaries and cannibals
⢠States: three numbers (i,j,k) representing the
number of missionaries, cannibals, and canoes on
the left bank of the river.
⢠Initial state: (3, 3, 1)
⢠Operators: take one missionary, one cannibal, two
missionaries, two cannibals, one missionary and
one cannibal across the river in a given direction
(I.e. ten operators).
⢠Goal Test: reached state (0, 0, 0)
⢠Path Cost: Number of crossings.
36. Water JugsWater Jugs
⢠You are given:
â a spigot,
â a 3 Gallon jug,
â a 4 Gallon jug.
⢠The goal: Get 2 gallons of water in the 4 gallon jug.
⢠Actions: Filling jugs from spigot, dumping water in jugs
onto ground, dumping 4 gallon into 3 gallon jug until 3
gallon jug is full. Dumping 3 gallon jug into 4 gallon jug
until empty or until 4 gallon is full, etc, etc.
37. Water JugsWater Jugs
⢠States: How full are the
two jugs?
⢠State Representation:
4G = ?
3G = ?
⢠Constraints:
0 ⤠4G ⤠4
0 ⤠3G ⤠3
⢠Initial State:
4G = 0
3G=0
⢠Goal State:
4G=2
38. OperatorsOperators
⢠F3: Fill the 3 Gallon jug from the tap.
⢠F4: Fill the 4 Gallon jug from the tap.
⢠E4: Empty the 4-Gallon jug on the ground.
⢠P43: Pour water from 4G jug into the 3G jug until
3G jug is full.
⢠P34: Pour water from 3G jug into the 4G jug until
4G jug is full or 3G is empty.
39. ⢠F3: Fill the 3 Gallon jug from
the tap.
⢠F4: Fill the 4 Gallon jug from
the tap.
⢠E4: Empty the 4-Gallon jug
on the ground.
⢠P43: Pour water from 4G jug
into the 3G jug until 3G jug
is full.
⢠P34: Pour water from 3G jug
into the 4G jug until 4G jug
is full or 3G is empty.
Partial State Graph
And
Solution Path
41. A Toy Example: A RomanianA Toy Example: A Romanian
HolidayHoliday
⢠State space: Cities in Romania
⢠Initial state: Town of Arad
⢠Goal: Airport in Bucharest
⢠Operators: Drive between cities
⢠Solution: Sequence of cities
⢠Path cost: number of cities, distance, time, fuel
43. Search AlgorithmsSearch Algorithms
⢠Basic Idea: Off-line exploration of state space by generating
successors of already-explored states (also known as
expanding states).
Function GENERAL-SEARCH (problem, strategy)
returns a solution or failure
Initialize the search tree using the initial state of problem
loop do
if there are no candidates for expansion, then return failure
Choose a leaf node for expansion according to strategy
if node contains goal state then return solution
else expand node and add resulting nodes to search tree.
end
Function GENERAL-SEARCH (problem, strategy)
returns a solution or failure
Initialize the search tree using the initial state of problem
loop do
if there are no candidates for expansion, then return failure
Choose a leaf node for expansion according to strategy
if node contains goal state then return solution
else expand node and add resulting nodes to search tree.
end
44. General Search ExampleGeneral Search Example
Arad
Zerind Sibiu Timisoara
Arad Oradea Fagaras Rimnicu Vilcea
Sibiu Bucharest
49. Implementation of Search AlgorithmsImplementation of Search Algorithms
Function GENERAL-SEARCH (problem, queing-fn)
returns a solution or failure
queue ď MAKE-QUEUE (MAKE-NODE(INITIAL-STATE[problem]))
loop do
if queue is empty, then return failure
node ď Remove-Front(queue)
if GOAL-TEST [problem] applied to STATE(node) succeeds
then return node
else queueďQUEING-FN(queue,EXPAND(node,operators[problem]))
end
Function GENERAL-SEARCH (problem, queing-fn)
returns a solution or failure
queue ď MAKE-QUEUE (MAKE-NODE(INITIAL-STATE[problem]))
loop do
if queue is empty, then return failure
node ď Remove-Front(queue)
if GOAL-TEST [problem] applied to STATE(node) succeeds
then return node
else queueďQUEING-FN(queue,EXPAND(node,operators[problem]))
end
Nodes: state, parent-node,operator, depth, path cost
50. States vs. nodesStates vs. nodes
⢠A state is a (representation of a) physical configuration.
⢠A node is a data structure constituting part of a search
tree includes parent, children, depth, path cost g(n).
⢠States do not have parents, children, depth, or path cost!
51. Search StrategiesSearch Strategies
A strategy is defined by picking the order of node expansion.
Strategies are evaluated along the following dimensions:
â completeness â does it always find a solution if one exists?
â optimality â does it always find a least-cost solution?
â time complexity â number of nodes generated/expanded
â space complexity â maximum number of nodes in memory
Time and space complexity are measured in terms of:
b â maximum branching factor of the search tree
d â depth of the least-cost solution
m â maximum depth of the state space (may be infinite)
52. Uninformed Search StrategiesUninformed Search Strategies
Uninformed (blind) strategies use only the
information available in the problem definition.
Informed search techniques which might have
additional information (e.g. a compass).
⢠Breadth-first search
⢠Uniform-cost search
⢠Depth-first search
⢠Depth-limited search
⢠Iterative deepening search