Построение матрица смежности

введите сюда описание изображенияКак записать матрицу смежности по заданию ниже.

  1. Киев –(135) Житомир –(80) Новоград-Волынский –(100) Ровно –(68)Луцк
  2. Киев –(135) Житомир –(38) Бердичев –(73) Винница –(110)Хмельницкий –(104) Тернополь
  3. Киев –(135) Житомир –(115) Шепетовка
  4. Киев –(78) Белая церковь –(115) Умань
  5. Киев –(78) Белая церковь –(146) Черкассы –(105) Кременчуг
  6. Киев –(78) Белая церковь –(181) Полтава – (130) Харьков
  7. Киев –(128) Прилуки –(175) Сумы
  8. Киев –(128) Прилуки –(109) Миргород

Можно через этот сайт сделать https://graphonline.ru/create_graph_by_matrix


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

Автор решения: MaxU

Алгоритм:

  • Создайте квадратную матрицу, в которой каждый столбец и каждая строка будут представлять из себя города. Порядок наименований/городов в столбцах и строках должен совпадать.
  • На пересечении строки и столбца укажите расстояние между соответствующими городами. Если информации о такой паре городов нет или в случае когда и в строке и в столбце один и тот же город (пример - все элементы главной диагонали) тогда заполните данную ячейку нулем (0).

Вот упрощенный пример для 5ти городов:

In [15]: adj
Out[15]:
               Киев  Белая_церковь  Черкассы  Кременчуг  Умань
Киев              0             78         0          0      0
Белая_церковь    78              0       146          0    115
Черкассы          0            146         0        105      0
Кременчуг         0              0       105          0      0
Умань             0            115         0          0      0

Это соответствует следующему графу (пример на Python):

import networkx as nx
G = nx.from_pandas_adjacency(adj)
pos = nx.spring_layout(G)
nx.draw_networkx(G, pos)
nx.draw_networkx_edge_labels(G, pos, edge_labels=nx.get_edge_attributes(G, 'weight'))

введите сюда описание изображения

→ Ссылка