thresholded_random_geometric_graph#
- thresholded_random_geometric_graph(n, radius, theta, dim=2, pos=None, weight=None, p=2, seed=None, *, pos_name='pos', weight_name='weight')[source]#
返回一个单位立方体中的阈值随机几何图。
阈值随机几何图[1]模型在维度为
dim
的单位立方体中随机均匀地放置n
个节点。每个节点u
被赋予一个权重 \(w_u\) 。如果两个节点u
和v
之间的最大连接距离radius
(通过p
-闵可夫斯基距离计算)和权重之和 \(w_u\) + \(w_v\) 大于或等于阈值参数theta
,则它们之间会有一条边。当SciPy可用时,使用KDTree确定彼此在
radius
内的边,这将从 \(O(n^2)\) 的时间复杂度降低到 \(O(n)\) 。- Parameters:
- nint 或 iterable
节点数量或节点迭代器
- radius: float
距离阈值
- theta: float
阈值
- dimint, 可选
图的维度
- posdict, 可选
一个以节点为键,节点位置为值的字典。
- weightdict, 可选
节点权重,以节点为键的数字字典。
- pfloat, 可选 (默认 2)
使用哪种闵可夫斯基距离度量。
p
必须满足条件1 <= p <= 无穷大
。如果未指定此参数,则使用 \(L^2\) 度量(欧几里得距离度量),p = 2。
这不应与表示概率的Erdős-Rényi随机图的
p
混淆。- seedinteger, random_state, 或 None (默认)
随机数生成状态的指示器。 参见 Randomness 。
- pos_namestring, 默认=”pos”
返回图中表示节点在2D坐标中位置的节点属性名称。
- weight_namestring, 默认=”weight”
返回图中表示节点权重的节点属性名称。
- Returns:
- Graph
一个无向且无自环的阈值随机地理图。
每个节点都有一个节点属性
'pos'
,存储该节点在欧几里得空间中的位置,由pos
关键字参数提供,或者如果未提供pos
,则由该函数生成。同样,每个节点都有一个节点属性'weight'
,存储该节点的权重,由提供或生成。
Notes
这使用*k*-d树来构建图。
pos
关键字参数可用于指定节点位置,以便您可以创建任意分布和位置域。例如,要使用均值为(0, 0)和标准差为2的2D高斯分布的节点位置
如果未指定权重,则从速率参数 \(\lambda=1\) 的指数分布中随机分配给节点。要指定来自不同分布的权重,请使用
weight
关键字参数:::
>>> import random >>> import math >>> n = 50 >>> pos = {i: (random.gauss(0, 2), random.gauss(0, 2)) for i in range(n)} >>> w = {i: random.expovariate(5.0) for i in range(n)} >>> G = nx.thresholded_random_geometric_graph(n, 0.2, 0.1, 2, pos, w)
References
Examples
默认图:
G = nx.thresholded_random_geometric_graph(50, 0.2, 0.1)
自定义图:
在50个均匀分布的节点上创建一个阈值随机几何图,其中节点在权重之和从速率为5的指数分布中抽取且大于等于theta = 0.1,并且它们的欧几里得距离最多为0.2时连接。