Algorithm Floyd Warshall算法在以下情况下的工作原理

Algorithm Floyd Warshall算法在以下情况下的工作原理,algorithm,directed-graph,Algorithm,Directed Graph,假设我有9个顶点。 所以我有9x9解矩阵和 matrix[6,0] = infinity, matrix[6,9]=1, matrix[9,0]=1 现在算法的工作原理如下: for k 1 to 9 for i 1 to 9 for j 1 to 9 现在假设k=6 因此,对于矩阵[5,0]比较将在(矩阵[5,6]+矩阵[6,0])和矩阵[5,0]之间进行,在这种情况下矩阵[6,0]=无穷大因此矩阵[5,0]将是值 但是当k=9 矩阵[6,0]变成=>矩阵[6,

假设我有9个顶点。 所以我有9x9解矩阵和

matrix[6,0] = infinity, 
matrix[6,9]=1, 
matrix[9,0]=1
现在算法的工作原理如下:

for k 1 to 9
    for i 1 to 9
        for j 1 to 9
现在假设
k=6

因此,对于
矩阵[5,0]
比较将在(
矩阵[5,6]+矩阵[6,0]
)和
矩阵[5,0]
之间进行,在这种情况下
矩阵[6,0]=无穷大
因此
矩阵[5,0]
将是值

但是当
k=9

矩阵[6,0]
变成=>
矩阵[6,9]+矩阵[9,0]=1+1=2

但是现在无法更新
矩阵[5,0]


这是我的理解。那么,在这种情况下,算法是如何工作的。

如果循环从0开始,除了
矩阵[6]{0,9}
矩阵[9][0]之外,其他值都是0
然后
矩阵[6][0]
将从
矩阵[6][1]+矩阵[1][0]
更新
矩阵[6][9]
将从
矩阵[6][1]+矩阵[1][9]
更新
矩阵[9][0]
将从
矩阵[9][1]+矩阵[1][0]
更新

您不需要更新
矩阵[5][0]
因为它已经是0了?

基本上,当您在
循环K
中有
K
值时,这意味着您将要添加另一条边,并且使用
边(1->K-1)
更新从
(i->j)
然后插入另一个边
K
,再次检查是否有任何方法可以使用此边以更便宜的方式从
(i->j)
开始。
所以你写
矩阵[i][j]=min(矩阵[i][j],矩阵[i][k]+矩阵[k][j])

其他边呢?矩阵[5,6],它是无穷大还是0?它是0。有人能帮我解释一下吗?