Network Flow What is a network Flow network
- Slides: 36
Network Flow • What is a network? • Flow network and flows • Ford-Fulkerson method - Residual networks - Augmenting paths - Cuts of flow networks • Max-flow min-cut theorem Yangjun Chen 1
Chapter 26: Maximum Flow n A directed graph is interpreted as a flow network: - A material coursing through a system from a source, where the material is produced, to a sink, where it is consumed. - The source produces the material at some steady rate, and the sink consumes the material at the same rate. n Maximum problem: to compute the greatest rate at which material can be shipped from the source to the sink. Yangjun Chen 2
n Example Edmonton Vancouver v 1 16 4 10 s 13 v 2 Calgary Edmonton Vancouver s 16 0 0 13 Yangjun Chen v 1 4 10 v 2 Calgary 12 9 14 12 Saskatoon v 3 Capacity 20 7 t v 4 4 Regina Saskatoon 0 v 3 9 7 0 Capacity 20 0 0 4 14 Winnipeg v 4 Regina Winnipeg t 3
n Applications which can be modeled by the maximum flow - Liquids flowing through pipes - Parts through assembly lines - current through electrical network - information through communication network Yangjun Chen 4
n Definition – flow networks and flows - A flow network G = (V, E) is a directed graph in which each edges (u, v) E has a nonnegative capacity c(u, v) 0. - source: s; sink: t - For every vertex v V, there is a path: s↝v↝t - A flow in G is a real-valued function f: V V R that satisfies the following properties: Capacity constraint: For all u, v V, f(u, v) c(u, v). Skew symmetry: For all u, v V, f(u, v) = - f(v, u). Flow conservation: For all u V – {s, t}, Yangjun Chen = 0. 5
The quantity f(u, v), which can be positive, zero, or negative, is called the flow from vertex u to vertex v. The value of a flow f is defined as the total flow out of the source |f| = n Example Edmonton v 1 Vancouver 11/16 1/4 10 s 8/13 v 2 Calgary Yangjun Chen 12/12 4/9 11/14 Saskatoon v 3 15/20 7/7 v 4 Winnipeg t 4/4 Regina 6
n Example Edmonton v 1 11/16 Vancouver s -12/0 Saskatoon v 3 4/9 -11/0 -1/10 -8/0 8/13 12/12 1/4 7/7 -7/0 -4/0 v 2 Calgary -11/0 11/14 15/20 -15/0 -4/0 Winnipeg t 4/4 v 4 Regina = 0. The total flow out of a vertex is 0. = 0. The total flow into a vertex is 0. Yangjun Chen 7
The total positive flow entering a vertex v is defined by The total net flow at a vertex is the total positive flow leaving the vertex minus the total positive flow entering the vertex. The interpretation of the flow-conservation property: • • The total positive flowing entering a vertex other than the source or sink must equal the total positive flow leaving that vertex. For all u V – {s, t}, = 0. That is, the total flow out of u is 0. For all v V – {s, t}, = 0. That is, the total flow into v is 0. Yangjun Chen 8
n. Networks with multiple sources and sinks - Introduce supersource s and supersink t s 1 10 12 s 2 5 3 15 6 s 3 8 14 s 4 7 11 13 2 18 s 5 Yangjun Chen s 1 10 ∞ t 1 t 20 2 t 3 s ∞ ∞ 12 s 2 5 3 t 1 ∞ 20 t 2 ∞ ∞ t 3 15 6 s 3 8 14 s 4 7 11 13 2 18 s 5 t 9
n Working with flows - implicit summation notation f(X, Y) = The flow-conservation constraint can be re-expressed as f(u, V) = 0 for all u V – {s, t}. - Lemma 26. 1 Let G = (V, E) be a flow network, and let f be a flow in G. Then, the following equalities hold: 1. For all X V, we have f(X, X) = 0. 2. For all X, Y V, we have f(X, Y) = - f(Y, X). 3. For all X, Y, Z V with X Y = ø, we have the sums f(X Y, Z) = f(X, Z) + f(Y, Z), f(Z, X Y) = f(Z, X) + f(Z, Y). Yangjun Chen 10
n Working with flows - |f| = f(V, t) |f| = f(s, V) = f(V, V) – f(V – s, V) = - f(V – s, V) = f(V, V – s) = f(V, t) + f(V, V – s – t) = f(V, t) Yangjun Chen 11
n The Ford-Fulkerson method - The maximum-flow problem: given a flow network G with source s and sink t, we wish to find a flow of maximum value. - important concepts: residual networks augmenting paths cuts Ford-Fulkerson-Method(G, s, t) 1. Initialize flow f to 0 2. while there exists an augmenting path p 3. do augment flow f along p 4. return f Yangjun Chen 12
n Residual networks - Given a flow network and a flow, the residual network consists of edges that can admit more flow. - Let f be a flow in G = (V, E) with source s and sink t. Consider a pair of vertices u, v V. The amount of additional flow we can push from u to v before exceeding the capacity c(u, v) is the residual capacity of (u, v), given by cf(u, v) = c(u, v) – f(u, v). - Example If c(u, v) = 16 and f(u, v) = 11, then cf(u, v) = 16 – 11 = 5. If c(u, v) = 16 and f(u, v) = -4, then cf(u, v) = 16 – (-4) = 20. Yangjun Chen 13
n Residual networks - Given a flow network G = (V, E) and a flow f, the residual network of G induced by f is Gf = (V, Ef), where Ef = {(u, v) V V: cf(u, v) > 0}. - Example Edmonton v 1 11/16 Vancouver s -12/0 1/4 v 3 7/7 -7/0 -4/0 v 2 Calgary Yangjun Chen Saskatoon 4/9 -11/0 -1/10 -8/0 8/13 12/12 -11/0 11/14 15/20 -15/0 -4/0 Winnipeg t 4/4 v 4 Regina 14
n Residual networks residual network: Edmonton v 1 5 Vancouver 11 3 8 5 Saskatoon v 3 12 11 s 0 v 2 Calgary 5 4 11 3 5 0 7 15 Winnipeg t 4 0 v 4 Regina |Ef| 2|E| Yangjun Chen 15
n Residual networks Lemma 26. 2 Let G = (V, E) be a 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’ (defined by (f + f’ )(u, v) = f (u, v) + f’ (u, v)) is a flow in G with value |f + f’| = |f | + |f’|. Proof. We must verify that skew symmetry, the capacity constraints, and flow conservation are obeyed. skew symmetry: (f + f’)(u, v) = f (u, v) + f’(u, v) = - f (v, u) - f’(v, u) = - (f (v, u) + f’(v, u)) = - (f + f’)(v, u). Yangjun Chen 16
capacity constraint: (f + f’)(u, v) = f (u, v) + f’(u, v) f (u, v) + (c(u, v) - f(u, v)) = c(u, v). flow conservation: = = + = 0 + 0 = 0. Finally, we have |f + f’| = = + = |f |+ |f’| Yangjun Chen = 17
n Augmenting paths - Given a flow network G = (V, E) and a flow f, an augmenting path p is a simple path from s to t in the residual network Gf. - Example Edmonton v 1 5 Vancouver 12 11 s 11 3 8 5 v 2 Calgary Yangjun Chen Saskatoon v 3 5 5 7 4 11 3 15 Winnipeg t 4 v 4 Regina 18
n Augmenting paths - In the above residual network, path s v 2 v 3 t is an augmenting path. - We can increase the flow through each edge of this path by up to 4 units without violating a capacity constraint since the smallest residual capacity on this path is cf(v 2, v 3) = 4. - residual capacity of an augmenting path cf(p) = min{cf(u, v): (u, v) is on p}. - Lemma 26. 3 Let G = (V, E) be a network, let f be a flow in G, and let p be an augmenting path in Gf. Define a function fp: V V R by cf(p) if (u, v) is on p, fp(u, v) = - cf(p) if (v, u) is on p, 0 otherwise. Then, fp is a flow in Gf with value |fp| = cf(p). Yangjun Chen 19
- Example 11/16 Vancouver s Edmonton v 1 1/4 v 2 Edmonton v 1 12/12 1/4 v 2 v 4 11/14 -4/0 t Regina Saskatoon v 3 19/20 -19/0 7/7 -11/0 -15/0 Winnipeg 4/4 -7/0 0/0 Calgary Yangjun Chen 11/14 -7/0 0/9 -11/0 -1/10 -12/0 12/13 -4/0 7/7 -12/0 11/16 s 15/20 -11/0 Calgary Vancouver -12/0 Saskatoon v 3 4/9 -11/0 -1/10 -8/0 8/13 12/12 v 4 -4/0 Winnipeg t 4/4 Regina 20
- Residual network induced by the new flow Edmonton v 1 5 Vancouver 3 12 1 0 7 0 v 2 Calgary Yangjun Chen v 3 9 11 1 Saskatoon 12 11 s 0 11 3 19 4 Winnipeg t 0 v 4 Regina 21
n Augmenting paths - Corollary 26. 4 Let G = (V, E) be a network, let f be a flow in G, and let p be an augmenting path in Gf. Let fp be defined as in Lemma 26. 3. Define a function f’: V V R by f’ = f + fp. Then, f’ is a flow in G with value | f’| = |f | + |fp| > |f |. Proof. Immediately from Lemma 26. 2 and 26. 3. n Cuts of flow networks - The Ford-Fulkerson method repeatedly augments the flow along augmenting paths until a maximum flow has been found. - A flow is maximum if and only if its residual network contains no augmenting path. Yangjun Chen 22
n Cuts of flow networks - A cut (S, T) of flow network G = (V, E) is a partition of V into S and T = V – S such that s S and t T. - net flow across the cut (S, T) is defined to be f(S, T). 11/16 1/4 10 s 8/13 12/12 v 1 v 2 4/9 11/14 v 3 15/20 7/7 v 4 t 4/4 f({s, v 1, v 2}, {v 3, v 4, t}) = f(v 1, v 3) + f(v 2, v 4) = 12 + (-4) + 11 = 19. The net flow across a cut (S, T) consists of positive flows in both direction. Yangjun Chen 23
n Cuts of flow networks - The capacity of the cut (S, T) is denoted by c(S, T), which is computed only from edges going from S to T. 11/16 1/4 10 s 8/13 12/12 v 1 v 2 4/9 11/14 v 3 15/20 7/7 v 4 t 4/4 c({s, v 1, v 2}, {v 3, v 4, t}) = c(v 1, v 3) + c(v 2, v 4) = 12 + 14 = 26. Yangjun Chen 24
n Cuts of flow networks - The following lemma shows that the net flow across any cut is the same, and it equals the value of the flow. Lemma 26. 5 Let f be a flow is a flow network G with source s and sink t, and let (S, T) be a cut of G. Then, the net flow across (S, T) is f(S, T) = |f|. Proof. Note that f(S – s, V) = 0 by flow conservation. So we have f(S, T) = f(S, V) - f(S, S) = f(S, V) = f(s, V) + f(S – s, V) = f(s, V) = |f|. Yangjun Chen 25
n Cuts of flow networks - Corollary 26. 6 The value of any flow in a flow network G is bounded from above by the capacity of any cut of G. Proof. |f| = f(S, T) = = c(S, T). Yangjun Chen 26
n Max-flow min-cut theorem Theorem 26. 7 If f is a flow network G = (V, E) with source s and sink t, then the following conditions are equivalent: 1. f is a maximum flow in G. 2. The residual network Gf contains no augmenting paths. 3. |f| = c(S, T) for some cut (S, T) of G. Proof. (1) (2): Suppose for the sake of contradiction that f is a maximum flow in G but that Gf has an augmenting path p. Then, by Corollary 26. 4, the flow sum f + fp, where fp is given by Lemma 26. 3, is a flow in G with value strictly greater than |f|, contradicting the assumption that f is a maximum flow. Yangjun Chen 27
n Max-flow min-cut theorem Theorem 26. 7 If f is a flow network G = (V, E) with source s and sink t, then the following conditions are equivalent: 1. f is a maximum flow in G. 2. The residual network Gf contains no augmenting paths. 3. |f| = c(S, T) for some cut (S, T) of G. Proof. (2) (3): Suppose that Gf has no augmenting path. Define S = {v V: there exists a path from s to v in Gf} and T = V – S. The partition (S, T) is a cut: we have s S trivially and t S because there is no path from s to t in Gf. For each pair of vertices u and v such that u S and v T, we have f(u, v) = c(u, v), since otherwise (u, v) Ef, which would place v in set S. By Lemma 26. 5, therefore, |f| = f(S, T) = c(S, T). Yangjun Chen 28
n Max-flow min-cut theorem Theorem 26. 7 If f is a flow network G = (V, E) with source s and sink t, then the following conditions are equivalent: 1. f is a maximum flow in G. 2. The residual network Gf contains no augmenting paths. 3. |f| = c(S, T) for some cut (S, T) of G. Proof. (3) (1): By Corollary 26. 6, |f| c(S, T) for all cuts (S, T). The condition |f| = c(S, T) thus implies that f is a maximum flow. Yangjun Chen 29
n Ford-Fulkerson algorithm Ford_Fulkerson(G, s, t) 1. for each edge (u, v) E(G) 2. do f(u, v) 0 3. f(v, u) 0 4. while there exists a path p from s to t in Gf 5. do cf(p) min{cf (u, v) : (u, v) is in p} 6. for each edge (u, v) is in p 7. do f(u, v) + cf(p) 8. f(v, u) - f(u, v) Yangjun Chen 30
n Sample trace Initially, the flow on edge is 0. 0/16 0/4 0/10 s 0/13 0/12 v 1 v 2 0/9 v 3 0/20 0/7 0/14 t v 4 0/4 The corresponding residual network: 16 13 Yangjun Chen 4 10 s 12 v 1 v 2 9 14 v 3 20 7 t v 4 4 31
n Sample trace Pushing a flow 4 on p 1 (an augmenting path) 4/16 0/4 0/10 s 0/13 4/12 v 1 v 2 4/9 v 3 0/20 0/7 4/14 t v 4 4/4 The corresponding residual network: 12 s 4 13 Yangjun Chen 8 4 v 1 4 10 v 2 5 4 4 10 v 3 7 20 4 v 4 t 0 32
n Sample trace Pushing a flow 7 on p 2 (an augmenting path) 11/16 0/4 7/10 s 4/12 v 1 0/13 v 2 4/9 v 3 7/20 7/7 11/14 t v 4 4/4 The corresponding residual network: v 1 5 s 11 13 Yangjun Chen 11 3 v 2 8 4 v 3 5 0 7 4 11 3 v 4 13 7 4 t 0 33
n Sample trace Pushing a flow 8 on p 3 (an augmenting path) 11/16 1/4 -1/10 s 8/13 12/12 v 1 v 2 4/9 v 3 15/20 7/7 11/14 t v 4 4/4 The corresponding residual network: v 1 5 s 11 8 5 Yangjun Chen 3 11 v 2 0 12 v 3 5 0 7 4 11 3 v 4 5 15 4 t 0 34
n Sample trace Pushing a flow 4 on p 4 (an augmenting path) 11/16 1/4 -1/10 s 12/12 v 1 0/9 v 3 7/7 t 0/0 12/13 v 2 11/14 The corresponding residual network: v 1 5 s 11 12 1 Yangjun Chen 3 11 v 2 v 4 v 3 9 0 7 3 4/4 no augmenting paths! 0 12 0 11 19/20 v 4 1 19 4 t 0 35
n Analysis of Ford-Fulkerson algorithm In practice, the maximum-flow problem often arises with integral capacities. If the capacities are rational numbers, an appropriate scaling transformation can be used to make them all integral. Under this assumption, a straightforward implementation of Ford-Fulkerson algorithm runs in time O(E|f*|), where f* is the maximum flow found by the algorithm. The analysis is as follows: 1. Lines 1 -3 take time (E). 2. The while-loop of lines 4 -8 is executed at most |f*| times since the flow value increases by at least one unit in each iteration. Each iteration takes O(E) time. Yangjun Chen 36
- Air entrainment nebulizer
- Cylinder oxygen
- Advantages of venturi mask
- Laminar flow
- Internal flow vs external flow
- Flow energy review
- Flow of energy vs flow of matter
- Transform flow and transaction flow in software engineering
- Transform flow and transaction flow
- Define rotational and irrotational flow
- Internal and external flow
- Data flow vs control flow
- Cheese process flow chart
- Control flow and data flow computers
- Transaction flow testing
- Residual flow network
- Network traffic reporting
- Network flow book
- Properties of flow network
- What is flow control in computer network
- Network flow matrix
- Network flow applications
- Network information flow
- Traffic modeling software
- Datagram approach
- Network topology in computer network
- Features of peer to peer network and client server network
- Ece 526
- Network centric computing and network centric content
- Packet switched network vs circuit switched network
- Flow proof geometry
- Any time interrogation call flow
- What is wawf
- Wet process flow chart
- Operation method sheet
- Basic flow of funds through the financial system
- Weka mac