The max flow problem Ford-Fulkerson method 7 11 Ford-Fulkerson(G) f = 0 while( simple path p from s to t in G f ) 10-2 2 1 f := f + f p output f 4 9 1 2 A cut Lemma 26. + Corollary 26.6 Let f be a flow in G and let (S,T) be a cut in G. Then f = f(s,t). Let f be a flow in G and let (S,T) be a cut in G. Then f c(s,t). This is a weak duality theorem. S T c(s,t)=26 3 4 Max Flow Min Cut Theorem Let f be a flow in G. The following three conditions are equivalent: 1. f is a maximum flow 2. G f contains no augmenting path 3. There is a cut (S,T) so that f =c(s,t) Max Flow Min Cut Theorem The value of the maximum flow in G is equal to the capacity of the minimum cut in G. This is a strong duality theorem. 6 1
Remarks The solution values agree, not the solutions themselves flows and cuts are completely different objects. Consequence The Ford-Fulkerson method is partially correct, i.e., if it terminates it produces the flow with the maximum value. Given a max flow we can easily find a min cut (follows from proof of max flow-min cut theorem). Going the other way is less obvious. 7 8 Local search checklist Design: How do we find the first feasible solution? ٧ Neighborhood design? ٧ Which neighbor to choose? Analysis: Partial correctness? (termination correctness) Termination? Complexity? ٧ Termination Suppose all capacities are integers. We start with a flow of value 0. In each iteration, we get a new flow with higher integer value. We always have a legal flow, i.e., one of value at most f. Hence we can have at most f iterations. 9 10 Correctness of Ford-Fulkerson Since Ford-Fulkerson is partially correct and it terminates if capacities are integers it is a correct algorithm for finding the maximum flow if capacities are integers. Exercise: It is also correct if capacities are rationals. Does Ford-Fulkerson always terminate? In case of irrational capacities, not necessarily! (Exercise) But we can t give irrational capacities as inputs to digital computers anyway. In case of floating point capacities, who knows? 11 12 2
Integrality Theorem (26.11) If a flow network has integer valued capacities, there is a maximum flow with an integer value on every edge. The Ford- Fulkerson method will yield such a maximum flow. Reduction: Maximum Matching Max Flow The integrality theorem is often extremely important when programming and modeling using the max flow formalism. What is the maximum cardinality matching in G? 13 14 s t G G All capacities are 1 1 16 Finding a balanced set of Representatives (Ahuja, Application 6.2) A city has clubs C 1, C 2,,C n and parties P 1, P 2,,P m. A citizen may be a member of several clubs but may only be a member of one party. A balanced city council must be formed by including exactly one member from each club and at most u k members from party P k. 17 18 3
Local search checklist Design: How do we find the first feasible solution? ٧ Neighborhood design? ٧ Which neighbor to choose? Analysis: Partial correctness? (termination correctness) Termination? ٧ Complexity? ٧ Complexity of Ford-Fulkerson We have at most f improvement steps (iterations of the while-loop). Is this the best possible bound? 19 20 Complexity We have at most f improvement steps (iterations of the while-loop) and this bound cannot be improved for the general Ford-Fulkerson method. How fast can we implement a single improvement step? 21 Assume V -1 connected. Complexity E. Otherwise the graph is not Then, Ford-Fulkerson can be implemented to run in time at most O( E f ). Is this fast? It is a polynomially bounded function of E and f. Does this make Ford-Fulkerson a polynomial time algorithm? 22 Polynomial time algorithms How to encode max flow instance? Defintion: A polynomial time algorithm is an algorithm than runs in time polynomial in n, where n is the number of bits of the input. How we intend to encode the input influences if we have a polynomial algorithm or not. Usually, some standard encoding is implied. In this course: Polynomial Exponential Fast Slow java MaxFlow?????????? 23 24 4
How to encode max flow instance? Complexity of Ford-Fulkerson With standard (decimal or binary) representation of integers, Ford-Fulkerson is an exponential time algorithm. java MaxFlow 6#0 16 13 0 0 0#0 0 10 12 0 0 #0 4 0 0 14 0#0 0 9 0 0 20 #0 0 0 7 0 4 #0 0 0 0 0 0 2 26 Complexity of Ford-Fulkerson With unary (4 ~ 1111) representation of integers, Ford- Fulkerson is a polynomial time algorithm. Intuition: When the input is longer it is easier to be polynomial time as a function of the input length. java MaxFlow 111111 # 1111111111111111 1111111111111 # 1111111111 111111111111 # 1111 11111111111111 # 111111111 11111111111111111111 An algorithm which is polynomial if integer inputs are represented in unary is called a pseudo-polynomial algorithm. Intuitively, a pseudo-polynomial algorithm is an algorithm which is fast if all numbers in the input are small. # 1111111 1111 # 27 28 Edmonds-Karp Edmonds-Karp algorithm for Max Flow: Implement Ford-Fulkerson by always choosing the shortest possible augmenting path, i.e., the one with fewest possible edges. Complexity of Edmonds-Karp Each iteration of the while loop can still be done in time O( E ). The number of iterations are now at most O( V E ) regardless of capacities to be seen next. Thus, the total running time is O( V E 2 ) and Edmonds-Karp is a polynomial time algorithm for Max Flow. 29 30
Why at most O( V E ) iterations? When executing Edmonds-Karp, the residual network G f gradually changes (as f changes). This sequence of different residual networks G f satisfies: Theorem (~ Lemma 26.8 and Theorem 26.9): 1) The distance between s and t in G f never decreases: After each iteration of the while-loop, it either increases or stays the same. 2) The distance between s and t in G f can stay the same for at most E iterations of the while-loop before increasing. As the distance between s and t can never be more than V -1 and it starts out as at least 1, it follows from the theorem that we have at most ( V -2) E iterations. 31 6