具有“加权”边缘的Ford-Fulkerson算法

时间:2013-05-26 18:10:56

标签: php algorithm logic

Ford-Fulkerson是否有任何变化可以为边缘增加额外的“重量”尺寸?

由此,我的意思是一些边缘比其他边缘更理想,虽然所有可能性都在那里,但它会优先考虑理想边缘而不是理想边缘。

1 个答案:

答案 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中找到此实现。