从最小成本流问题减少到最大流问题?或相反亦然?我想使用最小成本流算法来解决最大流问题。
抱歉,我第一次误解这个问题。是的,Minimum Cost是最大流量的特殊情况。最小成本不是最大流量,而是假设经过每个边缘之后,流量存在成本。因此,如果将每个边的成本设置为零,则最小成本将减少为最大流量。
编辑:
因为最低成本问题需要预先定义的必需流程才能发送。您将需要多次运行上述算法(成本为边c(u, v) = 0
)以搜索最大值。对于给定的值范围,binary search可用于更有效地定位最大值
您是指Min Cut Max Flow吗? (编辑:我认为您不是这个意思,但这是证明最大流量的基础,如果您没有的话,值得一看)如果您放下图表并自己进行最小切割,我会更容易理解。
向每个边缘添加-1的成本(每单位流),然后使用最小化成本算法。这将使流量最大化。
接受的答案可能是实际的。证明最大流量是最小成本流量的特例,还有另一种可能性。我的解决方案在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的增量路径,就会有负加权残差圆。