On this page
Interactive
Augmenting paths, residual edges, and the minimum cut
Flow network (flow / capacity)
Press Augment to find the first augmenting path.
max flow = min cut
Why flows and cuts meet
A flow describes how much material can be sent from a source to a sink through capacity-limited directed edges. A cut describes a bottleneck separating them. The max-flow min-cut theorem says these two views identify the same limiting quantity.
Let be a finite directed network with distinct source and sink . Every edge has a finite, nonnegative capacity . A feasible flow assigns to each edge such that
and total inflow equals total outflow at every vertex other than and . Its value is the net flow leaving , equivalently the net flow entering .
An – cut is a partition with and . Its capacity counts original edges directed from to :
The theorem states that the largest feasible flow value equals the smallest – cut capacity.
Every cut bounds every flow
For any feasible flow and cut, sum net outflow over vertices in . Internal edges cancel, leaving
The second sum is nonnegative, while each term in the first is at most its edge capacity. Therefore for every flow and every cut.
Residual reachability proves equality
A maximum flow exists: the zero flow is feasible, and the feasible flows form a closed, bounded subset of a finite-dimensional space. For each original edge , its residual graph has a forward arc of capacity and a reverse arc of capacity . The reverse arc represents the option to cancel existing flow on that particular edge.
Let be the vertices reachable from along positive-capacity residual arcs, and let . The sink cannot be in : a residual path to would have a positive bottleneck, allowing the flow to increase. No positive-capacity residual arc crosses from to . Thus every original edge from to is saturated, and every original edge from to carries zero flow (otherwise its reverse residual arc would cross the cut). The cut identity becomes . Together with the bound above, this proves that this flow is maximum and this cut is minimum.
A small certificate
Take edges of capacity 3, of capacity 2, of capacity 2, of capacity 1, and of capacity 3. Send flows on those edges, respectively. Conservation holds at and , and the flow value is 5. The cut , has capacity . Since a flow of value 5 meets a cut of capacity 5, neither can be improved.
Takeaway: a flow is a feasible shipment, a cut is a capacity bottleneck, and residual reachability constructs a cut whose capacity certifies optimality.