传送最长路径< = x(加权,无向图)

时间:2013-01-06 13:09:51

标签: algorithm graph path

我想不出任何会找到最长路径的算法,即小于或等于某个x变量。使用Dijkstra的算法,我可以很容易地获得最长的路径,但是我不确定我是否可以在我的问题中使用它。

2 个答案:

答案 0 :(得分:2)

Dijkstra的算法将为您提供最短路径,而不是最长路径。

找到最长(简单)的路径是NP-Hard。由于您的问题可以退化为最长的路径问题(将x等于所有边权重的总和,这是最长路径长度的上限),它也是NP-Hard。

你仍然可以使用树搜索,但它不太可能易于处理。

如果您正在考虑非简单路径(节点可以遍历多次),那么这是一个不同的问题。堕落的情况是背包问题,也是NP-Hard。

答案 1 :(得分:0)

您可以使用DFS算法来找到最长路径。如果您搜索,可以找到一些有用的文章,例如Depth First Search & Directed Acyclic Graphs