Download presentation
Presentation is loading. Please wait.
Published byErlin Budiono Modified over 6 years ago
1
Network Flow and Connectivity in Wireless Sensor Networks
Youn-Hee Han Korea University of Technology and Education Laboratory of Intelligent Networks (LINK) Edited and Copied From Slides by Kevin Wayne
2
Max Flow [Definition] Flow network: Features:
an edge-capacitated directed graph, with two distinguished vertices called the source and the sink. Features: Abstraction for material flowing through the edges. G = (V, E) = directed graph Two distinguished nodes: s = source, t = sink. c(e) = capacity of edge e. s 2 3 4 5 6 7 t 15 30 10 8 9 capacity source sink
3
Max Flow [Definition] flow:
A flow in a network X is a function f that assigns to each edge e of the network a real number f(e), in such a way that: 4 capacity flow s 2 3 5 6 7 t 15 30 10 8 9
4
Max Flow [Definition] flow (or s-t flow):
A flow in a network X is a function f that assigns to each edge e of the network a real number f(e), in such a way that: 4 capacity flow s 2 3 5 6 7 t 15 30 10 8 9
5
Max Flow [Definition] Value Q :
The value Q of a flow in a network X is: 4 capacity flow s 2 3 5 6 7 t 15 30 10 8 9 Value Q = 4
6
Max Flow [Definition] Value Q :
The value Q of a flow in a network X is: 10 6 11 1 3 8 capacity flow s 2 4 5 7 t 15 30 9 Value Q = 24
7
Max Flow [Definition] Max Flow Problem:
find the maximum possible value Q of a flow in X and find a flow route of that value. 10 9 14 4 8 1 capacity flow s 2 3 5 6 7 t 15 30 Value Q = 28 (Max)
8
Min Cut [Definition] cut (A,B) (or s-t cut) :
By a cut (A,B), we mean a partition (A, B) of V with s A and t B. [Definition] capacity of a cut The capacity of a cut (A, B) is: s 2 3 4 5 6 7 t 15 30 10 8 9 A cap(A,B) = = 62
9
Min Cut [Definition] Min Cut Problem:
find a cut of the minimum capacity in X s 2 3 4 5 6 7 t 15 30 10 8 9 A cap(A,B) = = 28
10
Min Cut [Definition] Min Cut Problem:
find a cut of the minimum capacity in X cut(U,V) is a minimum cut : its capacity is the sum of the capacities crossing the cut = 1+2=3=cap(U,V). : the edge (i,j) is not included in cap(U,V) because it is going in the wrong direction.
11
Flows and Cuts [Lemma 1] Let f be “any” flow, and let cut(A, B) be “any” cut. Then, the net flow sent across the cut is equal to the value Q. 6 2 9 5 10 6 10 15 15 4 4 10 3 8 8 s 5 3 8 6 10 t A 1 10 4 6 15 10 15 11 11 Net flow across the cut = = 24 (= Value Q) 4 30 7
12
Flows and Cuts [Lemma 1] Let f be “any” flow, and let cut(A, B) be “any” cut. Then, the net flow sent across the cut is equal to the value Q. 6 2 9 5 10 6 10 15 15 4 4 10 3 8 8 s 5 3 8 6 10 t A 1 10 4 6 15 10 15 11 11 Net flow across the cut = = 24 (= Value Q) 4 30 7
13
Flows and Cuts [Lemma 1] Let f be “any” flow, and let cut(A, B) be “any” cut. Then, the net flow sent across the cut is equal to the value Q. 2 9 5 10 6 10 15 15 4 4 10 3 8 8 s 5 3 8 6 10 t A 1 10 4 6 15 10 15 11 11 Net flow across the cut = = 24 (= Value Q) 4 30 7
14
Flows and Cuts [Lemma 1] Let f be “any” flow, and let cut(A, B) be “any” cut. Then, the net flow sent across the cut is equal to the value Q. Proof] The net flow out of s is Q. The net flow out of any other vertex v in A is 0. So, we obtain:
15
Flows and Cuts [Lemma 2] Let f be “any” flow, and let cut(A, B) be “any” cut. Then the value Q of the flow is at most the capacity cap(A,B) of the cut. 6 2 9 5 10 6 10 15 15 4 4 10 3 8 8 s 5 3 8 6 10 t A 1 10 4 6 15 10 15 11 11 4 30 7 Value Q = 24 cap(A,B) = 30
16
Flows and Cuts [Lemma 2] Let f be “any” flow, and let cut(A, B) be “any” cut. Then the value Q of the flow is at most the capacity cap(A,B) of the cut. 6 2 9 5 10 6 10 15 15 4 4 10 3 8 8 s 5 3 8 6 10 t A 1 10 4 6 15 10 15 11 11 4 30 7 Value Q = 24 cap(A,B) = 64(= )
17
Flows and Cuts [Lemma 2] Let f be “any” flow, and let cut(A, B) be “any” cut. Then the value Q of the flow is at most the capacity cap(A,B) of the cut. 2 9 5 10 6 10 15 15 4 4 10 3 8 8 s 5 3 8 6 10 t A 1 10 4 6 15 10 15 11 11 4 30 7 Value Q = 24 cap(A,B) = 28(= )
18
Flows and Cuts [Lemma 2] Let f be “any” flow, and let cut(A, B) be “any” cut. Then the value Q of the flow is at most the capacity cap(A,B) of the cut. Proof]
19
Max Flow = Min Cut [Theorem] The maximum flow value Q in a network X is equal to the minimum capacity of any cut in X. In other words, Let f be “any” flow, and let (A, B) be “any” cut. If Q= cap(A, B), then the flow f is a max flow and cut(A, B) is a min cut. Value Q = 28 Cut capacity = 28 9 2 9 5 10 1 9 10 15 15 4 10 4 8 9 s 5 3 8 6 10 t 4 10 A 4 6 15 10 15 14 14 4 30 7
20
Max Flow = Min Cut [Theorem] The maximum flow value Q in a network X is equal to the minimum capacity of any cut in X. In other words, Let f be “any” flow, and let (A, B) be “any” cut. If Q= cap(A, B), then the flow f is a max flow and cut(A, B) is a min cut. Value Q = 3 Cut capacity = 3 1 1 1 1 1 2 2 2 2 2
21
Max Flow Algorithm: Greedy
Greedy algorithm. Start with f(e) = 0 for all edge e E. Find an s-t path P where each edge has f(e) < c(e). Augment flow along path P. Repeat until you get stuck. 1 20 10 s 30 t 10 20 Flow value = 0 2
22
Max Flow Algorithm: Greedy
Greedy algorithm. Start with f(e) = 0 for all edge e E. Find an s-t path P where each edge has f(e) < c(e). Augment flow along path P. Repeat until you get stuck. 1 20 X 20 10 s 30 X 20 t 10 20 Flow value = 20 X 20 2
23
Max Flow Algorithm: Greedy
Greedy algorithm. Start with f(e) = 0 for all edge e E. Find an s-t path P where each edge has f(e) < c(e). Augment flow along path P. Repeat until you get stuck. locally optimality ≠ global optimality 1 1 20 20 10 20 10 20 10 s 30 20 t s 30 10 t 10 20 10 20 20 10 20 greedy = 20 2 opt = 30 2
24
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u). Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. capacity u 17 v 6 flow residual capacity u 11 v 6 residual capacity
25
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 1 1 s 4 t 1 1 1 3
26
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 1 1 s 4 t 1 1 1 3 Find any augmenting path in G(x) A augmenting path is a path from s to t along with we can push some additional flow
27
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 1 1 s 4 t 1 1 1 1 1 1 3 Determine the bottleneck of the path. : the bottleneck is the flow of the path Update residual capacities.
28
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 1 s 4 t 1 1 1 1 3 Find any s-t path in G(x)
29
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 1 s 4 t 1 1 2 1 1 1 1 1 3 Determine the bottleneck of the path. : the bottleneck is the flow of the path Update residual capacities.
30
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 2 1 1 1 s 4 t 1 1 1 1 1 1 1 1 1 1 3 Find any s-t path in G(x)
31
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 1 2 5 1 1 1 1 1 1 1 s 4 t 1 1 1 1 1 1 1 1 1 1 3 Determine the bottleneck of the path. : the bottleneck is the flow of the path Update residual capacities.
32
Max Flow Algorithm: Ford-Fulkerson
Original edge: e = (u, v) E. Flow f(e), capacity c(e). Residual edge. "Undo" flow sent. e = (u, v) and eR = (v, u) Residual capacity: Residual graph: Gf = (V, Ef ). Residual edges with positive residual capacity. Ef = {e} {eR : c(e) > 0}. 2 5 1 1 1 1 1 s 4 t 1 1 1 1 1 1 1 1 1 1 3 There is no s-t path in the residual network. This flow is optimal
33
Max Flow Algorithm: Ford-Fulkerson
1 s 2 4 5 3 t Here is the optimal flow
34
Ford-Fulkerson Algorithm
flow 2 4 4 capacity G: 10 8 6 2 10 s 10 3 9 5 10 t value Q = 0 34
35
Ford-Fulkerson Algorithm
flow 2 4 4 capacity G: 8 X 10 8 6 2 10 s 10 3 9 5 10 t value Q = 0 2 4 4 residual capacity Gf: 10 8 6 2 10 s 10 3 9 5 10 t 35
36
Ford-Fulkerson Algorithm
2 4 4 G: 10 2 X 8 8 10 8 6 2 10 8 s 10 3 9 5 10 t value Q = 8 2 4 4 Gf: 8 2 8 6 2 10 s 10 3 9 5 2 t 8 36
37
Ford-Fulkerson Algorithm
2 4 4 G: X 6 8 10 8 10 8 6 2 10 2 2 10 s 10 3 9 5 10 t value Q = 10 2 4 4 Gf: 10 8 6 2 10 s 10 3 7 5 10 t 2 37
38
Ford-Fulkerson Algorithm
X 8 2 2 4 4 G: 10 8 6 10 8 6 6 2 10 2 6 8 10 s 10 3 9 5 10 t value Q = 16 2 4 4 Gf: 6 10 8 6 2 4 s 4 3 1 5 10 t 6 8 38
39
Ford-Fulkerson Algorithm
X 9 7 3 2 2 4 4 G: 10 8 8 10 8 6 6 2 10 8 8 10 s 10 3 9 5 10 t value Q = 18 2 2 2 4 Gf: 8 10 8 6 2 2 s 2 3 1 5 10 t 8 8 39
40
Ford-Fulkerson Algorithm
3 2 4 4 G: 10 7 9 10 8 6 6 2 10 9 9 10 s 10 3 9 5 10 t value Q = 19 3 2 1 4 Gf: 9 1 10 7 6 2 1 s 1 3 9 5 10 t 9 40
41
Ford-Fulkerson Algorithm
3 2 4 4 G: 10 7 9 10 8 6 6 2 10 9 9 10 s 10 3 9 5 10 t Cut capacity = 19 value Q = 19 3 2 1 4 Gf: 9 1 10 7 6 2 1 s 1 3 9 5 10 t 9 The partition A becomes the set of vertices reachable from s in residual graph. 41
42
Max Flow Algorithm: Ford-Fulkerson
Ford-Fulkerson(G(V,E), s, t, c) { Gf(V,Ef) G(V,E) while (there exists augmenting path P) { b bottleneck(P) foreach e P { if (e E) c(e) c(e) - b else c(eR) c(eR) + b } update G return the current flow value Q //forward edge update Gf //reverse edge
43
Max-Flow Min-Cut Theorem
Augmenting path theorem. Flow f is a max flow iff there are no augmenting paths. Max-flow min-cut theorem. [Ford-Fulkerson 1956] The value of the max flow is equal to the value of the min cut. Proof strategy. We prove both simultaneously by showing the TFAE: (i) There exists a cut (A, B) such that Q = cap(A, B). (ii) Flow f is a max flow. (iii) There is no augmenting path relative to f. (i) (ii) This was the corollary to weak duality lemma. (ii) (iii) We show contrapositive. Let f be a flow. If there exists an augmenting path, then we can improve f by sending flow along path.
44
Proof of Max-Flow Min-Cut Theorem
(iii) (i) Let f be a flow with no augmenting paths. Let A be set of vertices reachable from s in residual graph. By definition of A, s A. By definition of f, t A.
45
K-Edge-Connectivity [Definition] k-edge-connectivity
The network will remain connected after removing any arbitrary k-1 edges from network. k-edge-connected: any pair of nodes are connected by k disjoint paths disjoint paths: 45
46
Edge Disjoint Paths Disjoint path problem.
Given a digraph G = (V, E) and two nodes s and t, find the max number of edge-disjoint s-t paths. [Def] Two paths are edge-disjoint if they have no edge in common. Ex: communication networks. 2 5 s 3 6 t 4 7
47
Edge Disjoint Paths Disjoint path problem.
Given a digraph G = (V, E) and two nodes s and t, find the max number of edge-disjoint s-t paths. [Def] Two paths are edge-disjoint if they have no edge in common. Ex: communication networks. 2 5 s 3 6 t 4 7
48
Edge Disjoint Paths Max flow formulation: assign unit capacity to every edge. [Theorem] Max number edge-disjoint s-t paths equals max flow value. Proof Suppose there are k edge-disjoint paths P1, , Pk. Set f(e) = 1 if e participates in some path Pi ; else set f(e) = 0. Since paths are edge-disjoint, f is a flow of value Q=k. ▪ s t 1 1 1 1 1 1 1 1 1 1 1 1 1 1
49
Edge Disjoint Paths Max flow formulation: assign unit capacity to every edge. [Theorem] Max number edge-disjoint s-t paths equals max flow value. Proof Suppose max flow value Q is k. Then, there exists 0-1 flow f of value k. Consider edge (s, u) with f(s, u) = 1. by conservation, there exists an edge (u, v) with f(u, v) = 1 continue until reach t, always choosing a new edge Produces k (not necessarily simple) edge-disjoint paths. s t 1 1 1 1 1 1 1 1 1 1 1 1 1 1 can eliminate cycles to get simple paths if desired
50
Network Connectivity [Network connectivity] Given a digraph G = (V, E) and two nodes s and t, find min number of edges whose removal disconnects t from s. Def. A set of edges F E disconnects t from s if all s-t paths uses at least one edge in F. 2 5 2 5 s 3 6 t s 3 6 t 4 7 4 7 F
51
Edge Disjoint Paths and Network Connectivity
Theorem. [Menger 1927] The max number of edge-disjoint s-t paths is equal to the min number of edges whose removal disconnects t from s. [Proof] Suppose the removal of F E disconnects t from s, and |F| = k. All s-t paths use at least one edge of F. Hence, the number of edge-disjoint paths is at most k. ▪ 2 5 2 5 s 3 6 t s 3 6 t 4 7 4 7 F
52
Edge Disjoint Paths and Network Connectivity
Theorem. [Menger 1927] The max number of edge-disjoint s-t paths is equal to the min number of edges whose removal disconnects t from s. [Proof] Suppose max number of edge-disjoint paths is k. Then max flow value is k. Max-flow min-cut cut (A, B) of capacity k. Let F be set of edges going from A to B. |F| = k and disconnects t from s. ▪ A 2 5 2 5 s 3 6 t s 3 6 t 4 7 4 7 F
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.