最小费用最大流MCMF算法

摘要

在复杂网络研究中,单源单点的最小费用最大流算法(以下简称MCMF)的应用十分广泛,也引申出类似预流推进、ZKW、SPFA等相关方法。

在华为2017CodeCraft中,MCMF可以说是各家实力竞逐的一个重点。大佬们跑一次800个点的流只要几毫秒,而本渣渣要十几毫秒,可见MCMF的重要性。

在网上找了很多的算法介绍,下面这篇算是讲的最简单易懂的了,感谢原作者的分享和劳动。

http://dec3.jlu.edu.cn/webcourse/t000048/yun/ch7_05.htm

最小费用最大流MCMF算法_第1张图片

最小费用最大流MCMF算法_第2张图片

最小费用最大流MCMF算法_第3张图片

最小费用最大流MCMF算法_第4张图片

最小费用最大流MCMF算法_第5张图片

最小费用最大流MCMF算法_第6张图片


自己的理解

  • 增广路的查找方式可以通过DFS/ZKW或者是BFS/SPFA来进行,效率上大家可以试试看哪个更好就用哪个吧。

  • 预流推进之类的算法复杂度远比找增广路算法要高,详情可以问问度娘,在Github也有不错的代码可以参考。

你可能感兴趣的:(C++)