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)