performance - Networkx : 删除节点后的全局效率
问题描述
我也是networkx和Python的初学者,我想迭代一个图的节点,在每次迭代中我想删除一个节点,删除节点后计算图的全局效率,并在之前添加这个节点对其他节点进行相同的处理。我试过这个脚本,但我注意到在删除一些节点后,计算出的全局效率大于图的初始全局效率(没有删除任何节点)。这是正常的,还是我的脚本有错误?
提前致谢
a=nx.global_efficiency(H)
for elt in H.nodes():
e=nx.global_efficiency(H.subgraph(set(H)-{i}))
print ( e)
解决方案
你的脚本看起来不错。通过删除节点可以获得更大的全局效率。
这是一个显示它的最小示例:
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
该图的全局效率按此处解释的方式计算。
推荐阅读
- r - R:使用 geom_tile 对特定图块进行着色
- css - 水平形式不起作用
- mongodb - 使用 pymongo 过滤数据 find vs where
- java - 导致异常的简单计算器 (GUI)
- mysql - mysql 删除/插入与更新
- asp.net-web-api - 当通过浏览器请求时,API 返回一个空对象数组。同样的请求在邮递员中工作正常
- php - 从 laravel 中的数据透视表中获取所有数据
- google-apps-script - 基于时间的触发器创建而是立即执行函数
- docker - 如何让我的 .net core 2.1 Web 应用在 2 个端口上监听
- html - 响应式表中的响应式第一列