【问题标题】:Why is ford-fulkerson so ubiquitous?为什么福特-富尔克森如此普遍?
【发布时间】:2020-12-14 15:34:21
【问题描述】:

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

【问题讨论】:

  • “广泛使用”是什么意思? (即您在哪里“查看最大流量解决方案”?)。
  • @shananton - 如果我在谷歌上搜索“最大流量”,几乎每个链接都专门讨论福特富尔克森和实施福特富尔克森以解决最大流量问题等。

标签: algorithm time-complexity max-flow ford-fulkerson


【解决方案1】:

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

由于 F–F 没有指定如何找到增广路径,它更像是一个框架而不是算法。 Edmonds-Karp 是 F-F 的一个实例,它限制了必须找到的增广路径的数量。 Dinic 的算法在 Edmonds-Karp 的基础上进行了改进,保留了一种数据结构,使其能够更有效地找到增广路径。 (另辟蹊径,由于Borradaile and Klein,平面网络中 s-t 流的 O(n log n) 时间算法也是 F-F 实例化。)

push-relabel 算法将 Dinic 算法背后的思想更进一步,但它们在使用预流而不是流时打破了 F-F 模式(预流允许更多流进入顶点而不是叶,但反之则不然)。从历史上看,他们遵循了 Dinic 的算法,并作为对 Dinic 的反应更直观。

该列表中的其他算法很复杂,不适合本科教学,这说明缺乏教程材料。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多