This example is from MIT OCW Artificial Intelligence.
Consider the tree shown
below. The numbers on the arcs are the arc lengths; the numbers
near
states B, C, and D are the heuristic estimates; all other states have
a heuristic estimate
of
0.
Assume
that the children of a node are expanded in alphabetical order when
no other order
is
specified by the search, and that the goal is state J . No visited
or expanded lists are used.
What
order would the states be expanded by each type of search. Write only
the sequence
of
states expanded by each search.
Breadth
First
Setep
1:
Visited:
A
Queue:
B, C, D
Step
2:
Visited:
A, B
Queue:
C, D, E, F G
Step
3:
Visited:
A, B, C
Queue:
D, E, F G, H
Step
4:
Visited:
A, B, C, D
Queue:
E, F, G, H, I, J
Step
5:
Visited:
A, B, C, D, E
Queue:
F, G, H, I, J
Step
6:
Visited:
A, B, C, D, E, F
Queue:
G, H, I, J
Step
7:
Visited:
A, B, C, D, E, F, G
Queue:
H, I, J
Step
8:
Visited:
A, B, C, D, E, F, G, H
Queue:
I, J
Step
9:
Visited:
A, B, C, D, E, F, G, H, I
Queue:
J
Step
10:
Visited:
A, B, C, D, E, F, G, H, I, J
Queue:
Path
for BFS: A, B, C, D, E, F, G, H, I, J
Depth
First
Step
1:
Visited:
A
Stack:
B, C, D
Step
2:
Visited:
A, B
Stack:
E, F, G, C, D
Step
3:
Visited:
A, B, E
Stack:
F, G, C, D
Step
4:
Visited:
A, B, E, F
Stack:
G, C, D
Step
5:
Visited:
A, B, E, F, G
Stack:
C, D
Step
6:
Visited:
A, B, E, F, G, C
Stack:
H, D
Step
7:
Visited:
A, B, E, F, G, C, H
Stack:
D
Step
8:
Visited:
A, B, E, F, G, C, H, D
Stack:
I, J
Step
9:
Visited:
A, B, E, F, G, C, H, D, I
Stack:
J
Step
10:
Visited:
A, B, E, F, G, C, H, D, I, J
Stack:
Path
for DFS: A, B, E, F, G, C, H, D, I, J
Best-First
Node
|
h(n)
|
A
|
0
|
B
|
1
|
C
|
6
|
D
|
3
|
E
|
0
|
F
|
0
|
G
|
0
|
H
|
0
|
I
|
0
|
J
|
0
|
Step
1:
Open:
A
Close:
Step
2:
Open:
B, C, D
Close:
A
h(B)
= 1 ==> the lowest
h(C)
= 6
h(D)
= 3
Step
3:
Open:
C, D, E, F, G
Close:
A, B
h(C)
= 6
h(D)
= 3
h(E)
= 0 ==> the lowest
h(F)
= 0
h(G)
= 0
Step
4:
Open:
C, D, F, G
Close:
A, B, E
h(C)
= 6
h(D)
= 3
h(F)
= 0 ==> the lowest
h(G)
= 0
Step
5:
Open:
C, D, G
Close:
A, B, E, F
h(C)
= 6
h(D)
= 3
h(G)
= 0 ==> the lowest
Step
6:
Open:
C, D,
Close:
A, B, E, F, G
h(C)
= 6
h(D)
= 3 ==> the lowest
Step
7:
Open:
C, I, J
Close:
A, B, E, F, G, D
h(C)
= 6
h(I)
= 0 ==> the lowest
h(J)
= 0
Step
8:
Open:
C, J
Close:
A, B, E, F, G, D, I
h(C)
= 6
h(J)
= 0 ==> the lowest
Step
9:
Open:
C
Close:
A, B, E, F, G, D, I, J
Reach
the Goal J
Path
for Best-First: A, B, E, F, G, D, I, J
A*-Search
Node
|
h(n)
|
A
|
0
|
B
|
1
|
C
|
6
|
D
|
3
|
E
|
0
|
F
|
0
|
G
|
0
|
H
|
0
|
I
|
0
|
J
|
0
|
Step
1:
Open:
A
Close:
Step
2:
Open:
B, C, D
Close:
A
f(A->B)
= h(B) + g(A->B) = 1 + 5 = 6 ==> the lowest
f(A->C)
= h(C) + g(A->C) = 6 + 2 = 8
f(A->D)
= h(D) + g(A->D) = 3 + 4 = 7
Step
3:
Open:
C, D, E, F, G
Close:
A, B
f(A->B->E)
= f(A->B) + h(E) + g(B->E) = 6 + 0 + 6 = 12
f(A->B->F)
= f(A->B) + h(F) + g(B->F) = 6 + 0 + 3 = 9
f(A->B->G)
= f(A->B) + h(G) + g(B->G) = 6 + 0 + 4 = 10
f(A->C)
= h(C) + g(A->C) = 6 + 2 = 8
f(A->D)
= h(D) + g(A->D) = 3 + 4 = 7 ==> the lowest
Step
4:
Open:
C, E, F, G, I, J
Close:
A, B, D
f(A->D->I)
= f(A->D) + h(I) + g(D->I) = 7 + 0 + 6 = 13
f(A->D->J)
= f(A->D) + h(J) + g(D->J) = 7 + 0 + 3 = 10 ==> the lowest
Step
5:
Open:
C, E, F, G, J
Close:
A, B, D, J
Reach
the Goal J
Path
for A*:
A, B, D, J