Maximum Flow Problem¶
Definition¶
The maximum flow problem assigns nonnegative flow to the edges of a directed network, subject to capacities and flow conservation (inflow equals outflow) at every intermediate vertex, that is, every vertex other than the source and the sink. The course assumes the source has only outgoing edges and the sink only incoming edges. The objective is to maximize total source outflow, equivalently total sink inflow.
Interpretation¶
The maximum flow problem asks how much can be sent from a source to a sink through a network of directed connections with limited capacity. Intermediate vertices pass flow on rather than create or consume it.
Each edge is labelled flow/capacity. The source sends , and every intermediate vertex passes on what it receives; for example, receives and sends to . The dashed line separates from the other vertices; the only edges crossing it, and , are full and have total capacity , so no flow can exceed 8 and the flow shown is maximum.
The capacity constraints bound the flow on each edge, nonnegativity keeps flow in the direction of the edge, and the conservation constraints balance incoming and outgoing flow at intermediate vertices. Without conservation, an intermediate vertex could simply absorb what the source sends, and the source outflow would no longer measure what reaches the sink.
The value of a flow is the source outflow, not the sum of all edge flows: in the figure the edge flows add up to , while the value is , since a unit that travels over three edges is counted once.
The augmenting path algorithm finds a maximum flow using the residual network. Later in the course, the same model is written as a linear program.
Key Results¶
- Flow into each intermediate vertex equals flow out.
- The same maximum value can have several feasible edge-flow assignments.
- Residual reverse capacity permits earlier routing choices to be revised.
Examples¶
The illustrated flow has source outflow , and each intermediate vertex passes on what it receives (for example, receives 5 and sends ). A cut splits the vertices into a source side and a sink side; its capacity is the total capacity of the edges directed from the source side to the sink side, and no feasible flow value exceeds the capacity of any cut. The red dashed cut in the figure separates from : only and cross it, with capacity , so no feasible flow can exceed 8. Attaining that cut bound certifies maximality.
- A minimum cut need not be unique: the cut separating from is crossed by , and and also has capacity .
- Week 4 course examples (networks not shown on this page) use source and sink : the main example has maximum flow 15, and Week 4 practice 7 reaches 16, with 9 entering from and 7 from .
Prerequisites¶
Related Concepts¶
Sources¶
- OR Modelling · Week 4
Aliases: max-flow problem, maximal flow problem
Last updated: 20 October 2026 03:02
Maximum Flow ProblemMaximum Flow Linear ProgramResidual NetworkDirected NetworkConstraintAugmenting Path Algorithm