Max-flow min-cut theorem


In computer science and optimization theory, the max-flow min-cut theorem states that in a flow network, the maximum amount of flow passing from the source to the sink is equal to the total weight of the edges in a minimum cut, i.e., the smallest total weight of the edges which if removed would disconnect the source from the sink.
For example, imagine a network of pipes carrying water from a reservoir to a city. Each pipe has a capacity representing the maximum amount of water that can flow through it per unit of time. The max-flow min-cut theorem tells us that the maximum amount of water that can reach the city is limited by the smallest total capacity of any set of pipes that, if cut, would completely isolate the reservoir from the city. This smallest total capacity is the min-cut. So, if there's a bottleneck in the pipe network, represented by a small min-cut, that bottleneck will determine the overall maximum flow of water to the city.
This is a special case of the duality theorem for linear programs and can be used to derive Menger's theorem and the Kőnig–Egerváry theorem.

Definitions and statement

The theorem equates two quantities: the maximum flow through a network, and the minimum capacity of a cut of the network. To state the theorem, each of these notions must first be defined.

Network

A network consists of
  • a finite directed graph, where V denotes the finite set of vertices and is the set of directed edges;
  • a source and a sink ;
  • a capacity function, which is a mapping denoted by or for. It represents the maximum amount of flow that can pass through an edge.

    Flows

A flow through a network is a mapping denoted by or, subject to the following two constraints:
  1. Capacity Constraint: For every edge,
  2. Conservation of Flows: For each vertex apart from and , the following equality holds:
A flow can be visualized as a physical flow of a fluid through the network, following the direction of each edge. The capacity constraint then says that the volume flowing through each edge per unit time is less than or equal to the maximum capacity of the edge, and the conservation constraint says that the amount that flows into each vertex equals the amount flowing out of each vertex, apart from the source and sink vertices.
The value of a flow is defined by
where as above is the source and is the sink of the network. In the fluid analogy, it represents the amount of fluid entering the network at the source. Because of the conservation axiom for flows, this is the same as the amount of flow leaving the network at the sink.
The maximum flow problem asks for the largest flow on a given network.

Maximum Flow Problem. Maximize, that is, to route as much flow as possible from to.

Cuts

The other half of the max-flow min-cut theorem refers to a different aspect of a network: the collection of cuts. An s-t cut is a partition of such that and. That is, an s-''t cut is a division of the vertices of the network into two parts, with the source in one part and the sink in the other. The cut-set of a cut is the set of edges that connect the source part of the cut to the sink part:
Thus, if all the edges in the cut-set of are removed, then no positive flow is possible, because there is no path in the resulting graph from the source to the sink.
The capacity of an
s-t cut'' is the sum of the capacities of the edges in its cut-set,
where if and, otherwise.
There are typically many cuts in a graph, but cuts with smaller weights are often more difficult to find.

Main theorem

In the above situation, one can prove that the value of any flow through a network is less than or equal to the capacity of any s-t cut, and that furthermore a flow with maximal value and a cut with minimal capacity exist. The main theorem links the maximum flow value with the minimum cut capacity of the network.

Example

The figure on the right shows a flow in a network. The numerical annotation on each arrow, in the form f/''c, indicates the flow and the capacity of the arrow. The flows emanating from the source total five, as do the flows into the sink, establishing that the flow's value is 5.
One
s''-t cut with value 5 is given by S= and T=. The capacities of the edges that cross this cut are 3 and 2, giving a cut capacity of 3+2=5.
The value of the flow is equal to the capacity of the cut, showing that the flow is a maximal flow and the cut is a minimal cut.
Note that the flow through each of the two arrows that connect S to T is at full capacity; this is always the case: a minimal cut represents a 'bottleneck' of the system.

Linear program formulation

The max-flow problem and min-cut problem can be formulated as two primal-dual linear programs.

Max-flow

Min-cut
variables
'

'
'
objective
maximize
'

minimize
'
constraints
subject to
'

subject to
'
sign constraints

The max-flow LP is straightforward. The dual LP is obtained using the algorithm described in dual linear program: the variables and sign constraints of the dual correspond to the constraints of the primal, and the constraints of the dual correspond to the variables and sign constraints of the primal. The resulting LP requires some explanation. The interpretation of the variables in the min-cut LP is:
The minimization objective sums the capacity over all the edges that are contained in the cut.
The constraints guarantee that the variables indeed represent a legal cut:
  • The constraints guarantee that, for non-terminal nodes u,v, if u is in S and v is in T, then the edge is counted in the cut.
  • The constraints guarantee that, if v is in T, then the edge ' is counted in the cut.
  • The constraints guarantee that, if u is in S, then the edge ' is counted in the cut.
Note that, since this is a minimization problem, we do not have to guarantee that an edge is not in the cut - we only have to guarantee that each edge that should be in the cut, is summed in the objective function.
The equality in the
max-flow min-cut theorem' follows from the strong duality theorem in linear programming, which states that if the primal program has an optimal solution, x''*, then the dual program also has an optimal solution, y*, such that the optimal values formed by the two solutions are equal.

Application

Cederbaum's maximum flow theorem

The maximum flow problem can be formulated as the maximization of the electrical current through a network composed of nonlinear resistive elements. In this formulation, the limit of the current between the input terminals of the electrical network as the input voltage approaches, is equal to the weight of the minimum-weight cut set.

Generalized max-flow min-cut theorem

In addition to edge capacity, consider there is capacity at each vertex, that is, a mapping denoted by, such that the flow has to satisfy not only the capacity constraint and the conservation of flows, but also the vertex capacity constraint
In other words, the amount of flow passing through a vertex cannot exceed its capacity. Define an s-t cut to be the set of vertices and edges such that for any path from s to t, the path contains a member of the cut. In this case, the capacity of the cut is the sum of the capacity of each edge and vertex in it.
In this new definition, the generalized max-flow min-cut theorem states that the maximum value of an s-t flow is equal to the minimum capacity of an s-t cut in the new sense.

Menger's theorem

In the undirected edge-disjoint paths problem, we are given an undirected graph and two vertices and, and we have to find the maximum number of edge-disjoint s-t paths in.
Menger's theorem states that the maximum number of edge-disjoint s-t paths in an undirected graph is equal to the minimum number of edges in an s-t cut-set.

Project selection problem

In the project selection problem, there are projects and machines. Each project yields revenue and each machine costs to purchase. We want to select a subset of the project, and purchase a subset of the machines, to maximize the total profit. We must obey the following constraint: each project specifies a set of machines which must be purchased if the project is selected.
To solve the problem, let be the set of projects not selected and be the set of machines purchased, then the problem can be formulated as,
Since the first term does not depend on the choice of and, this maximization problem can be formulated as a minimization problem instead, that is,
The above minimization problem can then be formulated as a minimum-cut problem by constructing a network, where the source is connected to the projects with capacity, and the sink is connected by the machines with capacity. An edge with infinite capacity is added if project requires machine. The s-t cut-set represents the projects and machines in and respectively. By the max-flow min-cut theorem, one can solve the problem as a maximum flow problem.
The figure on the right gives a network formulation of the following project selection problem:

Project

Machine
1100200
Project 1 requires machines 1 and 2.
2200100
Project 2 requires machine 2.
315050
Project 3 requires machine 3.

The minimum capacity of an s-t cut is 250 and the sum of the revenue of each project is 450; therefore the maximum profit g is 450 − 250 = 200, by selecting projects and.
The idea here is to 'flow' each project's profits through the 'pipes' of its machines. If we cannot fill the pipe from a machine, the machine's return is less than its cost, and the min cut algorithm will find it cheaper to cut the project's profit edge instead of the machine's cost edge.