【问题标题】:Shortest path in an edge-weighted DAG with multiple source vertices?具有多个源顶点的边加权 DAG 中的最短路径?
【发布时间】:2019-08-21 16:42:35
【问题描述】:

给定一个算法 A,它计算从 DAG G 中的源顶点 s 到具有非负边权重的最长路径。运行算法 A 以在 DAG G 中找到最长路径所需的最少次数是多少?

一种方法是找出多个源顶点,这可以在 O(|Edges|) 中实现。然后以这些顶点中的每一个作为源顶点运行算法 A。这将需要运行算法 A NumberOfSourceVertices 次。

我们可以做得更好吗?

【问题讨论】:

  • 我们可以在 O(|Edges|) 中找到多个源顶点。让我们假设图表是相同的。

标签: algorithm graph-algorithm


【解决方案1】:

是的,我们可以做得更好。将新节点 z 添加到 G。对于每个已识别的源顶点s,将边(z, s, 0)(零边权重)添加到G。

在修改后的G上运行A一次

【讨论】:

  • 谢谢!这就是我所说的。
  • 按照措辞,您可以做得更好。编写您自己的算法B 以获得最长路径——比如说,Dijkstra 的实现,完全优化,您可以通过 30 分钟的搜索找到。构建增强图。在上面运行B。如果不运行A,您根本找不到最长的路径。 :-)
猜你喜欢
  • 2018-07-16
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多