上下界网络流建模方法 无源无汇可行流 最大/最小流

学习了 s e v e r a l 天。实义数量必须markdown

上下界无源无汇可行流(循环流)

因为有下界,考虑不要下界。每个弧的“可调控范围”的大小是 u p i d o w n i ,那么在我们的实际的图中,所有弧的下界都是 0 ,每条原图对应的弧的上界是 u p i d o w n i 。但我们要满足流量平衡,于是建立附加源SS和附加汇TT,对于每个节点,SS向它连一条容量为 d o w n x > i 的弧(x是所有连入i的点),它向TT连一条容量为 d o w n i > y 的弧(y是i所有联出的点),然后对SS->TT跑最大流。
当答案等于所有附加的弧(与SS、TT相连的弧)的容量之和时,存在可行流。

上下界最大流

首先,标准图转无源无汇图。链接T->S容量 inf
然后跑上下界无源无汇可行流(可见我另一篇博文上下界网络流建模方法 无源无汇可行流 最大/最小流)。不可行就无解。
把残量留着!
然后,把T->S边拆了,接着跑S->T最大流。附加的弧已经被自动忽略了。
得到答案。
可以理解为,先跑了可行流(但是为了可行,没有流最大),再跑最大流(在可行的基础上)。

上下界最小流

先做一个简化版:没有上下界最小流?
……
首先,强行把S和T当做平凡的点,跑上下界无源无汇可行流。注意,因为某某,SS、TT与S、T没有连边
把残量留着!
然后,链接T->S容量为 inf
再,跑上下界无源无汇可行流
答案等于T->S此时此刻的残量。
证明见各大博客。

猜你喜欢

转载自blog.csdn.net/myjs999/article/details/79333573
今日推荐