在流程图中搜索满足容量的最小流量

时间:2014-05-12 20:34:34

标签: algorithm networking graph flow max-flow

我修改了最大流量问题的任务。我应该找到满足条件的最小流量(其中f是流量,c是容量):

f(u,v) >= c(u,v) 

因此,每个边缘的流量至少是边缘容量。 (我正在写容量,但它是重命名的,因为它不再是容量,它必须由流量来满足)

还有一件事。我有MaxFlow功能,它给了我经典的最大流量,我可以调用一次。

任何人都可以帮我伪算法吗?我正在考虑修改Ford-Fulkers算法并根据我的需要进行更改,但我不确定哪个适合MaxFlow?当我知道图中的最大流量时,它如何帮助我算法?感谢

1 个答案:

答案 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并将原始下限添加到每个原始边缘的流中。