最小费用最大流算法; SPFA找最小耗费增广路; 算法简明扼要;

来源:互联网 发布:亚马孙还是亚马逊知乎 编辑:程序博客网 时间:2024/04/29 10:30

 

 

放下了一阵,现在写这个算法,感觉理解就透彻更多了.

 

最小费用最大流是在流达到最大的情况下,耗费最小的流.

 

什么意思, 就是贪心的找,每次找耗费最小的s-t 路, 给这条路增最大的流.

 

然后再找耗费最小的s-t路, 继续增流.

 

流不分贵贱(先后次序), 只要总流未超过最小割, 就肯定还能有一条路增流,最终到达最大流.

 

但是,这个过程每次增流都是增加耗费最小的流,这样操作下去,最后的最大流就是耗费最小的最大流了.

 

初始化时,(i,j)有费用k,则(j,i)有费用-k, 其他边的费用均为0即可, 无关紧要. 因为只有存在增广路的情况下才可能用到这些费用,既然没有路径, 这些费用值是不会用到的, 很安全, 甚至你可以随便给它赋值.