Unit 2 - Introduction to problem solving by searching
Unit 2 - Introduction to problem solving by searching
Unit - 2
Syllabus:
1
Sub Topics
◼ Problem-solving agents
◼ Problem spaces
◼ Problem types
◼ Problem formulation
◼ Example problems
◼ Basic search algorithms
2
Water-jug problem
◼ 1 (x,y) if x<4 -> (4,y) fill the 4-gallon jug
◼ 2 (x,y)if y<3 -> (x,3) fill the 3-gallon jug
◼ 3 (x,y)if x>0 -> (x-d,y) pour some water
out of the 4-gallon jug
◼ 4 (x,y) if y>0 -> (x,y-d) pour some water
out of the 4-gallon jug
◼ 9 (x,y) if x+y <=4 and y>0 -> (x+y,0) pour all the water from 3
gallon jug into the 4-
gallon jug
◼ 10 (x,y) if x+y <=3 and x>0 -> (0,x+y) pour all the water from
4 gallon jug into the 3-gallon jug
4
Necessary things to solve problems
5
Problem-solving agents (goal based)
6
Example: Romania
7
Example: Romania
◼ On holiday in Romania; currently in Arad.
◼ Flight leaves tomorrow from Bucharest
◼ Formulate goal:
◼ be in Bucharest
◼
◼ Formulate problem:
◼ states: various cities
◼ actions: drive between cities
◼
◼ Find solution:
◼ sequence of cities, e.g., Arad, Sibiu, Fagaras, Bucharest
8
Problem types
◼ Deterministic, fully observable → single-state problem
◼ Agent knows exactly which state it will be in; solution is a sequence
11
Example: vacuum world
◼ Single-state, start in #5.
Solution? [Right, Suck]
◼
◼ Sensorless, start in
{1,2,3,4,5,6,7,8} e.g.,
Right goes to {2,4,6,8}
Solution?
◼
12
Example: vacuum world
◼ Sensorless, start in
{1,2,3,4,5,6,7,8} e.g.,
Right goes to {2,4,6,8}
Solution?
[Right,Suck dust,Left,Suck dust]
◼ Possibility
◼ Nondeterministic: Suck may
dirty a clean carpet
◼ Partially observable: location, dirt at current location.
◼ Percept: [L, Clean], i.e., start in #5 or #7
Solution?
13
Example: vacuum world
◼ Sensorless, start in
{1,2,3,4,5,6,7,8} e.g.,
Right goes to {2,4,6,8}
Solution?
[Right,Suck dust,Left,Suck dust]
◼ Possibility
◼ Nondeterministic: Suck may
dirty a clean carpet
◼ Partially observable: location, dirt at current location.
◼ Percept: [L, Clean], i.e., start in #5 or #7
Solution? [Right, if dirt then Suck]
14
Single-state problem formulation
A problem is defined by four items:
15
Selecting a state space
◼ Real world is absurdly complex
→ state space must be abstracted for problem solving
◼ states?
◼ actions?
◼ goal test?
◼ path cost?
17
Vacuum world state space graph
18
Example: The 8-puzzle
◼ states?
◼ actions?
◼ goal test?
◼ path cost?
19
Example: The 8-puzzle
22
Tree search example
23
Tree search example
24
Tree search example
25
Implementation: general tree search
26
Implementation: states vs. nodes
◼ A state is a (representation of) a physical configuration
◼ A node is a data structure constituting part of a search tree
includes state, parent node, action, path cost g(x), depth
27
Search strategies (control)
◼ A search 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?
◼ time complexity: number of nodes generated
◼ space complexity: maximum number of nodes in memory
◼ optimality: does it always find a least-cost solution?
◼
28
Types of searching the state space
30
Breadth-first search
◼ Expand shallowest unexpanded node
◼ Implementation:
◼ fringe is a FIFO queue, i.e., new successors go
at end
◼
31
Breadth-first search
◼ Expand shallowest unexpanded node
◼
◼ Implementation:
◼ fringe is a FIFO queue, i.e., new successors go
at end
◼
32
Breadth-first search
◼ Expand shallowest unexpanded node
◼
◼ Implementation:
◼ fringe is a FIFO queue, i.e., new successors go
at end
◼
33
Breadth-first search
◼ Expand shallowest unexpanded node
◼
◼ Implementation:
◼ fringe is a FIFO queue, i.e., new successors go
at end
◼
34
Properties of breadth-first search
◼ Complete? Yes (if b is finite)
◼
36
Depth-first search
◼ Expand deepest unexpanded node
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
37
Depth-first search
◼ Expand deepest unexpanded node
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
38
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
39
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
40
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
41
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
42
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
43
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
44
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
45
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
46
Depth-first search
◼ Expand deepest unexpanded node
◼
◼ Implementation:
◼ fringe = LIFO queue, i.e., put successors at front
◼
47
Properties of depth-first search
◼ Complete? No: fails in infinite-depth spaces, spaces
with loops
◼ Modify to avoid repeated states along path
→ complete in finite spaces
◼ Time? O(bm) : terrible if m is much larger than d
◼ but if solutions are dense, may be much faster than
breadth-first
◼
49
Iterative deepening search
50
Iterative deepening search l =0
51
Iterative deepening search l =1
52
Iterative deepening search l =2
53
Iterative deepening search l =3
54
Iterative deepening search
◼ Number of nodes generated in a depth-limited search to
depth d with branching factor b:
NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd
◼ For b = 10, d = 5,
◼
◼ NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111
◼ NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
◼ Complete? Yes
◼
◼ Space? O(bd)
◼
57
Bidirectional Search
◼ Two simultaneous search
◼ Forward form initial state
◼ Backward from goal state
◼ Stopping when two searches meet in middle