无源无汇,有源有汇上下界网络流
有上下界网络流:
一个管道,有流量限制,有一个上界以及一个下界,必须保证满足,至少为下界,之多为上界。
在普通的网络流中,下界是0,上界是INF,所以普通网络也是一种有上下界的网络流,所以我们
应当转换一下,使得该问题变得简单。
无源无汇有上下界网络流
很多人会问,无源无汇网络流应该怎么流,它是一个循环流,

类似于这个,那么如何寻找可行解呢?
搬一下大佬题解:
每条边必须有一个流量下界,这非常麻烦,考虑将流量下界单独出去,成为一个新图,使得边的流量下界为0,流量上界为 Ci-Bi,变成了一个普通的网络流问题(每条边只有流量上界,即容量)。称每条边的流量下界为必须流,每条边的流量减去流量下界为自由流,由于边的流量范围的限制,有些情况下网络流图可能无法流通。比如下图中国 1-->2 的边上的流量上界为3,而2-->3的边上的流量下界为4,那么网络就无法流动。网络中存在满足边的上下界要求的网络流,称为可行流。
求解可行流
设每个点所有流入量的流量下界之和IBi和所有流出量下界之和OBi,然后虚拟一个源点SS和一个汇点TT,使得原图中每个点都有OBi的流量流入SS,同时有IBi的流量从TT流入,这样,就将每个点的流量下界独立出来。这样,每条边的必须流就被SS和TT管理。
以SS,TT分别为新图的源点和汇点,寻找网络最大流,如果最大流使得从SS出发的每条路径都被填满(那么到达TT的每条路径也必然被填满),那么说明对于原图中的每个点,都满足最低流入量的流流入和最低流出量的流流出,从而存在满足原图流量下界的可行流。
如下图:
原图中边上的数字表示边的流量范围。
加SS和TT之后的新图,从每个点的引出容量为最低流出量之和OBi的路径指向汇点TT,并从SS引入容量为最低流入量之和IBi的路径指向该点。 同时,每条边的最低流量变为0,容量变为Ci-Bi。
然后,从SS到TT寻找网络最大流。图中所示,SS-->1-->2-->TT的路径上流量为3,SS-->1-->TT路径上流量为1,SS-->2-->3-->TT路径上的流量为1,SS-->3-->TT路径上流量为3。则最大流为8,且能够使得SS到原图中每个点的边上的流量均满流。因此,原图存在可行流。
这个只是用来解决可行解问题的。
有源汇上下界网络流
对于流量有上下界的有源汇网络,原图中存在源点S和汇点T,为了求可行流,先将其转换为无源汇网络。
从T-->S引入一条边,其流量上下界为[0, INF],此时原图变为了无源汇网络,然后按照无源汇网络求解可行流的方法来求解。
其实思想很简单。
这里求可行解,那么是不是只有S,T是不满足流量平衡的。
而无源汇网络流是所有点都满足流量平衡,然后发现,S流出=T流入。
所以说,连一条T--->S的流,无限流量,即可,然后转化为无源汇上下界网络流来解。

浙公网安备 33010602011771号