最大流最小割的优化证明。
我们先写出线性规划形式的最大流:
在满足以下两组条件的前提下:
∀p∈P(S,T),e∈p∑fp≤ce∀p∈P(S,T),fp≥0
最大化:
p∈P(S,T)∑fp
设这个流网络图为 G=⟨V,E⟩,而 S,T 分别为 G 的源汇点,P(S,T) 为 G 中所有从 S 到 T 的简单路径集合,ce 表示边 e 的容量,e∈p 表示路径 p 包括 e 这条边。
这个问题的对偶问题为:
在满足以下两组条件的前提下:
∀p∈P(S,T),e∈p∑xe≥1∀e∈E,xe≥0
最小化:
e∈E∑xece
xe 为变量。
我们证明这个线性规划问题的最优解就是最小割的权值,那么运用对偶原理就可以证明最大流等于最小割。下文中记 OP 为上面线性规划问题的最优解,而 MC 为图 G 最小割的权值。
-
首先有 OP≤MC
这是因为对于 G 一个最小割 c(S,S),我们让满足 u∈S,v∈S 的边 e=(u,v) 的 xe 赋值为 1,剩下赋值为 0
则此时有:e∈E∑xece=MC。
又因为对于每个 p∈P(S,T),比然后有一个边 e∈p 满足 e∈S×S,所以条件「e∈p∑xe≥1」满足,该赋值是一个可行解。故:OP≤e∈E∑xece=MC。
-
再来有 OP≥MC。
我们考虑该线性规划的一个最优解,就用 {xe} 表示,则此时有:e∈E∑xece=OP。
这是我们突然让 G 上的边带权重,边 e 带权重 xe,并设 dv(v∈V) 为这样赋权后从 S 到 v 的最短路径长度。
再来一个参数 α∈[0,1),定义 Sα 如下:
Sα={v∈V∣dv≤α}
因为有条件「e∈p∑xe≥1」,所以必有 dT≥1,则有 T∈Sα,故 Sα 与其补 Sα:=V−Sα 是原图的一个割。
我们想要证明存在这样的一个 α∈[0,1),使得:
c(Sα,Sα)≤e∈E∑xece=OP
而我们又发现这就等价于:
∫01c(Sα,Sα)dα≤e∈E∑xece=OP
又注意到如果 α 的取值在 [0,1) 上等概率分布,则这个积分表示一个期望:
E(c(Sα,Sα))=∫01c(Sα,Sα)dα
考虑每一条边 e=(u,v)∈E 对期望的贡献。e∈Sα×Sα 等价于 du≤α<dv。
所以如果 dv≤du,则 e 对期望的贡献为 0。
若 dv>du,由三角不等式又得到:du≤α<dv≤du+xe。所以:Pr[e∈Sα×Sα]≤Pr[α∈[du,du+xe)]=xe。则 e 对期望的贡献不超过 xece。
这样就可以得到:
E(c(Sα,Sα))≤e∈E∑xece
那么就得出 OP=MC,也就是说这个对偶线性规划问题得出的最优解的值就是最小割。
而原线性规划问题的最优解的值显然是最大流,故由线性规划对偶性可知:最大流等于最小割。