15.082j and 6.855j march 4, 2003 introduction to maximum flows
TRANSCRIPT
![Page 1: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/1.jpg)
1
15.082J and 6.855JMarch 4, 2003
Introduction to Maximum Flows
![Page 2: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/2.jpg)
2
The Max Flow Problem
G = (N,A)
xij = flow on arc (i,j)
uij = capacity of flow in arc (i,j)
s = source node
t = sink node
Maximize v
Subject to j xij - k xki = 0 for each i s,t
j xsj = v
0 xij uij for all (i,j) A.
![Page 3: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/3.jpg)
3
Maximum Flows
We refer to a flow x as maximum if it is feasible and maximizes v. Our objective in the max flow problem is to find a maximum flow.
s
1
2
t
10, 8 8,7
1,1
10,66, 5
A max flow problem. Capacities and a non-optimum flow.
![Page 4: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/4.jpg)
4
The feasibility problem: find a feasible flow
retailers
1
2
3
4
5
6
7
8
9
warehouseswarehouses
6
7
6
5
Is there a way of shipping from the warehouses to the retailers to satisfy demand?
6
5
4
5
4
![Page 5: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/5.jpg)
5
Transformation to a max flow problem
1
2
3
4
5
6
7
8
9
warehouseswarehouses retailers
There is a 1-1 correspondence with flows from s to t with 24 units (why 24?) and feasible flows for the transportation problem.
6
5
4
5
4
6
7
6
5
6
5
4
5
4
s
6
7
6
5
t
![Page 6: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/6.jpg)
6
The feasibility problem: find a matching
Is there a way of assigning persons to tasks so that each person is assigned a task, and each task has a person assigned to it?
1
2
3
4
5
6
7
8
persons tasks
![Page 7: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/7.jpg)
7
Transformation to a maximum flow problem
Does the maximum flow from s to t have 4 units?
1
2
3
4
5
6
7
8
persons tasks
s
1
11
1
t
1
1
1
1
![Page 8: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/8.jpg)
8
The Residual Network
s
1
2
t
10, 8 8,7
1,1
10,66, 5
s
1
2
t
2 1
141
8
5 6
7
i jxuij
ij
i j
u - x
xij
ijij
We let rij denote the residual capacity of arc (i,j)The Residual Network G(x)
![Page 9: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/9.jpg)
9
A Useful Idea: Augmenting Paths
An augmenting path is a path from s to t in the residual network.
The residual capacity of the augmenting path P is (P) = min{rij : (i,j) P}.
To augment along P is to send d(P) units of flow along each arc of the path. We modify x and the residual capacities appropriately.
rij := rij - (P) and rji := rji + (P) for (i,j) P.
s
1
2
t
2 1
141
8
5 6
7s
1
2
t
2
14
8
6 6
8
![Page 10: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/10.jpg)
10
The Ford Fulkerson Maximum Flow Algorithm
Begin
x := 0;
create the residual network G(x);
while there is some directed path from s to t in G(x) do
beginlet P be a path from s to t in G(x);
:= (P);
send units of flow along P;
update the r's;
end
end {the flow x is now maximum}.
Ford-Fulkerson Algorithm Animation
![Page 11: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/11.jpg)
11
Proof of Correctness of the Algorithm
Assume that all data are integral.
Lemma: At each iteration all residual capacities are integral.
Proof. It is true at the beginning. Assume it is true after the first k-1 augmentations, and consider augmentation k along path P.
The residual capacity of P is the smallest residual capacity on P, which is integral.
After updating, we modify residual capacities by 0, or , and thus residual capacities stay integral.
![Page 12: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/12.jpg)
12
Theorem. The Ford-Fulkerson Algorithm is finite
Proof. The capacity of each augmenting path is at least 1.
The augmentation reduces the residual capacity of some arc (s, j) and does not increase the residual capacity of (s, i) for any i.
So, the sum of the residual capacities of arcs out of s keeps decreasing, and is bounded below by 0.
Number of augmentations is O(nU), where U is the largest capacity in the network.
![Page 13: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/13.jpg)
13
How do we know when a flow is optimal?
s
1
2
t
10, 9 8,8
1,1
10,76, 6
METHOD 1. There is no augmenting path in the residual network.
s
1
2
t
1 8
1
76
93
reachable from s in G(x)
not reachable from s in G(x)
![Page 14: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/14.jpg)
14
Method 2: Cut Duality Theory
s
1
2
t
10, 9 8,8
1,1
10,76, 6
An (s,t)-cut in a network G = (N,A) is a partition of N into two disjoint subsets S and T such that s S and t T, e.g., S = { s, 1 } and T = { 2, t }.
The capacity of a cut (S,T) is
CAP(S,T) = iSjTuij
![Page 15: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/15.jpg)
15
Weak Duality Theorem for the Max Flow Problem
Theorem. If x is any feasible flow and if (S,T) is an (s,t)-cut, then the flow v(x) from source to sink in x is at most CAP(S,T).
PROOF. We define the flow across the cut (S,T) to be
Fx(S,T) = iSjT xij - iSjT xji
s
1
2
t
10, 9 8,8
1,1
10,76, 6
If S = {s}, then the flow across (S, T) is 9 + 6 = 15.
![Page 16: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/16.jpg)
16
Flows Across Cuts
s
1
2
t
10, 9 8,8
1,1
10,76, 6
s
1
2
t
10, 9 8,8
1,1
10,76, 6
If S = {s,1}, then the flow across (S, T) is 8+1+6 = 15.
If S = {s,2}, then the flow across (S, T) is 9 + 7 - 1 = 15.
![Page 17: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/17.jpg)
17
More on Flows Across Cuts
Claim: Let (S,T) be any s-t cut. Then Fx(S,T) = v = flow into t.
Proof. Add the conservation of flow constraints for each node i S - {s} to the constraint that the flow leaving s is v. The resulting equality is Fx(S,T) = v.
j xij - k xki = 0 for each i S\sj
xsj = v
i ji S j T
xiji j
i T j S
-xij
![Page 18: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/18.jpg)
18
More on Flows Across Cuts
Claim: The flow across (S,T) is at most the capacity of a cut.
Proof. If i S, and j T, then xij uij. If i T, and j S, then xij 0.
Fx(S,T) = iSjT xij - iSjT xji
Cap(S,T) = iSjT uij - iSjT 0
![Page 19: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/19.jpg)
19
Max Flow Min Cut Theorem
Theorem. (Optimality conditions for max flows). The following are equivalent.
1. A flow x is maximum.2. There is no augmenting path in G(x). 3. There is an s-t cutset (S, T) whose capacity is
the flow value of x.
Corollary. (Max-flow Min-Cut). The maximum flow value is the minimum value of a cut.
Proof of Theorem. 1 2. (not 2 not 1)Suppose that there is an augmenting path in G(x). Then x is not maximum.
![Page 20: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/20.jpg)
20
Continuation of the proof.
3 1. Let v = Fx(S, T) be the flow from s to t. By assumption, v = CAP(S, T). By weak duality, the maximum flow is at most CAP(S, T). Thus the flow is maximum.
2 3. Suppose there is no augmenting path in G(x). Claim: Let S be the set of nodes reachable from s in
G(x). Let T = N\S. Then there is no arc in G(x) from S to T.
Thus i S and j T xij = uij
i T and j S xij = 0.
![Page 21: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/21.jpg)
21
Final steps of the proof
Thus iS and j T xij = uij
i T and j S xij = 0.
x12 = u12
x43 = 0
If follows that
Fx(S,T) = iSjT xij - iSjT xji
= iSjT uij - iSjT 0 = CAP(S,T)
Set S Set T
1 2
3 4s t
There is no arc from S to T in G(x)
![Page 22: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/22.jpg)
22
Review
Corollary. If the capacities are finite integers, then the Ford-Fulkerson Augmenting Path Algorithm terminates in finite time with a maximum flow from s to t.
Corollary. If the capacities are finite rational numbers, then the Ford-Fulkerson Augmenting Path Algorithm terminates in finite time with a maximum flow from s to t. (why?)
Corollary. To obtain a minimum cut from a maximum flow x, let S denote all nodes reachable from s in G(x).
Remark. This does not establish finiteness if uij = or if capacities may be irrational.
![Page 23: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/23.jpg)
23
A simple and very bad example
s
1
2
t
M M
MM1
![Page 24: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/24.jpg)
24
After 1 augmentation
s
1
2
t
M-1 M
M-1M1
1
1
![Page 25: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/25.jpg)
25
After two augmentations
s
1
2
t
M-1 M-1
M-1M-11
1
1
1
1
![Page 26: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/26.jpg)
26
After 3 augmentations
s
1
2
t
M-2 M-1
M-2M-11
2
2
1
1
![Page 27: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/27.jpg)
27
And so on
![Page 28: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/28.jpg)
28
After 2M augmentations
s
1
2
tM
M
M
M
1
![Page 29: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/29.jpg)
29
An even worse example
In Exercise 6.48, there is an example that takes an infinite number of augmentations on irrational data, and does not converge to the correct flow.
But we shall soon see how to solve max flows in a polynomial number of operations, even if data can be irrational.
![Page 30: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/30.jpg)
30
Summary and Extensions
1. Augmenting path theorem
2. Ford-Fulkerson Algorithm
3. Duality Theory.
4. Computational Speedups.
![Page 31: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/31.jpg)
31
Application 6.4 Scheduling on Uniform Parallel Machines
Job(j) 1 2 3 4
ProcessingTime
1.5 3 4.5 5
ReleaseTime
2 0 2 4
Due Date 5 4 7 9Suppose there are 2 parallel machines
2 1 4
3
No schedule is possible unless preemption is allowed
![Page 32: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/32.jpg)
32
Application 6.4 Scheduling on Uniform Parallel Machines
2 1 4
3
A feasible schedule with preemption allowed
4 3
Job(j) 1 2 3 4
ProcessingTime
1.5 3 4.5 5
ReleaseTime
2 0 2 4
Due Date 5 4 7 9Suppose there are 2 parallel machines
![Page 33: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/33.jpg)
33
Transformation into a maximum flow problem
1
2
3
4
0-2
s
2-4
4-5
5-7
7-9
t
1.5
3
4.5
5
4
4
2
4
4
2
2
1
red arcs: the amount of processing of job j during t time units is at most t.
blue arcs: the amount of processing of job j over all time units is pj.
green arcs: the amount of processing during t time units is at most Mt.
![Page 34: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/34.jpg)
34
A maximum flow
1
2
3
4
0-2
s
2-4
4-5
5-7
7-9
t
1.5
3
4.5
5
4,2
4,4
2,2
4,4
4,2
2
2
2
1
1.5
2.5
12
Flow decomposition can be used to transform flows into schedules
There is a feasible schedule if there is a maximum flow that saturates each of the arcs out of s.
![Page 35: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/35.jpg)
35
![Page 36: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/36.jpg)
36
![Page 37: 15.082J and 6.855J March 4, 2003 Introduction to Maximum Flows](https://reader035.vdocuments.site/reader035/viewer/2022062423/5697bfcf1a28abf838ca9dec/html5/thumbnails/37.jpg)
37