Skip to content
Part IA Lent Term

The Max-Flow Min-Cut Theorem

The Max-Flow Min-Cut Theorem is the central result of flow networks. It states that the maximum value of a flow equals the minimum capacity of a cut separating ss from tt, and it provides a constructive verification: when Ford-Fulkerson terminates, the set of vertices reachable from ss in the residual network is a minimum cut.

Cuts

An (s,t)(s, t)-cut of a flow network is a partition of VV into sets SS and T=VST = V \setminus S such that sSs \in S and tTt \in T.

The net flow across the cut is:

f(S,T)=uSvTf(u,v)uSvTf(v,u)f(S, T) = \sum_{u \in S} \sum_{v \in T} f(u, v) - \sum_{u \in S} \sum_{v \in T} f(v, u)

The capacity of the cut (ignoring flow direction from TT to SS) is:

c(S,T)=uSvTc(u,v)c(S, T) = \sum_{u \in S} \sum_{v \in T} c(u, v)

Fundamental Lemma

For any flow ff and any cut (S,T)(S, T):

f=f(S,T)c(S,T)|f| = f(S, T) \le c(S, T)

Proof sketch: f=f(S,T)|f| = f(S, T) follows from flow conservation (all flow from ss to tt must cross the cut, and internal vertices contribute zero net flow). f(S,T)c(S,T)f(S, T) \le c(S, T) follows because each edge’s flow cannot exceed its capacity, and the second sum (from TT to SS) is non-negative.

This immediately gives: max-flowmin-cut\max\text{-flow} \le \min\text{-cut}.

The Theorem

Max-Flow Min-Cut Theorem: The following are equivalent:

  1. ff is a maximum flow in GG
  2. The residual network GfG_f contains no augmenting paths
  3. f=c(S,T)|f| = c(S, T) for some cut (S,T)(S, T) of GG

Proof of Equivalence

(1)     \implies (2): If GfG_f had an augmenting path pp, augmenting along pp would yield a flow of value f+cf(p)>f|f| + c_f(p) > |f|, contradicting maximality.

(2)     \implies (3): Since no path exists from ss to tt in GfG_f, define S={vVthere is a path from s to v in Gf}S = \{v \in V \mid \text{there is a path from } s \text{ to } v \text{ in } G_f\} and T=VST = V \setminus S. This is a cut (sSs \in S, tTt \in T). For any uS,vTu \in S, v \in T:

  • If (u,v)E(u, v) \in E, we must have f(u,v)=c(u,v)f(u, v) = c(u, v); otherwise (u,v)(u, v) would be in EfE_f, placing vSv \in S.
  • If (v,u)E(v, u) \in E, we must have f(v,u)=0f(v, u) = 0; otherwise (u,v)Ef(u, v) \in E_f with capacity f(v,u)>0f(v, u) > 0, again placing vSv \in S.

Hence f(u,v)=c(u,v)f(u, v) = c(u, v) for all forward edges and f(v,u)=0f(v, u) = 0 for all backward edges crossing the cut. Therefore f(S,T)=c(S,T)f(S, T) = c(S, T), so f=c(S,T)|f| = c(S, T).

(3)     \implies (1): Since fc(X,Y)|f| \le c(X, Y) for any cut (X,Y)(X, Y), achieving equality means ff cannot be exceeded; it is maximum.

The proof is constructive: the cut SS obtained from the final residual network GfG_f is a minimum cut.

Worked Example

Network (capacities on edges): s10a3b7ts \xrightarrow{10} a \xrightarrow{3} b \xrightarrow{7} t, and s5bs \xrightarrow{5} b, a8ta \xrightarrow{8} t.

Maximum flow found: f=15|f| = 15 (see Ford-Fulkerson Method).

Residual network at termination: S={s,a}S = \{s, a\} (reachable from ss via residual edges), T={b,t}T = \{b, t\}.

Edges crossing STS \to T:

  • aba \to b: capacity 3, f(a,b)=2f(a, b) = 2, residual capacity exists so not saturated? Wait: cf(a,b)=1>0c_f(a, b) = 1 > 0, so bb should be reachable. Let us reanalyse.

In the final residual network after augmentations (f(s,a)=10f(s,a)=10, f(a,t)=8f(a,t)=8, f(s,b)=5f(s,b)=5, f(a,b)=2f(a,b)=2, f(b,t)=7f(b,t)=7):

  • (s,a)(s,a) is saturated: cf(s,a)=0c_f(s,a)=0, but (a,s)Ef(a,s) \in E_f with capacity 10
  • (a,t)(a,t) is saturated: cf(a,t)=0c_f(a,t)=0, reverse (t,a)(t,a) capacity 8
  • (s,b)(s,b) is saturated: cf(s,b)=0c_f(s,b)=0, reverse (b,s)(b,s) capacity 5
  • (a,b)(a,b): cf(a,b)=1c_f(a,b)=1, reverse (b,a)(b,a) capacity 2
  • (b,t)(b,t): saturated, reverse (t,b)(t,b) capacity 7

Reachable from ss: ss itself, and following reverse edges: (s,a)(s,a) is in EE, saturated forward, but there is no residual edge sas \to a. However, is there a path sas \to a through some other route? No. So S={s}S = \{s\}.

Edges crossing {s}{a,b,t}\{s\} \to \{a,b,t\}: sas \to a (capacity 10, flow 10), sbs \to b (capacity 5, flow 5). Cut capacity =10+5=15=f= 10 + 5 = 15 = |f|. Minimum cut found.

Summary

StatementMeaning
Cut (S,T)(S, T)Partition with sSs \in S, tTt \in T
f(S,T)f(S, T)Net flow across cut; equals f\lvert f \rvert
c(S,T)c(S, T)Sum of forward capacities across cut
fc(S,T)\lvert f \rvert \le c(S, T)Weak duality — always true
max-flow=min-cut\max\text{-flow} = \min\text{-cut}Strong duality — the theorem
SS from GfG_fVertices reachable from ss in residual network — a min cut

Past Tripos: y2024p2q7, y2023p1q9.