最大流最小割定理
在最优化理论中,最大流最小割定理提供了对于一个网络流,从源点到目标点的最大的流量等于最小割的每一条边的和。即对于一个如果移除其中任何一边就会断开源点和目标点的边的集合的边的容量的总和。
最大流最小割定理是线性规划中的对偶问题的一种特殊情况,并且可以用来推导门格尔定理和König–Egerváry定理。[1]
定义
令G = (V, E)为一个网络(有向图),并且有一個起源点 s 和一個超匯点 t,代表 s 是所有流的源頭,t 是所有流的終點。
最大流
定义: 一条边的容量是一个映射c : E → R+,记做 cuv 或者 c(u, v),代表着能通过这条边的最大的流量。
定义: 一个流是一个映射 f : E → R+,记做 fuv 或者 f (u, v)。每一条流有以下两个限定条件:
- 流量限制:
- 流量守恒:
定义: 流的流量的定义是
为的源点,代表着从源点流向目标点的流量。
最大流问题:计算的最大值,即从到的最大流量。
最小割
定义:一个 s-t 割 C = (S, T) 是一种 V 的劃分使得 s ∈ S, t ∈ T。C 的割集是集合
因此如果 C 的割集是空集合,則 | f | = 0.
定义: 一个s-t割的容量是
其中 如果 并且 , 0 反之。
- 最小 s-t 割问题: 计算 c(S, T) 的最小值。即找到 S 和 T 使 s-t 割的容量达到它的最小值。
线性规划公式
最大流最小割问题可以被看做为一对线性规划對偶问题。[2]
最大流問題 |
最小割問題 |
---|---|
變數: |
變數: |
求 的最大值 |
求 的最小值 |
滿足 |
滿足 |
最大流的线性规划公式是容易理解的,对于最小割的线性规划公式的理解如下:
最小化目标是使在割中的边最小。
下列限制保证了这些变量可以确保一个合法的割。
- 限制 (即 ) 确保了对两个非源点或汇点 u,v, 如果u 在 S中 且 v 在 T中, 那么边 (u,v)一定会被记在割中 ()。
- 限制 (即 ) 确保了如果 v 在 T 中, 那么边 (s,v) 一定会被记在割中。
- 限制 (即 ) 确保了 u 在 S 中, 那么边 (u,t) 一定会被记在割中。
需要注意的是,这是一个最小化问题,我们不需要确保一条边不在割里,我们只要保证每条应当在割里的边被计算了。
注意到在给定的 s-t 割 中,如果 那么 并且 0 反之。 所以 应该等于 1 并且 应该等于0。由线性规划中的强對偶定理推得最大流最小割問題中的等式,也就是說如果原问题有一个最优解 x*,則对应问题也有一个最优解 y* ,並且两个解相等。
举例
![](../I/Max-flow_min-cut_example.svg.png.webp)
上圖是一個網絡,上有流量為 7 的流。令 S 集合和 T 集合分別包含所有白色和灰色的點, 從而形成了一個割集包含圖中虛線的 s-t 割,並且其容量為 7,與流量相同。故由大流最小割定理知,前述的流與 s-t 割皆達到流量及容量的極值。
应用
廣義最大流最小割定理
額外規定映射 為點的容量,記做 c(v),使得一個流 f 不只要滿足邊的流量限制與流量守恆,還要滿足點的流量限制,即
換句話說,流過 v 點的總流量不能超過 v 的容量 c(v)。一個 s-t 割 的定義為一個包含一些點和邊的集合,滿足與任一條由 s 到 t 的路徑皆不互斥。並且 s-t 割的容量 定義成所有點和邊的容量總和。
在此定義之下,廣義最大流最小割定理的敘仍為流量的最大值等於所有 s-t 割的容量最小值。
門格爾定理
不共邊路徑問題為給定無向圖 及兩頂點 s、t,求從 s 到 t 彼此沒有共同邊的路徑數量的最大值。
門格爾定理的敘述為從 s 到 t 彼此沒有共同邊的路徑數量的最大值等於在所有 G 的 s-t 割(以原本的定義)中,頂點分別在不同集合的邊數的最小值。
計畫選擇問題
![](../I/Max-flow_min-cut_project-selection.svg.png.webp)
計畫選擇問題敘述如下:當下有 n 個計畫 可以被實施、m 種設備 可以被購買,要執行計畫必須擁有該計畫要求的設備,執行計畫 可獲得 的收益,但購買設備 要支付 的費用。如何選擇執行計畫並購買所需設備以獲得淨利的最大值?
設 P 為不被執行的計畫的集合,Q 為所購買的設備,則問題變成求最大值
注意到 與 P、Q 的選擇無關,故只需求後兩項和的最小值,即
現在考慮一個網絡,起源点 s 連接到 n 個點 ,邊的容量分別為 ,超匯点 t 連接到 m 個點 ,邊的容量分別為 ,若執行任務 需購買設備 ,則在 、 之間連上一條容量為無限大的邊,若不需購買設備,則不連上邊。則 對應到一個 s-t 割的容量,其中的兩個集合是要執行的計畫與要購買的設備和它的餘集,也就是
在此,,。於是,原問題轉成求該圖的最大流問題,並且可以藉由各種算法求得其極值。
以下給出一個計畫選擇問題的例子,右圖是該問題對應到的網絡。
計畫收入 r(pi) |
設備價格 c(qj) |
備註 | |
---|---|---|---|
1 | 100 | 200 |
執行計畫 p1 須購買設備 q1、q2。 |
2 | 200 | 100 |
執行計畫 p2 須購買設備 q2。 |
3 | 150 | 50 |
執行計畫 p3 須購買設備 q3。 |
該網絡的最小 s-t 割是選擇計畫 p2、p3 與設備 q2、q3,容量為 250。三個計劃的總收益是 450,因此最大淨利為 450 − 250 = 200。
以上解法可以理解為將計畫所給予的收益流過所需設備,如果無法流滿設備至 t 的邊,代表執行計畫不合成本,最小割將選擇穿過 s 到計畫的邊而非穿過設備到 t 的邊。
影像分割問題
![](../I/Image_segmentation.jpg.webp)
設原圖有 n 像素,想要把該圖分割為前景和背景,並且將 i 像素歸類為前景有效益 fi,歸類為背景有效益 bi,但是若 i、j 像素相鄰且被歸類為不同塊,則會減少 pij 的效益。求將該圖分割為前後景的最有效益方法。
令 P 為前景的集合,Q 為背景的集合,於是問題轉化成求最大值
因為 fi、 bi 的總合是與 P、Q的選取無關,因此等價於求以下最小值
以上的最小值問題可以被描述為一個網絡的最小割問題,其中該網絡如右圖,以橘點為起源點;紫點為超匯點。各個像素被描述為網絡的頂點,起源點至第 i 個像素連上一條容量為 fi 的有向邊;第 i 個像素至超匯點連上一條容量為 bi 的有向邊。相鄰的像素 i、j 之間連上來回兩條容量為 pij 的有像邊。則一個 s-t 割代表一種將部分像素歸類為前景 P、其餘歸類為背景 Q 的安排。
历史
最大流最小割问题最早在1956年被P. Elias, A. Feinstein,和 C.E. Shannon 证明[3], 并且L.R. Ford, Jr. 和 D.R. Fulkerson 也在同年证明了该定理[3]。
证明
同之前的設定,G = (V, E) 是一個網絡(有向圖) ,s 點和 t 點分別為 G 的起源點和超匯點。
將所有流考慮成一個歐式空間的有界閉子集,滿足流量限制與流量守恆,而流量是一個連續函數,因此有極大值 |f| 。
設 f 達到最大流,令 (Gf ) 是 f 的殘留網絡,定義
- A:在 (Gf ) 中可以從 s 出發到達的點
- Ac:A 以外的點,即 V − A
換句話說,v∈A 若且唯若 s 可以流出更多流量到 v。
我們宣稱 ,其中該 s-t 割的容量定義為
- .
由於 的大小等於所有流出集合 A 的流量總和減所有流入集合 A 的流量總和,故 ,並且等號成立若且唯若
- 所有從 A 流向 Ac 的邊流量均已達飽和。
- 所有從 Ac 流向 A 的邊流量均為 0。
我們用反證法分別證明以上兩點:
- 假設存在從 A 流向 Ac 的邊 並未達到飽和,即 。因此,可以從 x 流更多的流量到 y,(x,y) 是 Gf 的一條邊。由 x∈A 知 Gf 圖中有一條中的路徑從 s 到 x,其中只經過 A 中的點, 所以 y∈A,產生矛盾。是故所有從 A 流向 Ac 的邊流量均已達飽和。
- 假設存在從 Ac 流向 A 的邊 其流量不為 0,即 。因此,可以從 y 流更少的流量到 x,(x,y) 是 Gf 的一條邊。由 x∈A 知 Gf 圖中有一條中的路徑從 s 到 x,其中只經過 A 中的點, 所以 y∈A,產生矛盾。是故所有從 Ac 流向 A 的邊流量均為 0。
於是,聲稱得證。
由於流量恆不超過容量,|f| 是容量的下界,所以 是容量的最小值,由聲稱知,最大流最小割定理得證。
参见
- 线性规划
- 最大流
- 最小割
- 网络流
- Edmonds–Karp 算法
- Ford–Fulkerson 算法
- 近似最大流最小割定理
参考文献
- Eugene Lawler. . . Dover. 2001: 117–120. ISBN 0-486-41453-1.
- Christos H. Papadimitriou, Kenneth Steiglitz. . . Dover. 1998: 120–128. ISBN 0-486-40258-4.
- Vijay V. Vazirani. . . Springer. 2004: 93–100. ISBN 3-540-65367-8.