1 / 31

Introduction to Algorithms

Introduction to Algorithms. Maximum Flow My T. Thai @ UF. Flow networks. A flow network G = ( V , E ) is a directed graph Each edge ( u , v )  E has a nonnegative capacity If ( u , v )  E , then If , A source s and a sink t. Flow networks.

amalie
Télécharger la présentation

Introduction to Algorithms

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. 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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

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

  6. Multiple sources and sinks Add supersources Add supersinkt My T. Thai mythai@cise.ufl.edu

  7. Ford-Fulkerson Method My T. Thai mythai@cise.ufl.edu

  8. Example Augmenting path sv2v3t All flows in the augmenting path are increased by 4 units My T. Thai mythai@cise.ufl.edu

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

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  12. Increase the value of flow along augmenting paths My T. Thai mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

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

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

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  18. Example My T. Thai mythai@cise.ufl.edu

  19. My T. Thai mythai@cise.ufl.edu

  20. No augmenting path My T. Thai mythai@cise.ufl.edu

  21. Bad example FORD-FULKERSONruns 1000,000 iterations My T. Thai mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu (A maximum matching) (Reduce to the maximum flow problem)

  29. Integrality theorem My T. Thai mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

  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 mythai@cise.ufl.edu

More Related