我修改了最大流量问题的任务。我应该找到满足条件的最小流量(其中f是流量,c是容量):
f(u,v) >= c(u,v)
因此,每个边缘的流量至少是边缘容量。 (我正在写容量,但它是重命名的,因为它不再是容量,它必须由流量来满足)
还有一件事。我有MaxFlow功能,它给了我经典的最大流量,我可以调用一次。
任何人都可以帮我伪算法吗?我正在考虑修改Ford-Fulkers算法并根据我的需要进行更改,但我不确定哪个适合MaxFlow?当我知道图中的最大流量时,它如何帮助我算法?感谢
答案 0 :(得分:1)
从最大流量到下限到最大流量有一个简单的减少:
http://www.cs.uiuc.edu/~jeffe/teaching/algorithms/2009/notes/18-maxflowext.pdf
这个想法是你让所有边缘饱和。然后你留下了不平衡的节点。您可以使用max-flow算法来解决不平衡问题。
构造如下:对于每个顶点v,定义M(v):=入射边缘的下界之和 - 出射边缘的下界之和。删除所有下限并将每个原始边缘的容量设置为上限 - 下限(在您的情况下,无穷大)。
引入新的超级源S和新的超级接收器T.为每个顶点v添加具有大容量M(v)的边(S,v),其中M(v)> = 0.添加边(v) ,T)对于每个顶点v具有上容量-M(v),其中M(v)<1。 0
解决最终的S-T最大流量问题。
最后,删除S和T并将原始下限添加到每个原始边缘的流中。