网络流基础-最大流最小割定理

最大流最小割定理,指网络流的最大流等于其最小割。

最大流指符合三个性质的前提下,从S到T能流过的最大流量。

最小割指符合割的定义,最小的割容量。

求最大流:

不断寻找增广路,计算能增加的最小流量,然后增加。

找到一条增光路,最多能流过2,则:

找到第二条路径:

最后还剩a-c-e一条,则可计算出最大流量为4。

但遇到以下情况,且第一条路径为a-b-c-d时,就不行了:

此时需要增加反向路径,即当减去增广路时,反向加上减去的流量,提供后悔的选择:

这样,当考虑a-c-b-d时,可以对冲掉b-c的流量。

证明:

定理一:对于任一割和任一流,流量等于正向割边流量减去反向割边流量。即f = fc+  -  fc-,其中c+代表正向割边流量。

  推论:任一割容量必定大于等于任一流量,由于:C+ > fc+ > fc+  -  fc- > f。

则如果存在某流量和某割,则此流量必定为最大流,此割必定为最小割。

当我们计算出最大流时,不妨思考下此时的残留网络:

  此时残留网络不存在增广路,即不存在一条能从S到T的路径。

  此时残留网络中,我们把S能到达的节点记为s'集,能到达T的节点记为t’集,则s'和t'构成割集。

  在残留网络中,流量指容量为0的边(满流),而这些边又是割边,所以流量和等于割的容量和。

比如对于:

其一个残留网络为:

其中两条虚线边为满流的边,也是割边。 

猜你喜欢

转载自www.cnblogs.com/willaty/p/9446563.html