其他分享
首页 > 其他分享> > max-flow min-cut theorem

max-flow min-cut theorem

作者:互联网

Max-flow min-cut theorem

目录

Since I can't find a clear article about the Max-flow/Min-cut Theorem in the cn.network for me.

So, I decided to write a blog about this topic.

The definitions introduce

The theorem relates two different quantities maximum flow through a network and the minimum capacity of a cut in the network, that is, the minimum capacity is achieved by the flow.

To state the theorem, each of the quantities must first be defined.

Now, we first define the graph. Let \(N = (V, E)\) be a directed graph, where \(V\) denotes the set of vertices and \(E\) is the set of edges. Let \(s \in V\) and \(t \in V\) be the source and sink node of \(N\), respectively.

The capacity of an edge is a mapping \(c: E \rightarrow \mathrm{R}^{+}\) denoted by \(c_{uv}\) or \(c(u, v)\) where \(u, v \in V\). It represents the maximum amount of flow that can pass through an edge.

What are flows?

A flow is a mapping \(f: E \rightarrow \mathrm{R}^{+}\) denoted by \(f_{uv}\) or \(f(u, v)\), subject to the following two constraints:

The capacity constraint says that the volume flowing through each edge per unit time is less than or equal to the maximum capacity of the edge.

The conservation constraint says that the amount that flows into each vertex is equal to the amount flowing out of each vertex, apart from the source and sink vertices.

The value of flow is defined as:

\[|f| = \sum _{v:(s,v)\in E} f_{sv} = \sum _{v:(v,t) \in E} f_{vt} \]

where \(s\) is the source vertex and \(t\) is the sink vertex.

The maximum flow problem asks for the largest flow on a given network.

What are cuts?

There is another different aspect of the max-flow min-cur theorem: the cuts.

An s-t cut \(C=(S, T)\) is a partition of \(V\) such that \(s \in S, t \in T\). That is, s-t cut is a division of the \(V\) into two parts, with the source in one part and the sink in another. The cut-set \(X_{C}\) of a cut \(C\) is the set of edges that connect the different parts:

\[X_{C} = \{(u, v) \in E: u \in S, v \in T\} = (S\times T) \cap E \]

Thus, if the cut-set \(X_{C}\) is 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:

\[c(S, T) = \sum _{(u, v) \in X_{C}} c_{uv} \]

There are typically many cuts in a network, but cuts with the smallest weights are often more difficult to find.

The minimum cut problem asks for the s-t cut with minimal \(c(S, T)\).

What's the main theorem?

The main theorem links maximum flow through a network with the minimum cut of the network.

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

Proof the theorem.

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

Consider the max-flow \(f\) calculated by Ford-Fulkerson. In the residual graph \(G_f\) obtained for \(G\) (after the final flow assignment), define two subsets of vertices as follows:

Claim. value(\(f\)) = \(c(A, A^{C})\)(max-flow is equal to the min-cut), where the capacity of an s-t cut is defined by:

\[c(S, T) = \sum _{(u, v) \in S \times T} c_{uv} \]

First of all, we know, value(\(f\)) = \(f_{out}(A) - f_{in}(A)\) for any subset of \(V\), A. Let \(ES = (A\times A^{C} \cap E) \cup (A^{C}\times A \cap E)\). Therefore, if value(\(f\)) = \(c(A, A^{C})\), we must hold:

To prove the above claim we consider the following two cases:

This \(\mathrm{value}(f) \le c(S, T)\) inequality holds for any cut of the graph \(G\). So, the above-described cut is also the min-cut which obtains the max-flow.

How to get the min-cut?

By the above proof, the minimum cut is therefore very simple to obtain.

The set of all points that can be traversed from the source point \(s\) is \(S\) and the rest of the points not included in the set are \(T\), which form the minimum cut.


本来是打算自己提炼一篇的,英文水平太次只能基本复刻一个出来。

但是关于最小流的认知已经很清晰了,国内关于最小流的讲解都不是很清晰。

关键在于:残余网络上从\(s\)出发所有可达的点为一个集合\(S\),其他的为另外的集合\(T\)。

那么对于第一种边集:\(S\times T \cap E\),设这些边上的流量\(f_1\),\(f_1\)为该割代表的值。

那么对于第二种边集:$T\times S\cap E \(,设这些边上的流量\)f_2\(,\)f_1 - f_2$为图的流量。

搞清楚这几个概念就懂了。

标签:set,min,max,flow,edge,cut,theorem
来源: https://www.cnblogs.com/Last--Whisper/p/15857672.html