【发布时间】:2013-06-18 02:26:44
【问题描述】:
是否存在从最小成本流问题到最大流问题的简化?或相反亦然?我想使用最小成本流算法来解决最大流问题。
【问题讨论】:
-
根据维基百科,用于解决最小成本流问题的连续最短路径和容量缩放方法是解决最大流问题的 Ford-Fulkerson 算法的推广。此外,成本缩放算法可以看作是 push-relabel 算法的推广。
是否存在从最小成本流问题到最大流问题的简化?或相反亦然?我想使用最小成本流算法来解决最大流问题。
【问题讨论】:
对不起,我想我第一次误解了这个问题。是的,Minimum Cost 是最大流量的特例。最小成本不是最大流量,而是假设在通过每条边之后,流量是有成本的。因此,如果您将每条边的成本设置为零,则最小成本会降低到最大流量。
编辑:
因为最低成本问题需要一个预定义的所需流程才能开始发送。您将需要多次运行上述算法(以边缘为代价c(u, v) = 0)来搜索最大值。对于给定的值范围,binary search 可用于更有效地定位最大值
你的意思是Min Cut Max Flow? (编辑:我不认为你是这个意思,但这是证明最大流量的基础,如果你没有的话值得一看) 如果您放下图表并自己进行最小切割,我会更容易理解。
【讨论】:
向每条边添加 -1 成本(每单位流量),然后使用您的最小成本算法。这将使流量最大化。
【讨论】:
接受的答案可能是实用的。证明 Max-Flow 是 Min-Cost-Flow 的一个特例,还有另一种可能性。我的解决方案采用O(m^3 n^2 log n) 中的最小平均循环取消算法的一次迭代(因为 c 不保守):
1. set c(e) = 0 for all edges in G
2. add edge (t,s) with inf capacity and c((t,s)) = -1
3. start MIN-MEAN-CYCLE-CANCELLING on modified graph G'
正确性:算法正在寻找负权重的残差圆。只要存在从 s 到 t 的增广路径,就存在负加权残差圆。
【讨论】: