Professional Documents
Culture Documents
Maximum Flow
Lecture #30
Maximum Flow
12
16 20
s 10 9 7 t
4
13 4
14
Flow:
f (e) f (e)
e.in.v e.out.v
Net flow and value of a flow f:
f f ( s, v )
– The total flow fromvsource
V
to any other vertices.
– The same as the total flow from any vertices to
the sink.
12/12
15/20
11/16
8/13 4/4
11/14
• FORD-FULKERSON-METHOD(G,s,t)
• initialize flow f to 0
• while there exists an augmenting path p
• do augment flow f along p
• return f
Residual networks:
12 4/12
16 v1 v3 20 4/16 v1 v3 20
s 10 4 7 t s 7
9 10 4 t
4/9
13 4 13 4/4
v2 v4 v2 v4
14 4/14
(a)
Example of Residual network (continued)
8
12
v1 v3 20
4
4
s 10 4 4
7 t
5
13 10 4
v2 v4
4
(b)
Fact 1:
• Let G=(V,E) be a flow network with source s and sink t, and let
f be a flow in G.
• Let Gf be the residual network of G induced by f,and let f’ be a
flow in Gf.Then, the flow sum f+f’ is a flow in G with
value .
f in
• f+f’: the flow fsame
f ' the f 'direction will be added.
the flow in different directions will be cnacelled.
Augmenting paths:
2 3 1
8
12
v1 v3 20
4
4
s 10 4 4
7 t
5
13 10 4
v2 v4
4
(b)
The basic Ford-Fulkerson algorithm:
• FORD-FULKERSON(G,s,t)
• for each edge (u,v) E[G]
• do f[u,v] 0
• f[v,u] 0
• while there exists a path p from s to t in the residual network
Gf
• do cf(p) min{cf(u,v): (u,v) is in p}
• for each edge (u,v) in p
• do f[u,v] f[u,v]+cf(p)
•
Example:
s 10 4 7 t s 7
9 10 4 t
4/9
13 4 13 4/4
v2 v4 v2 v4
14 4/14
(a)
8
12 4/12
v1 v3 20 v1 v3 7/20
4 11/16
4
s 10 4 4
7 t s 7/10 4 7/7 t
5 4/9
13 10 4 13 4/4
v2 v4 v2 v4
4 11/14
(b)
8 12/12
5 v1 v3 13
4 11/16 v1 v3 15/20
11 4
s 3 11 7 7 t s 7/7
10 1/4 t
5 4/9
13 3
4 8/13 4/4
v2 v4 v2 v4
11 11/14
(c)
12 12/12
5 v1 v3 5 11/16 v1 v3 19/20
11 4
s 11 3 7 15 t s 7/7
5 10 1/4 t
5 9
8 3
4 12/13 4/4
v2 v4 v2 v4
11 11/14
(d)
12
5 v1 v3 1
s 3 19
1 11 9 7 t
12 3 4
v2 v4
11
(e)
Time complexity:
M M'
L R L R
(a) (b)
L R L R
(a) (b)
• Lemma .
• Let G=(V,E) be a bipartite graph with vertex partition
V=LR,and let G’=(V’,E’) be its corresponding flow network.If
M is a matching in G, then there is an integer-valued flow f in
G’ with value .Conversely, if f is an integer-valued
flow in G’,then there is a matchingfMinMG with
cardinality .
• Reason: The edges incidentM tof s and t ensures this.
– Each node in the first column has in-degree 1
– Each node in the second column has out-degree 1.
– So each node in the bipartite graph can be involved once in the flow.
Example:
Aug. path:
1
1
1
1
1
1
Residual network. Red edges are new edges in the residual network.
The new aug. path is bold. Green edges are old aug. path. old flow=1.