random_degree_sequence_graph#

random_degree_sequence_graph(sequence, seed=None, tries=10)[source]#

返回具有给定度序列的简单随机图。

如果序列中的最大度 \(d_m\)\(O(m^{1/4})\),则该算法在 \(O(m d_m)\) 时间内生成几乎均匀的随机图,其中 \(m\) 是边的数量。

参数:
sequence整数列表

度数序列

seed整数、random_state 或 None(默认)

随机数生成状态的指示器。参见 随机性

triesint,可选

创建图的最大尝试次数

返回:
G

具有指定度序列的图。节点从0开始编号,索引对应于序列中的位置。

引发:
NetworkXUnfeasible

如果度序列不是图的序列。

NetworkXError

如果在指定的尝试次数内未生成图

另请参阅

is_graphical, configuration_model

注意

生成器算法 [1] 不保证能生成一个图。

参考文献

[1]

Moshen Bayati, Jeong Han Kim, and Amin Saberi, A sequential algorithm for generating random graphs. Algorithmica, Volume 58, Number 4, 860-910, DOI: 10.1007/s00453-009-9340-1

示例

>>> sequence = [1, 2, 2, 3]
>>> G = nx.random_degree_sequence_graph(sequence, seed=42)
>>> sorted(d for n, d in G.degree())
[1, 2, 2, 3]