【问题标题】:Find longest path through sparsely connected graph通过稀疏连接图找到最长路径
【发布时间】:2022-11-11 00:44:03
【问题描述】:

我正在寻找一种算法来找到通过边加权图的最长路径。该图是无环且连通的,但非定向并且只有稀疏连接,没有定义的起点,可以有许多叶节点。

如本例所示的简化表示,其中边缘权重与其长度成正比

将有解决方案 B-C-D-G-H-I。

我看过标准的图遍历算法,例如BFS、DFS、MST等;但似乎没有一个适合我的问题。

在我去实现一个蛮力算法之前,我想我会在这里检查任何建议的解决方案。

【问题讨论】:

  • “会有 B-C-D-G-H-I 的解决方案。”这不是解决方案。 A-C-D-G-H-I 和其他路径一样长
  • @ravenspoint OP 使用图像中的边缘长度作为权重,因此 BC 比 AC 长。
  • @yowiee 你能确认一下,图是非循环的吗?连接的?您是否使用“路径”的标准图论定义(没有重复的边或顶点)?
  • @Dave我已经更新了问题描述,明确指出该图是非循环的并且是连接的但不是定向的。

标签: graph-theory graph-traversal


【解决方案1】:

请注意,所有最长的路径都必须在叶节点上开始和结束(一个只有一个链接)

因此,您可以仅通过查看叶节点对来优化您的搜索。

【讨论】:

  • OP 没有说这是一棵树,所以我认为这种说法是不正确的。例如,如果一个循环的边是最长路径的一部分,并且该循环只有一个顶点连接到图的其余部分,那么路径的至少一端不会是叶子。同样,路径的两端都可能处于这样的循环中,因此都不必是叶子。
  • @Dave您总是可以通过再循环一次来获得更长的路径。因此,为了使问题有意义,图必须是无环的。
  • 如果 OP 谨慎使用语言,则不会。一条步行可以有重复的边和顶点,一条小路可以有重复的顶点但没有边,而一条路径两者都没有。
猜你喜欢
  • 1970-01-01
  • 2010-11-14
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
相关资源
最近更新 更多