多源多汇问题
问题描述:源有多个,汇也有多个,流可以从任意一个源中流出,最终可以流向任意一个汇。总流量等于所有源流出的总流量,也等于所有汇流入的总流量。
建立一个超级源点s’和超级汇点t’。从s‘向每一个源点引一条有向弧,容量为无穷大;从每一个汇点向t’引一条有向弧,容量为无穷大。
结点容量
问题描述:每个结点都有一个允许通过的最大流量,称为结点容量。
把每个结点u分裂成两个结点u1和u2。从u1向u2引一条有向弧,容量为结点u的结点容量。对于原先指向u的有向边,改成指向u1;对于原先从u指出的有向边,改成从u2指出;容量都不变。
无源无汇有容量下界网络的可行流
问题描述:每条弧除了有容量上界c之外,还有一个容量下界b。
原始的最大流问题的容量下界全等于0。
建立附加源s和汇点t,首先添加弧(t,s,INF),然后对弧进行改造,改造成下界为0的弧。对于上界为c、下界为b的有向弧(u,v,c),拆成三条有向弧(u,v,c-b)、(u,t,b)、(s,v,b),然后合并。
求改造后的网络的s-t最大流即可。当且仅当所有附加弧满载时原网络有可行流。