networkx.generators.degree_seq.configuration_model
的用法。用法:
configuration_model(deg_sequence, create_using=None, seed=None)
返回具有给定度数序列的随机图。
配置模型通过随机分配边以匹配给定的度数序列来生成随机伪图(具有平行边和自环的图)。
- deg_sequence:非负整数列表
每个列表条目对应一个节点的度数。
- create_using:NetworkX 图形构造函数,可选(默认 MultiGraph)
要创建的图表类型。如果是图形实例,则在填充之前清除。
- seed:整数、random_state 或无(默认)
随机数生成状态的指示符。请参阅随机性。
- G:MultiGraph
具有指定度数序列的图。节点从 0 开始标记,索引对应于 deg_sequence 中的位置。
- NetworkXError
如果度数序列没有偶数和。
参数:
返回:
抛出:
注意:
正如纽曼[1]所说明的。
允许使用非图形度数序列(某些简单图无法实现),因为此函数返回具有自环和平行边的图。如果度数序列没有偶数和,则会引发异常。
此配置模型构建过程可能导致重复的边和循环。您可以删除自环和平行边(见下文),这可能会导致图形没有指定精确的度数序列。
随着节点数量的增加,自环和平行边的密度趋于降低。然而,通常自环的数量将接近具有非零均值的泊松分布,平行边的数量也是如此。考虑一个带有
k
存根的节点。加入同一节点的另一个存根的概率本质上是 (k
-1
) /N
,其中k
是度数,N
是节点数。因此,对于某个常数c
,自循环的概率会像c
/N
一样缩放。随着N
的增长,这意味着我们期望c
自循环。对于平行边也是如此。参考:
- 1
M.E.J. Newman, “The structure and function of complex networks”, SIAM REVIEW 45-2, pp 167-256, 2003.
例子:
您可以使用
random_sequence
中的一个分布函数(或您自己的一个)来创建遵循特定分布的度数序列。例如,要在一百个节点上创建一个无向多重图,其度数序列选自幂律分布:>>> sequence = nx.random_powerlaw_tree_sequence(100, tries=5000) >>> G = nx.configuration_model(sequence) >>> len(G) 100 >>> actual_degrees = [d for v, d in G.degree()] >>> actual_degrees == sequence True
返回的图是一个多重图,它可能有平行的边。要从返回的图中删除任何平行边:
>>> G = nx.Graph(G)
同样,要删除自循环:
>>> G.remove_edges_from(nx.selfloop_edges(G))
相关用法
- Python NetworkX connected_double_edge_swap用法及代码示例
- Python NetworkX contracted_edge用法及代码示例
- Python NetworkX contracted_nodes用法及代码示例
- Python NetworkX connected_caveman_graph用法及代码示例
- Python NetworkX connected_components用法及代码示例
- Python NetworkX complete_multipartite_graph用法及代码示例
- Python NetworkX communicability_exp用法及代码示例
- Python NetworkX collaboration_weighted_projected_graph用法及代码示例
- Python NetworkX communicability用法及代码示例
- Python NetworkX complete_to_chordal_graph用法及代码示例
- Python NetworkX communicability_betweenness_centrality用法及代码示例
- Python NetworkX complete_graph用法及代码示例
- Python NetworkX common_neighbors用法及代码示例
- Python NetworkX compose用法及代码示例
- Python NetworkX common_neighbor_centrality用法及代码示例
- Python NetworkX color用法及代码示例
- Python NetworkX categorical_edge_match用法及代码示例
- Python NetworkX cn_soundarajan_hopcroft用法及代码示例
- Python NetworkX clustering用法及代码示例
- Python NetworkX circulant_graph用法及代码示例
- Python NetworkX categorical_node_match用法及代码示例
- Python NetworkX capacity_scaling用法及代码示例
- Python NetworkX circular_layout用法及代码示例
- Python NetworkX cut_size用法及代码示例
- Python NetworkX caveman_graph用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.generators.degree_seq.configuration_model。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。