beam-stack search: integrating backtracking with beam search

Post on 23-Feb-2016

69 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

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

top related