algorithm - Dijkstra 算法以及负权重和循环

标签 algorithm graph tree dijkstra

我研究的是贪心算法。总结一下 Dijkstra 算法的一些重要方面,那将是正确的。我怀疑(4)和(1),有人可以帮助我吗?

I)如果所有边权重均为负,则 Dijkstra 算法效果良好。

II) 如果在图中我们有一个负循环,Dijkstra 就会进入无限循环并且永远不会结束。

III) 如果图具有负权重的一条边,但没有负环,则该算法不能正常工作。

IV)如果图没有负循环,则算法运行良好。

最佳答案

Dijkstra's algorithm仅适用于具有非负边的图。这是因为它假设第一次将节点从队列中弹出时,我们已经找到了到该节点的最短路径,并且只要您有一个负权重,情况就不一定成立。

因此I为假,II为假(因为负循环不一定可达),III为真,IV为假(即使没有负循环也可能有下降沿)。

关于algorithm - Dijkstra 算法以及负权重和循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28587924/

相关文章:

php - 如何将搜索词捆绑到更有效的查询中?

algorithm - 我如何在进化算法中表示百分比?

c++ - 按相似性(相同 ID)对数据进行分组的最佳算法

切割图案的算法

r - 计算两个弯曲边界之间的观测值数量

algorithm - 以特殊方式设置不相交?

c++ - 在 C++ 中输入的值中缺少元素

Python动画图

algorithm - 有序和无序(有根)树之间的区别

Python:从树状数据结构中的列表列表创建组合