random_clustered_graph#

random_clustered_graph(joint_degree_sequence, create_using=None, seed=None)[source]#

生成一个具有给定联合独立边度序列和三角形度序列的随机图。

这使用类似配置模型的方法生成一个随机图(可能包含平行边和自环),通过随机分配边来匹配给定的联合度序列。

联合度序列是形如 \([(d_{1,i}, d_{1,t}), \dotsc, (d_{n,i}, d_{n,t})]\) 的整数对列表。根据此列表,顶点 \(u\) 属于 \(d_{u,t}\) 个三角形并拥有 \(d_{u, i}\) 条其他边。数字 \(d_{u,t}\) 是顶点 \(u\)三角形度,数字 \(d_{u,i}\)独立边度

参数:
joint_degree_sequence整数对列表

列表中的每个条目对应一个节点的独立边度和三角形度。

create_usingNetworkX 图构造器,可选(默认 MultiGraph)

要创建的图类型。如果提供图实例,则在填充前会清空。

seed整数、random_state 或 None(默认)

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

返回:
GMultiGraph

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

引发:
NetworkXError

如果独立边度序列的总和不是偶数,或者三角形度序列的总和不能被 3 整除。

注意

如 Miller [1] 所述(另请参阅 Newman [2] 以获得等效描述)。

允许非图的度序列(不能由某些简单图实现),因为此函数返回的图包含自环和平行边。如果独立度序列的总和不是偶数或三角形度序列的总和不能被 3 整除,则会引发异常。

这种类似配置模型的构造过程可能导致重复的边和环。您可以移除自环和平行边(见下文),这可能会导致生成的图不具有指定的精确度序列。这种“有限尺寸效应”随着图尺寸的增加而减小。

参考文献

[1]

Joel C. Miller。“随机聚类网络中的渗流与流行病”。载于:Physical review. E, Statistical, nonlinear, and soft matter physics 80 (2 Part 1 August 2009)。

[2]

M. E. J. Newman。“具有聚类的随机图”。载于:Physical Review Letters 103 (5 July 2009)。

示例

>>> deg = [(1, 0), (1, 0), (1, 0), (2, 0), (1, 0), (2, 1), (0, 1), (0, 1)]
>>> G = nx.random_clustered_graph(deg)

移除平行边

>>> G = nx.Graph(G)

移除自环

>>> G.remove_edges_from(nx.selfloop_edges(G))