【问题标题】:Is there a way to find maximum bottleneck path in a DAG in O(|E|) time?有没有办法在 O(|E|) 时间内找到 DAG 中的最大瓶颈路径?
【发布时间】:2021-09-25 14:07:42
【问题描述】:

我正在做一个项目,遇到一个问题,即在有向无环图中找到从 st 的最大瓶颈路径。问题如下:

将图中从 st 的路径的瓶颈定义为路径中边容量中的最小容量。是否可以在 O(|E|) 时间内找到从 st 的路径,其中 |E| 是图中的边数?我将如何制作这样的算法?

【问题讨论】:

标签: directed-acyclic-graphs bottleneck


【解决方案1】:

您可以从节点s 开始对t 进行广度优先搜索。由于您的图表是非循环的,因此此搜索保证会结束,返回从 st 的所有路径,或者如果没有这样的路径,则不返回任何路径。

  • 在搜索时跟踪所有路径及其瓶颈。
  • 当您到达已通过其他路径访问过的中间节点 x 时,请检查来自 s -> x 的哪些已知路径的瓶颈最高,并只保留那个。
  • 这同样适用于t,即如果您到达t,请检查您是否已经找到任何其他通往t 的路径并只保留最大瓶颈的路径。
  • 一旦搜索结束,将只保留最大瓶颈的路径(如果有的话)

由于这种方法最多访问每条边一次,它在 O(|E|)

【讨论】:

    猜你喜欢
    • 2013-06-26
    • 2019-05-03
    • 2022-01-09
    • 2015-05-23
    • 1970-01-01
    • 2018-04-21
    • 2015-02-10
    • 2023-03-21
    • 2013-09-12
    相关资源
    最近更新 更多