introduction to algorithms n.
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to Algorithms PowerPoint Presentation
Download Presentation
Introduction to Algorithms

Introduction to Algorithms

158 Vues Download Presentation
Télécharger la présentation

Introduction to Algorithms

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Introduction to Algorithms Maximum Flow My T. Thai @ UF

  2. Flow networks • A flow networkG = (V, E) is a directed graph • Each edge (u, v) E has a nonnegative capacity • If (u, v) E , then • If , • A sources and a sinkt My T. Thai

  3. Flow networks • A flow in G is a real-valued function that satisfies the two properties: • Capacity constraint u, vV: 0  f(u, v)  c(u, v) • Flow conservation uV  {s, t}: v V f(u, v) = v V f(v, u) • The value |f| of a flow f: (the total flow out of the source minus the flow into the source) Label of each edge: f/c My T. Thai

  4. Max-Flow Problem • Input: A flow network G = (V, E), s, and t • Output: Find a flow of maximum value • Applications: • Flow of liquid through pipes • Information through communication networks • Flow in a transport network • … My T. Thai

  5. Remove antiparallel edges (v1, v2) and (v2, v1) are antiparallel edges Vertex v’ is added to remove edge (v1, v2) My T. Thai

  6. Multiple sources and sinks Add supersources Add supersinkt My T. Thai

  7. Ford-Fulkerson Method My T. Thai

  8. Example Augmenting path sv2v3t All flows in the augmenting path are increased by 4 units My T. Thai

  9. Residual network • Given flow f, the residual capacityofedge(u, v) • Residual network induced by f is Gf = (V, Ef)  My T. Thai

  10. Flow augmentation • f is a flow in G and f’ is a flow in Gf , the augmentation of flow f by f’( ), is a function from , defined by: My T. Thai

  11. Augmenting path • Any simple path p from s to t in G fisanaugmenting path in G with respect to f • Flows on edges of p can be increased by the residual capacity of p Cf(p) =4 with p is the shaded path My T. Thai

  12. Increase the value of flow along augmenting paths My T. Thai

  13. Cuts • A cut (S,T) of a flow network G = (V, E) is a partition of V into S and T = V  S such that s  S and t  T. • Thenet flow across the cut • The capacity of the cut • A minimum cut of G is a cut whose capacity is minimum over all cuts of G My T. Thai

  14. Proof: Flow conservation => , => (regroup the formula) (partition V to S and T) My T. Thai

  15. Upper bound of flow value Proof: Let (S, T) be any cut, f be any flow My T. Thai

  16. Max-flow min-cut theorem Proof: • (1) => (2): If Gf has an augmenting path p, then by Corollary 26.3, there exists a flow of value |f| + Cf(p) > |f| that is a flow in G • (2) => (3): Suppose (2) holds. Define S = {vV:  path from s to v in Gf}, and T = V – S. (S, T) is a cut. For u  S, v  T,f(u,v) = c(u,v) By Lemma 26.4, |f | = f(S,T) = c(S,T) • (3) => (1): By Corollary 26.5, |f | = c(S,T) implies f is a maximum flow My T. Thai

  17. Ford-Fulkerson algorithm • Running time: • If capacities are integers, then O(E|f*|), where f* is the maximum flow • With irrational capacities, might never terminate. My T. Thai

  18. Example My T. Thai

  19. My T. Thai

  20. No augmenting path My T. Thai

  21. Bad example FORD-FULKERSONruns 1000,000 iterations My T. Thai

  22. Edmonds-Karp algorithm • Do FORD-FULKERSON, but compute augmenting paths by BFS of Gf . Augmenting paths are shortest paths from s to t in Gf , with all edge weights = 1 • Running time: O(VE2) • There are O(VE) flow augmentations • Time for each augmentation (BFS) is O(E) My T. Thai

  23. Analysis of E-K Proof: (by contradiction) • Suppose that there exist 2 continuous flows f and f’ such that f(s,v)  f(s,v) for some v ∈ V • W.l.o.g suppose v is the nearest vertex (to s) satisfyingf(s,v) < f(s,v) (*) My T. Thai

  24. Proof of Lemma 26.7 • Let u be the vertex before v on the shortest path from s to v => => u is not the nearest vertex to s satisfying(*) => Claim: . If not we have: (Contradicted) My T. Thai

  25. => The augmentation must increase flow v to u • Edmonds-Karp augments along shortest paths, the shortest path s to u in Gf has v → u as its last edge (Contradicted) My T. Thai

  26. Time bound Proof: • Suppose p is augmenting path, (u, v)  p, and cf(p) = cf(u,v). Then (u, v) is critical, and disappears from the residual network after augmentation. • Before (u, v) becomes a critical edge again, there must be a flow back from v to u My T. Thai

  27. Time bound • Claim: each of the |E| edges can become critical ≤ |V| /2 − 1 times • Consider edge (u, v), when (u, v) becomes critical first time, δf(s, v) = δf(s, u) + 1 • (u, v) reappears in the residual network after (v, u) is on an augmenting path in Gf’ , δf’(s, u) = δf’(s, v) + 1 => =>The claim is proved => The theorem is proved My T. Thai

  28. Maximum bipartite matching • A matching is a subset of edges M ⊆ E such that for all v ∈ V, ≤ 1 edge of M is incident on v. • Problem: Given a bipartite graph find a matching of maximum cardinality. each edge has capacity 1 My T. Thai (A maximum matching) (Reduce to the maximum flow problem)

  29. Integrality theorem My T. Thai

  30. Summary • Max-flow min-cut theorem: the capacity of the minimum cut equals to the value of the maximum flow • Ford-Fulkerson method: iteratively find an augmenting path and augment flow along the path • Ford-Fulkerson algorithm: find an arbitrary augmenting path in each iteration • If capacities are integers, then O(E|f*|), where f* is the maximum flow • With irrational capacities, might never terminate. My T. Thai

  31. Summary • Edmonds-Karp algorithm: find a shortest augmenting path in each iteration • Time: O(VE2) • Integrality theorem: if all capacities are integral values, then the value of the maximum flow as well as flows on edges are integers My T. Thai