random_regular_expander_graph#
- random_regular_expander_graph(n, d, *, epsilon=0, create_using=None, max_tries=100, seed=None)[source]#
返回一个具有 \(n\) 个节点和度数 \(d\) 的随机正则扩展图。
扩展图是一种具有强连通性质的稀疏图。[1]
更确切地说,返回的图是一个 \((n, d, \lambda)\) 扩展图,其中 \(\lambda = 2 \sqrt{d - 1} + \epsilon\),接近 Alon-Boppana 界。[2]
在 \(\epsilon = 0\) 的情况下,它返回一个 Ramanujan 图。Ramanujan 图具有几乎最大的谱隙,这使得它们成为优秀的扩展图。[3]
- Parameters:
- nint
节点数量。
- dint
每个节点的度数。
- epsilonint, float, default=0
- max_triesint, (default: 100)
允许的循环次数,也用于 maybe_regular_expander 工具中
- seed(default: None)
用于设置随机数生成状态的种子。参见 :ref
随机性
。
- Raises:
- NetworkXError
如果达到 max_tries
Notes
这会循环调用
maybe_regular_expander
,当 \(n\) 太大或 \(\epsilon\) 太小时可能会很慢。References
[2]Alon-Boppana 界, https://en.wikipedia.org/wiki/Alon%E2%80%93Boppana_bound
[3]Ramanujan 图, https://en.wikipedia.org/wiki/Ramanujan_graph
Examples
>>> G = nx.random_regular_expander_graph(20, 4) >>> nx.is_regular_expander(G) True