Applications of Network Flows
Network flow theory unifies many combinatorial optimization problems. Matchings, edge-disjoint paths, and connectivity problems all reduce to flow computations.
Menger's Theorem and Connectivity
The maximum number of edge-disjoint - paths equals the minimum number of edges in an - edge cut (minimum set of edges whose removal disconnects from ). This follows from max-flow min-cut with unit capacities. The vertex version: the maximum number of internally vertex-disjoint - paths equals the minimum vertex cut size (for non-adjacent ). This is proved by "splitting" each vertex into with a unit-capacity edge between them.
Maximum bipartite matching reduces to max-flow: given , create a network with source connected to all (capacity 1), edges from to (capacity 1), and all connected to sink (capacity 1). The max flow equals the maximum matching size. Since all capacities are integers, the max flow is an integer flow, corresponding to a matching. This reduction proves KΓΆnig's theorem from max-flow min-cut.
Minimum Cost Flow
In minimum cost flow, each edge has capacity and cost . The goal: send units of flow from to minimizing total cost . The successive shortest paths algorithm finds minimum cost augmenting paths (using Dijkstra or Bellman-Ford in the residual graph with reduced costs). The cycle-canceling algorithm starts with any feasible flow and eliminates negative-cost cycles. Both run in polynomial time.
Network flow problems have totally unimodular constraint matrices, guaranteeing integer optimal solutions for integer data. The LP dual of max-flow is min-cut; the dual of min-cost flow involves potentials (distances) at vertices. This structure makes network flow problems efficiently solvable despite being special cases of linear programming.
Flow Decomposition
Any feasible flow in a network can be decomposed into at most path flows (from to ) and cycle flows, each with positive value. The decomposition is not unique but always exists. This is useful for interpreting the combinatorial structure of an optimal flow: each path in the decomposition represents a "route" for transporting goods from source to sink.
Baseball elimination: can team still finish first? Reduce to max-flow: create a node for each remaining game between other teams, with capacity = games remaining. Edges to team nodes split wins; team nodes connect to with capacity = maximum wins can achieve minus current wins. If max-flow saturates all game edges, elimination is not guaranteed; otherwise, is mathematically eliminated. This models a complex combinatorial problem as a single flow computation.