Grp Brdt Frt Sr SFO ORD LAX DFW - 1 -
Outo Ø By undrtndn t tur, you oud to: q L rp ordn to t ordr n w vrt r dovrd n rdt-rt r. q Idnty t urrnt tt o rdt-rt r n tr o vrt tt r prvouy dovrd, ut dovrd or undovrd. q Idnty t ontnt o t rdt-rt r quu t ny tt o t r. q Ipnt rdt-rt r q Dontrt p ppton o rdt-rt r - 2 -
Outn Ø BFS Aort Ø BFS Appton: Sortt Pt on n unwtd rp - 3 -
Outn Ø BFS Aort Ø BFS Appton: Sortt Pt on n unwtd rp - 4 -
Brdt-Frt Sr Ø Brdt-rt r (BFS) nr tnqu or trvrn rp Ø A BFS trvr o rp G q Vt t vrt nd d o G q Dtrn wtr G onntd q Coput t onntd oponnt o G q Coput pnnn ort o G Ø BFS on rp wt V vrt nd E d t O( V + E ) t Ø BFS n urtr xtndd to ov otr rp pro q Cy dtton q Fnd nd rport pt wt t nu nur o d twn two vn vrt - 5 -
BFS Aort Pttrn BFS(G,) Prondton: G rp, vrtx n G Potondton: vrt n G r ro v n vtd or vrtx u V[G] oor[u] BLACK //ntz vrtx oour[] RED Q.nquu() w Q u Q.dquu() or v Ad[u] //xpor d (u,v) oor[v] = BLACK oour[v] RED Q.nquu(v) oour[u] GRAY - 6 -
BFS Lv-Ordr Trvr Ø Not tt n BFS xporton t p on wvront ontn o nod tt r t dtn ro t our. Ø W n t uv wvront y tr dtn: L 0, L 1, - 7 -
BFS Exp A A undovrd dovrd (on Quu) A A nd unxpord d L 1 B C D dovry d ro d E F L 0 A L 0 A L 1 B C D L 1 B C D E F E F - 8 -
BFS Exp (ont.) L 0 A L 0 A L 1 B C D L 1 B C D E F L 2 E F L 0 A L 0 A L 1 B C D L 1 B C D L 2 E F L 2 E F - 9 -
BFS Exp (ont.) L 0 A L 0 A L 1 B C D L 1 B C D L 2 E F L 2 E F L 0 A L 1 B C D L 2 E F - 10 -
Proprt Notton G : onntd oponnt o Proprty 1 BFS(G, ) vt t vrt nd d o G Proprty 2 T dovry d d y BFS(G, ) or pnnn tr T o G Proprty 3 For vrtx v n L q T pt o T ro to v d q Evry pt ro to v n G t t d L 1 B L 0 B L 2 A E A E C C F F D D - 11 -
Any Ø Sttn/ttn vrtx/d t O(1) t Ø E vrtx d tr t q on BLACK (undovrd) q on RED (dovrd, on quu) q on GRAY (nd) Ø E d ondrd tw (or n undrtd rp) Ø E vrtx pd on t quu on Ø Tu BFS run n O( V + E ) t provdd t rp rprntd y n dny t trutur - 12 -
Appton Ø BFS trvr n pzd to ov t oown pro n O( V + E ) t: q Coput t onntd oponnt o G q Coput pnnn ort o G q Fnd p y n G, or rport tt G ort q Gvn two vrt o G, nd pt n G twn t wt t nu nur o d, or rport tt no u pt xt - 13 -
Outn Ø BFS Aort Ø BFS Appton: Sortt Pt on n unwtd rp - 14 -
Appton: Sortt Pt on n Unwtd Grp Ø Go: To rovr t ortt pt ro our nod to otr r nod v n rp. q T nt o pt nd t pt tv r rturnd. Ø Not: q Tr r n xponnt nur o po pt q Anoou to v ordr trvr or tr q T pro rdr or nr rp tn tr u o y!? - 15 -
Brdt-Frt Sr Input: Grp G = ( V, E) (drtd or undrtd) nd our vrtx Î V. Output: dv [ ] = ortt pt dtn d ( v, ) ro to v, " vî V. p [ v] = u u tt ( u, v) t d on ortt pt ro to v. Ø Id: nd out r wv ro. Ø Kp tr o pror y oourn vrt: q Undovrd vrt r oourd q Jut dovrd vrt (on t wvront) r oourd rd. q Prvouy dovrd vrt (nd wvront) r oourd ry. - 16 -
BFS Aort wt Dtn nd Prdor BFS(G,) Prondton: G rp, vrtx n G Potondton: d[u] = ortt dtn δ [u] nd π[u] = prdor o u on ortt pt ro to vrtx u n G or vrtx u V[G] d[u] π[u] nu oor[u] = BLACK //ntz vrtx oour[] RED d[] 0 Q.nquu() w Q u Q.dquu() or v Ad[u] //xpor d (u,v) oor[v] = BLACK oour[v] RED d[v] d[u] + 1 π[v] u oour[u] GRAY Q.nquu(v) - 17 -
BFS Frt-In Frt-Out (FIFO) quu tor ut dovrd vrt Found Not Hndd Quu d - 18 -
d BFS Found Not Hndd Quu - 19 -
d BFS Found Not Hndd Quu d - 20 -
d BFS Found Not Hndd Quu d - 21 -
d BFS Found Not Hndd Quu d - 22 -
d BFS Found Not Hndd Quu - 23 -
d BFS Found Not Hndd Quu - 24 -
d BFS Found Not Hndd Quu - 25 -
d BFS Found Not Hndd Quu - 26 -
d BFS - 27 - d=3 Found Not Hndd Quu d=3
d BFS - 28 - d=3 Found Not Hndd Quu d=3
d BFS - 29 - d=3 Found Not Hndd Quu d=3
d BFS - 30 - d=3 Found Not Hndd Quu d=3
d BFS - 31 - d=3 Found Not Hndd Quu d=3
d BFS - 32 - d=3 Found Not Hndd Quu d=3
d d=4 BFS - 33 - d=3 Found Not Hndd Quu d=3 d=4
d d=4 BFS - 34 - d=3 Found Not Hndd Quu d=3 d=4
d d=4 BFS - 35 - d=3 Found Not Hndd Quu d=3 d=4
d d=4 BFS - 36 - d=3 Found Not Hndd Quu d=4
d d=4 BFS - 37 - d=3 Found Not Hndd Quu d=4 d=5
BFS(G,) Brdt-Frt Sr Aort: Proprt Prondton: G rp, vrtx n G Potondton: d[u] = ortt dtn δ[u] nd π[u] = prdor o u on ortt pt ro to vrtx u n G or vrtx u V[G] d[u] π[u] nu oor[u] = BLACK //ntz vrtx oour[] RED d[] 0 Q.nquu() w Q u Q.dquu() or v Ad[u] //xpor d (u,v) oor[v] = BLACK oour[v] RED d[v] d[u] + 1 π[v] u oour[u] GRAY Q.nquu(v) - 38 - Ø Q FIFO quu. Ø E vrtx nd nt d vu t ot on. Ø Q ontn vrt wt d vu {,,, +1,, +1} Ø d vu nd r onotony nrn ovr t.
Brdt-Frt-Sr Grdy Ø Vrt r ndd (nd nd): q n ordr o tr dovry (FIFO quu) q St d vu rt - 39 -
Outn Ø BFS Aort Ø BFS Appton: Sortt Pt on n unwtd rp - 40 -
Outo Ø By undrtndn t tur, you oud to: q L rp ordn to t ordr n w vrt r dovrd n rdt-rt r. q Idnty t urrnt tt o rdt-rt r n tr o vrt tt r prvouy dovrd, ut dovrd or undovrd. q Idnty t ontnt o t rdt-rt r quu t ny tt o t r. q Ipnt rdt-rt r q Dontrt p ppton o rdt-rt r - 41 -