Proofs: Fattest augmenting path
These are the human proofs of Fattest augmenting path, at full length.
The fattest augmenting path algorithm returns a maximum flow in at most m ln F + 1 rounds full
This proof shows: correctness, termination.
Let be a flow network with integer capacities , edges and , and let be its maximum flow value. Write for the residual capacities, , and for the residual graph of arcs with . The width of a path in is the least on it, and is the largest width of an s-v path, or 0 if there is none; .
Claim 1 (the search finds widest paths). In a search of lines L3 to L7, each vertex is marked done at most once, and at that moment , and gives an s-u path of that width.
Proof. Always , because is set only to the width of the walk to and then , and the vertices on the parent chain are done, so this walk is a path. Suppose is the first vertex marked done with , and let be an s-u path of width . Let be the first arc of with done and not done before ; it exists since is done first and is not done before. When was done, by the choice of , so line L7 set and put in the heap with that key. The heap returned with key before , a contradiction with extracting the largest key first, unless , in which case . Either way, a contradiction.
Claim 2 (each round augments by a widest path). If is done, line L9 sets , and line L10 augments along an s-t path of by its bottleneck. By the invariant proved for Ford-Fulkerson, stays an s-t flow, the residual capacities stay nonnegative integers, and the value grows by . If is not done when the heap is empty, the search has extracted every vertex reachable from in , each with , and no other vertex gets ; so and is not reachable.
Claim 3 (share lemma). Let . Then .
Proof. Let be a maximum flow of . Put and . Then on each arc, is positive on at most one arc of each edge, and satisfies conservation at each in with value . By flow decomposition, is a sum of at most positive flows along s-t paths and cycles, each path inside the support of and thus inside . The paths carry in total, so one path carries at least , and since it carries at most on each arc, its width is at least .
Claim 4 (termination). Let be the missing value after rounds. By Claims 2 and 3, , so for . Each is a nonnegative integer. If there is no round. Otherwise for we get , so , and the next search finds no path. So there are at most rounds.
Claim 5 (optimality). When the loop stops, is the set of vertices reachable from in (Claim 2), with . Each edge leaving has , so it is full, and each edge entering has , so it is empty. By conservation , which bounds every flow value, so is maximum and the cut is minimum.