kemeny_constant#

kemeny_constant(G, *, weight=None)[source]#

返回给定图的 Kemeny 常数。

GKemeny 常数(或 Kemeny’s 常数)可以通过将图视为马尔可夫链来计算。Kemeny 常数是马尔可夫链中从起始状态 i 过渡到从其平稳分布中采样的随机目标状态的预期时间步数。Kemeny 常数与所选的初始状态无关 [1]

Kemeny 常数衡量了信息在图上传播所需的时间。低值表示图连接紧密,而高值表示图分布分散。

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

由于 G 表示一个马尔可夫链,因此权重必须为正。

参数:
GNetworkX 图
weight字符串或 None,可选(默认为 None)

用于计算 Kemeny 常数的边数据键。如果为 None,则每条边的权重都为 1。

返回值:
浮点数

G 的 Kemeny 常数。

抛出异常:
NetworkXNotImplemented

如果图 G 是有向图。

NetworkXError

如果图 G 不连通,或不包含任何节点,或包含带有负权重的边。

注意事项

实现基于 [2] 中的公式 (3.3)。允许自环,这表示马尔可夫链中状态可以保持不变。多条边会合并为一条边,其权重等于所有边的权重之和。

参考文献

[1]

Wikipedia “Kemeny’s constant.” https://en.wikipedia.org/wiki/Kemeny%27s_constant

[2]

Lovász L. Random walks on graphs: A survey. Paul Erdös is Eighty, vol. 2, Bolyai Society, Mathematical Studies, Keszthely, Hungary (1993), pp. 1-46

示例

>>> G = nx.complete_graph(5)
>>> round(nx.kemeny_constant(G), 10)
3.2