Ford-Fulkerson是否有任何变化可以为边缘增加额外的“重量”尺寸?
由此,我的意思是一些边缘比其他边缘更理想,虽然所有可能性都在那里,但它会优先考虑理想边缘而不是理想边缘。
答案 0 :(得分:3)
我知道增加权重有两种常见的概括。
假设您对每条边都有一个权重,并希望计算满足约束并且成本最低的流量。 (成本=重量总和*沿相关边缘流动的单位)
此问题称为minimum cost flow。
可以在networkx中找到一个名为min-cost-flow的实现。
对于原始对偶方法,这是一个很好的topcoder tutorial。
我最喜欢的算法实际上是由Fulkerson自己在1961年发明的,被称为out of kilter algorithm。
假设你肯定想要最大流量,但是想选择权重最小的流量。
这与第一种解释的不同之处在于,最小成本流量可能无法提供最大可能的流量。例如,假设我们有一个单一的边缘开始 - >结束,其约束条件是流量在0到1范围内,权重为1。
最小成本流量为0流量,而最大流量最小成本流量为1。
可以在名为max_flow_min_cost的networkx中找到此实现。