Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011...

41
Last Updated March 28 th , 2018 CSE 2011 Prof. J. Elder 1 Graphs – Breadth First Search ORD DFW SFO LAX

Transcript of Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011...

Page 1: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 1 -­

Graphs  – Breadth  First  Search

ORD

DFW

SFO

LAX

Page 2: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 2 -­

Outcomes

Ø By  understanding  this  lecture,  you  should  be  able  to:q Label  a  graph  according  to  the  order  in  which  vertices  are  discovered  in  a  breadth-­first  search.

q Identify  the  current  state  of  a  breadth-­first  search  in  terms  of  vertices  that  are  previously  discovered,  just  discovered  or  undiscovered.

q Identify  the  contents  of  the  breadth-­first  search  queue  at  any  state  of  the  search.

q Implement  breadth-­first  search

q Demonstrate  simple  applications  of  breadth-­first  search

Page 3: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 3 -­

Outline

Ø BFS  Algorithm

Ø BFS  Application:  Shortest  Path  on  an  unweighted  graph

Page 4: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 4 -­

Outline

Ø BFS  Algorithm

Ø BFS  Application:  Shortest  Path  on  an  unweighted  graph

Page 5: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 5 -­

Breadth-­First  SearchØ Breadth-­first  search  (BFS)  is  a  general  technique  for  traversing  a  graphØ A  BFS  traversal  of  a  graph  G  

q Visits  all  the  vertices  and  edges  of  G

q Determines  whether  G  is  connectedq Computes  the  connected  components  of  Gq Computes  a  spanning  forest  of  G

Ø BFS  on  a  graph  with  |V| vertices  and  |E| edges  takes  O(|V|+|E|) time

Ø BFS  can  be  further  extended  to  solve  other  graph  problemsq Cycle  detection

q Find  and  report  a  path  with  the  minimum  number  of  edges  between  two  given  vertices  

Page 6: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 6 -­

BFS  Algorithm  Pattern

BFS(G,s)Precondition: G is a graph, s is a vertex in GPostcondition: all vertices in G reachable from s have been visited

for each vertex u∈V [G] color[u] ← BLACK //initialize vertex

colour[s] ← REDQ.enqueue(s)while Q ≠ ∅

u← Q.dequeue()for each v ∈Adj[u] //explore edge (u,v)

if color[v ] = BLACKcolour[v]←REDQ.enqueue(v)

colour [u]←GRAY

Page 7: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 7 -­

BFS  is  a  Level-­Order  Traversal

Ø Notice  that  in  BFS  exploration  takes  place  on  a  wavefront consisting  of  nodes  that  are  all  the  same  distance  from  the  source  s.

Ø We  can  label  these  successive  wavefronts by  their  distance:    L0,  L1,  …

Page 8: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 8 -­

BFS  Example

CB

A

E

D

discovery  edge

cross  edge

A discovered  (on  Queue)A undiscovered

unexplored  edge

L0

L1

F

CB

A

E

DL1

F

CB

A

E

D

L0

L1

F

A finished

Page 9: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 9 -­

BFS  Example  (cont.)

CB

A

E

D

L0

L1

F

CB

A

E

D

L0

L1

FL2

CB

A

E

D

L0

L1

FL2

CB

A

E

D

L0

L1

FL2

Page 10: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 10 -­

BFS  Example  (cont.)

CB

A

E

D

L0

L1

FL2

CB

A

E

D

L0

L1

FL2

CB

A

E

D

L0

L1

FL2

Page 11: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 11 -­

PropertiesNotation

Gs:  connected  component  of  sProperty  1

BFS(G, s) visits  all  the  vertices  and  edges  of  Gs

Property  2The  discovery  edges  labeled  by  BFS(G, s) form  a  spanning  tree  Ts of  Gs

Property  3For  each  vertex  v in  Liq The  path  of    Ts from  s to  v has  iedges  

q Every  path  from  s to  v in  Gs has  at  least  i edges

CB

A

E

D

L0

L1

FL2

CB

A

E

D

F

Page 12: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 12 -­

AnalysisØ Setting/getting  a  vertex/edge  label  takes  O(1) time

Ø Each  vertex  is  labeled  three  timesq once  as  BLACK  (undiscovered)

q once  as  RED  (discovered,  on  queue)

q once  as  GRAY  (finished)

Ø Each  edge  is  considered  twice  (for  an  undirected  graph)

Ø Each  vertex  is  placed  on  the  queue  once  

Ø Thus  BFS  runs  in  O(|V|+|E|) time  provided  the  graph  is  represented  by  an  adjacency  list  structure

Page 13: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 13 -­

Applications

ØBFS  traversal  can  be  specialized  to    solve  the  following  problems  in  O(|V|+|E|) time:qCompute  the  connected  components  of  G

qCompute  a  spanning  forest  of  G

qFind  a  simple  cycle  in  G,  or  report  that  G is  a  forest

qGiven  two  vertices  of  G,  find  a  path  in  G between  them  with  the  minimum  number  of  edges,  or  report  that  no  such  path  exists

Page 14: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 14 -­

Outline

Ø BFS  Algorithm

Ø BFS  Application:  Shortest  Path  on  an  unweighted  graph

Page 15: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 15 -­

Application:    Shortest  Paths  on  an  Unweighted Graph

Ø Goal: To  recover  the  shortest  paths  from  a  source  node  s to  all  other  reachable  nodes  v in  a  graph.q The  length  of  each  path  and  the  paths  themselves  are  returned.

Ø Notes:q There  are  an  exponential  number  of  possible  paths

q Analogous  to  level  order  traversal  for  trees

q This  problem  is  harder  for  general  graphs  than  trees  because  of  cycles!

s

?

Page 16: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 16 -­

Breadth-­First  Search

Ø Idea:    send  out  search  ‘wave’  from  s.

Ø Keep  track  of  progress  by  colouring  vertices:q Undiscovered  vertices  are  coloured  black

q Just  discovered vertices  (on  the  wavefront)  are  coloured  red.q Previously  discovered vertices  (behind  wavefront)  are  coloured  grey.

Graph ( , ) (directed or undirected) and sourceInput: vertex .G V E s V= Î

[ ] shortest path distance ( , ) from to , . [ ] such that ( , ) is las

Outpu

t edg

t:

e on shortest path from a to

.d v s v s v v V

v u u v s vd

p= " Î

=

Page 17: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 17 -­

BFS  Algorithm  with  Distances  and  Predecessors

BFS(G,s)Precondition: G is a graph, s is a vertex in GPostcondition: d[u] = shortest distance δ [u] and π [u] = predecessor of u on shortest path from s to each vertex u in G

for each vertex u∈V [G]d[u]←∞π [u]← null color[u] = BLACK //initialize vertex

colour[s] ← REDd[s]← 0 Q.enqueue(s)while Q ≠ ∅

u← Q.dequeue()for each v ∈Adj[u] //explore edge (u,v)

if color[v ] = BLACKcolour[v]←REDd[v ]← d[u]+1 π [v ]← uQ.enqueue(v)

colour [u]←GRAY

Page 18: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 18 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

First-­In  First-­Out  (FIFO)  queuestores  ‘just  discovered’  vertices

Page 19: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 19 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

s

d=0

d=0

Page 20: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 20 -­

BFS FoundNot Handled

Queue

d=0a

bgd

d=1

s

a

c

h

k

f

i

l

m

j

e

b

gd

d=0d=1

Page 21: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 21 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

a

bgd

d=0d=1

d=1

Page 22: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 22 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bgd

cf

d=0d=1

d=2

d=1

d=2

Page 23: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 23 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bg

cfme

d=0d=1

d=2

d=1

d=2

Page 24: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 24 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queued=0

d=1

d=2

b

j

cfme

d=1

d=2

Page 25: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 25 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queued=0

d=1

d=2

j

cfme

d=1

d=2

Page 26: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 26 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

cfmej

d=0d=1

d=2

d=2

Page 27: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 27 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

fmejhi

d=0d=1

d=2

d=3

d=2

d=3

Page 28: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 28 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

mejhi

d=0d=1

d=2

d=3

d=2

d=3

Page 29: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 29 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

ejhil

d=0d=1

d=2

d=3

d=2

d=3

Page 30: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 30 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

jhil

d=0d=1

d=2

d=3

d=2

d=3

Page 31: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 31 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

hil

d=0d=1

d=2

d=3

d=2

d=3

Page 32: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 32 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

h

d=0d=1

d=2

d=3

il

d=3

Page 33: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 33 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

ilk

d=0d=1

d=2

d=3d=4

d=3

d=4

Page 34: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 34 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

lk

d=0d=1

d=2

d=3d=4

d=3

d=4

Page 35: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 35 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

k

d=0d=1

d=2

d=3d=4

d=3

d=4

Page 36: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 36 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

k

d=0d=1

d=2

d=3d=4

d=4

Page 37: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 37 -­

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queued=0

d=1

d=2

d=3d=4

d=4d=5

Page 38: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 38 -­

Breadth-­First  Search  Algorithm:    Properties

Ø Q  is  a  FIFO  queue.

Ø Each  vertex  assigned  finite  dvalue  at  most  once.

Ø Q contains  vertices  with  dvalues  {i,  …,  i,  i+1,  …,  i+1}

Ø d values  assigned  are  monotonically  increasing  over  time.

BFS(G,s)Precondition: G is a graph, s is a vertex in GPostcondition: d[u] = shortest distance δ [u] and π [u] = predecessor of u on shortest paths from s to each vertex u in G

for each vertex u∈V [G]d[u]←∞π [u]← null color[u] = BLACK //initialize vertex

colour[s] ← REDd[s]← 0 Q.enqueue(s)while Q ≠ ∅

u← Q.dequeue()for each v ∈Adj[u] //explore edge (u,v)

if color[v ] = BLACKcolour[v]←REDd[v ]← d[u]+1 π [v ]← uQ.enqueue(v)

colour [u]←GRAY

Page 39: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 39 -­

Breadth-­First-­Search  is  Greedy

Ø Vertices  are  handled  (and  finished):q in  order  of  their  discovery  (FIFO  queue)

q Smallest  d values  first

Page 40: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 40 -­

Outline

Ø BFS  Algorithm

Ø BFS  Application:  Shortest  Path  on  an  unweighted graph

Page 41: Graphs – Breadth%First%Search - York University...Last%Updated%March%28th,2018 CSE%2011 Prof.%J.%Elder < 1 < Graphs – Breadth%First%Search ORD DFW SFO LAX

Last  Updated  March  28th,  2018CSE  2011Prof.  J.  Elder -­ 41 -­

Outcomes

Ø By  understanding  this  lecture,  you  should  be  able  to:q Label  a  graph  according  to  the  order  in  which  vertices  are  discovered  in  a  breadth-­first  search.

q Identify  the  current  state  of  a  breadth-­first  search  in  terms  of  vertices  that  are  previously  discovered,  just  discovered  or  undiscovered.

q Identify  the  contents  of  the  breadth-­first  search  queue  at  any  state  of  the  search.

q Implement  breadth-­first  search

q Demonstrate  simple  applications  of  breadth-­first  search