zoukankan      html  css  js  c++  java
  • 最小割最大流定理&残量网络的性质

    最小割最大流定理的内容:

    对于一个网络流图 $G=(V,E)$,其中有源点和汇点,那么下面三个条件是等价的:

    1. 流$f$是图$G$的最大流
    2. 残量网络$G_f$不存在增广路
    3. 对于$G$的某一个割$(S,T)$,此时流的流量等于其容量

    证明如下:

    首先证明$1 ightarrow2$:

    正确性显然,

    然后证明$2 ightarrow3$:

           假设残留网络$G_f$不存在增广路,所以在残留网络$G_f$中不存在路径从$s$到达$t$。我们定义$S$集合为:当前残留网络中$s$能够到达的点。同时定义$T=V-S$。此时$(S,T)$构成一个割$(S,T)$。且对于任意的$uin S,vin T$,边$(u,v)$必定满流。若边$(u,v)$不满流,则残量网络中必定存在边$(u,v)$,所以$s$可以到达$v$,与$v$属于$T$矛盾。因此有$$f(S,T)=Sigma f(u,v)=Sigma c(u,v)=C(s,t)$$

    最后证明$3 ightarrow1$:

           割的容量是流量的上界, 正确性显然.

    于是, 图的最大流的流量等于最小割的容量.

     

     

    残量网络的性质:

    1. $s$与$t$一定不在同一$SCC$里
    2. 对于某条满流边$(u,v)$, 若$u$与$s$在同一$SCC$,$v$与$t$在同一$SCC$, 则它必定会出现在最小割中.
    3. 对于某条满流边$(u,v)$, 若$u$与$v$不在同一$SCC$, 则它可能出现在最小割中.

    结论1非常显然, 最大流的话$s$和$t$直接不连通更不要说在同一$SCC$里了.

    结论2的话, 如果将一条满足该限制的边容量增大, 那么$s ightarrow t$重新连通, 于是就会增加最大流的流量, 也相当于增加了最小割的容量. 所以这条边必定会出现在最小割中.

    结论3的话, 我们把$SCC$缩到一个点里, 得到的新图就只有满足条件的满流边了. 缩点后的任意一个割显然就对应着原图的一个割, 所以这些满流边都可以出现在最小割中.

  • 相关阅读:
    JS移动端滑屏事件
    css3,background-clip/background-origin的使用场景,通俗讲解
    addEventListener和on的区别
    JavaScript 变量生命周期
    label标签跳出循环
    js替换指定字符串
    使用ECMAscript5中的forEach函数遍历数组
    截取js数组中某段值(slice)
    数组的一个强大函数splice,[增,删,改]
    删除数组值
  • 原文地址:https://www.cnblogs.com/JDFZ-ZZ/p/12057264.html
Copyright © 2011-2022 走看看