Построение матрица смежности
Как записать матрицу смежности по заданию ниже.
- Киев –(135) Житомир –(80) Новоград-Волынский –(100) Ровно –(68)Луцк
- Киев –(135) Житомир –(38) Бердичев –(73) Винница –(110)Хмельницкий –(104) Тернополь
- Киев –(135) Житомир –(115) Шепетовка
- Киев –(78) Белая церковь –(115) Умань
- Киев –(78) Белая церковь –(146) Черкассы –(105) Кременчуг
- Киев –(78) Белая церковь –(181) Полтава – (130) Харьков
- Киев –(128) Прилуки –(175) Сумы
- Киев –(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'))
