Title: Uniform Cost Search Method
1Uniform Cost Search Method
2A Z75 T118 S140 T118 S140
O146 S140 O146 L229
O146 L229 R230 F239 O291 L229 R230 F239
O291 R230 F239 O291 M299
3Depth-First Search
- Remedies space limitation of breadth first by
always generating a child of the deepest
unexpanded node.
http//www.rci.rutgers.edu/cfs/472_html/AI_SEARCH
/SearchAnimations.html
4Implementation
- Maintain a list of unexpanded nodes treated as a
LIFO stack (as opposed to FIFO for breadth first - Usually implemented recrsively- with the
recursion stack taking the place of an explicit
node stack - Time complexity is O (bd)-Practically DF is time
limited and BF is space limited - Disadvantage does not terminate if tree infinite
or cycles in graph - Solution cutoff depth (d)
- d small?
- d large?
5Simple Algorithm
Use a stack data structure. 1. Push root node of
tree on the stack. 2. Pop the top node off the
stack. Call this node N. 3. Push children
of node N onto the stack in right-to-left
order (so they are popped in left-to-right
order). 4. Repeat steps 2 and 3 until stack is
empty or goal is reached.
6Depth First Iterative Deepening
- The problem with depth-limited search is
determining an appropriate depth for the search.
We have a search method called depth first
iterative deepening search (IDS) that tries all
possible depth limits 0, 1, 2 , until a
solution is found. - At first it seems wasteful as it is expanding
nodes multiple times. But the overhead is small
in comparison to the growth of an exponential
search tree - For huge search spaces- the depth of the solution
unknown, IDS is preferred.
7Depth First Iterative Deepening
Combines best features of DF and BF
Performs a depth first to depth 1 then starts
over executing a complete depth first to depth 2
and continues to run depth first searches to
successive greater depths until a solution is
found.
Optimal in terms of time and space among all
brute force algorithms on a tree.
8(No Transcript)
9Iterative deepening search L 3
10Initial state
A
A
C
D
E
F
B
Goal state
G
H
I
J
K
L
M
N
O
P
L
Q
R
S
T
U
V
W
X
Y
Z
11We begin with our initial state the node labeled
A. This node is added to the queue. Press space
to continue
Node A is then expanded and removed from the
queue. Press space.
A
A
As this is the 0th iteration of the search, we
cannot search past any level greater than zero.
This iteration now ends, and we begin the 1st
iteration.
Press space to begin the search
Size of Queue 0
Queue Empty
Queue A
Size of Queue 1
Queue Empty
Size of Queue 0
Nodes expanded 0
Current Action Expanding
Current level n/a
Current level 0
Nodes expanded 1
ITERATIVE DEEPENING SEARCH PATTERN (0th ITERATION)
12We again begin with our initial state the node
labeled A. Note that the 1st iteration carries on
from the 0th, and therefore the nodes expanded
value is already set to 1. Press space to continue
Node A is expanded, then removed from the queue,
and the revealed nodes are added to the front .
Press space.
A
A
The search now moves to level one of the node
set. Press space to continue
Node B is expanded and removed from the queue.
Press space.
We now back track to expand node C, and the
process continues. Press space.
C
D
E
F
B
B
C
D
E
F
As this is the 1st iteration of the search, we
cannot search past any level greater than level
one. This iteration now ends, and we begin a 2nd
iteration.
Press space to begin the search
Press space to continue the search
Press space to continue the search
Press space to continue the search
Size of Queue 0
Queue Empty
Queue A
Size of Queue 1
Queue B, C, D, E, F
Size of Queue 5
Queue C, D, E, F
Size of Queue 4
Queue D, E, F
Size of Queue 3
Queue E, F
Size of Queue 2
Queue F
Queue Empty
Size of Queue 1
Size of Queue 0
Nodes expanded 1
Current Action
Current level n/a
Nodes expanded 2
Current level 0
Current Action Expanding
Nodes expanded 3
Current level 1
Current Action Backtracking
Current level 0
Current level 1
Nodes expanded 4
Current Action Expanding
Current Action Backtracking
Current level 0
Current level 1
Nodes expanded 5
Current Action Expanding
Current Action Backtracking
Current level 0
Current level 1
Current Action Expanding
Current Action Backtracking
Current level 0
Current Action Expanding
Current level 1
Current level 0
Current level 1
Nodes expanded 6
Nodes expanded 7
ITERATIVE DEEPENING SEARCH PATTERN (1st ITERATION)
13We again begin with our initial state the node
labeled A. Note that the 2nd iteration carries
on from the 1st, and therefore the nodes
expanded value is already set to 7 (16). Press
space to continue the search
Again, we expand node A to reveal the level one
nodes. Press space.
Node A is removed from the queue and each
revealed node is added to the front of the queue.
Press space.
The search then moves to level one of the node
set. Press space to continue
Node B is expanded and the revealed nodes added
to the front of the queue. Press space to
continue.
A
A
We now move to level two of the node set. Press
space to continue.
After expanding node G we backtrack to expand
node H. The process then continues until goal
state. Press space
C
D
E
F
B
B
C
D
G
H
I
J
K
L
G
H
I
J
K
L
L
L
L
L
Node L is located on the second level and the
search returns a solution on its second
iteration. Press space to end.
Press space to continue the search
Press space to continue the search
Press space to continue the search
Press space to continue the search
Press space to continue the search
Press space to continue the search
Size of Queue 0
Queue Empty
Queue A
Size of Queue 1
Queue B, C, D, E, F
Queue G, H, C, D, E, F
Size of Queue 5
Queue H, C, D, E, F
Queue C, D, E, F
Size of Queue 6
Size of Queue 5
Size of Queue 4
Queue I, J, D, E, F
Size of Queue 5
Queue J, D, E, F
Size of Queue 4
Queue D, E, F
Size of Queue 3
Queue K, L, E, F
Size of Queue 4
Queue L, E, F
Size of Queue 3
Queue Empty
Size of Queue 0
Nodes expanded 7
Current Action
Current level n/a
Current level 0
Nodes expanded 8
Current level 1
Nodes expanded 9
Current level 2
Current Action Expanding
Nodes expanded 10
Current Action Backtracking
Current Action Expanding
Nodes expanded 11
Current Action Backtracking
Current Action Expanding
Nodes expanded 12
Current level 1
Current level 2
Current level 1
Current level 0
Current level 1
Current level 2
Nodes expanded 13
Current Action Backtracking
Current level 1
Current level 2
Current Action Expanding
Nodes expanded 14
Current Action Backtracking
Current level 1
Current level 0
Current level 1
Current Action Expanding
Nodes expanded 15
Current level 2
Nodes expanded 16
Current Action Expanding
Current level 1
Current level 2
Current Action Backtracking
SEARCH FINISHED
ITERATIVE DEEPENING SEARCH PATTERN (2nd ITERATION)
14- Algorithm
- Do DFS to depth 1
- Treat all children of the start node as leafs
- If no solution found, do DFS to depth 2
- Repeat by increasing depth until a solution found
- Start node is at depth 0