communicability_betweenness_centrality#
- communicability_betweenness_centrality(G)[source]#
返回 G 中所有节点对的子图可传播性。
可传播性介数度量使用连接每对节点的漫步数量作为介数中心性度量的基础。
- 参数:
- G: 图
- 返回:
- nodes字典
一个字典,其键是节点,值是可传播性介数。
- 引发:
- NetworkXError
如果图不是无向简单图。
注意
设
G=(V,E)
是一个有n
个节点和m
条边的无向简单图,A
表示G
的邻接矩阵。设
G(r)=(V,E(r))
是移除连接到节点r
的所有边(但不移除节点本身)后得到的图。G(r)
的邻接矩阵是A+E(r)
,其中E(r)
仅在第r
行和第r
列有非零元素。节点
r
的子图介数为 [1]\[\omega_{r} = \frac{1}{C}\sum_{p}\sum_{q}\frac{G_{prq}}{G_{pq}}, p\neq q, q\neq r,\]其中
G_{prq}=(e^{A}_{pq} - (e^{A+E(r)})_{pq}
是涉及节点 r 的漫步数量,G_{pq}=(e^{A})_{pq}
是从节点p
开始到节点q
结束的封闭漫步数量,C=(n-1)^{2}-(n-1)
是一个归一化因子,等于求和项的数量。结果
omega_{r}
的取值在零到一之间。对于连通图来说,下界无法达到,上界在星形图中达到。参考文献
[1]Ernesto Estrada, Desmond J. Higham, Naomichi Hatano, “复杂网络中的可传播性介数” Physica A 388 (2009) 764-774. https://arxiv.org/abs/0905.4102
示例
>>> G = nx.Graph([(0, 1), (1, 2), (1, 5), (5, 4), (2, 4), (2, 3), (4, 3), (3, 6)]) >>> cbc = nx.communicability_betweenness_centrality(G) >>> print([f"{node} {cbc[node]:0.2f}" for node in sorted(cbc)]) ['0 0.03', '1 0.45', '2 0.51', '3 0.45', '4 0.40', '5 0.19', '6 0.03']