effective_graph_resistance#

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

返回图 G 的有效图电阻。

也称为基尔霍夫指数。

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

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

非连通图的有效图电阻是无限大的。

参数:
GNetworkX 图

一个图

weightstring 或 None,可选 (默认值为 None)

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

invert_weight布尔值 (默认值为 True)

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

返回:
RG浮点数

G 的有效图电阻。

引发:
NetworkXNotImplemented

如果 G 是有向图。

NetworkXError

如果 G 不包含任何节点。

注意

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

参考文献

[1]

Wolfram “Kirchhoff Index.” https://mathworld.net.cn/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.

示例

>>> G = nx.Graph([(1, 2), (1, 3), (1, 4), (3, 4), (3, 5), (4, 5)])
>>> round(nx.effective_graph_resistance(G), 10)
10.25