310 likes | 550 Views
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.
E N D
Introduction to Algorithms Maximum Flow My T. Thai @ UF
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
Flow networks • A flow in G is a real-valued function that satisfies the two properties: • Capacity constraint u, vV: 0 f(u, v) c(u, v) • Flow conservation uV {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
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
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
Multiple sources and sinks Add supersources Add supersinkt My T. Thai mythai@cise.ufl.edu
Ford-Fulkerson Method My T. Thai mythai@cise.ufl.edu
Example Augmenting path sv2v3t All flows in the augmenting path are increased by 4 units My T. Thai mythai@cise.ufl.edu
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
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
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
Increase the value of flow along augmenting paths My T. Thai mythai@cise.ufl.edu
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
Proof: Flow conservation => , => (regroup the formula) (partition V to S and T) My T. Thai mythai@cise.ufl.edu
Upper bound of flow value Proof: Let (S, T) be any cut, f be any flow My T. Thai mythai@cise.ufl.edu
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 = {vV: 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
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
Example My T. Thai mythai@cise.ufl.edu
My T. Thai mythai@cise.ufl.edu
No augmenting path My T. Thai mythai@cise.ufl.edu
Bad example FORD-FULKERSONruns 1000,000 iterations My T. Thai mythai@cise.ufl.edu
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
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) satisfyingf(s,v) < f(s,v) (*) My T. Thai mythai@cise.ufl.edu
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
=> 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
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
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
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)
Integrality theorem My T. Thai mythai@cise.ufl.edu
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
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