ConceptComplete

Network Flows and Max-Flow Min-Cut

Network flow theory models the transportation of commodities through a network. The max-flow min-cut theorem, a cornerstone of combinatorial optimization, establishes a deep duality between flows and cuts.


Flow Networks

Definition7.1Network and Flow

A flow network is a directed graph G=(V,E)G = (V, E) with a source ss, sink tt, and capacity function c:ER0c: E \to \mathbb{R}_{\geq 0}. A flow is a function f:ER0f: E \to \mathbb{R}_{\geq 0} satisfying: (1) capacity constraint: 0f(e)c(e)0 \leq f(e) \leq c(e) for all ee; (2) conservation: (u,v)Ef(u,v)=(v,w)Ef(v,w)\sum_{(u,v)\in E} f(u,v) = \sum_{(v,w)\in E} f(v,w) for all vs,tv \neq s, t. The value of ff is f=(s,v)Ef(s,v)(v,s)Ef(v,s)|f| = \sum_{(s,v)\in E} f(s,v) - \sum_{(v,s)\in E} f(v,s).

Definition7.2Cut and Capacity

An ss-tt cut is a partition (S,T)(S, T) of VV with sS,tTs \in S, t \in T. The capacity of the cut is c(S,T)=(u,v)EuS,vTc(u,v)c(S, T) = \sum_{\substack{(u,v)\in E \\ u\in S, v\in T}} c(u,v). For any flow ff and cut (S,T)(S,T): f=uS,vTf(u,v)uT,vSf(u,v)c(S,T)|f| = \sum_{\substack{u\in S,v\in T}} f(u,v) - \sum_{\substack{u\in T,v\in S}} f(u,v) \leq c(S,T). This shows max flow \leq min cut.


Algorithms

ExampleFord-Fulkerson Method

The Ford-Fulkerson method iteratively finds augmenting paths in the residual graph GfG_f (where edge (u,v)(u,v) has residual capacity cf(u,v)=c(u,v)f(u,v)c_f(u,v) = c(u,v) - f(u,v) and back-edge cf(v,u)=f(u,v)c_f(v,u) = f(u,v)). Each augmenting path increases f|f| by the bottleneck capacity. With integer capacities C=maxc(e)C = \max c(e): terminates in O(f)O(|f^*|) augmentations, total O(fm)O(|f^*| \cdot m). Edmonds-Karp (BFS augmentations): O(nm2)O(nm^2). Dinic's algorithm (blocking flows on layered graphs): O(n2m)O(n^2 m).

RemarkPush-Relabel Algorithm

The Goldberg-Tarjan push-relabel algorithm maintains a preflow (excess allowed at vertices) and uses "push" (send flow along admissible edges) and "relabel" (increase height labels) operations. Running time: O(n2m)O(n^2\sqrt{m}) with FIFO selection, or O(n3)O(n^3) with highest-label. For dense graphs, push-relabel is often the fastest in practice. The highest-label variant achieves O(n2m)O(n^2\sqrt{m}) worst-case.