我想在图中找到节点 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.
任何帮助都感激不尽!