在科尔曼的书中对Floyd Warshall的例子感到困惑

时间:2013-02-13 19:15:16

标签: algorithm clrs floyd-warshall

我已阅读并搜索了Floyd Warshall算法,我想我明白了。但是,在我在“算法导论”(Thomas H. Cormen的书)一书中读到的例子中,我堆积了一点。我很困惑。这里的图片是相同的。我的问题是在最后一步,即π(5)。 这是一个例子: enter image description here http://integrator-crimea.com/images/fig653_01_0.jpg

 I think the first row of π(5) must be : 

 NIL  5   5   5   1      

 However it is written in the book :

 NIL  3   4   5   1

有人可以清除我上面的​​困惑吗?书中写错了吗?

1 个答案:

答案 0 :(得分:1)

让我们写D_4(1,3)来表示距离矩阵D(4)中的第1行第3列。

如果解释D_5(1,2)=1 by Pi_5(1,2)=3(即从1到2的最短路径经过3),我们期望D_5(1,2) = D_4(1,3) + D_4(3,2)。但是,D_5(1,2) = 1 but D_4(1,3) + D_4(3,2) = -1 + 4 = 3。所以Pi_5(1,2)=3不正确。

Pi_5(1,2)=5 is的替代价值正确,因为1 = D_5(1,2) = D_4(1,5) + D_4(5,2) = -4 + 5

所以你是正确的,Pi(5)的第一行中的第二个值应该是5,而不是3.我没有检查其他值,但我认为你也是正确的。