Download - BFS Slides

Transcript
Page 1: BFS Slides

Breadth First Search: an example

S

A

G H

EC

F

DB

Take S to be the source vertex.

Adjacancy Lists:

AS = {A,C,G}

AA = {B, S}

AB = {A}

AC = {D,E, F, S}

AD = {C}

AE = {C,H}

AF = {C,G}

AG = {F,H,S}

AH = {E,G}

Page 2: BFS Slides

Breadth First Search: the algorithm

Given G(V,E) represented in terms of adjacency lists Av and a distinguishedsource vertex s ∈ V , find d(v) ≡ d(s, v) for all v ∈ V .

1 Set things up:

d(v)←∞ for all v 6= s ∈ V

d(s)← 0 and Q← {s}

2 Main loop: continues until the queue is empty

While ( Q 6= ∅ ) {Pop a vertex v off the left end of Q.

Examine each of v’s neighbours

For each w ∈ Av {If( d(w) =∞ ) then {

Set d(w) and get ready to process w’s neighbours

d(w)← d(v) + 1Push w on to the right end of Q.

}}

}

Page 3: BFS Slides

Breadth First Search: in action

S

0

A

G H

EC

F

DB

Yellow vertex is the sourcevertex, S.

v w Action Queue

– – Start {S}

Page 4: BFS Slides

Breadth First Search: in action

S

0

1

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AS = {A,C,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}

Page 5: BFS Slides

Breadth First Search: in action

S

0

1 1

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AS = {A,C,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}

Page 6: BFS Slides

Breadth First Search: in action

S

0

1 1

1

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AS = {A,C,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}

Page 7: BFS Slides

Breadth First Search: in action

S

0

1 1

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AA = {B,S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}

Page 8: BFS Slides

Breadth First Search: in action

S

0

1 1

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AA = {B,S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}

Page 9: BFS Slides

Breadth First Search: in action

S

0

1 1

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AC = {D,E, F, S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}

Page 10: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AC = {D,E, F, S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}

Page 11: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AC = {D,E, F, S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}

Page 12: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AC = {D,E, F, S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}

Page 13: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AG = {F,H,S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}

Page 14: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AG = {F,H,S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}

Page 15: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AG = {F,H,S}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}

Page 16: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AB = {A}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}

Page 17: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AD = {C}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}

Page 18: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AE = {C,H}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}

Page 19: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AE = {C,H}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}E H none {F,H}

Page 20: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AF = {C,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}E H none {F,H}F C none {H}

Page 21: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AF = {C,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}E H none {F,H}F C none {H}F G none {H}

Page 22: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AH = {E,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}E H none {F,H}F C none {H}F G none {H}H E none {}

Page 23: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

Yellow vertex is v, red is w.

Av = AH = {E,G}

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}E H none {F,H}F C none {H}F G none {H}H E none {}H G none {}

Page 24: BFS Slides

Breadth First Search: in action

S

0

1 1

2

2

2

2

1

2

A

G H

EC

F

DB

v w Action Queue

– – Start {S}S A set d(A) = 1 {A}S C set d(C) = 1 {A,C}S G set d(G) = 1 {A,C,G}A B set d(B) = 2 {C,G,B}A S none, as d(S) = 0 {C,G,B}C D set d(D) = 2 {G,B,D}C E set d(E) = 2 {G,B,D,E}C F set d(F ) = 2 {G,B,D,E, F}C S none {G,B,D,E, F}G F none {B,D,E, F}G H set d(H) = 2 {B,D,E, F,H}G S none {B,D,E, F,H}B A none {D,E,F,H}D C none {E,F,H}E C none {F,H}E H none {F,H}F C none {H}F G none {H}H E none {}H G none {}


Top Related