Flows, cuts, and integral flow
Conserve throughput, improve a flow through residual routes, and certify optimality with a cut of equal capacity.
On this page
The question for today
What you’ll understand
- Check capacity bounds and conservation in a directed flow network.
- Explain residual backward edges as cancellation of an earlier decision.
- Use a matching flow and cut certificate and state the integral-flow theorem.
A flow network adds capacities to directed connections and asks how much can be transported from a source to a sink. A large capacity on every individual route need not imply large total throughput, because routes may share a bottleneck. The max-flow/min-cut theorem connects an achievable transport plan to a separating capacity bound, producing an exact and checkable certificate of optimality.
Feasible transport obeys local conservation
Use a finite directed network with distinct source and sink , nonnegative finite edge capacities, and for simplicity no edges entering or leaving . A flow assigns each directed edge a nonnegative number at most its capacity. At every other vertex, total incoming flow equals total outgoing flow. The flow value is total flow leaving , equivalently total flow entering . Conservation lets traffic split and merge, but does not permit an intermediate vertex to create or absorb it.
For a cut containing and excluding , add conservation over all vertices in . Contributions from internal edges cancel, leaving flow value equal to outward flow across the cut minus inward flow. Dropping the nonnegative inward term and bounding each outward edge by its capacity gives an upper bound on every feasible flow. This derivation works regardless of how routes were selected; a narrow boundary limits all possible plans simultaneously.
Residual routes can revise a previous flow
The residual network records allowed adjustments. An original edge with capacity and flow has forward residual capacity and a backward cancellation capacity . If both original directions exist, keep their adjustment records distinct or combine them consistently. An – path with positive residual capacities allows an augmentation by the smallest residual capacity on that path. A backward step subtracts earlier flow; it does not claim that the physical edge has reversed direction.
If no residual route reaches , let be the vertices reachable from in the residual network. Every original edge leaving is saturated, or its unused capacity would make another vertex reachable. Every original edge entering carries zero flow, or its cancellation edge would leave . The cut identity then gives . Since no flow exceeds any cut, equality proves both objects optimal. For arbitrary real capacities, an optimum exists because the feasible flows form a nonempty closed bounded subset of a finite-dimensional box and the value is continuous. Such an optimum cannot have a residual augmenting path, so the same cut argument proves the theorem.
Integer capacities produce an integer optimum
When every capacity is an integer, begin with zero flow and use integral augmentations. Residual capacities remain integers, so each augmentation increases value by at least one. The value is bounded by the finite total capacity out of the source, hence the process terminates at an integral maximum flow. This proves existence of an integer optimum; it does not claim every optimal flow is integral. With arbitrary real capacities, careless augmenting-path choices need not terminate, although the theorem still holds.
This integrality explains why flow can solve discrete selection problems. To model a bipartite matching, orient eligibility edges from left to right, add unit-capacity edges from a new source to each left vertex and from each right vertex to a new sink, and give eligibility edges unit capacity. An integral flow selects whole left-to-right edges, with source and sink capacities preventing endpoint reuse. Unit edge capacities likewise turn disjoint-path questions into flow questions once direction and any internal-vertex restrictions are modeled correctly.
Work it through
Match throughput with a bottleneck
Use directed edges of capacity 3, of capacity 2, of capacity 1, of capacity 2, and of capacity 3. Find a maximum flow and a minimum cut.
Send three units from s to a and two from s to b. From a send two units directly to t and one unit to b. From b send its total three units onward to t.
At a the inflow and outflow are both three; at b both are three. Every edge respects its capacity, so the plan is feasible and has value five.
The cut S={s} has outward capacity three plus two, equal to five. No feasible flow can exceed five by the cut bound, so the displayed flow is maximum and this cut is minimum. The certificate needs no enumeration of all possible routes.
The maximum flow value and minimum cut capacity are both five.
The living notebook
Explore the model
Interactive lab · markov
Probability transfer is not throughput
Pause and Reset, then set p = 0.25 and q = 0.75. Predict that after one Step the mass in state one is 0.25 and the two masses still sum to one. Reset and set both p = 0.75 and q = 0.25 to compare. This exact two-state redistribution illustrates conservation; its transition probabilities are not edge capacities and it does not compute a maximum flow.
- P(state 1) at step 0
- 0%
- Stationary P(state 1)
- 60%
- Chain behavior
- Monotone convergence
Exact finite-step probabilities for a two-state chain starting in state 0, not sampled trajectories. Playback advances two transitions per second. When p = q = 0 every distribution is stationary; when p = q = 1 the chain alternates forever. A single zero transition creates an absorbing state. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.
Look forConservation is shared by many models, but a flow capacity bound and a probability transition rule answer different questions.
Pause & reason
Check your understanding
Your turn
Try it yourself
A network has only the edges , , , and , with capacities 4, 3, 2, and 5 respectively. Find the maximum flow and a cut that proves it.
Take a moment to make a prediction or work it out on paper. Open a hint when you need one.
Give me a hint
Each branch is limited by its smaller capacity. A minimum cut need not isolate just the source or just the sink.
Compare with the solution
Send two units along s–a–t and three along s–b–t, giving value five. Take S={s,a}. Its outgoing edges are s→b of capacity three and a→t of capacity two, so the cut capacity is five. The feasible flow and equal cut prove optimality. The source-only cut has capacity seven, while the sink-only boundary also has capacity seven; those are valid but weaker upper bounds. The mixed cut exposes the bottleneck on each separate branch.
Keep the idea
Take it with you
- A flow value is bounded by the outward capacity of every separating cut.
- Residual backward edges cancel earlier flow and enable reassignment.
- Integer capacities guarantee an integral optimum, not integrality of every optimum.
Read further
Original sources and deeper explanations to follow at your own pace.
Optional progress, saved in this browser when available. Revisit any lesson at any time.
Lesson not marked complete.