effective_graph_resistance#
- effective_graph_resistance(G, weight=None, invert_weight=True)[source]#
Returns the Effective graph resistance of G.
Also known as the Kirchhoff index.
The effective graph resistance is defined as the sum of the resistance distance of every node pair in G [1].
If weight is not provided, then a weight of 1 is used for all edges.
The effective graph resistance of a disconnected graph is infinite.
- Parameters:
- GNetworkX graph
A graph
- weightstring or None, optional (default=None)
The edge data key used to compute the effective graph resistance. If None, then each edge has weight 1.
- invert_weightboolean (default=True)
Proper calculation of resistance distance requires building the Laplacian matrix with the reciprocal of the weight. Not required if the weight is already inverted. Weight cannot be zero.
- Returns:
- RGfloat
The effective graph resistance of
G
.
- Raises:
- NetworkXNotImplemented
If
G
is a directed graph.- NetworkXError
If
G
does not contain any nodes.
Notes
The implementation is based on Theorem 2.2 in [2]. Self-loops are ignored. Multi-edges are contracted in one edge with weight equal to the harmonic sum of the weights.
References
[1]Wolfram “Kirchhoff Index.” https://mathworld.wolfram.com/KirchhoffIndex.html
[2]W. Ellens, F. M. Spieksma, P. Van Mieghem, A. Jamakovic, R. E. Kooij. Effective graph resistance. Lin. Alg. Appl. 435:2491-2506, 2011.
Examples
>>> G = nx.Graph([(1, 2), (1, 3), (1, 4), (3, 4), (3, 5), (4, 5)]) >>> round(nx.effective_graph_resistance(G), 10) 10.25