【发布时间】:2013-09-03 17:43:50
【问题描述】:
我应该使用什么算法来找到有向图上有下限但没有流量上限的最小流量?比如这个简单的例子:
在文献中,这是一个最小成本流问题。然而,在我的情况下,成本与每个边缘所需的流量的非零下限相同,因此我将问题表述为上述问题。在文献中,问题是:找到单源/单汇有向无环图的最小成本流的最佳算法是什么,其中每条边具有无限容量,流的非零下限,以及成本等于流量的下限。
从我的研究看来,人们处理任何类型网络的任何类型的最低成本的主要方式是将问题设置为LP-type problem 并以这种方式解决。然而,我的直觉是流量没有上限,即具有无限容量的边缘使问题更容易,所以我想知道是否有一种算法专门针对这种情况,使用比单纯形法等更多的“图形”技术。人。
我的意思是,如果所有成本和下限都为 1,如上...然后我们正在寻找一个覆盖所有边缘的流,遵守流规则,并且不会通过任何路径从s 到 t。对我来说,这只是感觉它不应该需要 LP 求解器,事实上,维基百科关于最小成本流的文章指出“如果消除容量限制,问题就会简化为最短路径问题”,但我认为他们正在谈论下界全为零的情况。
还有开源 C/C++ 代码可以在任何地方实现最低成本吗?通过谷歌搜索可用的内容,我发现我可以自己将问题设置为 LP 问题并使用开源 LP 求解器进行求解,或者我可以使用 LEMON,它为最小成本流提供了几种算法。据我所知,boost 图形库不包含实现。
还有别的吗?
【问题讨论】:
-
标题上的星星不错,哈哈
-
我真的不知道那颗星星是从哪里来的……
标签: c++ graph-algorithm linear-programming network-flow