我已阅读并搜索了Floyd Warshall算法,我想我明白了。但是,在我在“算法导论”(Thomas H. Cormen的书)一书中读到的例子中,我堆积了一点。我很困惑。这里的图片是相同的。我的问题是在最后一步,即π(5)。
这是一个例子:
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
有人可以清除我上面的困惑吗?书中写错了吗?
答案 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.我没有检查其他值,但我认为你也是正确的。