subgraph_centrality#
- subgraph_centrality(G)[source]#
返回G中每个节点的子图中心性。
节点
n
的子图中心性是始于并终于节点n
的所有长度的加权闭合游走的总和。权重随路径长度减小。每个闭合游走都与一个连通子图相关联 ([1])。- 参数:
- G: 图
- 返回:
- nodes字典
以节点为键、子图中心性为值的字典。
- 引发:
- NetworkXError
如果图不是无向简单图。
另请参阅
subgraph_centrality_exp
计算G中每个节点子图中心性的另一种算法。
说明
该版本的算法计算邻接矩阵的特征值和特征向量。
使用邻接矩阵的谱分解可以找到图 G 中节点
u
的子图中心性 [1],\[SC(u)=\sum_{j=1}^{N}(v_{j}^{u})^2 e^{\lambda_{j}},\]其中
v_j
是图 G 的邻接矩阵A
对应于特征值lambda_j
的特征向量。参考文献
[1] (1,2,3)Ernesto Estrada, Juan A. Rodriguez-Velazquez, “Subgraph centrality in complex networks”, Physical Review E 71, 056103 (2005). https://arxiv.org/abs/cond-mat/0504730
示例
(示例来自 [1]) >>> G = nx.Graph( … [ … (1, 2), … (1, 5), … (1, 8), … (2, 3), … (2, 8), … (3, 4), … (3, 6), … (4, 5), … (4, 7), … (5, 6), … (6, 7), … (7, 8), … ] … ) >>> sc = nx.subgraph_centrality(G) >>> print([f”{node} {sc[node]:0.2f}” for node in sorted(sc)]) [‘1 3.90’, ‘2 3.90’, ‘3 3.64’, ‘4 3.71’, ‘5 3.64’, ‘6 3.71’, ‘7 3.64’, ‘8 3.90’]