【发布时间】:2020-06-03 07:16:32
【问题描述】:
我在其他帖子中读到,Dijkstra 的算法总是首先扩展最短路径。为什么必须以这种方式实施?假设我们创建了一个轻松的 Dijkstra 版本,只要它们的成本(根据上一次迭代计算)小于无穷大,它就会扩展 任何 未访问的路径/节点。
我已经研究了一些示例,但尚未展示使用此算法的轻松版本无法计算正确最短路径的示例。
【问题讨论】:
标签: algorithm search graph shortest-path dijkstra
我在其他帖子中读到,Dijkstra 的算法总是首先扩展最短路径。为什么必须以这种方式实施?假设我们创建了一个轻松的 Dijkstra 版本,只要它们的成本(根据上一次迭代计算)小于无穷大,它就会扩展 任何 未访问的路径/节点。
我已经研究了一些示例,但尚未展示使用此算法的轻松版本无法计算正确最短路径的示例。
【问题讨论】:
标签: algorithm search graph shortest-path dijkstra
如果你展开任何节点,你最终会找到一些到达目标的路径,但你不能保证到达目标的路径成本是最优的。
如果您找到到已访问节点的更便宜的路径,则必须从该已访问节点传递更新所有节点,从而使您的宽松算法的效率低于原始算法。
【讨论】: