1
我需要在文本文件中编写一个图形,其中文件的每一行由一个节点组成,然后是其所有节点邻居。它基本上是什么Adjacency List,以及功能write_adjlist
应该做什么。不幸的是,情况并非如此,因为边缘没有被复制。在维基百科为例邻接表是:将图形写入邻接列表形式的文件中[提及每行中每个节点的所有邻居]
一个相邻的B,C
B个邻接于A,C邻近
C,B
我们可以看到所有边缘出现两次(第1行和第2行中的边缘(a,b)
,第2行和第3行中的边缘(b,c)
...)。
但现在如果我用下面的代码生成一个小世界网络:
import networkx as nx
N=5 #Number of nodes
v=2 #Number of neighbours
p=.1 #rewiring proba
G = nx.connected_watts_strogatz_graph(N,v,p)
nx.write_adjlist(G.to_undirected(),"test.txt")
它给了我:
#adj.py
# GMT Thu Jan 21 06:57:29 2016
# watts_strogatz_graph(5,2,0.1)
0 1 4
1 2
2 3
3 4
4
,我想有
0 1 4
1 2 0
2 3 1
3 2 4
4 0 3
你知道我能做些什么来获得我想要的输出吗?
非常感谢!我只是想知道为什么不实现一个实际做它应该做的功能? –
我认为这样做是为了避免冗余,特别是当图形大得多时。例如,在第一行中,它表示“节点0”具有邻居“1和4”,那么当你来到“节点1”时,不需要说“节点0”是一个邻居,因为你已经说过了它。 –
嗯是的,我可以看到,他们首选避免冗余比定义:) –