我也是networkx和Python的初学者,我想遍历图的节点,在每次迭代中,我想删除一个节点,在删除节点并添加后计算图的全局效率在与其他节点进行相同的处理之前,先将此节点。我已经尝试过该脚本,但是我注意到在删除一些节点之后,计算出的全局效率大于图形的初始全局效率(不删除任何节点)。这是正常现象,还是我的脚本有错误?
预先感谢
a=nx.global_efficiency(H)
for elt in H.nodes():
e=nx.global_efficiency(H.subgraph(set(H)-{i}))
print ( e)
答案 0 :(得分:0)
您的脚本看起来不错。通过删除节点可以提高全局效率。
这是一个显示它的最小示例:
import networkx as nx
G = nx.Graph()
G.add_edges_from([(0, 2), (2, 1)])
# Efficiency of: 0 -> 2 -> 1 :
print(nx.global_efficiency(G)) # 0.8333333333333334
# Efficiency of: 2 -> 1
print(nx.global_efficiency(G.subgraph(set(G)-{0}))) # 1.0
按照here中的说明计算图形的全局效率。