Bellman-Ford算法和步数

时间:2015-03-03 13:45:10

标签: algorithm graph tree shortest-path bellman-ford

假设存在100-Vertexes的定向图,例如V_1---> V_2 ---> ... ---> V_100

边的所有权重都是1.我们想用Bellman-Ford算法找到顶点1 (V_1)到其他顶点之间的最短路径。每个步骤中的算法以任意顺序检查所有边缘。如果在一步中V_1到所有其他顶点not changed之间的最短路径(来自先前的值),算法将停止! the number of steps in this algorithms depends on the order of inspecting edges

  

这个算法中的最大步数和最小步数是多少?

a) 100, 10000

b) 2, 100

c) 100, 100

d) 2, 99

任何人都可以形容我为什么选择选项(2)作为这个问题的答案?

1 个答案:

答案 0 :(得分:0)

Bellman-Ford算法在Wikipedia给出。

如果选择V_1V_2,则需要执行两个步骤。如果V_1V_1不是允许的输入,那么它就不会更好。这可以通过一步完成。

最糟糕的情况是,如果V_1V_100作为输入:这需要100步才能达到V_100。


问题是:给定可能的输入,最佳情况是什么,以及示例图中边缘之间距离可能发生的最坏情况是什么?

示例:输入为Bellman-Ford(Vertices, Edges, Soucre)
会发生什么?
在此特定示例中,顶点为V_1至V_100,边缘为E_1(从V_1至V_2等),源为V_1。

第1步:从头开始,即我们知道从V_1V_1的最短路径。
第2步:遵循其中一条边。只有一个边缘,我们称之为E_1。此边缘从V_1V_2。算法将遵循这一优势。现在,我们现在从V_1V_2的最短路径沿此边缘迈出一步。 V_1和V_2的步数为2.这是最短的非平凡路径。

现在确定V_1和V_100之间距离的结果。 V_1V_100之间有99条边,因为E_99V_99变为V_100。这会采取多少步骤?这个特定的图表可以有更长的路径吗?