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.
The Ford-Fulkerson algorithm starts with zero flow. For each original edge , the residual network has a forward edge with residual capacity and a reverse edge with residual capacity . Distinguish these labelled residual edges if the original graph has antiparallel edges. While there is a source-to-sink augmenting path with positive residual capacities, increase the flow by the minimum residual capacity along it, adding on forward edges and subtracting on reverse edges. This preserves capacity bounds and flow conservation and increases the strength of a flow by that positive bottleneck.
A cut of a flow network is a partition with , , of capacity . Summing flow conservation gives . The max-flow min-cut theorem states
When no augmenting path remains, take to be the vertices reachable from in the residual network. Every original outgoing edge of this cut of a flow network is saturated and every incoming edge has zero flow; otherwise a positive residual edge would leave . Thus , certifying optimality and the theorem. For general finite real capacities, one can also apply this argument to an existing maximum: it cannot admit an augmenting path.
With integer capacities, each augmentation increases the value by at least one, so the Ford-Fulkerson algorithm terminates. Rational capacities can be scaled to integers. Arbitrary path choices with irrational capacities need not terminate; the existence theorem does not justify claiming finite termination in that generality. The given network has integer capacities, so this caveat does not obstruct its computation.
No: the increase need not equal . For a simple counterexample, use two edge-disjoint paths and , with all four capacities equal to one. Initially the maximum flow is . After every capacity increases to , send down each path; a source cut of a flow network bounds the total by the same value. Hence
More generally, by the max-flow min-cut theorem, if is the number of directed edges leaving a cut of a flow network, uniform capacity perturbation of a flow network gives
The number of outgoing edges, and possible changes of the minimising cut of a flow network, determine the increase. If the question were interpreted as asking for an increase of at least , this does hold when the graph has a directed -to- path, because then every cut of a flow network has . Without such a path a zero-edge cut of a flow network remains of capacity zero and the maximum can stay zero. Thus neither an exact increment nor an unconditional positive increment follows merely by adding the same amount to every edge capacity.
Write and let denote Lebesgue measure. Necessity follows from measure additivity and monotonicity: the pairwise disjoint Lebesgue measurable sets give
For sufficiency, form the finite measurable partition into membership cells
These Lebesgue measurable sets are pairwise disjoint, and . Empty cells may be retained. Construct a flow network with a source, one vertex for each index , one vertex for each cell , and a sink. Give the source-to- edge capacity , the -to- edge capacity whenever , and the -to-sink edge capacity .
Consider any cut of a flow network, and let be its index vertices on the source side. If an index-to-cell edge crosses the cut of a flow network, its capacity alone is . Otherwise every cell with lies on the source side, so the cut of a flow network has capacity at least
The cut immediately after the source has capacity . The max-flow min-cut theorem, valid for finite flow networks with real capacities, therefore supplies a flow of value . Its cell allocations satisfy
It remains to convert these numbers into Lebesgue measurable sets; this uses divisibility of Lebesgue measure. Indeed, for any Lebesgue measurable set , the function satisfies , and . Thus it has Lipschitz continuity, and the intermediate value theorem supplies a measurable subset of of any prescribed measure between and . Successively apply this to the remaining portion of each , choosing disjoint pieces of measure ; choose the empty set when . Then
This proves the measurable Hall theorem. The splitting step is essential: an arbitrary measure with an atom of a measure would not support the same conclusion. Here inclusion allows equality; even if strict inclusion is required, deleting one point of each nonempty from every preserves all measures and ensures .
A cut is a partition of the vertices with the source in and sink in ; its capacity is the sum of capacities of directed edges from to . The max-flow min-cut theorem says that maximum flow value equals minimum cut capacity. With integral capacities, there is an integral max-flow theorem attaining the maximum.
Construct a bipartite graph with one vertex for each row and column and an edge whenever . Add source-to-row and column-to-sink edges of capacity , and give row-to-column edges infinite capacity. An integral flow is precisely a set of independent s, so its maximum value is the largest such set.
A finite-capacity cut places some rows on the sink side and some columns on the source side; these lines cover every , since an uncovered row-to-column edge would cross the cut with infinite capacity. Its capacity is the number of selected lines. Conversely every line cover defines such a cut. Max-flow min-cut therefore proves the maximum number of independent s equals the minimum number of covering lines, the matrix form of König's theorem for bipartite matching.
The max-flow min-cut theorem states that in a finite flow network, the maximum value of a feasible source-to-sink flow equals the minimum capacity of a source-to-sink cut.
First consider any feasible flow and any cut with and . Summing flow conservation over the vertices in cancels all contributions from edges internal to and gives
Thus every flow value is at most every cut capacity.
A maximum flow exists because the feasible flows form a nonempty compact subset of a finite-dimensional Euclidean space and the flow value is continuous. Let be maximum and form its residual network. If there were an augmenting path from to , increasing by the path's positive bottleneck capacity would contradict maximality. Let be the set of vertices reachable from in the residual network. Then . Every original edge from to its complement is saturated, while every original edge entering carries zero flow; otherwise the corresponding forward or reverse residual edge would make its other endpoint reachable. Consequently
The general upper bound is attained by this flow and cut, proving the theorem.
After these augmentations, the vertices reachable from in the residual network are
The edges leaving this set are , , and , with capacities , , and . Hence
The flow in part (i) has the same value, so the max-flow min-cut theorem proves that it is maximum and that this cut is minimum.
Assume the capacities are integers and begin with the zero flow. Inductively, if every edge flow is an integer, then every forward residual capacity and reverse residual capacity is an integer. The bottleneck on an augmenting path is therefore a positive integer. Augmenting by it changes every affected edge flow by an integer, so all edge flows remain integral.
Each augmentation raises the flow value by at least one. On the other hand, every feasible flow satisfies
and the right side is a finite integer because the network is finite. There can therefore be only finitely many augmentations. When the algorithm stops, no augmenting path remains, and the source-reachable cut in the residual network has capacity equal to the current flow value. The max-flow min-cut theorem proves that the terminating flow is maximum. This proves both termination and the Integrality of the Ford-Fulkerson algorithm.
For nonadjacent vertices , the local connectivity is the minimum cardinality of an - vertex separator: a set such that and lie in different components of .
To prove the vertex form of the Menger theorem, replace every vertex by an arc of capacity one. Replace every undirected edge by directed arcs from to and conversely, each of capacity larger than ; leave unsplit. An integral - flow of value decomposes into paths, and the unit-capacity vertex arcs force the corresponding graph paths to be internally vertex-disjoint paths. Conversely, such paths give an integral flow of value .
Because and are nonadjacent, any finite minimum cut consists entirely of unit-capacity vertex arcs. These arcs correspond exactly to an - vertex separator of the same size. The max-flow min-cut theorem, whose augmenting-path proof also guarantees an integral maximum flow for integral capacities, therefore gives
In particular, contains the required set of paths.
A feasible flow assigns to each directed edge so that
and inflow equals outflow at every vertex other than the source and sink. Its value is the net outflow from the source. For a set containing the source but not the sink, the associated cut has capacity
The max-flow min-cut theorem states
For every flow and cut, conservation at vertices inside gives
This proves the weak inequality.
A maximum flow exists because the feasible-flow polytope is nonempty, closed, and bounded. Form its residual graph: a forward edge has residual capacity , and a reverse edge has residual capacity . If the residual graph contained a source-to-sink path, augmenting by the smallest positive residual capacity on that path would increase the flow, contradicting maximality.
Let be the vertices reachable from the source in the residual graph. The sink is not in . Every original edge from to its complement is saturated, and every original edge from the complement into carries zero flow; otherwise the appropriate residual edge would make its other endpoint reachable. Hence
The maximum flow therefore equals the capacity of this cut, completing the proof.
To find the smallest link failure set separating a client from every server, add a common sink with sufficiently large-capacity server arcs and give original links unit capacities in both directions. The max-flow min-cut theorem identifies the minimum failure count . Unit-capacity vertex splitting also charges intermediary node failures. The network tolerates fewer than failures and fails for some set of failures. This concerns connection to at least one server, not separate connectivity to each server.
If every directed edge capacity increases by , a cut of a flow network with outgoing edges gains . By the max-flow min-cut theorem, the new maximum flow value is
For a finite flow network, this is a nondecreasing concave piecewise-linear function, and its active cut can change as varies. Two unit-capacity edge-disjoint two-edge source-to-sink paths gain , refuting an invariably exact increase. If there is a directed source-to-sink path, every cut has at least one outgoing edge and the increase is at least ; without a path it can be zero.