我正在做一个家庭作业问题,我需要从顶点z开始运行bellman-ford算法。它要我“在每次传球中,以与图中相同的顺序放松边缘,并在每次传球后显示d和pi值。” 根据我的理解,我认为这个算法遍历图形就像一个BFS,从他们希望我使用的图中有意义,所以我无法看到相同的路径是如何工作的。如果有人能通过指出如何开始它指向我正确的方向将是非常有用的。问题和问题所指的数字:
答案 0 :(得分:2)
我会试着指出你的错误。
我认为这个算法像BFS一样遍历图表
事实并非如此。该算法重复迭代图形的所有边缘,并且“放松”#34;它们直到达到稳定状态(不再能够放松)
您附加的示例有点令人困惑,类似于BFS执行。这是因为在每次迭代中它们只加粗影响节点值的边(放松的边)。
所以,要回答你的问题,选择边缘的任何顺序,然后开始所谓的"放松"他们。对于每个边缘,将其指向节点d值设置为距离Z最远的最短距离,并将其设置为它的前任节点。重复此操作,直到所有值都稳定。
希望能回答你的问题。
答案 1 :(得分:0)
正如Ido.Co所说,在Bellman Ford中没有特定的扫描/迭代顺序。但据说首先扫描广度,执行速度更快。