Network Flows and the Max-Flow Min-Cut Theorem
One-line statement: In any network, the maximum flow from a source to a sink equals the minimum capacity of a cut separating them. Formally, . Applies to transportation, scheduling, image segmentation, bipartite matching, and reliability. Established by L. R. Ford Jr. and D. R. Fulkerson (1956) and independently by P. Elias, A. Feinstein, and C. E. Shannon.A flow network is a directed graph in which each edge carries a nonnegative capacity, and we wish to push as much "stuff" as possible from a designated source to a designated sink without exceeding any edge's capacity and while conserving flow at every intermediate node. The Max-Flow Min-Cut Theorem states that this maximum throughput is exactly limited by the cheapest "bottleneck" — the minimum-capacity set of edges whose removal disconnects from . This duality is one of the most elegant results in combinatorial optimization, and it is constructive: algorithms like Ford–Fulkerson simultaneously compute the optimal flow and exhibit the cut certifying its optimality. The surprising fact is that an utterly local, greedy-looking process of finding augmenting paths terminates at a globally optimal solution, and even more surprising, integer capacities guarantee an integer optimal flow — a fact with deep consequences for matching and combinatorics.
The Core Insight
Every flow value is bounded above by every cut capacity (weak duality). If you can find one flow and one cut whose values are equal, both must be optimal. The augmenting-path method drives the flow up until no augmenting path remains; the set of vertices reachable from in the leftover ("residual") network then defines a cut whose capacity equals the achieved flow. Equality is not a coincidence — it is forced by the absence of any further augmenting path.
Formal Statement
Flow Network
A flow network is a tuple where:
- is a directed graph,
- assigns a capacity to each edge (we set if ),
- is the source, is the sink, with .
A flow is a function satisfying two constraints. The capacity constraint:
And flow conservation at every internal vertex :
The value of the flow is the net flow out of the source:
Cut and Cut Capacity
An - cut is a partition of with and (so ). Its capacity counts only edges crossing forward from to :
The net flow across the cut is forward minus backward flow:
Residual Network
Given a flow , the residual capacity is
The residual network contains every edge with . An augmenting path is a directed path in .
Max-Flow Min-Cut Theorem (Ford–Fulkerson 1956)
For any flow network , the following three statements are equivalent for a flow :
- is a maximum flow.
- The residual network contains no augmenting path.
- for some - cut .
Consequently:
Why It Holds
Proof of the Max-Flow Min-Cut Theorem
Step 1 — Flow across any cut equals . We claim for every cut . Sum the conservation equation [2] over all . The source contributes its net outflow (by [3]), while every internal contributes . Expanding , all terms between two vertices both inside cancel pairwise, leaving exactly the net flow from to . Hence:So for any flow and any cut. Thus .
Step 3 — (1)⇒(2). If an augmenting path existed in , let . Pushing along produces a valid flow of value , contradicting maximality. So no augmenting path can exist. Step 4 — (2)⇒(3). Suppose has no - path. Define- The forward edge must be saturated: , otherwise would make reachable.
- Any backward flow must be zero: , otherwise again makes reachable.
Substituting into [5]:
Integrality Theorem
If every capacity is an integer, then there exists a maximum flow in which is an integer for every edge.
Integrality
Run Ford–Fulkerson starting from the zero flow. Each augmentation increases the flow by an integer (the residual capacities along the path are integers when capacities and the current flow are integers). The value strictly increases by each step and is bounded above by , so the process terminates after finitely many steps with an integral maximum flow.
Lester Randolph Ford Jr. & Delbert Ray Fulkerson | 1927–2017 / 1924–1976
Working at the RAND Corporation in the mid-1950s, Ford and Fulkerson were motivated by a Cold War problem posed by the U.S. Air Force: how much traffic could the Soviet rail network carry, and where was it most vulnerable to interdiction? The dual question — find the cheapest set of rail links to cut — is the minimum cut. Their 1956 paper "Maximal Flow Through a Network" turned this military logistics puzzle into a foundational theorem of combinatorial optimization. Fulkerson later co-authored the definitive monograph Flows in Networks (1962). The same result was discovered independently and nearly simultaneously by Peter Elias, Amiel Feinstein, and Claude Shannon in an information-theoretic context.
Building Intuition
Think of the network as a system of water pipes. Capacities are pipe diameters; flow is gallons per second. You can never push more water from source to sink than the tightest "wall" of pipes you'd have to sever to fully disconnect them — that wall is the minimum cut. The augmenting-path algorithm is like repeatedly finding any open route from source to sink and cranking up the flow along it. The genius of the residual network is the backward edges: if you over-committed flow on some pipe, a backward residual edge lets a later augmenting path "undo" part of that decision and reroute. This rerouting capability is exactly what guarantees the greedy process reaches the true global optimum rather than getting stuck. When no route remains — even counting these undo-options — the set of pipes you can still reach forms one side of the bottleneck cut.
A flow network with a minimum cut. Forward edges from $S$ (left) to $T$ (right) are saturated; their capacities sum to the max-flow value.
Worked Examples
A Small Network by Hand
Given: Vertices with capacities , , , , . Step 1 — Augment along . Bottleneck . Push 4. Flow value . Step 2 — Augment along . Bottleneck . Push 10. Flow value . Step 3 — Augment along . Residual capacities: , , . The edge is saturated, so this path is blocked. No other - path exists in (from , the only outlet leads to , whose only outlet is full). Step 4 — Identify the cut. Reachable from in : (we reach via ), so . Cut capacity . Answer:Bipartite Matching via Max-Flow
Given: Three applicants and three jobs . Compatible pairs: –, –, –. We want the largest possible matching. Construction: Add source (capacity 1 each), edges (capacity 1) for each compatible pair, and (capacity 1 each). Step 1 — Augment . Value . Step 2 — Augment . Value . Step 3 — Augment ? Edge saturated. Try , then use backward residual (since ), then ? But is saturated. Dead end. No augmenting path remains. Step 4 — Verify with min cut. Set reachable from . Crossing edges: (cap 1), (cap 1)... computing gives min cut capacity . Answer:Common Misconceptions
The minimum cut is not unique, but its value is. A network can have several distinct minimum cuts, all with the same capacity. Likewise the maximum flow itself need not be unique — many different flow assignments can achieve the optimal value. Only the value is invariant. Cut capacity counts only forward edges. A frequent error is to add edges going from back to into the cut capacity. By definition [4], backward edges contribute zero to capacity — though their flow is subtracted in the net-flow formula [5]. Ford–Fulkerson with arbitrary path choice may not terminate for irrational capacities. Termination and polynomial running time require care: the Edmonds–Karp refinement (always augment along a shortest augmenting path via BFS) runs in time and always terminates.Non-Termination with Irrational Capacities
Ford and Fulkerson exhibited a network with one irrational capacity equal to (the golden ratio) on which a poorly chosen sequence of augmenting paths makes the flow value converge to a number strictly less than the true maximum — the algorithm runs forever without reaching optimality. The augmentation amounts form a geometric series in powers of that sums to a finite value below . This shows the bare augmenting-path scheme is not an algorithm unless the path-selection rule is constrained (e.g., shortest path, or capacity scaling). With integer or rational capacities, termination is guaranteed.
Connections
The Max-Flow Min-Cut Theorem is a special case of Linear Programming Duality: max-flow is a linear program, and its dual is exactly the min-cut LP relaxation; strong duality plus integrality of the constraint matrix (total unimodularity) yields the integer min cut. It generalizes König's Theorem (max matching = min vertex cover in bipartite graphs) and Hall's Marriage Theorem (a perfect matching exists iff every set of vertices has enough neighbors). It is the engine behind Menger's Theorem — the maximum number of edge-disjoint - paths equals the minimum number of edges whose removal disconnects from . It also relates to Linear Programming Duality and to Network Reliability. The minimum-cost variant connects to Transportation Problem and the Hungarian Algorithm.
Real-World Applications
- Transportation and logistics — Routing maximum freight through rail, road, or pipeline networks, and identifying bottleneck links (the original RAND motivation).
- Image segmentation (computer vision) — The graph-cuts method models pixels as nodes and finds a min cut to separate foreground from background, used in interactive photo editing and medical imaging.
- Bipartite assignment — Matching workers to tasks, students to schools, or organ donors to recipients (kidney exchange programs) via max-flow with unit capacities.
- Airline crew and project scheduling — Modeling resource constraints as capacities to maximize feasible assignments.
- Network reliability and security — The minimum cut identifies the most vulnerable set of communication links; relates to denial-of-service vulnerability analysis.
- Baseball elimination — Determining whether a sports team can still mathematically win its division reduces to a max-flow feasibility test.
- Open-pit mining and project selection — Choosing a maximally profitable subset of projects with precedence constraints maps to a min-cut problem (the "maximum closure" problem).
Historical Development
- 1927 — Karl Menger proves Menger's Theorem on disjoint paths and vertex connectivity, a graph-theoretic ancestor of max-flow min-cut.
- 1931 — Dénes König and Jenő Egerváry establish the min-vertex-cover / max-matching duality in bipartite graphs.
- 1951 — George Dantzig formulates the simplex method and studies the transportation problem, providing the linear-programming backdrop.
- 1954 — Ford and Fulkerson begin work at RAND on the Soviet rail interdiction problem.
- 1955 — Independently, T. E. Harris and F. S. Ross (also at RAND) frame the rail-capacity problem; their secret report poses the dual interdiction question.
- 1956 — Ford & Fulkerson publish "Maximal Flow Through a Network," proving the theorem; Elias, Feinstein, and Shannon prove an equivalent result independently the same year.
- 1962 — Ford & Fulkerson's monograph Flows in Networks appears, codifying the field.
- 1969 — A counterexample to Ford–Fulkerson termination on irrational capacities is constructed.
- 1972 — Jack Edmonds and Richard Karp give the first polynomial-time max-flow algorithm () using shortest augmenting paths; Dinic independently develops a faster blocking-flow algorithm (1970).