2012-04-09 3 views
4

Hi является возможным преобразовать adjancency матрицу одного и нули, как определено here в матрицы расстояний, как определено here, где каждое звено будет единичной длиной 1преобразование матрицы смежности на расстояние или скачкообразный матрицы

+1

У вас есть информация о весе каждого звена? – Saphrosit

+0

да я отредактировал queston – pyCthon

ответ

4

матрица смежности единиц и нулей - просто представление неориентированного графа. Чтобы получить расстояния между любыми двумя вершинами невзвешенного графика, вы можете использовать breadth first search.

Предполагая, что у вас есть n по n матрицы:

for each vertex i: 
    initialize an nxn matrix M 
    run breadth-first search starting at i 
    copy distances into row i of M 
    return M 
+2

Вместо первого поиска ширины, вероятно, было бы лучше использовать алгоритм для [проблемы с парными краткими парами] (http://en.wikipedia.org/wiki/Shortest_path_problem) – Hans

+0

это будет принимать навсегда для большого случая – pyCthon

+0

@ Написал ответ, что ваш метод на самом деле правильный – pyCthon

Смежные вопросы