effective_graph_resistance#

effective_graph_resistance(G, weight=None, invert_weight=True)[source]#

返回图 G 的有效图电阻。

也称为基尔霍夫指数。

有效图电阻定义为 G 中每对节点的电阻距离之和 [1]。

如果未提供权重,则所有边的权重为 1。

不连通图的有效图电阻为无穷大。

Parameters:
GNetworkX 图

一个图

weight字符串或 None, 可选 (默认=None)

用于计算有效图电阻的边数据键。 如果为 None,则每条边的权重为 1。

invert_weight布尔值 (默认=True)

电阻距离的正确计算需要使用权重的倒数构建拉普拉斯矩阵。 如果权重已经倒数,则不需要。权重不能为零。

Returns:
RGfloat

G 的有效图电阻。

Raises:
NetworkXNotImplemented

如果 G 是有向图。

NetworkXError

如果 G 不包含任何节点。

Notes

该实现基于 [2] 中的定理 2.2。忽略自环。 多重边被合并为一条边,权重等于权重的调和和。

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