图-网络流-最小割最大流定理

有一个和最大流密切相关的问题:最小割。

把所有顶点分成两个集合S和T=V-S,其中源点s在集合S中,汇点t在集合T中。

如果把“起点在S中,终点在T中”的边全部删除,就无法从s到达t了,这样的集合划分(S,T)称为一个s-t割,它的容量定义为:c(S,T)=\sum c(u,v),即起点在S中,终点在T中的所有边的容量和。

还可以从另外一个角度看待割。从s运送到t的物品必然通过跨越S和T的边,所以从s到t的净流量等于|f| = f(S,T) =\sum f(u,v) <= \sum c(u,v) = c(S,T).

注意这里的割(S,T)是任取的,因此得到了一个重要结论:对于任意s-t流f和任意s-t割(S,T),有|f| <= c(S,T)

下面来看残量网络中没有增广路的情形。既然不存在增广路,在残量网络中s和t并不连通。当BFS没有找到任何s-t道路时,把已标号结点(a[u]>0的结点u)集合看成S,令T=V-S,则在残量网络中S和T分离,因此在原图中跨越S和T的所有弧均满载(这样的边才不会存在于残量网络中),且没有从T回到S的流量,因此|f| <= c(S,T)成立。

前面说过,对于任意的f和(S,T),都有|f| <= c(S,T),而此处又找到了一组让等号成立的f和(S,T)。这样,便同时证明了增广路定理和最小割最大流定理:在增广路算法结束时,f是s-t最大流,(S-T)是s-t最小割。

增广路算法结束时,令已标点结点(a[u]>0的结点)集合为S,其他结点集合为T=V-S,则(S,T)是图的s-t最小割。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值