Max Flows and Minimum Cuts Carlo Mannino (from Geir Dahl notes) University of Oslo, INF-MAT5360 - Autumn 2011 (Mathematical optimization)
st-flow Given a directed graph D = ( V,E ) ( x , c ) 2 distinct vertices s,t V (1,1) 1 4 (2,2) (2,3) s source: no edges entering s (1,1) (1,1) s t t sink : no edges outgoing from t (2,3) (2,2) 2 3 Edge capacity function c : E R + (3,3) An st-flow is a function x : E R, satisfying flow conservation constraints x ( e ) x ( e ) ( v V \ { s , t }) e ( v ) e ( v ) x non-negativity and capacity constraints 0 c Obs: div x ( v ) = 0 for all v s,t .
Flow value e val ( x ) x ( e ) div ( s ) VALUE of an st-flow = flow outgoing from s x ( s ) Theorem (net st-flow through an st-cut) Let + ( S ) be an st- cut of D = ( V,E) and x be an st -flow. Then Hajhsas x ( e ) x ( e ) val ( x ) da e ( S ) e ( S ) Since s S and t S we have div ( v ) div ( s ) val ( x ) x x v S x ( e ) x ( e ) div ( v ) The result follows from v S e ( S ) e ( S ) Corollary (the flow sent by s equals the flow into t ) Let + ( S ) be a st- cut of D = ( V,E) and x be an st -flow. Then Hajhsas val ( x ) x ( e ) div ( t ) da x e ( t )
The maximum st -flow problem Maximum st-flow problem Given a directed graph D = (V,E) with edge capacity c : E R + , Hajhsas source s and sink t , find an st-flow of maximum value. da maximize flow value max x ( e ) e ( s ) flow conservation constraints x ( e ) x ( e ) ( v V \ { s , t }) e ( v ) e ( v ) x non-negativity and capacity constraints 0 c LP- program: optimum exists. We can apply simplex method. More effective combinatorial algorithms.
Minimum st-cut K 1 Let K = + ( S ) be an st-cut ( s S, t S ) 1 4 2 3 s t CAPACITY of K: cap c ( K ) = 1 1 ( ) c e 3 2 K 2 3 e 3 cap c ( K ) = 6 Minimum st-cut problem Given a directed graph D = ( V , E ) with edge capacity c : E R + , Hajhsas source s and sink t , find an st-cut with minimum capacity. da Combinatorial optimization problem with linear objective function.
Minimum st-cut Lemma (weak max-flow min-cut property ) The following inequality holds: Hajhsas max{val( x ): x is st-flow } min{cap c ( K ): K is st-cut } da Let K = + ( S ) be a (minimum capacity) st-cut ( s S, t S ) val ( x ) x ( e ) x ( e ) x ( e ) c ( e ) cap ( K ) c e ( S ) e ( S ) e ( S ) e ( S )
The max-flow min-cut theorem Theorem (max-flow / min-cut ) The value of a maximum st -flow equals the minimum st-cut capacity: Hajhsas max{val( x ): x is st-flow } = min{cap c ( K ): K is st-cut } da ( l , u ) Let M = min{cap c ( K ): K is st-cut } (0, c e ) D ’ The flow value is no larger than M s t Build graph D’ from D adding edge ( t,s ) Let l ( t,s ) = u ( t,s ) = M ; l ( e ) = 0, u ( e ) = c ( e ) for e E ( M , M ) We show that D’ , l and u satisfy Hoffman’s conditions l ( e ) u ( e ) ( S V ) e ( S ) e ( S ) and D’ admits a circulation x’.
Minimum st-cut Hoffman’s (0, c e ) l ( e ) u ( e ) ( S V ) D ’ condition e ( S ) e ( S ) s t 1. If ( t,s ) - ( S ) l(e) 0 c(e) u(e) δ δ δ e (S) e (S) e (S) e ( M , M ) l ( e ) M 2. If ( t,s ) - ( S ) ( S ) s S , t S K = + ( S ) is an st -cut satisfying Hoffman’s condition ( ) ( ) cap ( ) u e c e K M c e ( S ) e ( S ) There exists a circulation x in D’ with l x u x(t,s) = M x ( e ) x ( e ) x ( t , s ) M x circulation e ( s ) e ( s ) The restriction of x to the edges of D provides an st-flow with value M
Augmenting paths D = ( V,E ), capacity c R E + , st-flow x R E (1,4) 1 4 (1,2) (2,3) Auxiliary Graph D x = ( V,E x ) (1,1) (0,1) s t = { e E: x e < u e } { e -1 : e E, 0 < x e } E x (1,3) (2,2) 2 3 (2,2) x -AUGMENTING PATH: st-path P in D x Forward edges P + = {e E : e E x } 1 4 P Backward edges P - = {e E : e -1 E x } s t 2 3 D x
The augmenting path theorem Theorem (augmenting path theorem ) An st -flow x is maximum if and only if D x contains no x-augmenting Hajhsas path. da Proof . ( Necessity ) By contradiction. 1 4 Suppose x is maximum and P st-path of D x P Let + = min{ c (e)- x ( e ): e P + } > 0 s t Let - = min{ x ( e ): e P - } > 0 D x 2 3 = min{ - , + } > 0 (1,2) 1 4 (1,2) (2,3) Send units of flow on P. Obtain flow x’ (1,1) (0,1) s t x ( e ) if e P (1,3) (2,2) x ( e )+ if e P + 2 3 x’ ( e ) = (2,2) x ( e )- if e P -
The augmenting path theorem Proof . ( Necessity ) (1,4) 1 4 (1,2) (2,3) Send units of flow on P. Obtain flow x’ (1,1) (0,1) s t x ( e ) if e P (1,3) (2,2) x ( e )+ if e P + 2 3 x’ ( e ) = (2,2) x ( e )- if e P - 2 2 (1,2) x ' is a feasible st-flow (show it!) 1 4 (1,2) (2,3) (1,1) (0,1) s t Since P is an st-path, we have: 0 (1,3) (2,2) 2 3 2 (2,2) val ( x ' ) x ' ( e ) x ( e ) x ( e ) val ( x ) e ( s ) e ( s ) e ( s ) and x is not maximum, a contradiction .
The augmenting path theorem Proof . ( Sufficiency ) (2,4) 1 4 (2,2) (2,3) Suppose no st-path in D x (0,1) (0,1) s t Then there is an empty st -cut K = + ( S ) in D x (2,3) (2,2) 2 3 (i.e. S = { w V : there is a sw-path in D x } (2,2) If D = ( V,E ) contains an edge ( w,z ) with w S to z V\S x wz = c wz (otherwise ( w,z ) E x ) x ( e ) c ( e ) e ( S ) e ( S ) D D If D = ( V,E ) contains an edge ( z,w ) with w S to z V/S x zw = 0 (otherwise ( z,w ) -1 =( w,z ) E x ) x ( e ) 0 e ( S ) D + ( S ) val ( x ) x ( e ) x ( e ) c ( e ) cap ( K ) 1 4 c e ( S ) e ( S ) e ( S ) P s t x is a maximum flow and K is a minimum cut D x 2 3 S ={ s ,1,2,4}
Ford-Fulkerson algorithm 1. Start with the zero flow x = 0 2. Look for an x-augmenting path P in D x 3. if P exists, then find the maximum possible increase along P and augment x. Goto 2 . 4. if no such P exists then x is a maximum flow. A minimum st -cut is + (S(x)) where S(x)={ w V : there is a sw-path in D x }. The algorthm can take C iterations, where C is the maximum capacity of an edge. This is not polynomial time (why?). There are more efficient versions (polynomial in | V | and | E |).
Using LP duality to prove the same things
The dual of max st -flow problem max -div x ( t ) max x x vt tv vt ( t ) tv ( t ) x x 0 ( v V \ { s , t }) y v wv wv PRIMAL wv ( v ) vw ( v ) (MF) z vw x c ( vw E ) vw vw 0 x min c vw z vw E vw y y z 0 ( vw E , v , w V \ { s , t }) v w vw y z 0 ( sw E ) w sw y z 0 ( vs E) v vs DUAL max flow y z 1 ( tw E) w tw ( DMF ) y z 1 ( vt E) v vt z e 0 ( e E)
The dual of max st -flow problem min c vw z vw E vw y y z 0 ( vw E , v , w V \ { s , t }) v w vw y z 0 ( sw E ) w sw y z 0 ( vs E) v vs ( DMF ) y z 1 ( tw E) w tw 1 ( y z vt E) v vt z e 0 ( e E) By introducing y s = 0 and y t = -1 we make it less ugly min c vw z vw E vw ( DMF ) y 0 , y 1 s t y y z 0 ( vw E ) v w vw 0 ( z e e E)
The dual of max st -flow problem min c vw z vw ( DMF ) E vw y 0 , y 1 s t 0 ( ) y y z vw E v w vw z e 0 ( e E) ( y * ,z * ) is an optimal solution to dual if and only if ( y * + 1 ,z * ) is optimal to: min c vw z vw ( DMF ) E vw y 1 , y 0 s t y y z 0 ( vw E ) v w vw z e 0 ( e E)
Recommend
More recommend