Max-flow min-cut theorem

Max-flow min-cut theorem

In 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 minimum capacity which when removed in a specific way from the network causes the situation that no flow can pass from the source to the sink.

The max-flow min-cut theorem is a special case of the duality theorem and can be used to derive Menger's theorem and the König-Egerváry Theorem.



Let N = (V,E) be a network (directed graph) with s and t being the source and the sink of N respectively.

The capacity of an edge is a mapping c: ER+, denoted by cuv or c(u,v). It represents the maximum amount of flow that can pass through an edge.
A flow is a mapping f: ER+, denoted by fuv or f(u,v), subject to the following two constraints:
  1. f_{uv} \le c_{uv} for each (u,v)\in E (capacity constraint)
  2. \sum_{u:\,\,(u,v)\in E} f_{uv} = \sum_{u:\,\,(v,u)\in E} f_{vu} for each v \in V\setminus\{s,t\} (conservation of flows).
The value of flow is defined by |f| = \sum_{\,\,v\in V} f_{sv} , where s is the source of N. It represents the amount of flow passing from the source to the sink.

The maximum flow problem is to maximize | f |, that is, to route as much flow as possible from s to t.

An s-t cut C = (S,T) is a partition of V such that sS and tT. The cut-set of C is the set {(u,v)∈E | uS, vT}. Note that if the edges in the cut-set of C are removed, | f | = 0.
The capacity of an s-t cut is defined by c (S,T) = \sum_{(u,v) \in S \times T} c_{uv}.

The minimum cut problem is to minimize c(S,T), that is, to determine S and T such that the capacity of the S-T cut is minimal.


The max-flow min-cut theorem states

The maximum value of an s-t flow is equal to the minimum capacity of an s-t cut.

Linear program formulation

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

Max-flow (Primal)

Min-cut (Dual)

maximize |f| = \nabla_s

minimize \sum_{(i, j) \in E} c_{ij} d_{ij}

subject to

\begin{array}{rclr} f_{ij} & \leq & c_{ij} & (i, j) \in E \\
\sum_{j: (j, i) \in E} f_{ji} - \sum_{j: (i, j) \in E} f_{ij} & \leq & 0 & i \in V, i \neq s,t \\
\nabla_s + \sum_{j: (j, s) \in E} f_{js} - \sum_{j: (s, j) \in E} f_{sj} & \leq & 0 & \\
\nabla_t + \sum_{j: (j, t) \in E} f_{jt} - \sum_{j: (t, j) \in E} f_{tj} & \leq & 0 & \\
f_{ij} & \geq & 0 & (i, j) \in E\\

subject to

d_{ij} - p_i + p_j & \geq & 0 & (i, j) \in E \\
p_s & = & 1 & \\
p_t & = & 0 & \\
p_i & \geq & 0 & i \in V \\
d_{ij} & \geq & 0 & (i, j) \in E

The equality in the max-flow min-cut theorem follows from the strong duality theorem, 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.


A network with the value of flow equal to the capacity of an s-t cut

The figure on the right is a network having a value of flow of 7. The vertex in white and the vertices in grey form the subsets S and T of an s-t cut, whose cut-set contains the dashed edges. Since the capacity of the s-t cut is 7, which is equal to the value of flow, the max-flow min-cut theorem tells us that the value of flow and the capacity of the s-t cut are both optimal in this network.


Generalized max-flow min-cut theorem

In addition to edge capacity, consider there is capacity at each vertex, that is, a mapping c: VR+, denoted by c(v), such that the flow f has to satisfy not only the capacity constraint and the conservation of flows, but also the vertex capacity constraint

\sum_{i\in V} f_{iv} \le c(v) for each v\in V \setminus \{s,t\}.

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 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 G = (V, E) and two vertices s and t, and we have to find the maximum number of edge-disjoint s-t paths in G.

The 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

A network formulation of the project selection problem with the optimal solution

In the project selection problem, there are n projects and m equipments. Each project pi yields revenue r(pi) and each equipment qj costs c(qj) to purchase. Each project requires a number of equipments and each equipment can be shared by several projects. The problem is to determine which projects and equipments should be selected and purchased respectively, so that the profit is maximized.

Let P be the set of projects not selected and Q be the set of equipments purchased, then the problem can be formulated as,

\max \{g\} = \sum_{i} r(p_i) - \sum_{p_i \in P} r(p_i) - \sum_{q_j \in Q} c(q_j).

Since r(pi) and c(qj) are positive, this maximization problem can be formulated as a minimization problem instead, that is,

\min \{g'\} = \sum_{p_i \in P} r(p_i) + \sum_{q_j \in Q} c(q_j).

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 r(pi), and the sink is connected by the equipments with capacity c(qj). An edge (pi, qj) with infinite capacity is added if project pi requires equipment qj. The s-t cut-set represents the projects and equipments in P and Q 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 r(pi)

Equipment c(qj)

1 100 200

Project 1 requires equipments 1 and 2.

2 200 100

Project 2 requires equipment 2.

3 150 50

Project 3 requires equipment 3.

The minimum capacity of a 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 p2 and p3.


The max-flow min-cut theorem was proved by P. Elias, A. Feinstein, and C.E. Shannon in 1956, and independently also by L.R. Ford, Jr. and D.R. Fulkerson in the same year.

See also


  • Eugene Lawler (2001). "4.5. Combinatorial Implications of Max-Flow Min-Cut Theorem, 4.6. Linear Programming Interpretation of Max-Flow Min-Cut Theorem". Combinatorial Optimization: Networks and Matroids. Dover. pp. 117–120. ISBN 0486414531. 
  • Christos H. Papadimitriou, Kenneth Steiglitz (1998). "6.1 The Max-Flow, Min-Cut Theorem". Combinatorial Optimization: Algorithms and Complexity. Dover. pp. 120–128. ISBN 0486402584. 
  • Vijay V. Vazirani (2004). "12. Introduction to LP-Duality". Approximation Algorithms. Springer. pp. 93–100. ISBN 3540653678. 

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Max-Flow-Min-Cut-Theorem — Das Max Flow Min Cut Theorem ist ein Satz der Graphentheorie über den maximalen Fluss in Flussnetzwerken. Er leitet sich aus Mengers Theorem ab. Er besagt: Der maximale Fluss im Netzwerk hat genau den Wert dessen minimalen Schnitts. Anders gesagt …   Deutsch Wikipedia

  • Cut (graph theory) — In graph theory, a cut is a partition of the vertices of a graph into two disjoint subsets. The cut set of the cut is the set of edges whose end points are in different subsets of the partition. Edges are said to be crossing the cut if they are… …   Wikipedia

  • Flow network — In graph theory, a flow network is a directed graph where each edge has a capacity and each edge receives a flow. The amount of flow on an edge cannot exceed the capacity of the edge. Often in Operations Research, a directed graph is called a… …   Wikipedia

  • Menger's theorem — In the mathematical discipline of graph theory and related areas, Menger s theorem is a basic result about connectivity in finite undirected graphs. It was proved for edge connectivity and vertex connectivity by Karl Menger in 1927. The edge… …   Wikipedia

  • Maximum flow problem — An example of a flow network with a maximum flow. The source is s, and the sink t. The numbers denote flow and capacity. In optimization theory, the maximum flow problem is to find a feasible flow through a single source, single sink flow network …   Wikipedia

  • König's theorem (graph theory) — In the mathematical area of graph theory, König s theorem describes an equivalence between the maximum matching problem and the minimum vertex cover problem in bipartite graphs. Setting A graph is bipartite if its vertices can be partitioned into …   Wikipedia

  • Marriage theorem — In mathematics, the marriage theorem (1935), usually credited to mathematician Philip Hall, is a combinatorial result that gives the condition allowing the selection of a distinct element from each of a collection of subsets.Formally, let S = { S …   Wikipedia

  • Minimum cut — In graph theory, a minimum cut of a graph is a cut whose cutset has the smallest number of elements (unweighted case) or smallest sum of weights possible. Several algorithms exist to find minimum cuts. For a graph G = (V, E), the problem can be… …   Wikipedia

  • Hall's marriage theorem — In mathematics, Hall s marriage theorem is a combinatorial result that gives the condition allowing the selection of a distinct element from each of a collection of finite sets. It was proved by Philip Hall (1935). Contents 1 Definitions and …   Wikipedia

  • List of mathematics articles (M) — NOTOC M M estimator M group M matrix M separation M set M. C. Escher s legacy M. Riesz extension theorem M/M/1 model Maass wave form Mac Lane s planarity criterion Macaulay brackets Macbeath surface MacCormack method Macdonald polynomial Machin… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”