introduction to algorithms
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
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
My T. [email protected]
2
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:
My T. [email protected]
3Label of each edge: f/c
(the total flow out of the source minus the flow into the source)
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. [email protected]
4
Remove antiparallel edges
My T. [email protected]
5
(v1, v2) and (v2, v1) are antiparallel edges
Vertex v’ is added to remove edge (v1, v2)
Example
My T. [email protected]
8
Augmenting path sv2v3t
All flows in the augmenting path are increased by 4 units
Residual network
Given flow f, the residual capacity of edge (u, v)
Residual network induced by f is Gf = (V, Ef)
My T. [email protected]
9
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:
Flow augmentation
My T. [email protected]
10
Augmenting path
Any simple path p from s to t in G f is an augmenting path in G with respect to f
Flows on edges of p can be increased by the residual capacity of p
My T. [email protected]
11
Cf(p) =4 with p is the shaded path
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. The net 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 GMy T. Thai
13
Proof:Flow conservation => ,
My T. [email protected]
14
=>
(regroup the formula)
(partition V to S and T)
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 flowMy T. Thai
16
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. [email protected]
17
My T. [email protected]
19
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. [email protected]
22
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. [email protected]
23
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:
My T. [email protected]
24(Contradicted)
=> 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
My T. [email protected]
25
(Contradicted)
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. [email protected]
26
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
=>
My T. [email protected]
27
=>The claim is proved => The theorem is proved
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.
My T. [email protected]
28
each edge has capacity 1
(A maximum matching) (Reduce to the maximum flow problem)
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. [email protected]
30
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. [email protected]
31