1 / 31

The max flow problem

The max flow problem. 11. 7. 5. -2. 2. 1. 10. 5. 4. 9. Ford-Fulkerson method. Ford-Fulkerson( G ) f = 0 while ( 9 simple path p from s to t in G f ) f := f + f p output f. A cut. S. T. c(S , T )=26. Lemma 26.5 + Corollary 26.6.

badrani
Télécharger la présentation

The max flow problem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The max flow problem 11 7 5 -2 2 1 10 5 4 9

  2. Ford-Fulkerson method Ford-Fulkerson(G) f = 0 while(9 simple path p from s to t in Gf) f := f + fp outputf

  3. A cut S T c(S,T)=26

  4. Lemma 26.5 + 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.

  5. 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. Gf contains no augmenting path 3. There is a cut (S,T) so that |f|=c(S,T)

  6. 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.

  7. Remarks • The solution values agree, not the solutions themselves – flows and cuts are completely different objects. • 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.

  8. Consequence • The Ford-Fulkerson method is partially correct, i.e., if it terminates it produces the flow with the maximum value.

  9. 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? ٧ ٧ ٧

  10. 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.

  11. 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.

  12. 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?

  13. 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. The integrality theorem is often extremely important when “programming” and modeling using the max flow formalism.

  14. Reduction: Maximum Matching ! Max Flow What is the maximum cardinality matching in G?

  15. G

  16. s t G’ All capacities are 1

  17. Finding a balanced set of Representatives (Ahuja, Application 6.2) • A city has clubs C1, C2,…,Cn and partiesP1, P2,…,Pm. 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 uk members from party Pk.

  18. 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? ٧ ٧ ٧ ٧

  19. Complexity of Ford-Fulkerson • We have at most |f| improvement steps (iterations of the while-loop). • Is this the best possible bound?

  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. Complexity • Assume |V|-1 · |E|. Otherwise the graph is not connected. • Then, Ford-Fulkerson can be implemented to run in time at most O(|E| |f|). • Is this fast?

  22. Polynomial time algorithms • 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 ¼ Fast Exponential ¼ Slow

  23. How to encode max flow instance? java MaxFlow ??????????

  24. How to encode max flow instance? 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

  25. Complexity of Ford-Fulkerson • With standard (decimal or binary) representation of integers, Ford-Fulkerson is an exponential time algorithm.

  26. java MaxFlow 111111 #|1111111111111111|1111111111111||| #||1111111111|111111111111|| #|1111|||11111111111111| #||111111111|||11111111111111111111 #|||1111111||1111 #|||||

  27. 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. • 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.

  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.

  29. 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.

  30. Why at most O(|V| |E|) iterations? When executing Edmonds-Karp, the residual network Gfgradually changes (as f changes). This sequence of different residual networks Gf satisfies: Theorem (~ Lemma 26.8 and Theorem 26.9): • The distance between s and t in Gfnever decreases: After each iteration of the while-loop, it either increases or stays the same. 2) The distance between s and t in Gf 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.

More Related