Network Flows: Max-Flow Min-Cut and Nowhere-Zero Flows
Anchor (Master): Diestel 2017 *Graph Theory* (5th ed., Springer GTM 173) §6.1-§6.6 (group-valued flows, the flow polynomial as a Tutte specialisation, nowhere-zero k-flows, the flow-colouring duality on plane graphs, Tutte's flow conjectures, Seymour's 6-flow theorem); Bondy-Murty 2008 (Springer GTM 244) Ch. 21 (integer and group-valued flows); the original sources Ford-Fulkerson 1956, Tutte 1954 (the flow polynomial and the conjectures), Edmonds-Karp 1972, Seymour 1981 (the 6-flow theorem)
Intuition Beginner
Picture a water network: a pumping station on the left, a reservoir on the right, and a web of pipes joining them. Each pipe has a capacity, the most water per second it can carry. You want to push as much water as possible from the station to the reservoir at once. The total rate you achieve is the value of the flow. The question of the whole subject is how large that value can be.
The answer is set by a bottleneck. Imagine slicing the network with a curve that puts the station on one side and the reservoir on the other. Every drop that reaches the reservoir must cross that curve through some pipe, so the total capacity of the pipes the curve cuts is a ceiling on the flow. The cheapest such slice — the one cutting the least total capacity — is the tightest ceiling of all. The max-flow-min-cut theorem says this ceiling is always reached: the most water you can push equals the capacity of the cheapest slice.
This is the same min-max idea you met for disjoint routes, now with capacities attached. When every pipe carries one unit, the most water equals the most separate full routes, and the cheapest slice is the fewest pipes you must cut to disconnect the two ends. Counting routes was the special case; metering capacities is the general law, and the bottleneck always wins.
Visual Beginner
Picture a source on the left and a sink on the right, with four pipes arranged so that two of them feed a middle junction. Each pipe is labelled with its capacity. A dashed curve loops around , separating it from the rest; the pipes that the curve crosses are the cut, and adding up their capacities gives the cost of that slice.
The table records each pipe's capacity and the flow it actually carries. The flow on every pipe stays at or below its capacity, and at the middle junction the water coming in equals the water going out — nothing is created or lost there. The total leaving matches the total arriving at , and it matches the cost of the cheapest slice.
| pipe | capacity | flow carried |
|---|---|---|
| to junction (top) | 3 | 3 |
| to junction (low) | 2 | 1 |
| junction to | 4 | 4 |
| to direct | 0 | 0 |
The total flow out of is , and the cheapest slice around also costs . The two numbers agree, which is the whole point.
Worked example Beginner
Take a small network and find its largest flow by hand. The dots are . The pipes and capacities are: to with capacity ; to with capacity ; to with capacity ; to with capacity ; to with capacity . We want the most we can send from to .
Step 1. Send along the top route . The pipe to allows and the pipe to allows , so this route carries .
Step 2. Send along the lower route . The pipe to allows and the pipe to allows , so this route carries more. The running total is .
Step 3. Look for a third route. From the pipe to has unit of room left ( minus ), and from the only forward room is the pipe to , capacity , leading to ; but to is already full at . So no extra unit gets through. The flow stops at .
Step 4. Find the matching slice. Cut the two pipes to and to , of capacities and . That separates from , at cost . A cheaper slice cuts to and to , capacities and , cost as well. The tightest slice cuts to and to ... we re-slice: cut to and to and to , cost . Every slice costs at least , and the slice cutting to together with to minus the shared room realises the value once back-pipes are accounted for.
What this tells us: the most we could push was , and the bottleneck slice that meters the network down to exists. The largest flow equals the cost of the cheapest slice — we found both numbers and watched them meet.
Check your understanding Beginner
Formal definition Intermediate+
A network is a digraph together with two distinguished vertices, a source and a sink with , and a capacity function [Diestel 2017 §6.2]. A flow is a function satisfying the capacity constraint for every arc , and conservation at every vertex : $$ \sum_{e \in \delta^-(v)} f(e) = \sum_{e \in \delta^+(v)} f(e), $$ where and are the arcs entering and leaving . The value of is the net flow out of the source, $$ |f| = \sum_{e \in \delta^+(s)} f(e) - \sum_{e \in \delta^-(s)} f(e), $$ which conservation forces to equal the net flow into . A flow of largest value is a maximum flow.
A cut is a partition with and . Its capacity is the total capacity of the arcs crossing forward, $$ c(S, \bar S) = \sum_{e \in E(S, \bar S)} c(e), \qquad E(S, \bar S) = { uv \in E : u \in S,\ v \in \bar S }. $$ A cut of least capacity is a minimum cut. For any flow and any cut , summing conservation over gives , the weak duality that bounds every flow by every cut.
Given a flow , the residual network has, for each arc , a forward residual arc of residual capacity when positive, and a backward residual arc of residual capacity when positive. An augmenting path is a directed – path in ; its bottleneck is the least residual capacity along it. Pushing the bottleneck value along the path (adding on forward arcs, subtracting on backward arcs) yields a new flow of strictly larger value.
Let be a finite abelian group. An -circulation on a digraph is a map satisfying conservation at every vertex (no source or sink), and it is nowhere-zero if for all . For an integer , a -flow is a -circulation with for all , and it is a nowhere-zero -flow if additionally everywhere. The flow number of a bridgeless graph is the least admitting a nowhere-zero -flow.
Counterexamples to common slips
- A flow value is net, not gross. The value counts flow out of minus flow back into ; ignoring the backward term overcounts whenever the source has in-arcs. Conservation guarantees this net quantity equals the net into , but neither one-sided sum need equal it.
- Weak duality is an inequality for every pair, equality only at the optimum. Any flow is bounded by any cut, but a given flow and a given cut rarely have equal value; equality across one matched pair certifies both are optimal.
- Nowhere-zero is about arc values, not the existence of a flow. The all-zero map is always a circulation; the content is forbidding the value on every arc, which is impossible exactly when the graph has a bridge.
- A -flow lives in but bounds the magnitude. Requiring is what couples the integer flow to the group ; dropping the bound makes every bridgeless graph flowable without restriction and erases the invariant.
Key theorem with proof Intermediate+
Theorem (max-flow-min-cut, Ford-Fulkerson, with integrality). In any network with source and sink , the maximum value of a flow equals the minimum capacity of a cut: $$ \max_f |f| = \min_{(S, \bar S)} c(S, \bar S). $$ If all capacities are integers, some maximum flow is integer-valued on every arc.
(See [Diestel 2017 §6.2], [Ford-Fulkerson 1956], [Bondy-Murty 2008 Ch. 7].)
Proof. Weak duality gives : for any flow and cut , summing the conservation equations over the vertices of (with contributing ) yields . It remains to exhibit a flow and a cut of equal value.
Take a maximum flow — one exists by compactness of the polytope of feasible flows, or by the termination argument below for rational capacities. Form the residual network and let be the set of vertices reachable from by a directed path in . Then : a directed – path in would be an augmenting path, and pushing its bottleneck would produce a flow of value , contradicting maximality. So is a genuine cut. Every forward arc with , must be saturated, , else its forward residual arc would put in ; every backward arc with , must be empty, , else its backward residual arc would put . Therefore and , so . The flow meets the cut, and by weak duality both are optimal.
For integrality, run the augmenting-path method from the zero flow with integer capacities. Each augmenting path has an integer bottleneck (a minimum of integers), so each augmentation keeps the flow integer-valued and raises by a positive integer. The value is bounded above by any cut capacity, so the process halts after finitely many augmentations at a maximum flow, which is integer-valued throughout.
Bridge. This theorem builds toward the entire min-max architecture of combinatorial duality and appears again in Menger's connectivity theorem, in bipartite matching, and in the group-valued flow theory of the next sections, because each is this same flow identity read on a different object. The foundational reason flows and cuts certify each other is the residual network: the reachable set at a maximum flow is simultaneously a minimum cut, so the absence of an augmenting path is the optimality certificate. This is exactly the principle behind Menger's theorem — give every arc capacity and an integral maximum flow of value decomposes into edge-disjoint paths while the minimum cut becomes the smallest edge separator, so connectivity 40.04.04 is the unit-capacity shadow of this theorem. Putting these together, bipartite matching 40.04.02 is the same statement once more, with a source feeding one side and a sink draining the other, and König's is integral max-flow-min-cut on that network. The bridge is integrality: because integer capacities force an integer optimum, the combinatorial packing-and-covering theorems are all corollaries of one continuous duality, and the algebraic flows that follow generalise the value of a flow from an integer to an element of an arbitrary abelian group.
Exercises Intermediate+
Advanced results Master
Theorem (group independence and the flow polynomial). For a finite abelian group , the number of nowhere-zero -flows on a graph is a polynomial in , independent of the structure of , satisfying the deletion-contraction recursion for any non-loop edge , with when has a bridge. (Tutte [Tutte 1954]; Diestel [Diestel 2017 §6.3].) The flow polynomial is the Tutte-polynomial specialisation , dual to the chromatic polynomial , where is the number of components. On a connected plane graph with dual , the two coincide up to normalisation: , so flows of count colourings of the dual. The existence of a nowhere-zero -flow is the assertion , a positivity statement about a specialisation of the Tutte polynomial that the chromatic side mirrors through .
Theorem (flow-colouring duality on plane graphs). A connected plane graph is -face-colourable (its faces properly -coloured so that faces sharing an edge differ) if and only if admits a nowhere-zero -flow. (Tutte [Tutte 1954]; Diestel [Diestel 2017 §6.5].) A proper -face-colouring of is a proper -vertex-colouring of the dual , and taking the difference of the colours across each edge of — read as an element of on the corresponding edge of — produces a nowhere-zero -flow on , the two colours differing exactly when the flow value is nonzero. The construction is reversible: a nowhere-zero flow on integrates around the dual to a proper colouring of . This is the planar bridge between the chromatic theory of and the flow theory here, and it specialises the abstract Tutte-polynomial duality to a concrete bijection.
Theorem (Seymour's 6-flow theorem). Every bridgeless graph admits a nowhere-zero -flow. (Seymour [Seymour 1981]; Diestel [Diestel 2017 §6.6].) The proof decomposes a -edge-connected graph into a spanning structure carrying a nowhere-zero -flow, combining a -flow on a parity subgraph with a -flow on a covering family of cycles; since and a nowhere-zero -flow exists for iff a nowhere-zero -flow does, the bound follows for -edge-connected graphs and then for all bridgeless graphs by reducing across -edge-cuts. This stands between Jaeger's earlier nowhere-zero -flow theorem and Tutte's conjectures, the strongest unconditional bound known.
Theorem (Tutte's flow conjectures). Tutte conjectured: (5-flow) every bridgeless graph has a nowhere-zero -flow; (4-flow) every bridgeless graph with no Petersen-graph minor has a nowhere-zero -flow; (3-flow) every -edge-connected graph has a nowhere-zero -flow. (Tutte [Tutte 1954]; Diestel [Diestel 2017 §6.6].) These remain open in general (the -flow conjecture outright; the weak -flow conjecture was resolved by Lovász, Thomassen, Wu and Zhang for -edge-connected graphs). The -flow conjecture contains the four-colour theorem: a bridgeless plane graph has a nowhere-zero -flow iff its faces are -colourable, and for a cubic plane graph a nowhere-zero -flow is equivalent to a proper -edge-colouring, so the four-colour theorem 40.04.08 is exactly the statement that every bridgeless cubic planar graph has a nowhere-zero -flow, the planar case of Tutte's conjecture with the Petersen graph (non-planar) as the canonical obstruction.
Synthesis. Putting these together, the chapter's min-max law and its chromatic-flow duality are two faces of a single Tutte-polynomial invariant, and the central insight is that a maximum flow and a minimum cut certify each other while, one dimension over, a nowhere-zero flow and a face-colouring of the dual certify each other. The foundational reason these stack is integrality: integral max-flow-min-cut makes Menger 40.04.04 and matching 40.04.02 corollaries of one continuous duality, and the same passage from to that defines a -flow is the passage that makes the flow polynomial dual to the chromatic polynomial of . This is exactly the principle that on a plane graph flows count colourings of the dual, so the four-colour theorem 40.04.08 becomes a nowhere-zero -flow statement and Tutte's conjectures are the non-planar generalisations the duality predicts. The flow value generalises from an integer to a group element, the cut generalises to a coboundary, and the bridge is the deletion-contraction recursion that both the flow polynomial and the Tutte polynomial obey, so the packing-covering duality of the first half and the colouring-flow duality of the second are the same recursion read at two specialisations of one bivariate invariant.
Full proof set Master
Proposition 1 (weak duality). For every flow and every cut , .
Proof. The value is the net flow out of . Sum the conservation equation over all : each contributes , and contributes , so . Arcs with both ends in cancel, leaving , the forward flow across the cut minus the backward flow. Since and , we get .
Proposition 2 (max-flow-min-cut and integrality). The maximum flow value equals the minimum cut capacity, and integer capacities admit an integer maximum flow.
Proof. By Proposition 1, . Let be a maximum flow and let be the vertices reachable from in the residual network . If there is an augmenting path, and pushing its positive bottleneck contradicts maximality, so and is a cut. For each forward arc across the cut, , else a forward residual arc reaches ; for each backward arc (, ), , else a backward residual arc reaches . Thus and , so by the value identity , and this cut is minimum while is maximum. With integer capacities, augmenting from the zero flow uses an integer bottleneck at each step, preserving integrality and increasing by a positive integer; bounded above by a cut capacity, the process terminates at an integer maximum flow.
Proposition 3 (Menger as unit-capacity flow). For in a graph , the maximum number of edge-disjoint – paths equals the minimum – edge-cut size.
Proof. Orient each edge as two opposed arcs of capacity . By Proposition 2 there is an integer maximum flow , valued in per arc. Cancel opposed unit pairs; the remaining unit arcs satisfy conservation, so they decompose into edge-disjoint – paths (extract an – path along positive arcs, subtract it, repeat). A minimum cut has capacity equal to the number of -edges between and , an – edge cut; conversely any – edge cut induces such a vertex partition. By max-flow-min-cut the maximum path count equals the minimum cut size.
Proposition 4 (flow polynomial and group independence). The number of nowhere-zero -flows on is a polynomial in obeying for non-loop , and if has a bridge.
Proof. Let count -circulations on (conservation at every vertex, no nonzero requirement). The space of -circulations is the cycle space tensored with , of size , depending on only through . For nowhere-zero counts, fix a non-loop edge and apply inclusion-exclusion on the event : nowhere-zero circulations of equal those nowhere-zero off minus those with . Circulations nowhere-zero off correspond to nowhere-zero circulations of (the value on is forced by conservation), and those additionally with are nowhere-zero circulations of . So , giving the stated recursion. Each step reduces , terminating at edgeless graphs and bouquets where the count is a product of factors ; induction shows is a polynomial in . If is a bridge, the cut forces by the value identity across the single-arc cut, so no nowhere-zero flow exists and .
Proposition 5 (flow-colouring duality). A connected plane graph is -face-colourable iff it has a nowhere-zero -flow.
Proof. Let be the plane dual; faces of are vertices of , and edges correspond bijectively, . A proper -face-colouring of is a proper -vertex-colouring . Orient each edge of and let , where are the two faces of adjacent across (the endpoints of in ), with sign fixed by the orientation. Around each vertex of , the faces cycle and the telescoping sum of differences is , so is a -circulation; it is nowhere-zero exactly because is proper, so adjacent faces differ. Conversely, a nowhere-zero -flow on defines on by integration: fix a base face colour and set across each ; the circulation condition makes this well-defined on the simply-connected sphere, and nowhere-zero makes proper. The two maps are mutually inverse up to the choice of base colour.
Proposition 6 (the four-colour link on cubic plane graphs). A bridgeless cubic plane graph is -edge-colourable iff it has a nowhere-zero -flow iff its faces are -colourable.
Proof. By Proposition 5 with , is -face-colourable iff it has a nowhere-zero -flow. A nowhere-zero -flow may be taken valued in , whose three nonzero elements are the colours of a proper -edge-colouring: at each cubic vertex the three incident edges carry the three nonzero values (their sum is in , which conservation demands), so a nowhere-zero -flow is exactly a proper -edge-colouring of the cubic graph. Conversely a proper -edge-colouring assigns the three nonzero elements at each vertex, summing to , hence a nowhere-zero flow. Chaining the equivalences, -edge-colourability, the nowhere-zero -flow, and -face-colourability coincide. The four-colour theorem is the assertion that every bridgeless planar graph is -face-colourable, equivalently that every bridgeless cubic planar graph has a nowhere-zero -flow.
Connections Master
Connectivity and Menger's theorem
40.04.04. Menger's theorem is the unit-capacity, integral case of max-flow-min-cut: assign every edge capacity and an integral maximum flow decomposes into edge-disjoint paths while the minimum cut becomes the smallest edge separator, so the connectivity numbers and of that unit are computed by the augmenting-path and Edmonds-Karp algorithms developed here. The vertex-splitting reduction that turns internally-disjoint vertex routing into edge routing is the same construction in both units, and the directed Menger form is unit-capacity flow on a digraph; this unit supplies the capacities that the connectivity unit specialises away.Matchings I: König's theorem and Hall's marriage theorem
40.04.02. Bipartite maximum matching is the unit-capacity flow problem with a source feeding one part and a sink draining the other, the augmenting paths of Berge's lemma are the residual augmenting paths of Ford-Fulkerson, and König's duality is the integral max-flow-min-cut theorem on that network. The total unimodularity that makes the bipartite matching LP integral is the same property that makes the flow LP integral, so the min-max theorems of that unit are the cardinality-balanced specialisation of the flow duality proved here.Vertex colouring: Brooks' theorem and the chromatic polynomial
40.04.06. The flow polynomial defined here is the Tutte-polynomial dual of the chromatic polynomial studied there, both obeying the same deletion-contraction recursion as specialisations of one bivariate invariant. On a plane graph the two coincide up to normalisation, , so nowhere-zero flows of count proper colourings of the dual; the chromatic positivity question of that unit and the nowhere-zero-flow existence question of this one are dual faces of Tutte-polynomial positivity.The four-colour theorem and map colouring
40.04.08. A bridgeless plane graph is -face-colourable iff it has a nowhere-zero -flow, so the four-colour theorem of that unit is exactly the statement that every bridgeless cubic planar graph carries a nowhere-zero -flow, equivalently is -edge-colourable. Tutte's -flow conjecture is the non-planar generalisation, with the Petersen graph as the canonical obstruction, placing the planar map-colouring result of that unit inside the broader nowhere-zero-flow programme developed here.
Historical & philosophical context Master
The max-flow-min-cut theorem was proved by Lester Ford and Delbert Fulkerson in 1956 (Maximal flow through a network, Canadian Journal of Mathematics 8) [Ford-Fulkerson 1956], in work motivated by the analysis of rail and supply networks; Peter Elias, Amiel Feinstein, and Claude Shannon proved an equivalent statement the same year in an information-theoretic setting. The augmenting-path method they introduced did not bound the number of steps for irrational capacities, a gap closed by Jack Edmonds and Richard Karp in 1972 (Theoretical improvements in algorithmic efficiency for network flow problems, Journal of the ACM 19) [Edmonds-Karp 1972], who showed that augmenting along shortest paths yields an bound independent of the capacities, and by Yefim Dinitz's contemporaneous blocking-flow algorithm.
The algebraic theory of flows is due to William Tutte, who in 1954 (A contribution to the theory of chromatic polynomials, Canadian Journal of Mathematics 6) [Tutte 1954] introduced the flow polynomial as the planar dual of the chromatic polynomial, formulated nowhere-zero -flows, and posed the -flow, -flow, and -flow conjectures that organise the field. François Jaeger proved a nowhere-zero -flow theorem in 1979, and Paul Seymour established the best unconditional bound in 1981 (Nowhere-zero 6-flows, Journal of Combinatorial Theory Series B 30) [Seymour 1981], showing every bridgeless graph has a nowhere-zero -flow. The textbook synthesis presenting networks, the integrality theorem, group-valued flows, the flow-colouring duality, and the flow conjectures as one development is Reinhard Diestel's Graph Theory [Diestel 2017], Chapter 6, on which the organisation of this unit is modelled.
Bibliography Master
@book{Diestel2017,
author = {Diestel, Reinhard},
title = {Graph Theory},
edition = {5th},
series = {Graduate Texts in Mathematics},
volume = {173},
publisher = {Springer},
year = {2017}
}
@book{BondyMurty2008,
author = {Bondy, J. A. and Murty, U. S. R.},
title = {Graph Theory},
series = {Graduate Texts in Mathematics},
volume = {244},
publisher = {Springer},
year = {2008}
}
@article{FordFulkerson1956,
author = {Ford, L. R. and Fulkerson, D. R.},
title = {Maximal flow through a network},
journal = {Canadian Journal of Mathematics},
volume = {8},
year = {1956},
pages = {399--404}
}
@article{Tutte1954,
author = {Tutte, William T.},
title = {A contribution to the theory of chromatic polynomials},
journal = {Canadian Journal of Mathematics},
volume = {6},
year = {1954},
pages = {80--91}
}
@article{EdmondsKarp1972,
author = {Edmonds, Jack and Karp, Richard M.},
title = {Theoretical improvements in algorithmic efficiency for network flow problems},
journal = {Journal of the ACM},
volume = {19},
number = {2},
year = {1972},
pages = {248--264}
}
@article{Seymour1981,
author = {Seymour, Paul D.},
title = {Nowhere-zero 6-flows},
journal = {Journal of Combinatorial Theory, Series B},
volume = {30},
number = {2},
year = {1981},
pages = {130--135}
}
@article{Jaeger1979,
author = {Jaeger, Fran\c{c}ois},
title = {Flows and generalized coloring theorems in graphs},
journal = {Journal of Combinatorial Theory, Series B},
volume = {26},
number = {2},
year = {1979},
pages = {205--216}
}