为何福特·富克森无处不在?

问题描述

在研究最大流量解决方案时,福特-富克森似乎无处不在,因为它是大多数人用来解决此问题的算法。但是,有many more个算法可以significantly better time complexity来解决问题。那么,为什么福特-富尔克森仍然被广泛使用?

解决方法

Ford–Fulkerson是最简单的算法,体现了以下关键思想:只有当且仅当没有增长路径时,流量才是最大。这对于教学很有用。

由于F–F没有指定如何找到扩展路径,因此它更多的是框架而不是算法。 Edmonds–Karp是F–F的实例,它限制了必须找到的增广路径的数量。 Dinic的算法通过保留允许其更有效地找到增强路径的数据结构,对Edmonds–Karp进行了改进。 (由于人Borradaile and Klein而导致的平面网络中s-t流动的O(n log n)时间算法有点偏离,这也是FF实例化。)

push-relabel算法使Dinic算法背后的想法更进一步,但它们通过使用预流而不是流来突破了F–F模子(预流使进入顶点的流比离开叶子的流多,反之亦然) )。从历史上看,他们遵循Dinic的算法,对Dinic的反应更具直觉。

该列表中的其他算法很复杂,不适合本科教学,这解释了缺少教程材料的原因。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...