Chapter 11. Network Flow
Classical augmenting-path max-flow algorithms (FordFulkerson, EdmondsKarp).
This page: Classical forms. View LLP forms »
This page collects the classical implementations of the algorithms developed in this chapter. The lattice-linear (LLP) reformulations and chapter setup live on the LLP companion page.
FordFulkerson
DFS-based augmenting-path scheme. The aux augmentingPath performs a DFS
on the residual graph and writes a parent pointer for every reachable vertex; on
success the main loop walks the parent chain back from $t$ to $s$ to find the
bottleneck and pushes that much flow along every edge of the path
(reverse-edge augmentations decrement the forward flow).
Time complexity: $O(|f^{*}| \cdot (n + m))$ — pseudo-polynomial in the maximum-flow value $|f^{*}|$.
EdmondsKarp
Same outer skeleton as FordFulkerson, but augmenting paths are shortest (fewest residual edges) — found via BFS rather than DFS. This single change is what makes the algorithm strongly polynomial at $O(|V| \cdot |E|^2)$.
Time complexity: $O(n \cdot m^2)$, strongly polynomial.