如果每个进程都创建自己的 nx.Graph() 并向其添加/删除节点/边,那么它们是否有任何冲突的原因?我注意到一些奇怪的现象并试图调试它们。
一般问题是我将单个图作为边列表转储,并将其从每个进程中的子集重新创建为新图。由于某种原因,这些新图缺少边。
编辑:
我想我找到了导致我遇到问题的代码部分,问题是以下是否是 NetworkX 的预期行为:
>>> import networkx as nx
>>> g = nx.Graph()
>>> g.add_path([0,1,2,3])
>>> g.nodes()
[0, 1, 2, 3]
>>> g.edges()
[(0, 1), (1, 2), (2, 3)]
>>> g[1][0]
{}
>>> g[0][1] = {"test":1}
>>> g.edges(data=True)
[(0, 1, {'test': 1}), (1, 2, {}), (2, 3, {})]
>>> g[1][0]
{}
>>> g[0][1]
{'test': 1}
>>>
由于该图是一个无方向的图,我希望无论请求中的节点 ID 如何,边缘数据都会出现,这是一个不正确的假设吗?