partial_duplication_graph#

partial_duplication_graph(N, n, p, q, seed=None, *, create_using=None)[source]#

使用部分复制模型返回一个随机图。

参数:
Nint

最终图中的节点总数。

nint

初始团中的节点数量。

pfloat

将节点的每个邻居连接到复制节点的概率。必须是介于零和一之间的数字(包含零和一)。

qfloat

将源节点连接到复制节点的概率。必须是介于零和一之间的数字(包含零和一)。

seed整数, random_state 或 None (默认)

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

create_using图构造器, 可选 (默认=nx.Graph)

要创建的图类型。如果是图实例,则在填充前清空。不支持多重图和有向图类型,会引发 NetworkXError

说明

通过创建一个大小为 n 的完全连接图来生成一个节点图。然后重复以下过程,直到达到 N 个节点总数。

  1. 随机选择一个节点 u,并创建一个新节点 v

  2. 对于 u 的每个邻居,以概率 p 创建一条从该邻居到 v 的边。

  3. 以概率 q 创建一条从 uv 的边。

该算法出现在 [1] 中。

此实现允许生成不连通图的可能性。

参考文献

[1]

Knudsen Michael, and Carsten Wiuf. “A Markov chain approach to randomly grown graphs.” Journal of Applied Mathematics 2008. <https://doi.org/10.1155/2008/190836>