网络流入门番外篇

这一篇就是没事儿瞎扯了,包括简单的定理简单的证明,还有……反正想到什么些什么啦。

最小割最大流定理:

割的概念:

对于一张流量图G,断开一些边后,源点s和汇点t就不在连通,我们将这样的k条边的权值(即最大容量)和求和,求和后的值称为割。显然,对于一张流量图G,割有很多个且不尽相同。我们要求的就是所有割中权值最小的那一个(可能不唯一),即花最小的代价使s和t不在同一集合中。

最小割定理:

在一张流量图G中,最大流=最小割。

证明:

我们知道,跑完最大流之后,源点s和汇点t不再连通,而此时那些阻塞边(满流边 )必然对应原图中的一个割,现在假设我们将任意一条阻塞边与其所在的s->u->v->t的路径上的其它边替换,因为阻塞边必然为此路径上的最小边(根据增广路性质),因此,替换后的割>=原来的割,因此,最大流即为最小割。

若还不理解,那么就换一种方法证明:

我们设flow为s到t的净流量(即s的出流量或t的入流量),显然flow<=maxflow;而maxflow<=任意割,这是为什么呢?请回到上文的证明(好吧,其实和之前的证明没什么不同,但可以结合着来看是不是?)。

那么我们得到如下关系:

flow<=maxflow<=任意割

所以当割最小时,flow必须最大即最大流。

 

最大流=二分图最大匹配数=最小点覆盖:

我们知道,最大匹配数可以用最大流跑出来,其实,最大匹配是等于最小点覆盖数的。

下面给出大佬博客证明(请大家耐着性子读完,当你学到网络流,应该有较为扎实的代码基础和思维基础了):

http://www.matrix67.com/blog/?s=%E6%9C%80%E5%B0%8F%E8%A6%86%E7%9B%96%E7%82%B9

引用自Matrix67大佬博客。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值