用Dijkstra算法找到哈密顿路径?



Dijkstra算法能否找到从单个源顶点到所有其他顶点的所有最短路径,使得该路径访问无向对称图中的所有顶点一次且恰好一次?对于对称图有没有更快的算法?

您要求的是一种算法,用于找到从图中单个节点到其他节点的最短哈密顿路径(哈密顿路径是通过图中每个节点的路径)。不幸的是,甚至确定在无向图中一对节点之间是否存在哈密顿路径的问题是NP完全的,因此没有已知的多项式时间算法可以解决这个问题(除非P = NP,否则它们不存在)。由于Dijkstra的算法在多项式时间内运行,因此没有已知的修改算法可以找到图中彼此节点的哈密顿路径。

希望这对你有帮助!

是的,Dijkstra的算法将帮助你在有向图和无向图中找到最短路径。但当使用有向图时,它更有用。

Bellman-Ford算法可以比Dijsktra算法更快,但仅在少数情况下,该算法对具有负循环的图有效。

Dijkstra算法最简单的实现结果是运行时间为0 (|E|+|V|^2)。E [| |,V|表示图的边和顶点。

Dijkstra算法查找从一个选定点到所有其他点的最短路径。它被定义为具有非负边的图(有向或无向)。对于这种情况,没有更快的算法了。

如果对边的权重有限制-可能会有更快的算法。例如,如果权重被限制在[0,1]-可以使用BFS算法。

这可以推广到整数权值的情况,也可以使用更快的算法。(例如,可以使用有限的数组集代替二叉搜索树)。

最新更新