Skip to content

Maximum flow and minimum cut

Find the largest feasible transfer through a directed network and use a cut to prove where throughput is capped.

Maximum flow is the largest amount that can be routed from a source to a sink in a directed graph with limited link capacities. A minimum cut is a partition separating source from sink whose forward links have the smallest combined capacity. In a treasury routing model, a flow shows how much can be delivered, and a cut shows how much could possibly be delivered. When the two figures agree, the plan is optimal for the model.

Certify five without searching every route

Suppose a treasury desk can route divisible USD transfers from ss to tt via intermediaries aa and bb in one window. The link capacities are 3 on s→as\to a, 2 on s→bs\to b, 1 on a→ba\to b, 2 on a→ta\to t and 3 on b→tb\to t, all in USD millions per window.

A feasible flow assigns each link an amount between zero and its capacity. Each intermediary must send out exactly what it receives. The value FF is the net amount leaving ss, which equals the net amount reaching tt. MIT 6.854 flow notes
A feasible plan reaches five. Fill every link to capacity. At aa, the incoming 3 splits into 1 to bb and 2 to tt. At bb, 2 from ss and 1 from aa go to tt. The sink receives 2+3=52+3=5.
A cut caps every plan at five. Put ss on one side and a,b,ta,b,t on the other. The only links leaving the source side are s→as\to a and s→bs\to b, so at most 3+2=53+2=5 can cross. The feasible plan meets that bound. Five is therefore the maximum flow value and this cut is a minimum cut.
In a fictional network, s→a carries 3 of 3, s→b 2 of 2, a→b 1 of 1, a→t 2 of 2 and b→t 3 of 3. The source cut has capacity 5. The residual graph has only reverse arrows and no path out of s.
In a fictional network, s→a carries 3 of 3, s→b 2 of 2, a→b 1 of 1, a→t 2 of 2 and b→t 3 of 3. The source cut has capacity 5. The residual graph has only reverse arrows and no path out of s.
The solid arrows carry the plan’s flow. The dashed arrows on the right show how much of that plan could be undone on each link.

Why a cut bounds the flow

For any partition (S,T)(S,T) with s∈Ss\in S and t∈Tt\in T, write f(S,T)f(S,T) for the flow on links directed from SS to TT and c(S,T)c(S,T) for their total capacity. Add up net outflow over all the nodes in SS. Flows between nodes inside SS cancel, and only the source contributes to the sum. This gives

F=f(S,T)−f(T,S)≤c(S,T).F=f(S,T)-f(T,S)\leq c(S,T).
Flow on a link pointing back into SS subtracts from the net transfer. Its capacity contributes zero to the cut capacity c(S,T)c(S,T). The max-flow min-cut theorem says this bound is tight for a finite directed network with finite nonnegative capacities. The maximum feasible flow value equals the minimum cut capacity. This is a network example of duality in linear programming. MIT 6.854 flow notes · Ford and Fulkerson, §1

Reverse arrows revise the plan

The residual graph records changes available to the current plan. An original link u→vu\to v carrying ff out of capacity cc contributes forward capacity c−fc-f for adding flow and reverse capacity ff for cancelling flow on that same link. An augmenting path runs from ss to tt on positive residual capacity. It increases the flow value by up to the smallest residual capacity along the path. MIT 6.854 flow notes

For example, start by assigning 1 to s→a→b→ts\to a\to b\to t. The residual path s→b→a→ts\to b\to a\to t has capacities 2, 1 and 2. Augment by 1. Keep the existing assignments on s→as\to a and b→tb\to t, add 1 on s→bs\to b and a→ta\to t, and reduce a→ba\to b from 1 to 0. The two direct routes now carry 1 each. The residual step b→ab\to a cancels a draft assignment on a→ba\to b. A real transfer in that direction would require an original link of its own.

Ford–Fulkerson starts with zero flow and repeatedly augments along a path by its full bottleneck capacity. With integer capacities each step adds at least one unit, so a finite throughput bound guarantees termination. When there is no augmenting path, take SS to be the vertices still reachable from ss using positive residual capacity. Any original link leaving SS must be full, since spare capacity would let the search reach its endpoint. Any original link entering SS must carry zero, since otherwise its reverse residual arrow would let the search leave SS. Hence F=c(S,T)F=c(S,T). In the five-unit plan, the residual graph has only reverse arrows and none leaves ss, so the search gives S={s}S=\{s\}. MIT 6.854 flow notes
The SelfMadeQuant lesson on Ford–Fulkerson traces a larger residual network and its next augmenting path. The full lesson requires membership.

What the bottleneck tells treasury

Increasing s→as\to a from 3 to 4 leaves throughput at 5. The cut just before tt still has capacity 2+3=52+3=5, and the original plan still works. A link can sit on one minimum cut while another minimum cut continues to bind after an upgrade.

The estimate assumes one currency, a common time window, fixed transfer limits, and intermediaries that can pass on the funds they receive within the window. If payments must arrive in a specific order or depend on available intraday credit and collateral, those constraints need to be modelled before the routing can serve as a settlement schedule. Nellen’s study of intraday liquidity and settlement coordination

Sources

Last updated
  • graph algorithms
  • network flow
  • combinatorial optimisation
  • settlement
← Back to the glossaryBack to top ↑