510 likes | 1k Views
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
E N D
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 • 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 g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 2 6 D E F G H I J 1 1 0 2 0 2 2 3
Beam-stack Search Algorithm g(n) =V h(n) = V S
Beam-stack Search Algorithm g(n) =V h(n) = V S
Beam-stack Search Algorithm g(n) =V h(n) = V S
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 f(A) = g(A) + h(A) = 2 + 1 = 3 1 A
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 f(A) = g(A) + h(A) = 2 + 1 = 3 1 A
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 2 1 A 2 B
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 2 1 A 2 B
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C layerSize(1) = 3 > w • f(A), f(B) < f(C), prune C • Adjust beam stack to backtrack to C
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C layerSize(1) = 3 > w • f(A), f(B) < f(C), prune C • Adjust beam stack to backtrack to C
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 D 0
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 D E 1 0
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 layerSize(2) = 3 > w D E F 1 1 0
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 D E F 1 1 0
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 D E F 1 1 0
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 D E F G 1 1 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 D E F G f(G) < f(E) 1 1 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 D E F G 1 1 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2 3
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2 3
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2 3
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2 3
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 4 5 6 2 4 D E F G H 1 1 0 2 2 3
Beam-stack Search Algorithm g(n) =V h(n) = V S
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 I 0
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 6 I J 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 6 I J 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 6 I J 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 6 I J 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 6 I J 0 2
Beam-stack Search Algorithm g(n) =V h(n) = V S 2 3 2 1 A 2 B 2 C 2 6 I J 0 2 • 5 is the optimal solution