Max-flow min-cut theorem
From Free net encyclopedia
The max-flow min-cut theorem is a statement in optimization theory about maximal flows in flow networks. It states that:
- The maximal amount of a flow is equal to the capacity of a minimal cut.
Contents |
Definition
Suppose <math>G(V,E)</math> is a finite directed graph and every edge <math>(u,v)</math> has a capacity <math>c(u,v)</math> (a non-negative real number). Further assume two vertices, the source <math>s</math> and the sink <math>t</math>, have been distinguished.
A cut is a split of the nodes into two sets <math>S</math> and <math>T</math>, such that <math>s \in S</math> and <math>t \in T</math>. Hence there are <math>2^{|V|-2}</math> possible cuts in a graph. The capacity of a cut <math>(S,T)</math> is <math>c(S,T) = \sum_{u \in S, v \in T} c(u,v)</math>, the sum of the capacity of all the edges crossing the cut, from the region <math>S</math> to the region <math>T</math>.
The following three conditions are equivalent:
- <math>f</math> is a maximum flow in <math>G</math>
- The residual network <math>G_f</math> contains no augmenting paths.
- <math>|f| = c(S,T)</math> for some cut <math>(S,T)</math>.
Proof Sketch: If there is an augmenting path, we can send flow along it, and get a greater flow, hence it cannot be maximal, and vice versa. If there is no augmenting path, divide the graph into <math>S</math>, the nodes reachable from <math>s</math> in the residual network, and <math>T</math>, those not reachable. Then <math>c(S,T)</math> must be 0. If it is not, there is an edge <math>(u,v)</math> with <math>c(u,v) > 0</math>. But then <math>v</math> is reachable from <math>s</math>, and cannot be in <math>T</math>.
Example
Image:Min cut.png Given to the right is a network with nodes <math>V=\{s,o,p,q,r,t\}</math>, and a total flow from the source <math>s</math> to the sink <math>t</math> of 5, which is maximal in this network. (This is actually the only maximal flow you can assign in this network.)
There are three minimal cuts in this network. For the cut <math>S=\{s,p\},T=\{o,q,r,t\}</math>, the capacity across the cut is <math>c(s,o)+c(p,r)=3+2=5</math>. For <math>S=\{s,o,p\},T=\{q,r,t\}</math> it is <math>c(o,q)+c(p,r)=3+2=5</math>. For <math>S=\{s,o,p,q,r\},T=\{t\}</math> it is <math>c(q,t)+c(r,t)=2+3=5</math>.
Notice that <math>S=\{s,o,p,r\},T=\{q,t\}</math> is not a minimal cut, even though both <math>(o,q)</math> and <math>(r,t)</math> are saturated in the given flow. This is because in the residual network <math>G_f</math>, there is an edge (r,q) with capacity <math>c_f(r,q) = c(r,q)-f(r,q)=0-(-1)=1</math>.
History
The theorem was proved by P. Elias, A. Feinstein, and C.E. Shannon in 1956, and independently also by L.R. Ford, Jr. and D.R. Fulkerson in the same year. Determining maximum flows is a special kind of linear programming problem, and the max flow min cut theorem can be seen as a special case of the duality theorem for linear programming.
External links
- A review of current literature on computing maximum flows
- Max-Flow Min-Cut Animation
- Max-Flow Problem: Ford-Fulkerson Algorithm
References
- P. Elias, A. Feinstein, and C. E. Shannon. Note on maximum flow through a network. IRE Transactions on Information Theory IT-2, 117--119, 1956.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0262032937. Chapter 26: Maximum Flow, pp.643–700.he:משפט זרימה־מקסימלית חתך־מינימלי