【问题标题】:How does Bellman-Ford SSSP operate 'globally'?Bellman-Ford SSSP 如何“全球”运营?
【发布时间】:2015-07-22 09:25:42
【问题描述】:

在我参加的编程课上,我们学习了 Bellman-Ford SSSP 和 Djikstra 的 SSSP,我们了解到 Bellman-Ford 是基于 Kruskal 的最小生成树算法,而 Djikstra 是基于 Prim 的最小生成树算法。

我们被告知要记住 Djikstra 和 Prim 都在本地级别上运行,因为您根据已选择的边和节点进行比较,这对我来说很有意义。我们还被告知要记住 Bellman-Ford 和 Kruskal 在全局级别上运行,因为您选择最小的边权重,而不管先前选择的节点如何。

对于 Kruskal 的算法,我可以理解为什么我们可以将其视为全局的,因为您实际上只需选择最轻或 最小 的边权重。但是对于 Bellman-Ford 的算法,我只是不明白它是如何被认为是全局的,因为您仍然需要担心之前选择的节点和边。 Bellman-Ford 到底是如何基于 Kruskal 算法的,它是如何被认为是“全球”运行的?

【问题讨论】:

  • ...you do still need to worry about previously selected nodes and edges 你呢?我似乎记得你只是反复遍历所有这些。

标签: algorithm shortest-path kruskals-algorithm bellman-ford


【解决方案1】:

将 Bellman-Ford 称为全局似乎是公平的,因为它由许多 (|V|-1) 个松弛通道组成,每个松弛通道都涉及迭代所有边并(可能)更新到(可能)每个其他顶点的距离估计。

我认为 Kruskal 和 Bellman-Ford 之间没有任何明显的概念联系。事实上,我认为 Bellman-Ford 更类似于 Dijkstra 是公平的,因为它使用了迭代松弛。

【讨论】:

    猜你喜欢
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    相关资源
    最近更新 更多