请参阅以下页面了解Bellman ford算法(例如,它显示)。 http://compprog.wordpress.com/2007/11/29/one-source-shortest-path-the-bellman-ford-algorithm
我仍然没有得到它。在外环的第一次循环迭代中,假设通过该示例,首先修改边缘1-> 2和边缘1-> 4,放松边缘2-> 3,2->的问题是什么? 5,4-> 3,4-> 5,在同一步骤中,因为我们有d [2]和d [4]。
答案 0 :(得分:1)
如果你使用一个不同版本的Bellman-Ford,这个问题会神奇地消失:
set toRelax = {initial_vertex}
while toRelax is not empty:
u = remove a vertex from toRelax
for each neighbour v of u:
if we can relax u-v:
relax u-v
add v to toRelax
注意每个“步骤”现在如何涉及单个顶点!在“相同步骤”中完成的事情只是您使用的具体实现的工件,并且最终不会真正改变算法。