Dprtmnt o Computr Sn n Ennrn Cns Unvrsty o Hon Kon
W v lry lrn rt rst sr (BFS). Toy, w wll suss ts sstr vrson : t pt rst sr (DFS) lortm. Our susson wll on n ous on rt rps, us t xtnson to unrt rps s strtorwr. DFS s surprsnly powrul lortm, n solvs svrl lss prolms lntly. In ts ltur, w wll s on su prolm ttn wtr t nput rp ontns yls.
Pts n Cyls Lt G = (V, E) rt rp. Rll: A pt n G s squn o s (v 1, v 2 ), (v 2, v 3 ),..., (v l, v l+1 ), or som ntr l 1. W my lso not t pt s v 1 v 2... v l+1. W now n: A pt v 1 v 2... v l+1 s ll yl v l+1 = v 1.
Exmpl A yl:. Anotr on:.
Drt Ayl/Cyl Grps I rt rp ontns no yls, w sy tt t s rt yl rp (DAG). Otrws, G s yl. Exmpl Cyl DAG
T Cyl Dtton Prolm Lt G = (V, E) rt rp. Dtrmn wtr t s DAG.
Nxt, w wll sr t pt rst sr (DFS) lortm to solv t prolm n O( V + E ) tm, w s optml (us ny lortm must t lst s vry vrtx n vry on n t worst s). Just lk BFS, t DFS lortm lso outputs tr, ll t DFS-tr. Ts tr ontns vtl normton out t nput rp tt llows us to wtr t nput rp s DAG.
DFS At t nnn, olor ll vrts n t rp wt. An rt n mpty DFS tr T. Crt stk S. Pk n rtrry vrtx v. Pus v nto S, n olor t ry (w mns n t stk ). Mk v t root o T.
Exmpl Suppos tt w strt rom. DFS tr S = ().
DFS Rpt t ollown untl S s mpty. 1 Lt v t vrtx tt urrntly tops t stk S (o not rmov v rom S). 2 Dos v stll v wt out-nor? 2.1 I ys: lt t u. Pus u nto S, n olor u ry. Mk u l o v n t DFS-tr T. 2.2 I no, pop v rom S, n olor v lk (mnn v s on). I tr r stll wt vrts, rpt t ov y rstrtn rom n rtrry wt vrtx v, rtn nw DFS-tr root t v. DFS vs lk xplorn t w on lk t tm, s w wll s nxt.
Runnn Exmpl Top o stk:, w s wt out-nors,. Suppos w ss rst. Pus nto S. DFS tr S = (, ).
Runnn Exmpl Atr pusn nto S: DFS tr S = (,, ).
Runnn Exmpl Now tops t stk. It s wt out-nors n. Suppos w vst rst. Pus nto S. DFS tr S = (,,, ).
Runnn Exmpl Atr pusn nto S: DFS tr S = (,,,, ).
Runnn Exmpl Suppos w vst wt out-nor o rst. Pus nto S DFS tr S = (,,,,, ).
Runnn Exmpl Atr pusn nto S: DFS tr S = (,,,,,, ).
Runnn Exmpl s no wt out-nors. So pop t rom S, n olor t lk. Smlrly, s no wt out-nors. Pop t rom S, n olor t lk. DFS tr S = (,,,, ).
Runnn Exmpl Now tops t stk n. It stll s wt out-nor. So, pus nto S. DFS tr S = (,,,,, ).
Runnn Exmpl Atr poppn,,,,, : DFS tr S = ().
Runnn Exmpl Now tr s stll wt vrtx. So w prorm notr DFS strtn rom. DFS orst S = ().
Runnn Exmpl Pop. T n. DFS orst S = (). Not tt w v rt DFS-orst, w onssts o 2 DFS-trs.
Tm Anlyss DFS n mplmnt ntly s ollows. Stor G n t jny lst ormt. For vry vrtx v, rmmr t out-nor to xplor nxt. O( V + E ) stk oprtons. Us n rry to rmmr t olors o ll vrts. Hn, t totl runnn tm s O( V + E ).
Rll tt w s rlr tt t DFS-tr (wll, prps DFSorst) nos vlul normton out t nput rp. Nxt, w wll mk ts pont sp, n solv t tton prolm.
E Clsston Suppos tt w v lry ult DFS-orst T. Lt (u, v) n n G (rmmr tt t s rt rom u to v). It n lss nto 1 Forwr : u s propr nstor o v n DFS-tr o T. 2 Bkwr : u s snnt o v n DFS-tr o T. 3 Cross : I ntr o t ov ppls.
Exmpl DFS orst Forwr s: (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ). Bkwr : (, ). Cross s: (, ), (, ), (, ).
Atr t DFS-orst T s n otn, w n trmn typ o (u, v) n onstnt tm. All tt s rqur s to umnt t DFS lortm sltly y rmmrn wn vrtx ntrs n lvs t stk.
Aumntn DFS Sltly Mntn ountr, w s ntlly 0. Evry tm pus or pop s prorm on t stk, w nrmnt y 1. For vry vrtx v, n: Its sovry tm -tm(v) to t vlu o rt tr v s pus nto t stk. Its ns tm -tm(v) to t vlu o rt tr v s popp rom t stk. Dn I (v) = [-tm(v), -tm(v)]. It s strtorwr to otn I (v) or ll v V y pyn O( V ) xtr tm on top o DFS s runnn tm. (Tnk: Wy?)
Exmpl DFS orst I () = [1, 16] I () = [2, 15] I () = [3, 14] I () = [4, 13] I () = [5, 12] I ( ) = [6, 9] I () = [7, 8] I () = [10, 11] I () = [17, 18]
Prntss Torm Torm: All t ollown r tru: I u s propr nstor o v n DFS-tr o T, tn I (u) ontns I (v). I u s propr snnt o v n DFS-tr o T, tn I (u) s ontn n I (v). Otrws, I (u) n I (v) r sjont. Proo: Follows rtly rom t rst-n-lst-out proprty o t stk.
Cyl Torm Torm: Lt T n rtrry DFS-orst. G ontns yl n only tr s kwr wt rspt to T. Proo: T -rton s ovous. Provn t only- rton s mor nvolv, n wll on ltr.
Cyl Dtton Equpp wt t yl torm, w know tt w n tt wtr G s yl sly tr vn otn DFS-orst T : For vry (u, v), trmn wtr t s kwr n O(1) tm. I no kwr s r oun, G to DAG; otrws, G s t lst yl. Only O( E ) xtr tm s n. W now onlu tt t yl tton prolm n solv n O( V + E ) tm.
It rmns to prov t yl torm. W wll rst prov notr mportnt torm, n tn stls t yl torm s orollry.
Wt Pt Torm Torm: Lt u vrtx n G. Consr t momnt wn u s pus nto t stk n t DFS lortm. Tn, vrtx v oms propr snnt o u n t DFS-orst n only t ollown s tru: W n o rom u to v y trvln only on wt vrts. Proo: Wll lt s n xrs (wt soluton prov). Prs rntly, t torm sys tt t sr t u wll t stuk only tr sovrn ll t vrts tt n stll sovr.
Exmpl Consr t momnt n our prvous xmpl wn just ntr t stk. S = (,,,, ). DFS tr W n s tt n r,, y oppn on only wt vrts. Tror,,, r ll propr snnts o n t DFS-orst; n s no otr snnts.
Provn t Only-I Drton o t Cyl Torm W wll now prov tt G s yl, tn tr must kwr n t DFS-orst. Suppos tt t yl s v 1 v 2... v l v 1. Lt v, or som [1, l], t vrtx n t yl tt s t rst to ntr t stk. Tn, y t wt pt torm, ll t otr vrts n t yl must propr snnts o v n t DFS-orst. Ts mns tt t pontn to v n t yl s k. W tus v omplt t wol proo o t yl torm.