Flow Networks and the Maximum-Flow Problem
A flow network models the movement of a commodity (oil, water, data) through a network with capacity constraints. The problem is to maximise throughput from source to sink.
Definitions
A flow network is a directed graph with two distinguished vertices:
- Source : origin of flow, no incoming flow
- Sink : destination of flow, no outgoing flow
Each edge has a non-negative capacity . We assume no self-loops and (for convenience) no antiparallel edges: if then . Antiparallel edges can be removed by inserting a dummy vertex. Every vertex lies on some path .
Flow
A flow satisfies:
- Capacity constraint: for all
- Flow conservation: for every vertex :
Total flow in equals total flow out at every internal vertex. We define if .
The value of flow is the net flow leaving the source:
The second sum is usually zero but is included for generality.
Antisymmetry Convention
For notational convenience, define . This lets us write net flow across a cut as a single sum. In practice, flow only exists in forward directions up to capacity; the antisymmetry notion simplifies the algebra of residual networks.
Residual Networks
Given flow on , the residual network shows how much additional flow can be pushed on each edge, and where flow can be cancelled:
- If and , add to with residual capacity
- If (i.e. with positive flow), add to with
Residual edges in the reverse direction represent flow cancellation: we can “undo” flow previously sent along the forward edge.
Formally:
Augmentation
If is a flow in , then the augmented flow is:
This yields a valid flow in with value .
Problem Statement
Maximum-Flow Problem: given a flow network with capacities , source , and sink , find a flow of maximum value .
Applications
- Transport and logistics networks
- Bipartite matching (see Maximum Bipartite Matching via Flow)
- Circulation with demands
- Image segmentation (min-cut formulation)
- Edge-disjoint and vertex-disjoint paths
- Project selection / maximum closure
- Baseball elimination
Antiparallel Edge Elimination
If and both exist with capacities and , insert a new vertex and replace with and , both of capacity . The resulting network has no antiparallel edges and preserves all feasible flows.
Example
Consider a simple 4-vertex network:
- (capacity 10), (capacity 5)
- (capacity 3), (capacity 8)
- (capacity 7)
A feasible flow sends 8 via and 7 via , but the edge capacity of 3 constrains redistribution. The maximum flow value is 15 (send 10 on , split 8 to and 2 via , plus 5 from , total ).
Summary
| Concept | Definition |
|---|---|
| Flow network | with source , sink , capacities |
| Capacity constraint | |
| Flow conservation | for |
| Flow value | Net flow out of : |
| Residual capacity | |
| Augmentation | adds residual flow to |
Past Tripos: y2024p1q9, y2023p2q7.