Мне нужно написать написать матрицу расстояний функции в Python, которая вычисляет матрицу расстояний графа. Я могу использовать функцию NetworkX adjacency_matrix для вычисления матрицы смежности входного графа, но я не могу использовать любые другие функции NetworkX.
Я знаю, что функция должна вычислять матрицу расстояний графа. Требуется матрица, представленная в виде массива типа numpy.ndarray, той же формы, что и матрица смежности графа.
Am = np.eye(48)
A = nx.adjacency_matrix(G).toarray()
A1 = np.eye(48)
def distance_matrix(G):
for m in range(1,49,1):
Am=np.linalg.matrix_power(A,m)
for i in range(48):
for j in range(48):
if Am[i,j]>0 and A1[i, j] == 0 :
A1[i, j] = m and np.diagonal(B)==0
return A1
print(distance_matrix(G))
Я знаю, что диагональ должна быть равна 0, а остальные записи должны быть кратчайшим путем от одного узла к другому. Я думаю ...