in in grph rph: Ph, r n flow ph-fir rh fin vri rhl from nohr givn vrx. Th ph r no h hor on. rph r = hor in = = Jori orll n Jori Pi prmn of ompur in = in wn wo no: lngh of h hor ph wn hm rh-fir rh rph p., UP rh-fir rh imilr o wv propgion rph p., UP rph p., UP
rh-fir rh lgorihm vii vri lyr y lyr:,,,,. On h vri lyr hv n vii, r viiing vri lyr +. lgorihm wih wo iv lyr: Vri lyr (urrnly ing vii). Vri lyr + (o vii nx). nrl ruur: quu. rph p., UP lgorihm rph p., UP lgorihm funion (, ) // Inpu: rph (V, ), our vrx. // Oupu: or h vrx u, i[u] i // h in from o u. for ll u V: i[u]= i[] = Q = {} // Quu onining ju whil no Q.mpy(): u = Q.pop_fron() for ll u, v : if i[v] = : i[v] = i[u] + Q.puh_k(v) rph p., UP 7 Runim O( V + ): h vrx i vii on, h g i vii on (for ir grph) or wi (for unir grph). rph p., UP
in on g Ruing hp://.wikipi.org/wiki/ijkr-lgorihmu rph p., UP Trking runnr km km Inffiin: mny yl wihou ny inring progr. How ou rl numr? rph p., UP Th runnr lgorihm h ginning, w hv on runnr for h g u v wiing u for h rrivl of h fir runnr. Whn h fir runnr rriv u, ll runnr wiing u r running long hir g u v. ll runnr run onn p: uni / uni W ju n o nno h fir rrivl im vry vrx. km km km km km nno h im of h fir rrivl h no. rph p., UP lgorihm: h xp rrivl im o. No xp rrivl im for h r of vri (). Rp unil hr r no mor runnr: l h rli xp rrivl im vrx no vii y (vrx u, im T). nno finl in u o T. or h ougoing u v: If v h no n vii y n h xp rrivl im for h runnr u v i mllr hn h xp rrivl im v y ny ohr iv runnr, r running long u v n op h ohr runnr going o v. Ohrwi, o no r running. rph p., UP
xmpl xmpl = = = = on Quu on Quu : : : : : : : : : : : : : : rph p., UP xmpl on Quu on Quu : : : : : : : : : : : : : : rph p., UP xmpl = = = = on Quu on Quu : : : : : : : : : : : : : : rph p., UP on Quu on Quu : : : : : : : : : : : : : : rph p., UP
hor-ph r xmpl ijkr lgorihm for hor ph funion horph(, l, ) // Inpu: rph (V, ), our vrx, // poiiv g lngh {l : } // Oupu: i[u] h h in from, // prv[u] h h pror in h r for ll u V: i[u] = prv[u] = nil W n o: kp li of iv runnr n hir xp rrivl im. l h rli runnr rriving vrx. up h iv runnr n hir rrivl im. rph p., UP 7 ijkr lgorihm: omplxiy Q = mkquu(v) whil no Q.mpy(): u = Q.lmin() for ll u, v : if i[v] > i[u] + l(u, v): i[v] = i[u] + l u, v prv[v] = u Q.rky(v) V im im Th klon of ijkr lgorihm i on, whih i O( V + ) W n o oun for h o of: mkquu: inr V vri o li. lmin: fin h vrx wih min i in h li ( V im) rky: up i for vrx ( im) L u onir wo implmnion for h li: vor n inry hp i[] = Q = mkquu(v) // uing i ky whil no Q.mpy(): u = Q.lmin() for ll u, v : if i[v] > i[u] + l(u, v): i[v] = i[u] + l u, v prv[v] = u Q.rky(v) rph p., UP ijkr lgorihm: omplxiy Implmnion lmin inr/ rky ijkr omplxiy Vor O( V ) O() O( V ) inry hp O(log V ) O(log V ) O(( V + ) log V ) inry hp: Th lmn r or in ompl (ln) inry r. Inrion: pl lmn h oom n l i ul up wpping h loion wih h prn ( mo log V lvl). lmin: Rmov lmn from h roo, k h l no in h r, pl i h roo n l i if own ( mo log V lvl). rky: r h ky in h r n l i ul up (m inrion). ruur migh rquir o known h loion of h vrx in h hp (l of poinr). rph p., UP rph p., UP
rph wih ngiv g ijkr lgorihm o no work: - ijkr woul y h h hor ph h lngh=. ijkr i on f up h im n g (u, v) i r: i v = min i v, i u + l u, v Prolm: non-promiing up r no on. oluion: l u no or up h rly. rph wih ngiv g Th hor ph from o n hv mo V g: If h qun of up inlu, u, u, u, u, u,, u k,, in h orr, h hor in from o will ompu orrly (up r lwy f). No h h qun of up o no n o onuiv. oluion: up ll g V im! omplxiy: O( V ). u u u u k rph p., UP llmn-or lgorihm rph p., UP llmn-or: xmpl funion horph(, l, ) // Inpu: rph (V, ), our vrx, // g lngh {l : }, no ngiv yl. // Oupu: i[u] h h in from, // prv[u] h h pror in h r for ll u V: i[u] = prv[u] = nil i[] = rp V im: for ll u, v : if i[v] > i[u] + l(u, v): i[v] = i[u] + l(u, v) prv[v] = u - - - - No Irion 7 7 7 7 7 7 rph p., UP rph p., UP
Ngiv yl hor ph in Wh i h hor in wn n? - - - llmn-or o no work i um h h hor ph will no hv mor hn V g. ngiv yl prou in y nlly pplying roun o h yl. How o ngiv yl? pply llmn-or (up g V im) Prform n xr roun n hk whhr om in r. propry: In ny ph of, h vri ppr in inring opologil orr. ny qun of up h prrv h opologil orr will ompu in orrly. Only on roun viiing h g in opologil orr i uffiin: O( V + ). How o lul h long ph? Ng h g lngh. ompu h hor ph. rph p., UP hor ph lgorihm rph p., UP Minimum pnning Tr funion ghorph(, l, ) // Inpu: (V, ), our vrx, // g lngh {l : }. // Oupu: i[u] h h in from, // prv[u] h h pror in h r for ll u V: i[u] = prv[u] = nil i[] = Linriz for ll u V in linriz orr: for ll u, v : if i[v] > i[u] + l(u, v): i[v] = i[u] + l(u, v) prv[v] = u No r ompur g r link Wigh r minnn o ol: pik u of g uh h h no r onn h minnn o i minimum Th oluion i no uniqu. in nohr on! Propry: n opiml oluion nno onin yl. rph p., UP 7 rph p., UP
Propri of r r i n unir grph h i onn n yli. Propry: r on n no h n g. r from n mpy grph. on g im mking ur h i onn wo ionn omponn. Propry: ny onn, unir grph = (V, ) wih = V i r. I i uffiin o prov h i yli. If no, w n lwy rmov g from yl unil h grph om yli. Propry: ny unir grph i r iff hr i uniqu ph wn ny pir of no. If hr woul wo ph wn wo no, h union of h ph woul onin yl. Minimum pnning Tr ivn un unir grph = (V, ) wih g wigh w, fin r T = (V, ), wih, h minimiz wigh T = w. Krukl lgorihm: rply h nx ligh g h o no prou yl. rph p., UP Th u propry rph p., UP Th u propry: xmpl V MT T uppo g X r pr of n MT of = V,. Pik ny u of no for whih X o no ro wn n V, n l h ligh g ro hi priion. Thn X {} i pr of om MT. Proof (kh): L T n MT n um i no in T. If w o T, yl will r wih nohr g ro h u (, V ). W n now rmov n oin nohr r T wih wigh T wigh(t). in T i n MT, hn h wigh mu qul. MT T V rph p., UP rph p., UP
Minimum pnning Tr Prim lgorihm ny hm lik hi work (u of h propri of r): X = rp V im: pik V for whih X h no g wn n V l h minimum-wigh g wn n V X = X {} Prim lgorihm: X lwy form ur n i h of X no: V funion Prim(, w) // Inpu: onn unir rph V, // wih g wigh w. // Oupu: n MT fin y h vor prv. for ll u V: o(u)= prv(u)= nil pik ny iniil no u o(u ) = // H prioriy quu uing o ky ( V ) H = mkquu(v) whil H i no mpy: v = lmin(h) for h v, z, z H: if o(z)> w(v, z): o(z)= w v, z prv(z) = v rky(h,z) rph p., UP Prim lgorihm { } /nil /nil /nil /nil /nil /nil / / / /nil /nil, / / /nil /,, / /nil /,,, / /,,,, rph p., UP / omplxiy: h m ijkr lgorihm, O(( V + ) log V ) rph p., UP funion Krukl(, w) Krukl lgorihm Informl lgorihm: or g y wigh. Vii g in ning orr of wigh n hm long hy o no r yl. How o w know whhr nw g will r yl? // Inpu: onn unir rph V, // wih g wigh w. // Oupu: n MT fin y h g in X. X = or h g in y wigh for ll u, v, in ning orr of wigh: if (X h no ph onning u n v): X = X { u, v } rph p., UP
ijoin Krukl lgorihm ruur o or ollion of ijoin. Oprion: mk(x): r inglon onining ju x. fin(x): rurn h inifir of h onining x. union(x, y): mrg h onining x n y. Krukl lgorihm u ijoin n ll mk: V im fin: im union: V im funion Krukl(, w) // Inpu: onn unir rph V, // wih g wigh w. // Oupu: n MT fin y h g in X. for ll u V: mk(u) X = or h g in y wigh for ll u, v, in ning orr of wigh: if (fin(u) fin(v)): X = X { u, v } union(u,v) rph p., UP 7 ijoin rph p., UP ijoin Th no r orgniz of r. h r rprn. H H h no h wo riu: prn (π): nor in h r rnk: high of h ur Th roo lmn i h rprniv for h : i prn poinr i ilf (lf-loop). Th ffiiny of h oprion pn on h high of h r. funion mk(x): π x = x rnk x = funion fin(x): whil x π x : x = π x rurn x funion union(x, y): r x = fin(x) r y = fin(y) if r x = r y : rurn if rnk(r x ) > rnk(r y ): π(r y ) = r x l: π(r x ) = r y if rnk(r x ) = rnk(r y ): rnk(r y ) = rnk(r y ) + funion mk(x): π x = x rnk x = funion fin(x): whil x π x : x = π x rurn x rph p., UP rph p., UP
ijoin fr mk(),,mk(): fr union(,), union(,), union(,): fr union(,), union(,): fr union(,): ijoin : ph omprion omplxiy of Krukl lgorihm: O( log V ). oring g: O log O( log V ). in + union ( im): O( log V ). How ou if h g r lry or or oring n on in linr im (wigh r mll)? Ph omprion: Propry: ny roo no of rnk k h l k no in i r. Propry: If hr r n lmn ovrll, hr n mo nτ k no of rnk k. Thrfor, ll r hv high log n. rph p., UP ijoin : ph omprion rph p., UP Mx-flow/min-u prolm funion fin(x): if x π x : π(x)= fin(π x ) rurn π(x) How muh wr n you pump from our o rg? fin(i) I H H J OpnVlv, y J HYUN L I J K moriz o of fin: O() I K Krukl o: O( ) (if oring h linr o) H J rph p., UP K Wh i h fw numr of grn u h n o u o h no wr will l o flow from h hyrn o h uk? Mx-flow/Min-u lgorihm. rillin.org. hp://rillin.org/wiki/mx-flow-min-u-lgorihm/ rph p., UP
kwr Mx-flow/min-u prolm: ppliion Nwork h rry, wr, oil, lriiy, r,. How o mximiz ug? How o minimiz o? How o mximiz rliiliy? Mulipl ppliion omin: ompur nwork Img proing ompuionl iology irlin huling mining iriu ompuing Mol: ir grph = V,. Two pil no, V. pii > on h g. Mx-flow prolm ol: ign flow f o h g of h nwork ifying: f for ll (g piy no x) or ll no u (xp n ), h flow nring h no i qul o h flow xiing h no: w,u f wu = u,z f uz. iz of flow: ol quniy n from o (qul o h quniy lving ): iz f =,u f u rph p., UP ugmning ph low ivn flow, n ugmning ph rprn fil iionl flow from o. rph p., UP ugmning ph low ugmning ph n hv forwr n kwr g. ugmning ph Nw flow ugmning ph Nw flow rph p., UP 7 rph p., UP
ugmning ph ivn flow f, n ugmning ph i ir ph from o, whih oni of g from, u no nrily in h m irion. h of h g ifi xly on of h following wo oniion: i in h m irion in (forwr) n f <. Th iffrn f i ll h lk of h g. i in h oppoi irion (kwr) n f >. I rprn h f h om flow n orrow from h urrn flow. rph p., UP Riul grph rph p., UP low rph Riul grph kwr forwr or-ulkron lgorihm: xmpl rph p., UP Riul low or-ulkron lgorihm: xmpl rph p., UP
or-ulkron lgorihm or-ulkron lgorihm: omplxiy funion or-ulkron(,,) // Inpu: ir rph V, wih g pii. // n n h our n rg of h flow. // Oupu: flow f h mximiz h iz of h flow. // or h u, v, f(v, u) rprn i flow. for ll u, v : f u, v = u, v // orwr g f v, u = // kwr g whil hr xi ph p = in h riul grph: f p = min{f u, v : u, v p} for ll u, v p: f u, v = f u, v f(p) f v, u = f v, u + f(p) ining ph in h riul grph rquir O( ) im (uing or ). How mny irion (ugmning ph) r rquir? Th wor i rlly : O( ), wih ing h lrg piy of n g (if only ingrl vlu r u). y ling h ph wih fw g (uing ) h mximum numr of irion i O( V ). y rfully ling f ugmning ph (uing om vrin of ijkr lgorihm), h numr of irion n ru. or-ulkron lgorihm i O( V ) if i u o l h ph wih fw g. rph p., UP Mx-flow prolm rph p., UP Min-u lgorihm u: n (, )-u priion h no ino wo ijoin group, L n R, uh h L n R. or ny flow f n ny (, )-u (L, R): iz f piy L, R. Th mx-flow min-u horm: L R rph ining u wih minimum piy: Riul grph Th iz of h mximum flow qul h piy of h mll (, )-u. Th ugmning-ph horm: flow i mximum iff i mi no ugmning ph.. olv h mx-flow prolm wih or-ulkron.. ompu L h of no rhl from in h riul grph.. fin R = V L.. Th u (L, R) i min-u. rph p., UP rph p., UP
ipri mhing ipri mhing OY lix rn rl vi IRL i r riin un lix rn rl vi i r riin un Thr i n g wn oy n girl if hy lik h ohr. n w pik oupl o h vryon h xly on prnr h h/h lik? mhing: if w pik (lix, i) n (rn, riin), hn w nno fin oupl for r, un, rl n vi. prf mhing woul : (lix, r), (rn, un), (rl, i) n (vi, riin). Ru o mx-flow prolm wih =. Quion: n w lwy gurn n ingr-vlu flow? Propry: if ll g pii r ingr, hn h opiml flow foun y or-ulkron lgorihm i ingrl. I i y o h h flow of h ugmning ph foun h irion i ingrl. rph p., UP 7 rph p., UP ijkr (. in [PV]) H XRI Run ijkr lgorihm ring no : rw l howing h inrmi in vlu of ll h no h irion how h finl hor-ph r rph p., UP rph p., UP
llmn-or (. in [PV]) Nw ro (. in [PV]) Run llmn-or lgorihm ring no : rw l howing h inrmi in vlu of ll h no h irion how h finl hor-ph r 7 - - - - I H - Thr i nwork of ro = (V, ) onning of ii V. h ro in h n oi lngh l. Thr i propol o on nw ro o hi nwork, n hr i li of pir of ii wn whih h nw ro n uil. h uh ponil ro h n oi lngh. ignr for h puli work prmn you r k o rmin h ro who iion o h xiing nwork woul rul in h mximum r in h riving in wn wo fix ii n in h nwork. iv n ffiin lgorihm for olving hi prolm. rph p., UP Minimum pnning Tr rph p., UP low nwork J K H 7 I 7 lul h hor ph r from no uing ijkr lgorihm. lul h MT uing Prim lgorihm. Ini h qun of g o h r n h voluion of h in l. lul h MT uing Krukl lgorihm. Ini h qun of g o h r n h voluion of h ijoin. In of i wn wo g, ry o l h on h i no in Prim r. in h mximum flow from o T. iv qun of ugmning ph h l o h mximum flow. rw h riul grph fr fining h mximum flow. in minimum u wn n T. T [from PV] rph p., UP rph p., UP
loo rnfuion g-ijoin ph nhuii lrion of unny y prominn norhrn univriy h rul in h rrivl h univriy' mil lini of un in n of mrgny rmn. h of h un rquir rnfuion of on uni of whol loo. Th lini h uppli of 7 uni of whol loo. Th numr of uni of loo vill in h of h four mjor loo group n h iriuion of pin mong h group i ummriz low. loo yp O upply mn Typ pin n only riv yp or O; yp pin n riv only yp or O; yp O pin n riv only yp O; n yp pin n riv ny of h four yp. iv mxflow formulion h rmin iriuion h ifi h mn of mximum numr of pin. ivn igrph = (V, ) n vri, V, ri n lgorihm h fin h mximum numr of g-ijoin ph from o. No: wo ph r g-ijoin if hy o no hr ny g. n w hv nough loo uni for ll h un? our: gwik n Wyn, lgorihm, h iion,. rph p., UP rph p., UP