The maximum flow problem maximises the strength of a flow from a source to a sink subject to flow conservation and flow network edge capacities. For the nonnegative arc amounts used in flow network, its objective is net outflow from the source:The equality follows by summing flow conservation over all internal vertices. Incoming source flow must be subtracted: merely circulating traffic through does not deliver more to . The max-flow min-cut theorem identifies the optimum with the least cut capacity of a cut of a flow network. A feasible flow and a cut of a flow network of equal value certify optimality without requiring a particular choice of augmenting paths.
For the five-edge flow network with flow network edge capacities , takeEvery capacity constraint holds with equality. Flow conservation at is , and at it is . The strength of a flow is , also entering . This flow consists of units on the graph path , on , and on . The cut of a flow network with source side has cut capacity , so no feasible flow can do better.
Even a seemingly poor first augmenting path , carrying , does not cause failure in this example. It leaves residual network capacity along and along . These two subsequent augmenting paths yield values , , and , and produce exactly the flow above. Backward residual network edges become essential in the unit-capacity example under residual network, where this same first choice blocks every unused forward route.
Discrete assignment is another reason to study maximum flow. Put unit-capacity edges from to job vertices, from each job to eligible worker vertices, and from workers to . An integral flow selects a matching in a graph: each job and worker participates at most once, and the strength of a flow counts assigned jobs. The integral max-flow theorem therefore turns maximum cardinality assignment into maximum flow. Minimizing assignment costs is the related assignment problem, modeled by minimum-cost flow.[ref]
https://ocw.mit.edu/courses/6-854j-advanced-algorithms-fall-2008/4064d889e5033a9915327a777d12b592_notes_flow.pdf. Goemans, Network flows, assignment formulation
For a league in which every remaining game gives exactly one win, first give the target team all its remaining wins, obtaining . Make a node for each unordered pair of other teams, with source capacity equal to their remaining games. Route each game-node flow to one of its two teams, and cap the team's total additional wins at for a strict target victory. A negative cap immediately rules out success. Otherwise an integral maximum flow saturating every game-source arc specifies the winners of all games and proves feasibility. Each actual game is counted once; duplicating ordered pairs changes the problem.
In a flow network for treatment facilities, the amount treated at a facility is represented by a directed arc from it to the sink, with that arc's capacity equal to its treatment limit. Untreated fluid may pass through the facility independently of how much is treated there. Thus the treatment limit is not a bound on total incoming flow. Flow conservation at a facility equates incoming flow with outgoing untreated flow plus its sink-arc flow.
To find the smallest link failure set separating a client from every server, add a common sink with sufficiently large-capacity server arcs and give original links unit capacities in both directions. The max-flow min-cut theorem identifies the minimum failure count . Unit-capacity vertex splitting also charges intermediary node failures. The network tolerates fewer than failures and fails for some set of failures. This concerns connection to at least one server, not separate connectivity to each server.
This maximum flow algorithm repeatedly augments along a shortest residual path found by breadth-first search. Residual distances from the source never decrease. If the same arc becomes saturated again after being restored by a reverse augmentation, the distance to its tail has increased by at least two. Thus each arc is critical only times, yielding augmentations. Each search costs , so the total time is . Termination with no residual source-sink path supplies a max-flow min-cut theorem certificate.
The maximum flow problem with internal vertex capacities reduces to the usual edge-capacitated problem by splitting each constrained vertex into input and output copies. The connecting edge carries its entire through-flow. Feasible flows correspond under this construction, preserving the source-to-sink value; the Ford-Fulkerson algorithm and max-flow min-cut theorem therefore apply to the transformed network.
Replace a vertex by and an arc between them carrying its vertex capacity. Incoming arcs enter and outgoing arcs leave . A path must cross that internal arc to use the vertex. This converts node-capacitated maximum flow to an ordinary flow network. For undirected mixed-failure cuts, normalize the source side so inside implies inside; then each original link contributes at most one crossing orientation.
Articles by others on the same topic
The maximum flow problem is a classic optimization problem in network flow theory, which aims to find the maximum flow that can be sent from a source node (often referred to as the "source") to a sink node (often referred to as the "sink" or "target") in a flow network. A flow network is a directed graph where each edge has a capacity representing the maximum allowable flow that can pass through that edge.