maybe_regular_expander#

maybe_regular_expander(n, d, *, create_using=None, max_tries=100, seed=None)[source]#

创建随机规则扩展图的实用工具。

返回一个具有非常高概率是扩展图的随机 \(d\)-正则图,包含 \(n\) 个节点。

Parameters:
nint

节点数量。

dint

每个节点的度数。

create_using图实例或构造函数

指示要返回的图类型。 如果是图类型实例,则清空并使用它。 如果是构造函数,调用它来创建一个空图。 默认使用图构造函数。

max_triesint. (默认: 100)

生成每个独立循环时允许的循环次数。

seed(默认: None)

用于设置随机数生成状态的种子。参见 :ref 随机性

Returns:
G

构造的无向图。

Raises:
NetworkXError

如果 \(d % 2 != 0\),因为度数必须是偶数。 如果 \(n - 1\) 小于 \(2d\),因为图最多是完全图。 如果达到 max_tries。

Notes

节点编号从 \(0\)\(n - 1\)

该图是通过取 \(d / 2\) 个随机独立循环生成的。

Joel Friedman 证明了在此模型中,生成的图是扩展图的概率为 \(1 - O(n^{-\tau})\),其中 \(\tau = \lceil (\sqrt{d - 1}) / 2 \rceil - 1\)[1]

References

[1]

Joel Friedman, A Proof of Alon’s Second Eigenvalue Conjecture and Related Problems, 2004 https://arxiv.org/abs/cs/0405020

Examples

>>> G = nx.maybe_regular_expander(n=200, d=6, seed=8020)