最小流

最小流与最大流一样,同样是网络流的一个重要分支。
我们这里讨论的是有源汇的有上下界的最小流。

首先我们要先找出一个无源汇的可行流,不会的可以点击左边的链接学习。
这个可行流满足所有的点流量平衡,而对于源点 S S S和汇点 T T T,是不用满足流量平衡的。所以考虑在原来可行流的图上进行一些建模,再找出可以减少的流量。

那么应该怎么做呢?我们可以按照一下的步骤进行:
1.按照可行流的建图方式建图,跑出该图的可行流
2.建一条 T T T S S S的边,边权值为 i n f inf inf
3.在新图中跑最大流
4.那么此时 T T T S S S边的反向边上的权值就是该图的最小流

这个怎么证明呢?还是可以感性的感觉一下:
因为在我们需要求最小流的流量网络中,所有的流量都是从 S S S流出的。而在我们跑网络流的时候,所有中间的点都应该满足流量平衡,而 T T T S S S的边是唯一的流入 S S S的边,因此这条边上的流量就是图中从 S S S点流出的所有流量的值,也就是原图的最小流。
那为什么这么建图就是最小流呢?因为我们求的可行流是原本无源汇点的满足条件的最小可行流,满足所有点都流量平衡,连 T T T S S S的边就相当于删除了可行流图中 S S S T T T的流量平衡限制,那么在这种情况下跑出的可行流也就是原图的最小流。

最小流的应用也较为广泛,我们可以看下面这道例题:
BZOJ4464[Jsoi2013]旅行时的困惑

你可能感兴趣的:(----------网络流,最小流)