Алгоритм Флойда-Уоршалла на 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]


Ответы (0 шт):