floyd warshall アルゴリズムの疑似コードを読みましたが、
1 let dist be a |V| × |V| array of minimum distances initialized to ∞ (infinity)
2 for each vertex v
3 dist[v][v] ← 0
4 for each edge (u,v)
5 dist[u][v] ← w(u,v) // the weight of the edge (u,v)
6 for k from 1 to |V|
7 for i from 1 to |V|
8 for j from 1 to |V|
9 if dist[i][j] > dist[i][k] + dist[k][j]
10 dist[i][j] ← dist[i][k] + dist[k][j]
11 end if
距離を節約するために 1 つの dist 行列を使用するだけです。n 個の dist 行列が必要だと思います.n は頂点の数です. または、少なくとも 2 つの dist 行列が必要です. 1 つは頂点 k-1 内の現在の最短パスを格納し、もう 1 つは頂点 k 内の最短パスを格納し、最初のパスは k+1 内の最短パスを格納します。頂点内の距離に対する元の行列の k k-1?
この図は、D0、D1、D2....D(n) が必要であることを示しています