Rn: Not ovr n or rns. CMSC 451: Ltr 4 Brs n 2-E Conntvty Trsy, Sp 7, 2017 Hr-Orr Grp Conntvty: (T ollown mtrl ppls only to nrt rps!) Lt G = (V, E) n onnt nrt rp. W otn ssm tt or rps r onnt, t somtms t s srl to v r r o onntvty. For xmpl, rp n sonnt tro t rmovl o snl or vrtx, t onntvty s rtr rl. Hr r som ntons: Br: Any wos rmovl rslts n sonnt rp (s F. 1). 2-E Connt: A rp s 2- onnt t ontns no rs (s F. 1). In nrl rp s k- onnt t rmovl o ny k 1 s rslts n onnt rp. Hr r lso vrtx-s qvlnts: Ct Vrtx: Any vrtx wos rmovl (totr wt t rmovl o ny nnt s) rslts n sonnt rp (s F. 1). Bonnt: A rp s onnt t ontns no t vrts (s F. 1()). In nrl rp s k-onnt t rmovl o ny k 1 vrts rslts n onnt rp. Not onnt nor 2-E Connt t vrtx 2-E Connt Bonnt t vrtx r () F. 1: Hr-orr onntvty n rps W wll prsnt n O(n + m)-tm lortm or omptn ll t rs o n nrt rp. (T lortm n mo to ompt t t vrts s wll.) Alto w wll not prov t, sl t ot 2- onnt rps s tt twn vry pr o stnt vrts, tr r t lst two -sont pts twn tm. (Ts s onsqn o mor nrl rslt ll Mnr s Torm.) I rp s onnt, tn or vry pr o s tr s smpl yl (tt s yl tt os not rpt ny vrts) tt ontns ot s. Ltr 4 1 Fll 2017
Fnn Brs tro DFS: An ovos, t slow, wy or omptn rs wol to lt n tn pply DFS to trmn wtr t rsltn rp rmns onnt. Howvr, ts wol tk O(m(n + m)) tm. W wll s tt t s possl to nty ll t rs wt snl pplton o DFS n O(n + m) tm. W ssm tt G s onnt, w mpls tt tr s snl DFS tr. Rll tt t DFS tr onssts o two typs o s: tr s, w onnt prnt wt ts l n t DFS tr, n k s, w onnt (non-prnt) nstor wt (non-l) snnt. Sppos tt w r rrntly prossn vrtx n DFSvst, n w s n (, v) on to nor v o. I ts s k (tt s, v s n nstor o ) tn (, v) nnot r, s t tr s twn n v prov son wy to onnt ts vrts. Tror, w my lmt onsrton to wn (, v) s tr, tt s, v s not yt n sovr, n so w wll nvok DFSvst(v). Wl w r on ts, w wll kp trk o t k s n t str root t v. Osrv tt ll ts k s rmn ntrly wtn ts str (s F. 2) tn (, v) s r, sn ts rmovl ompltly sonnts ts str rom t rst o t tr. On t otr n, tr s vn snl k ln ot rom ts str, tn (, v) s not r. S k mst o rom wtn t str to propr nstor o v. By t Prntss Lmm, ts mns tt t ls to vrtx wos sovry tm s strtly smllr tn v s sovry tm. (Rll vrtx s nstors r sovr or t.) In smmry, w v stls t ollown lm. (, v) s r v (, v) s not r v F. 2: Contons or vrtx to t vrtx. Clm: An (, v) s r n only t s tr n (ssmn tt s t prnt o v) tr s no k wtn v s str tt ls to vrtx wos sovry tm s strtly smllr tn v s sovry tm. Trkn Bk Es: T ov lm provs s wt strtrl rtrzton o rs. How n w sn n lortm tt tsts ts onton? To o ts, w wll ntro n xlry qntty, w wll ompt s t DFS rns. W n Low[] = mn([], mn{[w] : k (v, w) wr v s snnt o. Ltr 4 2 Fll 2017
Not tt w s t trm snnt n t nonstrt sns, tt s, v my tsl. Inttvly, Low[] s t losst to t root tt yo n t n t tr y tkn ny on k rom tr or ny o ts snnts. (Bwr o ts notton: Low mns low sovry tm, not low n or rwn o t DFS tr. In t Low[] tns to n t tr, n t sns o n los to t root.) Also not tt yo my onsr ny snnt o, t yo my only ollow on k. To ompt Low[] w s t ollown smpl rls: Sppos tt w r prormn DFS on t vrtx. Intlzton: Low[] = []. Bk (, v): Low[] = mn(low[], [v]). Explnton: W v tt nw k omn ot o. I ts os to lowr -vl tn t prvos k tn mk ts t nw Low (s F. 3). Tr (, v): Low[] = mn(low[], Low[v]). Explnton: Sn v s n t str root t ny snl k lvn t tr root t v s snl k or t tr root t (s F. 3). Bk v [v] Low[] mn(low[], [v]) Tr Low[v] v Low[] mn(low[], Low[v]) F. 3: Ct Vrts n t nton o Low[]. T o lok low sows ow to ompt Low[] or ll vrts. W o not ot omptn ns tms, sn ty r not n or or prposs. Not tt tr s stlty n trmnn wtr n s k. Clrly, s n mst o to prvosly sovr vrtx (w s wy t s n t ls-ls), t w lso n to k tt ts vrtx s not s prnt. Rll tt vry o n nrt rp s rlt tw n t ny lst (wt v s nor o n s nor o v). W n to k tt w r not smply sn t tr n, t rom t l k to t prnt. To o ts, w k v s not s prnt, tt s v pr[]. Osrv tt on Low[] s ompt or ll vrts, w n tst wtr vn tr (pr[v], v) s r y tstn wtr tr s no k n v s str on to n rlr sovr vrtx, tt s, [v] = Low[v]. (Atlly, t tst s mor ntrlly stt s [v] Low[v], t y nton Low[v] [v], so tstn or qlty s qvlnt.) T nl o s sown n t o lok low. Ltr 4 3 Fll 2017
DFSvst() { mrk[] = sovr Low[] = [] = ++tm or (v n A()) { (mrk[v] == nsovr) { pr[v] = DFSvst(v) Low[] = mn(low[], Low[v]) ls (v!= pr[]) { Low[] = mn(low[], [v]) Moton o DFSvst or Low omptton // st sovry tm n nt Low // (,v) s tr // v s prnt s // pt Low[] // (,v) s k // pt Low[] nallbrs(g) { tm = 0 or ( n V) mrk[] = nsovr // ntlz Comptn Brs v DFS or ( n V) (mrk[] == nsovr) DFSVst() or (v n V) { = pr[v] (!= nll n [v] == Low[v]) otpt (, v) s n r // nsovr vrtx? //...strt nw sr r // k or t rs 2:2 1:1 8:8 [] : Low[] 4:4 5:4 3:2 9:8 7:2 10:8 Brs: (, ) (, ) (, ) 6:4 () F. 4: Comptn rs v DFS. Ltr 4 4 Fll 2017
Wrpp: W v sown ow to ompt rs n n nrt rp. Tr r nmr o ntrstn prolms tt w stll v not sss. Frst, w lm tt t s possl to pt ts lortm to ompt t vrts s wll. (T omptton o Low s t sm, t rnt onton s ppl to trmn w vrts r t vrts.) Son, rp ls to 2- onnt, t my srl to prtton t vrts o t rp nto 2- onnt omponnts. For xmpl, n F. 4() t omponnts onsst o {,,, {,,, {, n {,,. Ts n on y smpl xtnson s wll. (T vrts r stor on stk, n wnvr r s tt, w pop o n pproprt sst o t stk. W wll lv t tls s n xrs.) A smlr ppro n ppl to omptn t onnt omponnts o rp, w s prtton o t st o t rp. Ltr 4 5 Fll 2017