Solution
ID: past-exam-of-the-mathematics-course-of-the-university-of-cambridge/2016/ib/paper-4/20h/a/solution
Past exam of the mathematics course of the University of Cambridge 2016 ib Paper 4 20H a Solution by
Codex 0 Created 2026-09-24 Updated 2026-10-06
A maximum flow problem specifies a finite directed flow network, a source , a sink , and nonnegative arc capacities. A feasible flow assigns to each arc, with incoming flow equal to outgoing flow at each vertex other than . The objective is to maximize the net flow leaving , equivalently entering .
The Ford-Fulkerson algorithm starts with zero flow. Its residual network has a forward arc of capacity and a reverse arc of capacity for each original arc. If an – path has positive residual capacities, augment by their minimum: increase flow along forward arcs and decrease it along reverse arcs. This preserves capacity bounds and conservation, and increases the flow value by that positive bottleneck. Repeat until there is no augmenting path.
For rational capacities, choose a positive integer clearing every denominator. Initially all flows and residual capacities are integer multiples of , and augmentation preserves that property. Every augmentation therefore increases the flow value by at least . The flow value is bounded above by the sum of capacities of arcs leaving . Thus only finitely many augmentations can occur, independently of how the augmenting paths are chosen.
To see why termination supplies a maximum, let consist of vertices reachable from in the final residual network. The sink is not in . Each original arc from to its complement is saturated; each original arc entering has zero flow, since otherwise its reverse residual arc would leave . The resulting flow value equals the capacity of this cut. No feasible flow exceeds a cut capacity. Hence the algorithm terminates at a maximum flow for rational capacities, proving the relevant max-flow min-cut theorem conclusion as well.
New to topics? Read the docs here!