communicability_betweenness_centrality#

communicability_betweenness_centrality(G)[source]#

返回图 G 中所有节点对的子图通信能力。

通信能力介数度量利用连接每对节点的路径数量作为介数中心性度量的基础。

Parameters:
G: 图
Returns:
nodes字典

包含节点及其通信能力介数值的字典。

Raises:
NetworkXError

如果图不是无向且简单的。

Notes

G=(V,E) 是一个具有 n 个节点和 m 条边的简单无向图, A 表示 G 的邻接矩阵。

G(r)=(V,E(r)) 是从 G 中移除所有与节点 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} 取值在零和一之间。对于连通图,下限无法达到,而上限在星形图中达到。

References

[1]

Ernesto Estrada, Desmond J. Higham, Naomichi Hatano, “Communicability Betweenness in Complex Networks” Physica A 388 (2009) 764-774. https://arxiv.org/abs/0905.4102

Examples

>>> 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']