kemeny_constant#

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

返回给定图的Kemeny常数。

*Kemeny常数*(或Kemeny常数)是指将图 G 视为马尔可夫链时计算得到的常数。Kemeny常数是从起始状态i到从马尔可夫链的平稳分布中随机抽取的目标状态的预期时间步数。Kemeny常数与所选择的初始状态无关[1]。

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

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

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

Parameters:
GNetworkX图
weight字符串或None, 可选 (默认=None)

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

Returns:
float

G 的Kemeny常数。

Raises:
NetworkXNotImplemented

如果图 G 是有向的。

NetworkXError

如果图 G 不连通,或不包含节点,或有边权重为负。

Notes

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

References

[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

Examples

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