首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解Dijkstra算法

理解Dijkstra算法
EN

Stack Overflow用户
提问于 2016-10-25 19:03:36
回答 1查看 2.2K关注 0票数 0

我试着理解Dijkstra算法来寻找最短的路径。

我看了这个例子,上面的表对应于左下角的图像。

现在,我的问题是,我不理解从步骤1到步骤2的过渡:

当我们在UX时,我们可以通过将X到V(这是2)的成本加到我们当前的成本(即1;UX的成本)。所以,之和是3,但由于这个,我比我们已经找到的2大,所以我们不会改变它。在第一步中,我们有两个选择,它们都有相同的成本: UXY和UXV,但是为什么算法选择选择UXY而不是UXV呢?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-25 19:27:07

当您有两个或多个具有相同成本的选项时,您所使用的选项没有任何区别。

Dijkstra算法维基百科文章中有一个具有伪码的部分来实现该算法。您可以看到,在伪代码中有一行u ← vertex in Q with min dist[u],这意味着您选择一个成本最低的选项。当你有更多的选择与相同的成本,你只需接受其中任何一个。

对于具体的例子来说,这意味着您也可以使用UXV而不是UXY。这可能会导致更多的步骤,但最终结果是相同的,当算法完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40247747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档