图-非简单路径,最长路径

时间:2019-12-08 17:25:20

标签: java algorithm optimization graph shortest-path

我正在尝试解决在Graph中查找最长路径的问题。即使在wikipedia中也提到了我们正在尝试找到最长的简单路径

简单路径是没有顶点/边重复的路径。

非简单路径是顶点/边可以重复的路径。我可以将循环或电路视为非简单路径。而且由于电路总是有循环的。

问题:

  1. 我可以说一个有向/无向图吗?非简单路径总有循环吗?
  2. 并且由于非简单路径中存在循环,因此不可能有最长的非简单路径或图形吗? (就像我们没有算法为负边图找到最短距离一样?)

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您的理解是正确的:非简单路径将始终包含一个循环。在非简单路径上获取第一个重复节点的第一个实例,并按照路径进行操作,直到您再次访问该节点为止;那是你的周期!

是的,因此,并非总是定义图中最长的非简单路径。实际上,从来没有在包含至少一条边的任何图中定义它。

请注意,在图中找到最长的简单路径是 NP 困难的,并且没有已知的有效算法可以解决该问题。但是,有一些不错的动态编程解决方案可以减少真正的蛮力运行时间,并且可以使用诸如color-coding之类的聪明算法来有效地查找长路径。