Flow nework, flow, maximum flow Can inerpre direced graph a flow nework. Maerial coure hrough ome yem from ome ource o ome ink. Source produce maerial a ome eady rae, ink conume a ame rae. Example: waer hrough yem of pipe curren hrough elecrical nework daa hrough nework ruck from facory o warehoue Each edge ha given capaciy (pipe: x gallon of waer per minue; ree: y ruck per hour; nework: z kb per econd). Verice are juncion, for hoe oher han ource and ink, maerial flow hrough hem wihou collecing in hem (i.e., rae a which maerial ener verex equal rae a which i leave i; flow conervaion ). In maximum-flow problem, we wih o compue greae poible rae of ranporaion from ource o ink. Maximum Flow Some definiion Flow nework G =(V,E) i direced graph, each edge (u, v) 2 E ha non-negaive capaciy c(u, v) 0. If (u, v) 62 E, we aume c(u, v) =0. Two diinguihed verice: ource and ink. We aume ha every verex lie on ome pah from o, i.e., for each v 2 V, here i a pah ; v ; (implie ha G i conneced, E V ). A flow in G i a real-valued funcion f : V V! IR, ha aifie hee hree properie: Capaciy conrain: For all u, v 2 V, we require f(u, v) apple c(u, v). Flow from one verex o anoher mu no exceed given capaciy. Skew ymmery: For all u, v 2 V, we require f(u, v) = f(v, u). Flow from verex u o verex v i negaive of flow in revere direcion. Flow conervaion: For all u 2 V {, }, we require f(u, v) =0. Toal flow ou of a verex (oher han ource or ink) i 0. Can rewrie a 8v 2 V {, } : f(u, v) =0, i.e., oal flow ino averexi0. P u2v Maximum Flow 2 f(u, v) can be poiive, zero, or negaive i called flow from u o v. The value of flow f i defined a he oal flow leaving he ource (and hu enering he ink): f = f(, v) Noe: doe no mean abolue value or cardinaliy ). The oal poiive flow enering verex v i f(u, v) u2v : f(u,v)>0 Alo, oal poiive flow leaving verex u i f(u, v) The oal ne flow a a verex v i : f(u,v)>0 oal poiive flow leaving v oal poiive flow enering v Maximum Flow 3 Edmonon Vancouver 6 0 4 3 Calgary /6 8/3 Sakaoon 2 20 Winnipeg 9 7 4 4 Regina 2/2 a c 5/20 0 /4 4/9 7/7 4/4 b d /4 Second figure how flow f in G wih value f = 9. Maximum Flow 4
Cancellaion In general, cancellaion allow o repreen hipmen beween wo ciie by a flow ha i poiive along a mo one of he wo edge. Suppoe a company hip 8 crae per day from Edmonon o Calgary, and 3 crae per day from Calgary o Edmonon. Naural enough, bu we can repreen hee hipmen direcly by flow: keyymmery i violaed [mu have f(u, v) = f(v, u)]. However, he raegy i poinle anyway: why hip 8 crae from Edmonon o Calgary, and 3 creae back, inead of ju hipping 5 crae from Edmonon o Calgary? In effec, 3 of he 8 crae from Edmonon o Calgary are cancelled by he 3 crae from Calgary o Edmonon. We repreen hi wih a flow: we have f(e,c) =5and f(c, E) = 5. Cancellaion will arie implicily in he algorihm. Suppoe (u, v) ha flow of f(u, v). We may increae flow on edge (v, u) by ome amoun d. Mahemaically, hi mu decreae f(u, v) by d. We hink of hee d uni a cancelling d uni ha are already on (u, v) (increae in one direcion cancel flow in oher). Maximum Flow 5 Maximum Flow 6 Technical ool Implici ummaion. Le, Y V. Then f(, Y )= f(x, y) x2 y2y For example, flow-conervaion f(u, v) =0 8u 2 V {, } can be wrien imply a f(u, V )=0 8u 2 V {, } Commonly occuring ideniie. For all V, we have f(, ) =0 Becaue each f(u, v) cancel f(v, u), which = f(u, v) by kew ymmery. 2. For all, Y V, we have f(, Y )= f(y,) Generaliaion of f(, ) =0, ame reaoning. 3. For all, Y, Z V wih \ Y = ;, we have f( [ Y,Z)=f(, Z)+f(Y,Z) f(z, [ Y )=f(z, )+f(z, Y ) Spli ummaion ino um of wo ummaion: one over, one over Y. Maximum Flow 7 The Ford-Fulkeron mehod Three imporan idea:. reidual nework 2. augmening pah 3. cu Mehod i ieraive:. Sar wih f(u, v) =0for all u, v 2 V 2. A each ieraion, increae flow value by finding augmening pah a pah from ource o ink along which we can increae flow and hen augmen flow along hi pah. 3. Repea unil no augmening pah can be found. Peudocode: : iniialie flow f o 0 2: while here exi an augmening pah p do 3: augmen flow f along p 4: end while Maximum Flow 8
Reidual nework Idea: Reidual nework coni of edge ha can admi more flow. Given flow nework G =(V,E) and flow f, he reidual nework of G induced by f i G f =(V,E f ) wih E f = {(u, v) 2 V V : c f (u, v) > 0} i.e. each reidual edge ha can admi flow ha i ricly poiive. Formally: Conider verice u and v. Amoun of addiional flow we can puh from u o v before exceeding capaciy c(u, v) i reidual capaciy of (u, v): c f (u, v) =c(u, v) f(u, v). G u 3/5! v =) G f u 2! 4 v Noe: When flow i negaive, hen reidual capaciy c f (u, v) i greaer han c(u, v). Inerpreaion: flow of x from u o v implie flow of x from v o u can be cancelled by puhing x uni from u o v can hen puh anoher c(u, v) from u o v can hu puh oal of x + c(u, v) >c(u, v) from u o v Noe: E f apple 2 E. Maximum Flow 9 Maximum Flow 0 Relaionhip beween flow in reidual nework and flow in original nework. Lemma. Le G =(V,E) be a flow nework, f be a flow in G, G f be he reidual nework of G induced by f, and le f 0 be a flow in G f. Then flow um f + f 0 wih i a flow in G wih value (f + f 0 )(u, v) =f(u, v)+f 0 (u, v) f + f 0 = f + f 0. Proof. Mu verify ha kew ymmery, capaciy conrain, and conervaion are obeyed. Skew ymmery: (f + f 0 )(u, v) = f(u, v)+f 0 (u, v) = f(v, u) f 0 (v, u) = (f(v, u)+f 0 (v, u)) = (f + f 0 )(v, u) Capaciy conrain: Noe f 0 i flow in G f, o f 0 (u, v) apple c f (u, v). Since by def. c f (u, v) =c(u, v) f(u, v), (f + f 0 )(u, v) = f(u, v)+f 0 (u, v) apple f(u, v)+c f (u, v) = f(u, v)+(c(u, v) f(u, v)) = c(u, v) Flow conervaion: For all u 2 V {, }, (f(u, v)+f 0 (u, v)) Value: (f + f 0 )(u, v) = = f(u, v)+ = 0+0 = 0 f + f 0 = (f + f 0 )(, v) = (f(, v)+f 0 (, v)) f 0 (u, v) = f(, v)+ f 0 (, v) = f + f 0 Maximum Flow Maximum Flow 2
Augmening pah Given flow nework G =(V,E) and flow f, anaugmening pah p i a imple pah in reidual nework G f. Recall: each edge (u, v) in G f admi ome addiional poiive flow, obeying capaciy conrain. Flow value can be increaed by G c f (p) = min c f (u, v). (u,v)2p 3/5 2/6 5/5 2/3 2/4 Lemma. Le G =(V,E) be a flow nework, f be a flow in G, and le p be an augmening pah in G f. Define f p : V V! IR by 8 < c f (p) if (u, v) i on p f p(u, v) = c f (p) if (v, u) i on p : 0 oherwie Then f p i a flow in G f wih value f p = c f (p) > 0. G f 2 4 5 2 2 3 2 2 Corollary. Le G, f, p, f p be a above. Define f 0 : V V! IR by f 0 = f + f p. Then f 0 i a flow in G wih value f 0 = f + f p > f. Proof. From la wo lemma. In hi example, augmenaion by 2. Maximum Flow 3 Maximum Flow 4 Cu of flow nework Ne flow acro any cu i he ame: A cu of flow nework G =(V,E) i pariion of V ino S and T = V 2 S and 2 T. S uch ha Lemma. Le f be a flow in a flow nework G wih ource and ink, le(s, T ) be a cu of G. Then he flow acro (S, T ) i f(s, T )= f. If f i a flow in G, hen ne flow acro cu (S, T ) i defined o be f(s, T ), capaciy i c(s, T ). A minimum cu i a cu wih minimum capaciy over all cu. S /6 8/3 0 a b /4 2/2 4/9 /4 Flow: f(a, c)+f(b, c)+f(b, d) = 2 + ( 4) + = 9 Noe: can include negaive flow. c d 7/7 5/20 Capaciy: c(a, c)+c(b, d) = 2 + 4 = 26 Noe: only non-negaive value, only edge going from S o T are being accouned for. Maximum Flow 5 4/4 T Proof. Noe T = V S. f(s, T ) = f(s, V ) f(s, S) = f(s, V ) 0 = f(, V )+f(s, V ) = f(, V )+0 by flow con. = f by def. Corollary. The value of a flow f in a nework G i upper-bounded by he capaciy of any cu (S, T ) in G. Proof. f = f(s, T ) = f(u, v) u2s v2t apple c(u, v) u2s v2t = c(s, T ) Maximum Flow 6
We know: maximum flow in a nework i bounded by capaciy of minimum cu. Following heorem how equaliy. Theorem. (Max-flow min-cu heorem) If f i a flow in a flow nework G =(V,E) wih ource and ink, hen he following condiion are equivalen:. f i a maximum flow in G. 2. The reidual nework G f conain no augmening pah. 3. f = c(s, T ) for ome cu (S, T ) of G. Proof of heorem. () =) (2) Suppoe ha f i a maximum flow in G bu G f ha an augmening pah p. Then by earlier corollary oday (lide 4), flow um f + f p i flow in G w/ value ricly greaer han f, conradicion! (2) =) (3) Suppoe G f doen have augmening pah, i.e., G f conain no pah from o. Define S = {v 2 V : 9 pah from o v in G f } T = V S Pariion (S, T ) i a cu becaue 2 S and 62 S. For each u 2 S, v 2 T we have f(u, v) =c(u, v), becaue oherwie (u, v) 2 E f, v would be in S ( ; u! v). By earlier Lemma, f = f(s, T )=c(s, T ). Remark. By la corollary, value of any flow i a mo capaciy of any cu. In paricular, value of maximum flow i a mo capaciy of minimum cu. Thu, if value of maximum flow equal capaciy of ome cu, hen hi mu a minimum cu (can be greaer). (3) =) () By earlier corollary, f apple c(s, T ) for all cu (S, T ). ha f i maximum flow. Condiion f = c(s, T ) implie Maximum Flow 7 Maximum Flow 8 Baic Ford-Fulkeron algorihm An example: book page 659, figure 26.5 Inpu: G,, : for each edge (u, v) 2 E do 2: f[u, v] 0 3: f[v, u] 0 4: end for 5: while 9 pah p = ; in re. nework G f do 6: c f (p) min{c f (u, v) : (u, v) 2 p} 7: for each edge (u, v) 2 p do 8: f[u, v] f[u, v]+c f (p) 9: f[v, u] f[u, v] 0: end for : end while Maximum Flow 9 Maximum Flow 20
Running ime Depend on how augmening pah in line 5 are deermined. Aimpleanalyi Aume inegral capaciie. Simple bound O(E f ) for running ime when choing pah arbirarily, f being value of maximum flow: iniializaion in line 4 ake O(E) while loop in line 5 i execued a mo f ime (value of flow increae by a lea one uni in each ieraion) work done wihin while loop ake O(V + E) =O(E) if we ue DFS or BFS If choen poorly, algorihm migh no even erminae: value of flow increae wih each ieraion, bu need no even converge o maximum flow value (heoreically; problem arie wih irraional capaciie can be ored on finie-preciion compuer). If choen by uing BFS, running ime i polynomial. (We ll ee laer.) Maximum Flow 2 Maximum Flow 22 Problem cae: Alg. ake (E f ) becaue (u, v) i alway choen o be par of augmening pah. Here: f =2, 000, 000 An improvemen: Edmond-Karp u,000,000,000,000,000,000 v,000,000 Idea: compue augmening pah wih BFS, picking hore pah from ource o ink (hore w.r.. # edge) Thi varian ha running ime O(VE 2 ), no longer dependen on value of maximum flow, f. u,000,000 Def.: f(u, v) i hore-pah diance from u o v in G f (each edge ha uni diance).,000,000 v u v Lemma. If he Edmond-Karp (EK) algorihm i run in flow nework G =(V,E) wih ource and ink, hen 8v 2 V {, }, f(, v) in reidual nework increae monoonically wih each flow augmenaion. Maximum Flow 23 Maximum Flow 24
Proof (by conradicion). Aume for ome v 2 V {, }, here i a fir augmenaion ha caue hore-pah diance o decreae. Le f be flow before hi augmenaion, f 0 be flow aferward. Le v be verex wih minimum f 0(, v) whoe diance wa decreaed, o f 0(, v) < f(, v). Le p = ; u! v be a hore pah from o v in G f 0 o ha (u, v) 2 E f 0 and f 0(, u) = f 0(, v). By choice of v, diance of u did no decreae (v ha malle f 0(, u) f(, u). Claim: (u, v) 62 E f (noe: (u, v) 2 E f 0 by conr.) If we had (u, v) 2 E f, hen alo f(, v) ( ) apple f (, u)+apple f 0(, u)+= f 0(, v) f 0(, )), ha i, So far, o good...... bu how come (u, v) 62 E f and (u, v) 2 E f 0???... here wa no reidual capaciy before, bu here i aferward??? Mu be becaue algorihm ha increaed flow from v o u. EK alway augmen flow along hore pah, hu hore pah from o u in G f ha (v, u) a la edge, and f(, v) = f (, u) apple f 0(, u) = f 0(, v) 2 Conradicion o aumpion f 0(, v) < f (, v), ono uch verex v exi. q.e.d. Conradicion! ( ) Conider a hore pah p from o v, among cheape uch pah. In paricular, p i no more expenive han a hore pah from o v plu edge (u, v), which come wih weigh one. Maximum Flow 25 Maximum Flow 26 We now ue hi lemma o prove... Theorem. If EK i run on a flow nework G =(V,E) wih ource and ink, hen he oal # of flow augmenaion i O(VE). Proof. We call edge (u, v) in G f criical on augmening pah (AP) p if c f (p) = c f (u, v). Noe: afer augmening along AP, all criical edge diappear from reidual nework a lea one edge on any AP mu be criical We how ha each edge can become criical a mo V /2 Le u, v be conneced by ome edge in E. ime. AP are hore pah, hu when (u, v) i criical for he fir ime, we have f(, v) = f (, u)+. Once flow i augmened, (u, v) diappear from reidual nework. I canno reappear on anoher AP unil flow from u o v i decreaed, i.e.,(v, u) appear on an AP. Wih f 0 a flow in G a hi momen, f 0(, u) = f 0(, v)+. Wih f (, v) apple f 0(, v) by Lemma (hore-pah diance increae monoonically), f 0(, u) = f 0(, v)+ f(, v)+= f (, u)+2 Thu, from ime (u, v) become criical o ime when i nex become criical, diance of u from ource (in reidual nework!) increae by 2. Iniially, diance i 0. Inermediae verice on a hore pah ; u can conain, u, [(u, v) on AP implie u 6= ]. Maximum Flow 27 Maximum Flow 28
Thu, unil u become unreachable (if ever), diance i apple V become criical a mo ( V 2)/2 = V /2 =O(V ) ime. 2, and (u, v) can An applicaion of he FF mehod, oher han flow O(E) pair of verice wih edge beween hem in reidual nework, hu oal # of criical edge during enire execuion of KE i O(VE). Each PA ha a lea one criical edge =) q.e.d. Many (combinaorial) problem can be reduced o max-flow problem, for inance, maximum maching in biparie graph. Given undireced, biparie graph G =(L [ R, E) (all edge beween L and R). A maching i a ube M E.. 8v 2 L [ R, a mo one edge i inciden on v. Verex v i eiher mached (here i an edge inciden), or unmached. Each ieraion ake O(E) (find AP by BFS), hu oal running ime i O(VE 2 ). A maximum maching i a maching of maximum cardinaliy (a oppoed o a maximal maching, which i no exendable). Alhough no bad, oher algorihm (puh-relabel mehod) are beer, obain O(V 2 E), or even O(V 3 ). Maximum Flow 29 Maximum Flow 30 Can ue FF mehod o find a maximum maching (MM) in biparie, undireced G =(V,E) in ime polynomial in V and E. Idea: conruc flow nework where flow correpond o maching: More formally,given undireced, biparie G =(V,E), conruc correponding flow nework G 0 =(V 0,E 0 ): le ource and ink be new verice no in V,leV 0 = V [ {, } if verex pariion of G i V = L [ R, he direced edge of G 0 are edge of G, direced from L o R, along wih V new edge each edge in G 0 ha uni capaciy E 0 = {(, u) : u 2 L} [ {(u, v) : u 2 L, v 2 R, (u, v) 2 E} [ {(v, ) : v 2 R} If we aume ha each edge in G ha degree a lea one, we have E hu E apple E 0 = E + V apple 3 E, and o E 0 = (E). V /2 and L R L R Baically, direc edge from L o R add ource and ink + new edge each edge ha capaciy one L R edge ued in maching have flow one oher L R edge have flow zero Maximum Flow 3 Maximum Flow 32
Def.: Aflowf in flow nework G i ineger-valued if f(u, v) i an ineger for all (u, v) 2 V V. Lemma. Le G =(V,E) be biparie, direced graph, le G 0 be correponding flow nework.. If M i a maching in G, hen here i an ineger-valued flow f in G 0 wih value f = M. 2. If f i an ineger-valued flow in G 0, hen here i a maching M in G wih cardinaliy M = f. Proof. Very imple. (i) From maching M o IV flow in G 0. Define f: if (u, v) 2 M, hen f(, u) =f(u, v) =f(v, ) = and f(u, ) =f(v, u) =f(, v) = oher edge (u, v) 2 E 0, f(u, v) =0 f aifie kew ymmery, capaciy conrain, and flow conervaion (obviou, bu mu check!). Inuiion: each edge (u, v) 2 M in he maching correpond o one uni of flow in G 0 along! u! v!. Pah induced by edge in M are verex-dijoin (by def. of maching; excep &) Ne flow acro cu (L [ {}, R[ {}) i equal o M We know lemma flow acro any cu i equal o value of oal flow, o f = M Maximum Flow 33 Maximum Flow 34 (ii) From IV flow in G 0 o maching M. Le f be an IV flow in G 0,le M = {(u, v) : u 2 L, v 2 R, f(u, v) > 0} Each u 2 L ha exacly one enering edge, (, u) A mo one uni of po. flow ener each u 2 L If o, by flow conervaion, one uni mu leave Flow i IV, hu 8u 2 L, he one uni can ener on a mo one edge, and can leave on a mo one edge Thu, one uni of flow ener u 2 L iff here i exacly one verex v 2 R.. f(u, v) = A mo one edge leaving each u 2 L carrie po. flow Analogou argumen for for each v 2 R =) our M i a maching Wha abou M ize? f(, u) =for every mached u 2 L f(u, v) =0for every edge (u, v) 2 E Since V 0 = L [ R [ {, }, R = V 0 L {, }, we have M = f(l, R) = f(l, V 0 ) f(l, L) f(l, ) f(l, ) Oberve f(l, V 0 )=0 flow conervaion, P 0 f(u, v) =08u 2 V 0 {, } f(l, L) =0 kew-ymmery f(l, ) =f(, L) alo kew-ymmery f(l, ) =0 no edge from L o Thu M =0 0 ( f(, L)) 0=f(, L) = f M q.e.d. Maximum Flow 35 Maximum Flow 36
We would like o conclude ha maximum maching in ome biparie graph G correpond o maximum flow in correponding flow nework G 0 and ha we herefore can compue he maching by olving he flow problem... bu... max flow algorihm migh reurn flow wih f(u, v) no inegral for ome edge (u, v), even hough f mu be inegral (by lemma) Bu no all i lo: Theorem. If he capaciy funcion c ake only inegral value, hen he maximum flow f produced by he Ford-Fulkeron mehod ha he propery ha f i inegervalued. Moreover, for all verice u and v, he value of f(u, v) i an ineger. Proof. Homework. Maximum Flow 37