core26 min studyLesson 217 in Mathematics

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

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 ss and sink tt, nonnegative finite edge capacities, and for simplicity no edges entering ss or leaving tt. 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 ss, equivalently total flow entering tt. Conservation lets traffic split and merge, but does not permit an intermediate vertex to create or absorb it.

For a cut SS containing ss and excluding tt, add conservation over all vertices in SS. 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.

∣f∣=∑u∈S,v∉Sfuv−∑u∉S,v∈Sfuv≤∑u∈S,v∉Scuv=c(S)|f|=\sum_{u\in S,v\notin S}f_{uv}-\sum_{u\notin S,v\in S}f_{uv}\le\sum_{u\in S,v\notin S}c_{uv}=c(S)
Absent edges contribute zero. The value equals net outward cut flow, while cut capacity counts only outward capacities.↔ Scroll wide equations horizontally.

Residual routes can revise a previous flow

The residual network records allowed adjustments. An original edge with capacity cc and flow ff has forward residual capacity c−fc-f and a backward cancellation capacity ff. If both original directions exist, keep their adjustment records distinct or combine them consistently. An ss–tt 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 tt, let SS be the vertices reachable from ss in the residual network. Every original edge leaving SS is saturated, or its unused capacity would make another vertex reachable. Every original edge entering SS carries zero flow, or its cancellation edge would leave SS. The cut identity then gives ∣f∣=c(S)|f|=c(S). 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.

max⁡f feasible∣f∣=min⁡S: s∈S, t∉Sc(S)\max_{f\text{ feasible}}|f|=\min_{S:\,s\in S,\ t\notin S}c(S)
For finite directed networks with finite nonnegative capacities, the greatest feasible flow equals the smallest directed cut capacity.↔ Scroll wide equations horizontally.

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.

Match throughput with a bottleneck

Use directed edges s→as\to a of capacity 3, s→bs\to b of capacity 2, a→ba\to b of capacity 1, a→ta\to t of capacity 2, and b→tb\to t of capacity 3. Find a maximum flow and a minimum cut.

  1. 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.

  2. 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.

  3. 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 result

The maximum flow value and minimum cut capacity are both five.

Explore the model

Interactive lab

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.

Probability transfer is not throughputExact 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. Current readings: P(state 1) at step 0: 0%; Stationary P(state 1): 60%; Chain behavior: Monotone convergence. All parameters are adjustable with the labeled controls below.Two-state Markov distribution after 0 steps: state zero probability 1, state one probability 0.Initial distribution (1, 0) · step 0p = 0.3q = 0.201100%0%1−p1−qP(0)P(1)Monotone convergence
P(state 0)P(state 1)Stationary distribution
P(state 1) at step 0
0%
Stationary P(state 1)
60%
Chain behavior
Monotone convergence
t = 0 s

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.

Check your understanding

What does the integral-flow theorem guarantee for a finite network with nonnegative integer capacities?

Try it yourself

A network has only the edges s→as\to a, s→bs\to b, a→ta\to t, and b→tb\to t, 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.

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.