Download Artificial Intelligence Problem Solving and Search Example

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Natural computing wikipedia , lookup

Signals intelligence wikipedia , lookup

Corecursion wikipedia , lookup

Artificial intelligence wikipedia , lookup

Transcript
Example: Romania
Artificial Intelligence
On holiday in Romania; currently in Arad.
Flight leaves tomorrow from Bucharest. Find a short
route to drive to Bucharest.
Problem Solving and Search
Problem:
Formulate problem:
states: various cities
actions: drive between cities
solution: sequence of cities, e.g., Arad, Sibiu,
Fagaras, Bucharest
Readings:
Chapter 3 of Russell & Norvig.
Artificial Intelligence – p.1/89
Artificial Intelligence – p.2/89
Problem types
Example: Romania
Deterministic, fully observable =⇒ single-state problem
Agent knows exactly which state it will be in; solution
is a sequence
Oradea
71
75
Non-observable =⇒ conformant problem
Agent may have no idea where it is; solution (if any)
is a sequence
Neamt
Zerind
87
151
Iasi
Arad
140
Sibiu
Fagaras
111
Vaslui
80
Rimnicu Vilcea
Timisoara
Nondeterministic and/or partially observable =⇒
contingency problem
92
99
118
Lugoj
Pitesti
97
142
211
70
percepts provide new information about current state
solution is a tree or policy
often interleave search, execution
98
Mehadia
75
Dobreta
146
85
101
86
138
Bucharest
120
Craiova
Hirsova
Urziceni
90
Giurgiu
Eforie
Unknown state space =⇒ exploration problem (“online”)
Artificial Intelligence – p.4/89
Artificial Intelligence – p.3/89
Example: Vacuum World
1
2
3
4
5
6
7
8
Problem Solving
We will start by considering the simpler cases in which the
following holds.
The agent’s world (environment) is representable by a
discrete set of states.
The agent’s actions are representable by a discrete set of
operators.
Single-state,
start in #5.
Solution??
The world is static and deterministic.
Artificial Intelligence – p.5/89
Artificial Intelligence – p.6/89
.
Example: Vacuum World
Example: Vacuum World
1
2
1
2
3
4
3
4
5
6
5
6
7
8
7
8
Single-state, start in #5.
Solution?? [Right, Suck]
Single-state, start in #5.
Solution?? [Right, Suck]
Conformant, start in
{1, 2, 3, 4, 5, 6, 7, 8}
e.g., Right goes to {2, 4, 6, 8}.
Solution??
[Right, Suck, Lef t, Suck]
Conformant, start in
{1, 2, 3, 4, 5, 6, 7, 8}
e.g., Right goes to
{2, 4, 6, 8}.
Solution??
Artificial Intelligence – p.8/89
Contingency, start in #5
Murphy’s Law:
can
Artificial Intelligence – p.7/89
Single-state problem formulation
Example: Vacuum World
A problem is defined by four items:
initial state e.g., “at Arad”
successor function S(x) = set of action–state pairs
e.g., S(Arad) = {hArad → Zerind, Zerindi, . . .}
goal test, can be explicit, e.g., x = “at Bucharest”
implicit, e.g., N oDirt(x)
path cost (additive) e.g., sum of distances, number of
actions executed, etc. Usually given as c(x, a, y), the
step cost from x to y by action a, assumed to be ≥ 0.
A solution is a sequence of actions leading from the
initial state to a goal state
1
2
3
4
5
6
7
8
Single-state, start in #5.
Solution?? [Right, Suck]
Conformant, start in
{1, 2, 3, 4, 5, 6, 7, 8}
e.g., Right goes to {2, 4, 6, 8}.
Solution??
[Right, Suck, Lef t, Suck]
Artificial Intelligence – p.10/89
Artificial Intelligence – p.9/89
Contingency, start in #5
Murphy’s Law:
can
State space graph of vacuum world
Real world is absurdly complex ⇒ state space must be
abstracted for problem solving
R
L
R
L
S
Selecting a State Space
S
R
(Abstract) state = set of real states
R
L
R
L
R
L
(Abstract) action = complex combination of real actions
e.g., “Arad → Zerind” represents a complex set of
possible routes, detours, rest stops, etc.
L
S
S
S
S
R
L
R
L
S
For guaranteed realizability, any real state “in Arad”
must get to some real state “in Zerind”.
Each abstract action should be “easier” than the
original problem!
S
states??
actions??
goal test??
path cost??
(Abstract) solution = set of real paths that are solutions
in the real world
Artificial Intelligence – p.12/89
Artificial Intelligence – p.11/89
Formulating Problem as a Graph
State space graph of vacuum world
In the graph
R
L
R
L
each node represents a possible state;
S
S
R
R
L
R
a node is designated as the initial state;
L
R
L
L
S
S
S
S
R
one or more nodes represent goal states, states in which
the agent’s goal is considered accomplished.
each edge represents a state transition caused by a
specific agent action;
associated to each edge is the cost of performing that
transition.
L
R
L
S
S
states??: integer dirt and robot locations (ignore dirt
amounts)
actions??: Lef t, Right, Suck , N oOp
goal test??: no dirt
path cost??: 1 per action (0 for N oOp)
Artificial Intelligence – p.13/89
Artificial Intelligence – p.14/89
Problem Solving as Search
Search Graph
How do we reach a goal state?
Search space:
set of states reachable from an initial state S0
via a (possibly empty/finite/infinite) sequence of state
transitions.
initial state
3
A
4
4
C
B
7
S
5
To achieve the problem’s goal
2
F
5
goal states
4
the space for a (possibly optimal) sequence of
transitions starting from S0 and leading to a goal state;
There may be several possible ways. Or none!
(in order) the actions associated to each
transition in the identified sequence.
Factors to consider:
search
D
2
E
3
G
execute
Depending on the features of the agent’s world the two steps
cost of finding a path;
above can be interleaved.
cost of traversing a path.
Artificial Intelligence – p.16/89
Artificial Intelligence – p.15/89
Example: The 8-puzzle
Problem Solving as Search
Reduce the original problem to a search problem.
A solution for the search problem is a path initial
state–goal state.
2 8 3
1 6 4
7
5
The solution for the original problem is either
the sequence of actions associated with the path or
the description of the goal state.
It can be generalized to 15-puzzle, 24-puzzle, or
(n2 − 1)-puzzle for n ≥ 6.
Artificial Intelligence – p.17/89
Artificial Intelligence – p.18/89
Example: The 8-puzzle
Example: The 8-puzzle
Go from state S to state G.
configurations of tiles
Operators: move one tile Up/Down/Left/Right
States:
2 8 3
1 6 4
7
5
1 2 3
4
8
7 6 5
(S)
(G)
There are 9! = 362, 880 possible states (all permutations
of {⊓
⊔, 1, 2, 3, 4, 5, 6, 7, 8}).
2 8 3
1 6 4
7
5
There are 16! possible states for 15-puzzle.
Not all states are directly reachable from a given state.
(In fact, exactly half of them are reachable from a given
state.)
D
space for this problem?
Artificial Intelligence – p.20/89
U
R
L
2 8 3
1 6 4
7 5
D
How can an artificial agent represent the states and the state
L
R
R
U
2 8 3
6 4
1 7 5
2 8 3
1
4
7 6 5
L
2 8 3
1 4
7 6 5
D
U
3
2
1 8 4
7 6 5
L
2 8 3
1 6 4
7 5
D
R
2 8 3
1 4
7 6 5
U
2 8 3
1 6
7 5 4
Artificial Intelligence – p.19/89
Formulating the 8-puzzle Problem
each represented by a 3 × 3 array of numbers in
[0 . . . 8], where value 0 is for the empty cell.
States:
2 8 3
1 6 4
7
5
Problem Formulation
1. Choose an appropriate data structure to represent the
world states.
2. Define each operator as a precondition/effects pair
where the
precondition holds exactly in the states the operator
applies to,
effects describe how a state changes into a
successor state by the application of the operator.
2 8 3
becomes A = 1 6 4
7 0 5
3. Specify an initial state.
4. Provide a description of the goal (used to check if a
reached state is a goal state).
Artificial Intelligence – p.21/89
Artificial Intelligence – p.22/89
Formulating the 8-puzzle Problem
Preconditions and Effects
Example: Op (3,2,R)
24 operators of the form Op (r,c,d)
where r, c ∈ {1, 2, 3}, d ∈ {L, R, U, D}.
Operators:
2 8 3
1 6 4
7 0 5
Preconditions:
Effects:
Op (3,2,R)
=⇒
2 8 3
1 6 4
7 5 0
Op (r,c,d) moves the empty space at position (r, c) in
the direction d.
A[3,
( 2] = 0
A[3, 2] ← A[3, 3]
A[3, 3] ← 0
2 8 3
1 6 4
7 0 5
Op (3,2,L)
=⇒
2 8 3
1 6 4
0 7 5
We have 24 operators in this problem formulation . . .
20 too many!
Artificial Intelligence – p.24/89
Artificial Intelligence – p.23/89
A Better Formulation
A Better Formulation
4 operators of the form Op d where
d ∈ {L, R, U, D}.
States:
Operators:
each represented by a pair (A, (i, j)) where:
A is a 3 × 3 array of numbers in [0 . . . 8]
(i, j) is the position of the empty space (0) in the array.
Op d moves the empty space in the direction d.
2 8 3
1 6 4
7 0 5
Op L
=⇒
2 8 3
1 6 4
7
5
2 8 3
1 6 4
0 7 5
2 8 3
becomes ( 1 6 4 , (3, 2))
7 0 5
Artificial Intelligence – p.25/89
Artificial Intelligence – p.26/89
Half states are not reachable?
Example: Op L
Can this be done?
1 2 3
4 5 6
7 8
Preconditions and Effects
any steps
=⇒
1 2 3
4 5 6
8 7
2 8 3
2 8 3
Op L
( 1 6 4 , (3, 2)) =⇒ ( 1 6 4 (3, 1))
7 0 5
0 7 5
Let (r0 , c0 ) be the position of 0 in A.
$1,000 award for anyone who can do it!
Preconditions:
Effects:
Artificial Intelligence – p.28/89
c0 > 1


← A[r0 , c0 − 1]
 A[r0 , c0 ]
A[r0 , c0 − 1] ← 0

 (r , c )
← (r0 , c0 − 1)
0 0
Artificial Intelligence – p.27/89
The Water Jugs Problem
3gl
Half states are not reachable?
4gl
a1
a2
a3
a4
a5
a6
a7
a8
a9
Let the 8-puzzle be represented by (a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 ). We say
(ai , aj ) is an inversion if neither ai nor aj is blank, i < j and ai > aj .
Get exactly 2 gallons of water into the 4gl jug.
1
2 3
1 2 3
4
5 6
4 5 6
7
8
8 7
The first one has 0 inversions and the second has 1.
Artificial Intelligence – p.30/89
The Water Jugs Problem: Operators
F4:
fill jug4 from the pump.
precond:
E4:
J4 < 4
E4-3:
J4 > 0
J3 < 3,
effect:
effect:
J4′ = J4 − (3 − J3 )
J4 < 4,
effect:
J3 ≥ 4 − J4
E3-4:
J3′ = 3,
J4′
= 4,
J3′
= J3 − (4 − J4 )
J3 = 0,
J3 + J4 < 4,
J3 > 0
effect:
0 ≤ J4 ≤ 4
J4 = 0
Goal State Description:
pour water from jug3 into jug4 until jug3 is empty.
precond:
0 ≤ J3 ≤ 3,
Initial State Description
pour water from jug3 into jug4 until jug4 is full.
precond:
...
State Representation: Two real-valued variables, J3 , J4 ,
indicating the amount of water in the two jugs, with the
constraints:
J4′ = 0
J4 ≥ 3 − J3
P3-4:
The Water Jugs Problem
=4
pour water from jug4 into jug3 until jug3 is full.
precond:
# of inversions modulo two remains the same after each move.
Artificial Intelligence – p.29/89
States: Determined by the amount of water in each jug.
effect: J4′
empty jug4 on the ground.
precond:
Claim:
J4′ = J3 + J4 ,
J4 = 2
⇐ non exhaustive description
J3′ = 0
Artificial Intelligence – p.32/89
Artificial Intelligence – p.31/89
The Water Jugs Problem
Real-World Search Problems
Route Finding
(computer networks, airline travel planning system, . . . )
Travelling Salesman Optimization Problem
(package delivery, automatic drills, . . . )
Problem
J_3 = 0
J_4 = 0
Search Graph
F4
J_4 = 2
F3
Layout Problems
(VLSI layout, furniture layout, packaging, . . . )
J_3 = 0
J_4 = 4
J_3 = 0
J_4 = 0
F3
J_3 = 3
J_4 = 0
P4-3
J_3 = 3
J_4 = 4
J_3 = 3
J_4 = 1
...
...
F4
J_3 = 0
J_4 = 4
...
P3-4
Assembly Sequencing
(assembly of electric motors, . . . )
E4
E3-4
Task Scheduling
(manufacturing, timetables, . . . )
J_3 = 2
J_4 = 4
C
B
Artificial Intelligence – p.33/89
Problems whose solution is a description of how to
reach a goal state from the initial state:
n-puzzle
route-finding problem
assembly sequencing
F
E
...
Problem Solution
A graph is a set of notes and edges (arcs) between them.
D
J_3 = 3
J_4 = 3
J_3 = 0
J_4 = 2
More on Graphs
S
F3
J_3 = 2
J_4 = 0
Artificial Intelligence – p.34/89
A
E3-4
J_3 = 0
J_4 = 3
G
A graph is directed if an edge can be traversed only in a
specified direction.
When an edge is directed from ni to nj
it is univocally identified by the pair (ni , nj )
Problems whose solution is simply a description of the
goal state itself:
8-queen problem
scheduling problems
layout problems
ni is a parent (or predecessor ) of nj
nj is a child (or successor ) of ni
Artificial Intelligence – p.36/89
Artificial Intelligence – p.35/89
From Search Graphs to Search Trees
Directed Graphs
C
The set of all possible paths of a graph can be represented
as a tree.
A
B
S
F
A tree is a directed acyclic graph all of whose nodes
have at most one parent.
A root of a tree is a node with no parents.
A leaf is a node with no children.
The branching factor of a node is the number of its
children.
Artificial Intelligence – p.38/89
G
A path, of length k ≥ 0, is a sequence
h(n1 , n2 ), (n2 , n3 ), . . . , (nk , nk+1 )i of k successive edges.
Ex: hi, h(S, D)i, h(S, D), (D, E), (E, B)i
a
For 1 ≤ i < j ≤ k + 1,
Ni is a ancestor of Nj ; Nj is a descendant of Ni .
Graphs can be turned into trees by duplicating nodes and
breaking cyclic paths, if any.
E
D
A graph is cyclic if it has a path starting from and ending
into the same node. Ex: h(A, D), (D, E), (E, A)i
Artificial Intelligence – p.37/89
a
Note that a path of length k
Tree Search Algorithms
> 0 contains k + 1 nodes.
From Graphs to Trees
Basic idea: offline, simulated exploration of state space by generating
successors of already-explored states (a.k.a. expanding states)
function T REE -S EARCH( problem, strategy) returns
a solution, or failure
initialize the search tree using the initial state of problem
To unravel a graph into a tree choose a root node and trace
every path from that node until you reach a leaf node or a
node already in that path.
S
loop do
C
A
there are no candidates for expansion then return failure
choose a leaf node for expansion according to strategy
if the node contains a goal state then return the solution
else expand the node and add the resulting nodes to the search tree
A
D
depth 1
B
if
S
E
F
D
depth 0
E
G
A
G
D
B
D
...
F
E
A
depth 2
C
G
depth 3
depth 4
end
must remember which nodes have been visited
a node may get duplicated several times in the tree
the tree has infinite paths only if the graph has infinite non-cyclic paths.
Artificial Intelligence – p.40/89
Artificial Intelligence – p.39/89
Tree search example
Tree Search Example
Arad
Arad
Sibiu
Arad
Fagaras
Timisoara
Oradea
Rimnicu Vilcea
Arad
Sibiu
Zerind
Lugoj
Arad
Oradea
Arad
Fagaras
Timisoara
Oradea
Rimnicu Vilcea
Arad
Zerind
Lugoj
Arad
Artificial Intelligence – p.42/89
Artificial Intelligence – p.41/89
Implementation: states vs. nodes
Tree Search Example
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(x)
States do not have parents, children, depth, or path cost!
Arad
Sibiu
parent, action
State
Node
5
4
6
1
88
7
3
22
Arad
depth = 6
Oradea
Fagaras
Timisoara
Oradea
Rimnicu Vilcea
Arad
Zerind
Lugoj
Arad
Oradea
g=6
state
The E XPAND function creates new nodes, filling in the various
fields and using the S UCCESSOR F N of the problem to create
the corresponding states.
Artificial Intelligence – p.44/89
Artificial Intelligence – p.43/89
Uninformed Search Strategies
Uninformed strategies use only the information available
in the problem definition
Breadth-first search
Uniform-cost search
Depth-first search
Depth-limited search
Iterative deepening search
Search 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?
time complexity—number of nodes
generated/expanded
space complexity—maximum number of nodes in
memory
optimality—does it always find a least-cost solution?
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 ∞)
Artificial Intelligence – p.46/89
Artificial Intelligence – p.45/89
Breadth-First Search
Breadth-First Search
Expand shallowest unexpanded node
Implementation: fringe is a FIFO queue, i.e., new
successors go at end
Expand shallowest unexpanded node
Implementation: fringe is a FIFO queue, i.e., new
successors go at end
A
A
B
D
C
E
F
B
G
D
Artificial Intelligence – p.48/89
C
E
F
G
Artificial Intelligence – p.47/89
Breadth-First Search
Breadth-First Search
Expand shallowest unexpanded node
Implementation: fringe is a FIFO queue, i.e., new
successors go at end
Expand shallowest unexpanded node
Implementation: fringe is a FIFO queue, i.e., new
successors go at end
A
A
B
D
C
E
F
B
G
D
Artificial Intelligence – p.50/89
Properties of Breadth-First Search
C
E
F
G
Artificial Intelligence – p.49/89
Properties of Breadth-First Search
Complete??
Complete?? Yes (if b is finite)
Time??
Artificial Intelligence – p.52/89
Artificial Intelligence – p.51/89
Properties of Breadth-First Search
Properties of Breadth-First Search
Complete?? Yes (if b is finite)
Time?? 1 + b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1 ), i.e.,
exp. in d
Space?? O(bd+1 ) (keeps every node in memory)
Optimal??
Complete?? Yes (if b is finite)
Time?? 1 + b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1 ), i.e.,
exp. in d
Space??
Artificial Intelligence – p.54/89
Artificial Intelligence – p.53/89
Properties of Breadth-First Search
Properties of Breadth-First Search
Complete?? Yes (if b is finite)
Time?? 1 + b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1 ), i.e.,
exp. in d
Space?? O(bd+1 ) (keeps every node in memory)
Optimal?? Yes (if cost = 1 per step); not optimal in general
Space?? It is the big problem; can easily generate nodes at
10MB/sec so 24hrs = 860GB.
Complete?? Yes (if b is finite)
Time?? 1 + b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1 ), i.e.,
exp. in d
Space?? O(bd+1 ) (keeps every node in memory)
Optimal?? Yes (if cost = 1 per step); not optimal in general
Space??
Artificial Intelligence – p.56/89
Artificial Intelligence – p.55/89
Depth-First Search
Uniform-Cost Search
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
Expand least-cost unexpanded node
Implementation: fringe = queue ordered by path cost
Equivalent to breadth-first if step costs all equal
Complete?? Yes, if step cost ≥ ǫ
Time?? # of nodes with g ≤ cost of optimal solution,
∗
O(b⌈C /ǫ⌉ ) where C ∗ is the cost of the optimal solution
Space?? # of nodes with g ≤ cost of optimal solution,
∗
O(b⌈C /ǫ⌉ )
Optimal?? Yes—nodes expanded in increasing order of g(n)
B
C
D
H
E
J
I
F
K
L
G
N
M
O
Artificial Intelligence – p.57/89
Artificial Intelligence – p.58/89
Depth-First Search
Depth-First Search
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
B
D
H
E
I
B
C
J
F
K
L
D
G
M
N
C
H
O
Artificial Intelligence – p.60/89
E
I
J
F
K
L
G
M
N
O
Artificial Intelligence – p.59/89
Depth-First Search
Depth-First Search
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
B
D
H
E
I
B
C
J
F
K
D
G
M
L
N
C
E
H
O
I
J
F
K
L
G
M
N
O
Artificial Intelligence – p.62/89
Artificial Intelligence – p.61/89
Depth-First Search
Depth-First Search
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
B
B
D
C
H
D
H
E
I
J
F
K
L
C
E
I
J
F
K
L
G
M
N
O
G
M
N
O
Artificial Intelligence – p.64/89
Artificial Intelligence – p.63/89
Depth-First Search
Depth-First Search
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
B
D
H
E
I
B
C
J
F
K
L
D
G
M
N
C
H
O
E
I
J
F
K
L
G
N
M
O
Artificial Intelligence – p.66/89
Artificial Intelligence – p.65/89
Depth-First Search
Depth-First Search
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
B
C
D
H
E
I
J
B
F
K
L
G
M
N
C
D
H
O
Artificial Intelligence – p.68/89
E
I
J
F
K
L
G
M
N
O
Artificial Intelligence – p.67/89
Properties of depth-first search
Depth-First Search
Complete??
Expand deepest unexpanded node
Implementation: fringe = LIFO queue, i.e., put successors at
front
A
B
C
D
H
Artificial Intelligence – p.70/89
E
I
J
F
K
L
G
M
N
O
Artificial Intelligence – p.69/89
Properties of depth-first search
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
Space??
Complete?? No: fails in infinite-depth spaces, spaces with
loops Modify to avoid repeated states along path ⇒
complete in finite spaces
Time??
Artificial Intelligence – p.72/89
Artificial Intelligence – p.71/89
Properties of depth-first search
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
Space?? O(bm), i.e., linear space!
Optimal?? No
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
Space?? O(bm), i.e., linear space!
Optimal??
Artificial Intelligence – p.74/89
Iterative Deepening Search
Artificial Intelligence – p.73/89
Depth-Limited Search
= depth-first search with depth limit l, i.e., nodes at depth l
have no successors
function Iterative-Deepening-Search (problem) return soln
for depth from 0 to MAX-INT do
result := Depth-Limited-Search(problem, depth)
if (result != cutoff) then return result
end for
end function
function Depth-Limited-Search (problem, limit) return soln/fail/cutoff
return Recursive-DLS(Make-Node(Initial-State(problem)), problem, limit)
end function
function Recursive-DLS (node, problem, limit) return soln/fail/cutoff
cutoff-occurred := false;
if (Goal-State(problem, State(node))) then return node;
else if (Depth(node) == limit) then return cutoff;
else for each successor in Expand(node, problem) do
result := Recursive-DLS(successor, problem, limit)
if (result == cutoff) then cutoff-occurred := true;
else if (result != fail) then return result;
end for
if (cutoff-occurred) then return cutoff; else return fail;
end function
Artificial Intelligence – p.76/89
Artificial Intelligence – p.75/89
Iterative deepening search l = 1
Iterative deepening search l = 0
Limit = 0
Limit = 1
A
A
B
C
A
B
C
A
A
A
B
C
B
C
Artificial Intelligence – p.78/89
Artificial Intelligence – p.77/89
Iterative deepening search l = 3
Limit = 3
A
A
B
C
D
H
E
I
J
F
K
L
G
M
A
B
N
C
D
O
H
E
I
J
F
K
L
G
M
N
C
D
O
H
E
I
J
B
F
K
Limit = 2
A
B
L
G
M
N
C
D
O
H
E
I
Iterative deepening search l = 2
J
F
K
L
G
M
A
A
B
N
D
C
E
F
G
D
C
E
A
A
C
B
C
B
C
B
H
E
I
J
F
K
L
G
M
N
D
O
H
E
I
J
F
K
A
H
C
E
I
J
N
O
H
E
I
J
F
K
L
G
M
N
C
D
O
H
E
I
J
M
L
G
N
D
O
H
E
I
M
N
C
D
O
H
E
I
J
J
F
F
G
D
C
E
F
G
A
C
A
B
C
A
B
C
B
K
L
E
F
G
D
E
F
G
D
E
F
G
D
C
E
F
G
G
M
B
F
K
E
N
O
A
B
F
K
L
G
A
B
F
K
M
D
A
B
D
L
G
D
B
C
D
D
G
C
A
B
B
F
A
B
O
A
A
A
B
L
G
M
N
C
D
O
H
E
I
J
F
K
L
G
M
N
O
Artificial Intelligence – p.80/89
Artificial Intelligence – p.79/89
Properties of iterative deepening search
Complete?? Yes
Time??
Properties of iterative deepening search
Complete??
Artificial Intelligence – p.82/89
Properties of iterative deepening search
Complete?? Yes
Time?? (d + 1)b0 + db1 + (d − 1)b2 + . . . + bd = O(bd )
Space?? O(bd)
Optimal??
Artificial Intelligence – p.81/89
Properties of iterative deepening search
Complete?? Yes
Time?? (d + 1)b0 + db1 + (d − 1)b2 + . . . + bd = O(bd )
Space??
Artificial Intelligence – p.84/89
Artificial Intelligence – p.83/89
Summary of Algorithms
Criterion
Complete?
Properties of iterative deepening search
Breadth-
Uniform-
Depth-
Depth-
Iterative
First
Cost
First
Limited
Deepening
Yes∗
Yes∗
No
Yes, if l ≥ d
Yes
m
b
l
bd
bm
bl
bd
No
No
Yes
d+1
Time
b
Space
bd+1
Optimal?
Yes∗
b
⌈C ∗ /ǫ⌉
b⌈C
∗
/ǫ⌉
Yes∗
b
Complete?? Yes
Time?? (d + 1)b0 + db1 + (d − 1)b2 + . . . + bd = O(bd )
Space?? O(bd)
Optimal?? Yes, if step cost = 1 Can be modified to explore
uniform-cost tree
Numerical comparison for b = 10 and d = 5, solution at far right:
N (IDS)
=
50 + 400 + 3, 000 + 20, 000 + 100, 000 = 123, 450
N (BFS)
=
10 + 100 + 1, 000 + 10, 000 + 100, 000 + 999, 990 = 1, 111, 100
Artificial Intelligence – p.85/89
Artificial Intelligence – p.86/89
Summary
Repeated states
Problem formulation usually requires abstracting away
real-world details to define a state space that can
feasibly be explored
Failure to detect repeated states can turn a linear problem
into an exponential one!
Variety of uninformed search strategies
Iterative deepening search uses only linear space and
not much more time than other uninformed algorithms
A
A
B
C
B
C
B
C
C
C
D
Artificial Intelligence – p.88/89
Artificial Intelligence – p.87/89
Example: Romania
For a given strategy, what is the order of nodes to be generated (or stored), and expanded?
With or without checking duplicated nodes?
Oradea
71
Breadth-first
Depth-first
Uniform-cost
Depth-limited
75
Neamt
Zerind
Iasi
Arad
140
Sibiu
92
99
Fagaras
118
Vaslui
80
Rimnicu Vilcea
Timisoara
111
Iterative-deepening
87
151
Lugoj
Pitesti
97
142
211
70
98
Mehadia
75
Dobreta
146
85
101
Bucharest
120
Craiova
Hirsova
Urziceni
86
138
90
Giurgiu
Eforie
Artificial Intelligence – p.89/89