BEAMSTACK SEARCH INTEGRATING BACKTRACKING WITH BEAM SEARCH Ring
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 (BFBn. B) Divide and Conquer Solution Reconstruction implementation � Depth-first Iterative Deepening A* (DFIDA*)
Beam Search Algorithm Breadth-first approach � Bound Size w=2 level fringe 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 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 f(n) layers by f(n) bounds = 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 Provides pruned nodes by shifting f(n) ranges completeness
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 3 2 2 B 2 C Current Level 4 5 6 2 4 2 6 D E F G H I J 0 1 1 2 0 2 3 2 Current Node Best Goal Level Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V Beam Width (w) S Upper f(n) Bound Beam Stack [0, 10 ) 2 10 Current Node Current Level Best Goal Level Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V Beam Width (w) S Upper f(n) Bound Beam Stack 0 10 2 10 Current Node S Current Level 0 Best Goal Level Open 0 S Closed
Beam-stack Search Algorithm g(n) = V h(n) = V Beam Width (w) S Upper f(n) Bound Beam Stack 0 10 2 10 Current Node S Current Level 0 Best Goal Level 0 1 Open Closed S
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A f(A) = g(A) + h(A) =2+1 =3 Upper f(n) Bound Beam Stack 0 10 2 10 Current Node S Current Level 0 Best Goal Level 0 1 Open Closed S
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A f(A) = g(A) + h(A) =2+1 =3 Upper f(n) Bound Beam Stack 0 10 2 10 Current Node S Current Level 0 Best Goal Level Open 0 1 Closed S A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A 2 2 B Upper f(n) Bound Beam Stack 0 10 2 10 Current Node S Current Level 0 Best Goal Level Open 0 1 Closed S A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A 2 2 B Upper f(n) Bound Beam Stack 0 10 2 10 Current Node S Current Level 0 Best Goal Level Open 0 1 Closed S AB
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A Upper f(n) Bound Beam Stack 2 2 B 3 2 C 0 10 2 10 Current Node S Current Level 0 Best Goal Level Open 0 1 Closed S AB
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A Upper f(n) Bound Beam Stack 2 3 2 B 2 C layer. Size(1) = 3 >w f(A), f(B) < f(C), prune C Adjust beam stack to backtrack to C 0 10 2 10 Current Node S Current Level 0 Best Goal Level Open 0 1 Closed S ABC
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A Upper f(n) Bound Beam Stack 2 3 2 B 2 C layer. Size(1) = 3 >w f(A), f(B) < f(C), prune C Adjust beam stack to backtrack to C 0 5 2 10 Current Node S Current Level 0 Best Goal Level Open 0 1 Closed S AB
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A Upper f(n) Bound Beam Stack 2 2 B 3 2 C 0 5 0 10 2 10 Current Node A Current Level 1 Best Goal Level Open 0 1 2 Closed S B A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A Upper f(n) Bound Beam Stack 2 2 B 3 2 C 0 5 0 10 4 2 10 Current Node A Current Level 1 Best Goal D Level 0 0 Open Closed S 1 B 2 D A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V S 2 1 A Upper f(n) Bound Beam Stack 2 2 B 3 2 C 0 5 0 10 4 5 2 10 Current Node A Current Level 1 Best Goal D E Level 0 1 0 Open Closed S 1 B 2 DE A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 2 2 B 4 5 6 D E F 0 1 1 3 2 C 0 5 0 10 2 10 Current Node A Current Level 1 Best Goal layer. Size(2) = 3 >w Level Open 0 Closed S 1 B 2 DEF A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 2 2 B 3 2 C 0 5 0 9 4 5 6 D E F Level 0 1 1 0 2 10 Current Node A Current Level 1 Best Goal Open Closed S 1 B 2 DE A
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 2 2 B 3 2 C 0 5 0 9 2 10 Current Node B Current Level 1 4 5 6 D E F Level 0 1 1 0 S 1 AB Best Goal 2 Open DE Closed
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 2 2 B 3 2 C 0 5 0 9 2 10 Current Node B Current Level 1 4 5 6 2 D E F G Level 0 1 1 2 0 S 1 AB Best Goal 2 Open DE Closed
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 2 2 B 4 5 6 2 D E F G 0 1 1 2 3 2 C 0 5 0 9 2 10 Current Node B Current Level 1 Best Goal f(G) < f(E) Level Open Closed 0 S 1 AB 2 DEG
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 2 2 B 3 2 C 0 5 0 8 2 10 Current Node B Current Level 1 4 5 6 2 D E F G Level 0 1 1 2 0 S 1 AB Best Goal 2 Open DG Closed
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 0 5 0 8 4 2 2 10 Current Node B Current Level 1 Best Goal Level Open Closed 0 S 1 AB 2 DG
Beam-stack Search Algorithm Beam Width (w) g(n) = V h(n) = V Upper f(n) Bound Beam Stack S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 0 5 0 8 4 2 2 10 Current Node D Current Level 2 Best Goal Level Open Closed 0 S 1 AB 2 G D
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 0 5 0 8 4 2 Level Current Node D Current Level 2 Best Goal D Open Closed 0 S 1 AB 2 G D
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 0 5 0 8 4 2 Level Current Node G Current Level 2 Best Goal D Open Closed 0 S 1 AB 2 DG
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 0 5 0 8 4 2 Level Current Node G Current Level 2 Best Goal D Open Closed 0 S 1 AB 2 DG
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 0 5 0 8 4 2 Current Node Current Level Best Goal Level Open D Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 0 4 2 5 Current Node Current Level Best Goal Level Open D Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 3 2 2 B 2 C 4 5 6 2 D E F G H 0 1 1 2 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 4 2 6 Current Node Current Level Best Goal Level Open D Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 6 Current Node S Current Level 0 Best Goal D Level Open 0 S 1 Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 6 Level 0 1 Current Node S Current Level 0 Best Goal D Open Closed S
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 6 Level Current Node S Current Level 0 Best Goal D Open 0 1 Closed S C
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 5 0 6 2 Current Node C Current Level 1 Best Goal D I Level 0 0 S 1 C 2 Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 5 0 6 Current Node C Current Level 1 Best Goal D 2 6 I J Level 0 2 0 S 1 C 2 Open I Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 6 5 5 0 6 Current Node I Current Level 2 Best Goal D 2 6 I J Level 0 2 0 S 1 C 2 I Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 5 5 5 0 6 Current Node I Current Level 2 Best Goal I 2 6 I J Level 0 2 0 S 1 C 2 I Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 2 C Beam Width (w) 2 Upper f(n) Bound Beam Stack 5 5 5 0 6 Current Node I Current Level 2 Best Goal I 2 6 I J Level 0 2 0 S 1 C 2 I Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 5 5 2 C 5 Current Node I Current Level 2 Best Goal I 2 6 I J Level 0 2 0 S 1 C 2 I Open Closed
Beam-stack Search Algorithm g(n) = V h(n) = V S 2 1 A 2 2 B 3 Beam Width (w) 2 Upper f(n) Bound Beam Stack 5 2 C Current Node I Current Level 2 Best Goal I 2 6 I J Level 0 2 0 S 1 C 2 I 5 is the optimal solution Open Closed
- Slides: 42