我研究的是贪心算法。总结一下 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/