Алгоритм Флойда-Уоршалла на Python
Не могу восстановить путь, т к список Parent остается заполнен None после всех итераций. Как это исправить? Список списков F заполняется верно. Нужна помощь именно для случая, когда F[k][i][j] имеет именно 3 индекса
W = [[0, 2, math.inf, 3, 1, math.inf, math.inf, 10],
[2, 0, 4, math.inf, math.inf, math.inf, math.inf, math.inf],
[math.inf, 4, 0, math.inf, math.inf, math.inf, math.inf, 3],
[3, math.inf, math.inf, 0, math.inf, math.inf, math.inf, 8],
[1, math.inf, math.inf, math.inf, 0, 2, math.inf, math.inf],
[math.inf, math.inf, math.inf, math.inf, 2, 0, 3, math.inf],
[math.inf, math.inf, math.inf, math.inf, math.inf, 3, 0, 1],
[10, math.inf, 3, 8, math.inf, math.inf, 1, 0],
]
N = len(W)
F = [[[None for j in range(N)] for i in range(N)] for k in range(N + 1)]
Parent = [[None for j in range(N)] for i in range(N)]
for k in range(N + 1):
for i in range(N):
for j in range(N):
if k == 0:
F[0][i][j] = W[i][j]
else:
F[k][i][j] = min(F[k - 1][i][j], F[k - 1][i][k - 1] + F[k - 1][k - 1][j])
Parent[i][j] = Parent[k - 1][j]