random_kernel_graph#

random_kernel_graph(n, kernel_integral, kernel_root=None, seed=None)[源代码]#

返回基于指定内核的随机图。

该算法选择每个 \([n(n-1)]/2\) 具有由核指定的概率的可能边 \(\kappa(x,y)\) [1]. 核心层 \(\kappa(x,y)\) 必须是对称的(在 \(x,y\) )、非负、有界函数。

参数
n集成

节点数

kernel_integral功能

返回核的定积分的函数 \(\kappa(x,y)\)\(F(y,a,b) := \int_a^b \kappa(x,y)dx\)

kernel_root: function (optional)

返回根的函数 \(b\) 方程式的一部分 \(F(y,a,b) = r\) 。如果没有,则使用以下命令找到根 scipy.optimize.brentq() (这需要SciPy)。

seed整数、随机状态或无(默认)

随机数生成状态的指示器。见 Randomness .

参见

gnp_random_graph
expected_degree_graph

笔记

核是通过它的定积分来指定的,而定积分必须作为自变量之一提供。如果核积分的积分和根可以在 \(O(1)\) 时间,那么这个算法就会及时运行 \(O(n+m)\) 其中m是预期的边数 [2].

将节点设置为中的整数 \(0\)\(n-1\)

工具书类

1

Bollob_s,B_la,Janson,S.和Riordan,O.“非均匀随机图中的相变”, 随机结构算法 2007年3月31日至122日。

2

Hagberg A,Lemons N(2015),“稀疏随机核图的快速生成”。《公共科学类库》:e0135177,2015年。doi:10.1371/journal.pone.0135177

实例

生成一个Erdős-Rényi随机图 \(G(n,c/n)\) ,带有内核 \(\kappa(x,y)=c\) 哪里 \(c\) 是平均预期度数。

>>> def integral(u, w, z):
...     return c * (z - w)
>>> def root(u, w, r):
...     return r / c + w
>>> c = 1
>>> graph = nx.random_kernel_graph(1000, integral, root)