graphscope.nx.generators.geometric.random_geometric_graph¶
- graphscope.nx.generators.geometric.random_geometric_graph(n, radius, dim=2, pos=None, p=2, seed=None)[源代码]¶
返回一个在dim维单位立方体内的随机几何图。
随机几何图模型将n个节点均匀随机地放置在单位立方体中。如果两个节点之间的距离不超过radius,则这两个节点通过一条边连接。
当SciPy可用时,使用KDTree确定边的关系。这将时间复杂度从$O(n^2)$降低到$O(n)$。
- Parameters:
n (int 或 可迭代对象) – 节点数量或可迭代的节点集合
radius (float) – 距离阈值
dim (int, optional) – 图的维度
pos (dict, 可选) – 一个以节点为键、节点位置为值的字典。
p (float, optional) –
指定使用的闵可夫斯基距离度量。p 必须满足条件
1 <= p <= infinity。如果未指定此参数,则默认使用\(L^2\)度量 (欧几里得距离度量),即 p = 2。 请注意不要将其与Erdős-Rényi随机图中的p混淆,后者表示概率。
seed (integer, random_state, or None (default)) - 随机数生成状态的指示器。 参见随机性。
- Returns:
一个无向且无自环的随机几何图。 每个节点具有一个名为
'pos'的节点属性,用于存储该节点在欧几里得空间中的位置,该位置由pos关键字参数提供,如果未提供pos参数,则由本函数生成。- Return type:
示例
创建一个包含20个节点的随机几何图,其中如果节点之间的距离不超过0.1,则通过边连接:
>>> G = nx.random_geometric_graph(20, 0.1)
备注
这使用了一个k-d树来构建图。
pos关键字参数可用于指定节点位置,因此您可以创建任意的位置分布和定义域。
例如,要使用均值为(0, 0)、标准差为2的二维高斯分布作为节点位置:
>>> import random >>> n = 20 >>> pos = {i: (random.gauss(0, 2), random.gauss(0, 2)) for i in range(n)} >>> G = nx.random_geometric_graph(n, 0.2, pos=pos)
参考文献