Upload
lona
View
59
Download
0
Embed Size (px)
DESCRIPTION
Beam-Stack Search: Integrating Backtracking with Beam Search. Ring Zhou and Eric A. Hansen Presented by Paul Gross. Beam-Stack Search Overview. Complete, anytime algorithm O( dw ) Memory Complexity d = depth of optimal solution, w = beam width Uses novel beam stack structure - PowerPoint PPT Presentation
Citation preview
BEAM-STACK SEARCH:INTEGRATING BACKTRACKING WITH BEAM SEARCH
Ring Zhou and Eric A. HansenPresented by Paul Gross
Beam-Stack Search Overview Complete, anytime algorithm O(dw) Memory Complexity
d = depth of optimal solution, w = beam width Uses novel beam stack structure
Stores most promising, unexpanded nodes at each level
Bounds, admissibly prunes sub-optimal nodes Outperforms
Breadth-first Branch and Bound (BFBnB) Divide and Conquer Solution Reconstruction implementation
Depth-first Iterative Deepening A* (DFIDA*) Iterative-Deepening A* heuristic implementation
Beam Search Algorithm Breadth-first approach
Bound level fringe size Size is beam width (w)
Branches most w promising nodes at each level
Width bound reduces complexity Time, Memory: O(wd)
Incomplete due to inadmissible pruning rule
w = 2
...
Goal State
Making Beam Search Complete Beam-Stack search
Builds off Breadth-first Beam Search Prune layers by beam width Each layer expands at most w nodes
Expand layers by f(n) bounds f(n) = g(n) + h(n) as in A*, where h(n) admissible
Beam Stack stores f(n) ranges for each layer Successor layer nodes have f(n) value in range
Backtracking pruned nodes by shifting f(n) ranges Provides completeness
Beam-stack Search Algorithm
Beam Stack
Level Open Closed
Current Node
Beam Width (w)Upper f(n) Bound
S
Current Level
Best Goal
A B C
2 2 3
4 65 2 62 4
D E F G H I J
1
0 1 1 2 2 0 2
2 2
g(n) = Vh(n) =
V
3
Beam-stack Search Algorithm
Beam Stack
[ 0 , 10 )
Level Open Closed
Current Node
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level
Best Goal
g(n) = Vh(n) =
V
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
g(n) = Vh(n) =
V
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
g(n) = Vh(n) =
V
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
f(A) = g(A) + h(A) = 2 + 1 = 3
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1 A
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
f(A) = g(A) + h(A) = 2 + 1 = 3
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1 A
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1 AB
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1 AB
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
Beam-stack Search Algorithm
Beam Stack0 10
Level Open Closed0 S1 ABC
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
layerSize(1) = 3> w
f(A), f(B) < f(C), prune C Adjust beam stack to
backtrack to C
Beam-stack Search Algorithm
Beam Stack0 5
Level Open Closed0 S1 AB
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 0
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
layerSize(1) = 3> w
f(A), f(B) < f(C), prune C Adjust beam stack to
backtrack to C
Beam-stack Search Algorithm
Beam Stack0 50 10
Level Open Closed0 S1 B A2
Current Node
A
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
Beam-stack Search Algorithm
Beam Stack0 50 10
Level Open Closed0 S1 B A2 D
Current Node
A
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
Beam-stack Search Algorithm
Beam Stack0 50 10
Level Open Closed0 S1 B A2 DE
Current Node
A
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
Beam-stack Search Algorithm
Beam Stack0 50 10
Level Open Closed0 S1 B A2 DEF
Current Node
A
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
layerSize(2) = 3> w
Beam-stack Search Algorithm
Beam Stack0 50 9
Level Open Closed0 S1 B A2 DE
Current Node
A
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
Beam-stack Search Algorithm
Beam Stack0 50 9
Level Open Closed0 S1 AB2 DE
Current Node
B
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
Beam-stack Search Algorithm
Beam Stack0 50 9
Level Open Closed0 S1 AB2 DE
Current Node
B
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
Beam-stack Search Algorithm
Beam Stack0 50 9
Level Open Closed0 S1 AB2 DEG
Current Node
B
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
f(G) < f(E)
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed0 S1 AB2 DG
Current Node
B
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed0 S1 AB2 DG
Current Node
B
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 1
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed0 S1 AB2 G D
Current Node
D
Beam Width (w)
2
Upper f(n) Bound
10S
Current Level 2
Best Goal
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed0 S1 AB2 G D
Current Node
D
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 2
Best Goal D
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed0 S1 AB2 DG
Current Node
G
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 2
Best Goal D
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
3
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed0 S1 AB2 DG
Current Node
G
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 2
Best Goal D
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
3
Beam-stack Search Algorithm
Beam Stack0 50 8
Level Open Closed
Current Node
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level
Best Goal D
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
3
Beam-stack Search Algorithm
Beam Stack0 5
Level Open Closed
Current Node
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level
Best Goal D
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
3
Beam-stack Search Algorithm
Beam Stack5 6
Level Open Closed
Current Node
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level
Best Goal D
A
2
1
g(n) = Vh(n) =
V
B2
2 C
3
2
4
D0
5
E1
6
F1
2
G2
4
H2
3
Beam-stack Search Algorithm
Beam Stack5 6
Level Open Closed0 S1
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 0
Best Goal D
g(n) = Vh(n) =
V
Beam-stack Search Algorithm
Beam Stack5 6
Level Open Closed0 S1
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 0
Best Goal D
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
Beam-stack Search Algorithm
Beam Stack5 6
Level Open Closed0 S1 C
Current Node
S
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 0
Best Goal D
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
Beam-stack Search Algorithm
Beam Stack5 50 6
Level Open Closed0 S1 C2
Current Node
C
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 1
Best Goal D
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
Beam-stack Search Algorithm
Beam Stack5 50 6
Level Open Closed0 S1 C2 I
Current Node
C
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 1
Best Goal D
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
6
J2
Beam-stack Search Algorithm
Beam Stack5 50 6
Level Open Closed0 S1 C2 I
Current Node
I
Beam Width (w)
2
Upper f(n) Bound
6S
Current Level 2
Best Goal D
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
6
J2
Beam-stack Search Algorithm
Beam Stack5 50 6
Level Open Closed0 S1 C2 I
Current Node
I
Beam Width (w)
2
Upper f(n) Bound
5S
Current Level 2
Best Goal I
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
6
J2
Beam-stack Search Algorithm
Beam Stack5 50 6
Level Open Closed0 S1 C2 I
Current Node
I
Beam Width (w)
2
Upper f(n) Bound
5S
Current Level 2
Best Goal I
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
6
J2
Beam-stack Search Algorithm
Beam Stack5 5
Level Open Closed0 S1 C2 I
Current Node
I
Beam Width (w)
2
Upper f(n) Bound
5S
Current Level 2
Best Goal I
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
6
J2
Beam-stack Search Algorithm
Beam Stack
Level Open Closed0 S1 C2 I
Current Node
I
Beam Width (w)
2
Upper f(n) Bound
5S
Current Level 2
Best Goal I
g(n) = Vh(n) =
V
A B C
2 2 3
1 2 2
2
I0
6
J2
5 is the optimal solution