subgraph_centrality_exp#

subgraph_centrality_exp(G)[source]#

Returns the subgraph centrality for each node of 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 ([1]).

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

Alternative algorithm of the subgraph centrality for each node of G.

Notes

This version of the algorithm exponentiates the adjacency matrix.

The subgraph centrality of a node u in G can be found using the matrix exponential of the adjacency matrix of G [1],

\[SC(u)=(e^A)_{uu} .\]

References

[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

Examples

(Example from [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_exp(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']