networkx.algorithms.subgraph_centrality¶
-
networkx.algorithms.subgraph_centrality(G)[source]¶ Return subgraph centrality for each node in G.
Subgraph centrality of a node n is the sum of weighted closed walks of all lengths starting and ending at node n. The weights decrease with path length. Each closed walk is associated with a connected subgraph ([R815]).
Parameters: G: graph
Returns: nodes : dictionary
Dictionary of nodes with subgraph centrality as the value.
Raises: NetworkXError
If the graph is not undirected and simple.
See also
subgraph_centrality_exp- Alternative algorithm of the subgraph centrality for each node of G.
Notes
This version of the algorithm computes eigenvalues and eigenvectors of the adjacency matrix.
Subgraph centrality of a node u in G can be found using a spectral decomposition of the adjacency matrix [R815],
\[SC(u)=\sum_{j=1}^{N}(v_{j}^{u})^2 e^{\lambda_{j}},\]where v_j is an eigenvector of the adjacency matrix A of G corresponding corresponding to the eigenvalue lambda_j.
References
[R815] (1, 2, 3) Ernesto Estrada, Juan A. Rodriguez-Velazquez, “Subgraph centrality in complex networks”, Physical Review E 71, 056103 (2005). http://arxiv.org/abs/cond-mat/0504730 Examples
>>> 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(['%s %0.2f'%(node,sc[node]) for node in 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']