Я бы хотел найти связность узлов между узлом 1 и остальными узлами на графике. Формат входного текстового файла следующий:
1 2 1
1 35 1
8 37 1
и так далее для 167 строк. Первый столбец представляет узел источника, второй столбец представляет узел назначения, а последний столбец представляет вес ребра.
Я пытаюсь прочитать исходные, конечные узлы из входного файла и создать ребро между ними. Затем мне нужно выяснить, является ли это подключенной сетью (только один компонент графа и никаких подкомпонентов). Вот код
from numpy import*
import networkx as nx
G=nx.empty_graph()
for row in file('out40.txt'):
row = row.split()
src = row[0]
dest = row[1]
#print src
G.add_edge(src, dest)
print src, dest
for i in range(2, 41):
if nx.bidirectional_dijkstra(G, 1, i): print "path exists from 1 to ", i
добавление граней вручную с помощью
G.add_edge(1, 2)
работает, но утомительно и не подходит для больших входных файлов, таких как мой. Условие цикла if работает, когда я добавляю ребра вручную, но выдает следующую ошибку для приведенного выше кода:
in neighbors_iter
raise NetworkXError("The node %s is not in the graph."%(n,))
networkx.exception.NetworkXError: The node 2 is not in the graph.
Любая помощь будет высоко ценится!