ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

max-flow min-cut theorem

2022-01-30 22:00:11  阅读:191  来源: 互联网

标签:set min max flow edge cut theorem


Max-flow min-cut theorem

目录

  • Describe the definitions of Max-flow and Min-cut.
  • Prove the Max-flow min-cur 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:

  • Capacity Constraint: For every edge \((u, v) \in E, f_{uv} \le c_{uv}\).
  • Conservation of Flows: For each vertex \(v\) apart from \(s\) and \(t\), the following equality holds: \(\sum_{\{u:(u,v) \in E\}}f_{uv} = \sum_{\{w:(v,w)\in E \}} f_{vw}\)

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:

  • \(A\): the set of vertices reachable from \(s\) in \(G_f\).
  • \(A^{C}\): the set of remaining vertices i.e. \(V - A\)

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:

  • All outgoing edges from set \((A\times A^{C}) \cap E\) must be fully saturated.
  • All incoming edges from set \((A^{C} \times A) \cap E\) must have zero flow.

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

  • In \(G\), there exists an outgoing edge \((x, y), x\in A, y\in A^{C}\) such that it's not saturated, i.e. \(f(x, y) < c_{xy}\). This implies that there exists a forward edge from \(x\) to \(y\) in \(G_{f}\) (The residual Graph, therefore there exists a path from \(s\) to \(y\) in \(G_{f}\), which is a contradiction. Hence, any outgoing edge\((x,y)\) is fully saturated.
  • In \(G\), there exists an incoming edge \((y,x), x\in A, y\in A^{C}\) such that it carries some non-zero flow, i.e. \(f(y, x)>0\). This implies, that there exists a backward edge in the residual graph from \(x\) to \(y\). rev edge). Therefore there also exists a path from \(s\) to \(y\) through the rev edge in \(G_{f}\), which is again a contradiction. Hence, any incoming edge \((y,x )\) must have zero flow.

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有