最大流最小割定理,指网络流的最大流等于其最小割。
最大流指符合三个性质的前提下,从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的边(满流),而这些边又是割边,所以流量和等于割的容量和。
比如对于:
其一个残留网络为:
其中两条虚线边为满流的边,也是割边。
参考:https://www.cnblogs.com/dyzll/p/5887266.html