Dijkstra算法与广度优先搜索图中的最短路径

时间:2013-11-18 23:44:51

标签: algorithm dijkstra breadth-first-search

如果这些是正确的,我需要在有向图中对Dijktra's algorithm vs breath first search进行一些澄清和输入。

Dijktra's算法会在A图表中找到从节点F到节点weighted的最短路径,无论是否存在周期(只要有一个周期)没有负面的重量)

但为此,所有路径均来自A to all other Nodes in the graph are calculated and we grab the path from A to F by reversing the sequences of nodes in prev`。

BFS:在非加权图中找到从Node ANode F的最短路径,但如果检测到周期则失败。

但是,BFS只计算从节点A到节点F的路径,而不一定是从节点A的所有路径。 如果提前到达节点F,它只返回路径。

enter image description here

2 个答案:

答案 0 :(得分:1)

Dijkstra不会搜索图表的所有节点。当它找到从A到F的路径并且确定没有较短的路径(因为已经访问过的节点的外边界更远),它就会停止。这是可能的,没有负面的重量。

所以回答你的问题“如果这些是正确的”:它们不是。

答案 1 :(得分:0)

这些算法在执行方面有很大不同。

BFS是一种遵循“静态执行模式”的强力算法 另一方面,Dijkstra更具活力,并且始终以最低的成本继续搜索。

dijkstra的目的是找到最短的路径。因此,如果您正在寻找最短的路径使用dijkstra。