Why the number of augmentations matters
The maximum flow problem asks how much of a commodity can be sent from a source to a sink through a network whose arcs have capacities. It is a basic model in operations research, underlies bipartite matching, transportation and scheduling problems, and is a standard subroutine inside larger combinatorial algorithms.
The classical method for it is the labeling method of Ford and Fulkerson: starting from some flow, repeatedly find an augmenting path from source to sink along which flow can be increased, push as much as the path allows, and stop when no such path exists. When all capacities are integers, each augmentation raises the flow value by at least one, so the method terminates, but the number of augmentations can be as large as the final flow value, which is exponential in the size of the input. Edmonds and Karp give a four-node example in which the method alternates between two paths and needs 2M augmentations for capacities M (Edmonds–Karp 1972, p. 250). With irrational capacities, Ford and Fulkerson showed that the method need not terminate at all and may converge to a non-maximum flow.
Timeline.
- 1956 — Ford and Fulkerson introduce the labeling method and the max-flow min-cut theorem (Ford–Fulkerson 1956).
- 1962 — Flows in Networks records the non-termination example for incommensurable capacities.
- 1970 — Dinic independently obtains a polynomial bound using layered (shortest-path) networks (Dinic 1970).
- 1972 — Edmonds and Karp prove that choosing each augmenting path with fewest arcs bounds the number of augmentations by 41(n3−n), for arbitrary real capacities (Edmonds–Karp 1972, Theorem 1).
Setting
A network N consists of a finite set of n nodes, a source s and a sink t=s, and a set of arcs, which are ordered pairs (u,v) with u=v; there is at most one arc from a node to another. One arc is the special return arc (t,s), and A denotes the set of all other arcs. Each (u,v)∈A has a real capacity c(u,v)>0.
A flow is a nonnegative function f on the arcs of N with f(u,v)≤c(u,v) on A and with inflow equal to outflow at every node, the return arc included. The value f(t,s) is the amount sent from s to t; a maximum flow maximizes it.
Given a flow f, the residual network Nf has the same nodes, and (u,v) is an arc of Nf when (u,v)∈A with c(u,v)−f(u,v)>0, or (v,u)∈A with f(v,u)>0. An augmenting path is a sequence of distinct nodes s=u1,…,up=t whose consecutive pairs are arcs of Nf. Each step carries a number εi>0 (residual capacity forward, flow backward, or their sum when both (ui,ui+1) and (ui+1,ui) lie in A); ε=miniεi, and a step with εi=ε is a bottleneck arc. Augmenting raises f(t,s) by ε and shifts the flow on the path's arcs accordingly, using the paper's own rule for opposite arcs, which never exceeds a capacity.
A run with fewest-arc augmentations is a sequence f0,…,fK where f0 is a flow and each fk+1 arises from fk by augmenting along a path Pk with fewest arcs. The distance δk(u,v) is the least number of arcs of a directed path from u to v in Nk=Nfk, or ∞.
Formalization targets
Goal — Theorem 1
For every network on n nodes and every run of length K with fewest-arc augmentations,
K≤41(n3−n),
and if no augmenting path exists relative to fK, then fK is a maximum flow. The capacities are arbitrary positive reals, and the initial flow is arbitrary.
Milestones
- §1.1: augmentation yields a flow with value f(t,s)+ε, ε>0.
- §1.1: a flow is maximum if and only if it admits no augmenting path.
- Proposition 1: a bottleneck arc of Pk is not an arc of Nk+1.
- Proposition 2: (u,v)∈Nk+1 implies (u,v)∈Nk or (v,u)∈Pk.
- Lemma 1: if (u,v) is a bottleneck arc at steps k<m, then (v,u)∈Pl for some k<l<m.
- Proposition 3: δk(s,u)≤δk+1(s,u) and δk(u,t)≤δk+1(u,t).
- Lemma 2: if k<l, (u,v)∈Pk and (v,u)∈Pl, then δl(s,t)≥δk(s,t)+2.
- Proof of Theorem 1: each pair {u,v} occurs as a bottleneck at most 21(n+1) times.
Significance
The theorem shows that one simple rule for choosing augmenting paths, which a breadth-first labeling process implements, makes the number of augmentations depend on the number of nodes alone, independent of the capacities and of their arithmetic nature. It removes both pathologies of the unrestricted labeling method at once: exponential running time for integer capacities, and non-termination for irrational ones. Together with Dinic's work it is the starting point of the theory of strongly polynomial network-flow algorithms, and the distance-monotonicity argument (Proposition 3, Lemma 2) reappears in blocking-flow and push-relabel analyses.
The result is classical and fully proved in the paper. What this mission adds is a machine-checked version of the complete argument in the paper's own model: return arc, arbitrary real capacities, and the paper's augmentation rule for pairs of opposite arcs, which differs from Ford and Fulkerson's (footnote 1, p. 249). The platform has a max-flow min-cut theorem and an integer termination theorem for the Ford–Fulkerson method in the Bertsimas–Tsitsiklis model (Introduction to Linear Optimization, missions IX–X), but no bound on the number of augmentations. No machine-checked proof of Theorem 1 in Lean is known to exist.
Difficulty
The obvious argument, "each augmentation saturates a bottleneck arc, which then disappears", fails because a saturated arc can reappear after later augmentations push flow back along its reverse. Counting augmentations therefore requires control over how often the same pair of nodes can supply a bottleneck again, and no property of a single augmentation provides it; the bound has to come from an invariant of the whole run that holds for real capacities, where no integrality argument is available. A second trap is that the converse direction of milestone 2 (no augmenting path implies maximality) is a max-flow min-cut statement that the paper cites without proof; it must be proved in the paper's model with the return arc.
Formalization scope
Nodes form a finite type V with decidable equality and n = Fintype.card V counts all nodes, s and t included. The arc set A is a Finset (V × V) with no loops and without (t,s); capacities are real and positive on A. A flow is a function V → V → ℝ whose values off the arcs are ignored. A maximum flow is the predicate "f(t,s)≥g(t,s) for every flow g", never a real supremum. Paths are lists of distinct nodes with every consecutive pair a residual arc, so the return arc is never on a path. Distances take values in ℕ∞. A run is a pair of ℕ-indexed sequences constrained on indices up to K. The explicit constants are stated as printed: 4K≤n3−n in ℕ (the truncated subtraction is harmless since n≤n3) and 2b(u,v)≤n+1 for the per-pair count.
Case (b) of the paper's definition of augmenting paths is misprinted (its hypothesis repeats that of Case (c)); the formalization uses the reading (ui,ui+1)∈/A, (ui+1,ui)∈A, which the paper's own description of Nf on p. 251 confirms.
A trivializing formalization is ruled out: a run predicate that no sequence satisfies (for instance, one that requires paths through the return arc, or computes ε=0) would make the bound vacuous; the step predicate here is satisfiable, and a concrete four-node run has been checked. Replacing the paper's augmentation rule by "increase the forward arc by ε" would also change the theorem, because that rule can violate capacities.
A complete development needs basic facts on simple paths in finite digraphs, shortest paths and their subpaths, and a max-flow min-cut theorem in the paper's model. These are reusable well beyond this mission, as are the network, residual-network and augmentation definitions. Contributions proving any milestone independently are welcome.
Selected references
- J. Edmonds, R. M. Karp, Theoretical Improvements in Algorithmic Efficiency for Network Flow Problems, Journal of the ACM 19(2):248–264, 1972. https://doi.org/10.1145/321694.321699
- L. R. Ford, D. R. Fulkerson, Maximal Flow Through a Network, Canadian Journal of Mathematics 8:399–404, 1956. https://doi.org/10.4153/CJM-1956-045-5
- L. R. Ford, D. R. Fulkerson, Flows in Networks, Princeton University Press, 1962. https://doi.org/10.1515/9781400875184
- E. A. Dinic, Algorithm for Solution of a Problem of Maximum Flow in a Network with Power Estimation, Soviet Mathematics Doklady 11:1277–1280, 1970. https://www.cs.bgu.ac.il/~dinitz/D70.pdf
- D. Bertsimas, J. N. Tsitsiklis, Introduction to Linear Optimization, Athena Scientific, 1997, Chapter 7 (network flow problems; formalized on the platform in missions IX–X).