当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX thresholded_random_geometric_graph用法及代码示例


本文简要介绍 networkx.generators.geometric.thresholded_random_geometric_graph 的用法。

用法:

thresholded_random_geometric_graph(n, radius, theta, dim=2, pos=None, weight=None, p=2, seed=None)

返回单位立方体中的阈值随机几何图。

阈值随机几何图 [1] 模型将 n 节点均匀地随机放置在维度为 dim 的单位立方体中。每个节点 u 被分配一个权重 。两个节点 uv 如果在最大连接距离内,则通过边连接,radiusp -Minkowski 距离计算,并且权重的总和 + 大于或等于阈值参数 theta

当 SciPy 可用时,使用 KDTree 确定彼此在 radius 内的边。这将时间复杂度从 降低到

参数

nint 或可迭代

节点数或可迭代节点

radius: float

距离阈值

theta: float

阈值

dim整数,可选

图的维度

pos字典,可选

以节点位置为值的节点键控字典。

weight字典,可选

节点权重作为由节点键入的数字字典。

p浮点数,可选(默认 2)

使用哪个 Minkowski 距离度量。 p 必须满足条件 1 <= p <= infinity

如果未指定此参数,则使用 度量(欧几里德距离度量),p = 2。

这不应与 Erdős-Rényi 随机图的 p 混淆,它表示概率。

seed整数、random_state 或无(默认)

随机数生成状态的指示符。请参阅随机性。

返回

图形

阈值随机地理图,无向且无自环。

每个节点都有一个节点属性'pos',该属性存储该节点在欧几里得空间中的位置,由pos 关键字参数提供,或者如果没有提供pos,则由该函数生成。类似地,每个节点都有一个 nodethre 属性'weight',该属性存储该节点的权重,如提供或生成。

注意

这使用 k -d 树来构建图形。

pos 关键字参数可用于指定节点位置,因此您可以为位置创建任意分布和域。

例如,要使用均值 (0, 0) 和标准差 2 的节点位置的 2D 高斯分布

如果未指定权重,则通过使用速率参数 从 index 分布中随机抽取来将它们分配给节点。要指定来自不同分布的权重,请使用 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)

参考

1

http://cole-maclean.github.io/blog/files/thesis.pdf

例子

默认图表:

G = nx.thresholded_random_geometric_graph(50, 0.2, 0.1)

自定义图表:

在 50 个均匀分布的节点上创建一个阈值随机几何图,如果从比率 = 5 的 index 分布中提取的总权重 >= theta = 0.1 并且它们的欧几里德距离最多为 0.2,则这些节点由一条边连接。

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.generators.geometric.thresholded_random_geometric_graph。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。