Mnmum Spnnn Trs (CLRS 3) T prolm Gvn onnt, unrt rp G = (V, E), sust o s o G su tt ty onnt ll vrts n G n orm no yls s ll spnnn tr (ST) o G. Clm: Any unrt, onnt rp s spnnn tr (n nrl rp my v mny spnnn trs). Quston: How woul you o out nn spnnn tr o rp G? Answr: Run BFS or DFS; t rsultn BFS-tr or DFS-tr r spnnn trs o G. Tus, nn spnnn tr or G s rly strtowr. T prolm oms mor ntrstn wn t rp s wt. Assum w r vn onnt, unrt, wt rp G wr (u, v) s wt w(u, v). In ts s, o ll possl spnnn trs o G, w wnt on o mnmum totl wt, wr t wt o tr s t sum o t wts o t s n t tr: w(t ) = (u,v) T w(u, v) Ts s ll t mnmum spnnn tr (MST) o G. Not tt w us mnmum spnnn tr s sort or mnmum wt spnnn tr). Exmpl: Wt o MST s + + + + + + + = 3 Not: MST s not unqu:.. (, ) n xn wt (, ) T MST prolm s onsr on o t olst, unmntl prolms n rp lortms. A spnnn tr s ssntlly t smllst possl su-rp tt stll kps t sm onntvty s t ornl rp. Wn s v wts, w nturlly wnt t spnnn tr o mnmum
totl wt. For xmpl, tnk out onntn ts wt mnml mount o wr or ros (ts r vrts, wt o s r stns twn ty prs). Also, ntwork sn n nrl (tlpons, ltrl, TV l, ro ntworks). Computn t MST: ounn s Drw smll rp n try to n t MST. How woul you ppro omputn n MST? Dos t v optml su-strutur? How woul you o out run tt t s optml sustrutur? Cn you xprss nn n MST rursvly? Anotr wy to tnk out t: vrtx n G wll v t lst on nnt n t MST. Cn you sy nytn out ts? 3 Som proprts o MST To kp tns smpl, w ll ssum tt t wst r stnt; tt s, or ny pr o s,, w v w() w( ). Ts urnts tt t MST s unqu. Wtout ts onton, tr my svrl mnmum spnnn trs (.. wn ll s v wt, ll spnnn trs r mnmum spnnn trs). T ut torm: For ny st S o vrts n rp G = (V, E), lt = (u, v) t ltst wt xtly on npont n S. Tn must n t MST. Not: For ny st S, t prtton o V nto (S, V S) s rrr to s ut, n t s wt on on npont n S n t otr on n V S r ll s tt ross t ut Proo: Lt T MST o G. I T ontns = (u, v), tn w r on. I T os not ontn = (u, v), tn: Bus T s tr, tr s unqu pt n T twn ny two nos n n prtulr twn u, v. Bus u s on on s o t ut n v s on t otr, ts pt must ontn t lst n (x, y) T rossn t ut. Wn n = (u, v) to T, ts pt n orm yl. I w rmov (x, y) rom T n nst, tn: T = T (x, y) + (u, v) s spnnn tr; n T must v sm wt s T sn w(u, v) w(x, y) Tus T s lso MST, n tus tr s MST ontnn T n.
T Cut Torm llows us to sr vry strt ry lortm or MST: T = Wl T V DO Fn ut S rsptn T Fn mnml rossn S T = T {} Kruskl n Prm MST lortms T two lssl lortms or omputn MST r Kruskl s n Prm s lortms. Ty ot v sm runnn tm omplxty, n ty r ot ry lortms, ut ty us omplmntry ppros: Kruskl s lortms: Strt wt T onsstn o ll vrts ut no s. Consr t s n G n nrsn orr o wt. A to T unlss on so woul rt yl. Ts orrspons to rown t tr rom orst o V sonnt vrts. A on t tm, jonn two trs n t orst totr. E jon rus t numr o onnt omponnts n t orst y on. Prm s lortm: Strt wt n mpyt T, n n rtrry vrtx v. Grow T on t tm: t stp, to T t s o mnmum wt tt s xtly on npont n T. Ts rows tr on t tm. T urrnt tr s lwys onnt ut only ovrs prt o t vrts. Bot Prm s n Kruskl s lortms ollow t strt lortm n tr orrtnss ollows rom t ut torm y osn sutl ut: Prm s: T ut s (T, V T ), tt s, t urrnt tr on on s, n t rmnn vrts on t otr. At pont t lortm s t mnmum rossn t ut, w, y t ut torm, w know must prt o n MST. Kruskl s: Wn n (u, v) os ut tt s t vrts n t st o u on on s n t vrts n t st o v on t otr. E s t smllst tt rosss t ut n tus y t ut torm, w know must prt o n MST. 3
5 PRIM s lortm GnrL IDEA: Strt wt spnnn tr ontnn rtrry vrtx r n no s Grow spnnn tr y rptly n mnml wt onntn vrtx n urrnt spnnn tr wt vrtx not n t tr Implmntton: To n mnml onnt to urrnt tr w mntn prorty quu on vrts not n t tr. T ky/prorty o vrtx v s t wt o mnml wt onntn v to t tr. (W mntn pontr rom jny lst o v to v n t prorty quu). For no v mntn vst(v) su tt (v, vst(v)) s t st onntn v to t urrnt tr. PRIM(r) /* ntlz */ For vrtx u V, u r DO: Insrt(P Q, u, ) Insrt(P Q, r, 0), vst(r) = NULL /* mn loop */ WHILE P Q not mpty DO u = Dlt-mn(P Q) For (u, v) E DO IF v P Q n w(u, v) < ky(v): vst[v] = u Drs-Ky(P Q, v, w(u, v)) Output s (u, vst(u)) s prt o MST. On t xmpl rp, t ry lortm woul work s ollows (strtn t vrtx ): ) ) ) )
) ) ) ) Prm s nlyss: V INSERT s Wl loop runs V tms w prorm V Dltmn s W prorm t most on Drs-Ky or o t E s I us p s pquu, nsrts, lt-mn n rs-ky run n O(l V ) = O(( V + E ) lo V ) = O( E lo V ) tm. 5
Kruskl s Alortm Gnrl : Strt wt orst onsstn o V trs, on onsstn o on vrtx Consr s E n nrsn orr o tr wt; n t onnts two trs, t os not rt yls. Exmpl: ) ) ) ) ) ) ) ) To mplmnt Kruskl s, w n to strutur tt mntns t prtl trs n s l to support t ollown oprtons: () ntlz tr s onsstn o snl vrtx; () r two vrts n t sm tr?; n () jon two trs totr. Astrtn urtr, w n tnk o tr s st o vrts. W n t strutur to stor st o vrts so tt w r l to: () rt st onsstn o on vrtx; () trmn o two vrts r n t sm st; () jon two sts. Ts typ o strutur s rrr to s n unon-n t strutur n ts oprtons r rrr to s:
Mk-st(v): Crt st onsstn o v Unon-st(u, v): Unt st ontnn u n st ontnn v Fn-st(u): Rturn unqu rprsnttv or st ontnn u W n r-wrt Kruskl s lortm to us unon-n t strutur s ollows: KRUSKAL T = FOR vrtx v V : Mk-St(v) Sort s o E n nrsn orr y wt FOR = (u, v) E n orr DO IF Fn-St(u) Fn-St(v) THEN T = T {} Unon-St(u, v) Kruskl s nlyss: W us O( E lo E ) = O( E lo V ) tm to sort s n w prorm V Mk-St, V Unon-st, n E Fn-St oprtons. W wll suss smpl soluton to t Unon-Fn prolm su tt Mk-St n Fn- St tk O() tm n Unon-St tks O(lo V ) tm mortz. Wt ts mplmntton Kruskl s lortm runs n tm O( E lo E + V lo V ) = O(( E + V ) lo E ) = O( E lo V ) lk Prm s lortm. Unon-Fn Kruskl s MST lortm n xprss n trms o n unon-n t strutur. As t turns out ts s nrl-purpos strutur tt s otr ppltons. Gnrlly spkn t Unon-Fn prolm s t ollown: W wnt to prov t strutur to mntn st o lmnts unr t ollown oprtons: Mk-st(v): Crt st onsstn o v Unon-st(u, v): Unt st ontnn u n st ontnn v Fn-st(u): Rturn unqu rprsnttv or st ontnn u. Smpl soluton Prps t smplst tt oms to mn s to mntn lmnts n sm st s lnk lst wt lmnt vn pontr to t rst lmnt n t lst (unqu rprsnttv). Exmpl:
Sts 3 5 Rprsntton 3 5 Mk-St(v): Mk lst wt on lmnt O() tm Fn-St(u): Follow pontr n rturn unqu rprsnttv O() tm Unon-St(u, v): Lnk rst lmnt n lst wt unqu rprsnttv Fn-St(u) tr lst lmnt n lst wt unqu rprsnttv Fn-st(v) O( V ) tm (s w v to upt ll unqu rprsnttv pontrs n lst ontnn u) Wt ts smpl soluton t V Unon-St oprtons n Kruskl s lortm my tk O( V ) tm.. Improv soluton: W n mprov t prormn o Unon-St wt vry smpl moton: Alwys lnk t smllr lst tr t lonr lst (upt t pontrs o t smllr lst) I you tnk: ts s smpl, you r rt! As w ll sow low, su utully smpl n ntutv rsults n n mortz oun o O(lo V ) pr Unon-St, mortz. Ts s lortm ln t ts st! Wy s ts nt? On Unon oprton tks tm proportonl to numr o pontr ns t ns to o On Unon-St oprton n stll tk O( V ) tm (It s possl tt w jon lst o V/ vrts to lst o V/ vrts, w rqurs V/ pontr upts). Kruskl s lortm prorms V Unon oprtons n totl T trk s to tnk ovr ll t Unon oprtons prorm y Kruskl s lortm. Consr lmnt u: Atr pontr or u s upt, u lons to lst o sz t lst oul t sz o t lst t ws n or t unon Atr k pontr ns, u s n lst o sz t lst k Sn t sz o t lrst st s V, t pontr o u n n t most lo V tms.
In otr wors, ovr t ours o ll t Unon oprtons, lmnt n v ts pontr n only O(l V ) tms. Ts mns tt O(V ) Unon oprtons wll tk O( V lo V ) tm ltotr n t worst s Nots: Wt mprovmnt, Kruskl s lortm runs n tm O( E lo E + V lo V ) = O(( E + V ) lo E ) = O( E lo V ) lk Prm s lortm. Not: Kruskl n Prm s lortms n mprov y plun n mprov Unon-Fn n prorty quu t struturs; owvr vn wn usn n mprov unon-n strutur Kruskl s lortm stys t O( E lo V ) n ts runnn tm s omnt y sortn. Hstory n stt-o-t-rt MST s onsr y som t olst opn prolm n omputr sn. Improvmnts o O( E l l V ) wr vn n t m svnts, ollow y mor mprovmnts. In 5 Krr, Kln n Trjn sr rnomz lortm or omputn n MST n xpt O(V + E) tm. T lortm ws rktrou. Susquntly, t ws sown tt t osts r ntrs t s possl to n t MST n lnr tm. Avn smlr rsult wt trmnst lortm n wtout mkn ny ssumpton on t s wts s n lon-stnn opn prolm. AT prsnt, t st uppr oun or omputn MST s O( E α( E, V )) wr α() s t nvrs Akrmn unton; α() s vry slowly rown unton, n prt onstnt. Ts rsult s u to Brnr Czll, rom Prnton, n ts k to. It os not rsolv t MST prolm, ut t tks stp n, prps mor mportntly, t ntrous non-ry ppro to MST (t s to omput su-optml tr n prorssvly rn t).