resistance_distance#
- resistance_distance(G, nodeA=None, nodeB=None, weight=None, invert_weight=True)[source]#
返回图 G 中节点对之间的电阻距离。
图的两个节点之间的电阻距离类似于将图视为一个电阻器网格,其电阻等于提供的权重 [1], [2]。
如果没有提供权重,则所有边的权重为 1。
如果两个节点相同,则电阻距离为零。
- Parameters:
- GNetworkX 图
一个图
- nodeA节点或 None, 可选 (默认=None)
图 G 中的一个节点。 如果为 None,则使用所有节点作为源节点计算电阻距离。
- nodeB节点或 None, 可选 (默认=None)
图 G 中的一个节点。 如果为 None,则使用所有节点作为目标节点计算电阻距离。
- weight字符串或 None, 可选 (默认=None)
用于计算电阻距离的边数据键。 如果为 None,则每条边的权重为 1。
- invert_weight布尔值 (默认=True)
正确计算电阻距离需要使用权重的倒数构建拉普拉斯矩阵。如果权重已经倒数,则不需要。权重不能为零。
- Returns:
- rd字典或浮点数
如果指定了
nodeA
和nodeB
,则返回nodeA
和nodeB
之间的电阻距离。如果nodeA
或nodeB
未指定(默认),则返回一个字典,节点为键,电阻距离为值。
- Raises:
- NetworkXNotImplemented
如果
G
是有向图。- NetworkXError
如果
G
不连通,或不包含节点, 或nodeA
不在G
中,或nodeB
不在G
中。
Notes
实现基于 [2] 中的定理 A。忽略自环。多重边合并为一条边,权重等于权重的调和和。
References
[1]维基百科 “电阻距离” https://en.wikipedia.org/wiki/Resistance_distance
Examples
>>> G = nx.Graph([(1, 2), (1, 3), (1, 4), (3, 4), (3, 5), (4, 5)]) >>> round(nx.resistance_distance(G, 1, 3), 10) 0.625