maybe_regular_expander#

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

用于创建随机正则展开图的工具函数。

返回一个具有很高概率是展开图的、在 \(n\) 个节点上的随机 \(d\)-正则图。

参数
nint

节点数量。

dint

每个节点的度。

create_using图实例或构造函数

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

max_triesint. (默认: 100)

生成每个独立环时允许的最大尝试次数

seed(默认: None)

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

返回
G

构建的无向图。

抛出
NetworkXError

如果 \(d % 2 != 0\),因为度必须是偶数。如果 \(n - 1\) 小于 :math:` 2d `,因为图至多是一个完全图。如果达到 max_tries 最大尝试次数

注意

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

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

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

参考文献

[1]

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

示例

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