geographical_threshold_graph#
- geographical_threshold_graph(n, theta, dim=2, pos=None, weight=None, metric=None, p_dist=None, seed=None, *, pos_name='pos', weight_name='weight')[source]#
返回一个地理阈值图。
地理阈值图模型将 \(n\) 个节点均匀随机地放置在一个矩形域中。每个节点 \(u\) 被分配一个权重 \(w_u\)。如果两个节点 \(u\) 和 \(v\) 满足以下条件,则它们之间会有一条边:
\[(w_u + w_v)p_{dist}(r) \ge \theta\]其中
r
是 \(u\) 和 \(v\) 之间的距离,p_dist
是r
的任意函数,\(\theta\) 是阈值参数。p_dist
用于在决定节点是否应该连接时给距离赋予权重。p_dist
越大,相距r
的节点越容易被连接,反之亦然。- Parameters:
- nint 或 iterable
节点数量或节点迭代器
- thetafloat
阈值
- dimint, 可选
图的维度
- posdict
节点位置,以节点为键的字典,值为元组
- weightdict
节点权重,以节点为键的字典,值为数字
- metricfunction
向量(以列表或元组表示)上的度量函数。该函数必须接受两个列表(或元组)作为输入并返回一个数字。该函数还必须满足度量的四个要求。具体来说,如果 \(d\) 是函数,\(x\)、\(y\) 和 \(z\) 是图中的向量,则 \(d\) 必须满足:
\(d(x, y) \ge 0\),
\(d(x, y) = 0\) 当且仅当 \(x = y\),
\(d(x, y) = d(y, x)\),
\(d(x, z) \le d(x, y) + d(y, z)\)。
如果未指定此参数,则使用欧几里得距离度量。
- p_distfunction, 可选
用于在决定节点是否应该连接时给距离赋予权重的任意函数。
p_dist
最初被设想为给定度量距离r
的两个节点连接概率的概率密度函数。这里的实现允许更任意的p_dist
定义,不需要对应于有效的概率密度函数。scipy.stats
包实现了许多概率密度函数和自定义概率密度定义的工具,可以使用 scipy.stats 分布的pdf
方法。如果p_dist=None
(默认),则使用指数函数 \(r^{-2}\)。- seedinteger, random_state, 或 None(默认)
随机数生成状态的指示器。 参见 Randomness 。
- pos_namestring, 默认=”pos”
返回图中表示节点在二维坐标中位置的节点属性名称。
- weight_namestring, 默认=”weight”
返回图中表示节点权重的节点属性名称。
- Returns:
- Graph
一个随机的地理阈值图,无向且无自环。
每个节点都有一个
pos
节点属性,存储该节点在欧几里得空间中的位置,由pos
关键字参数提供或由该函数生成。类似地,每个节点都有一个weight
节点属性,存储该节点的权重,由提供或生成。
Notes
如果未指定权重,则从速率参数 \(\lambda=1\) 的指数分布中随机分配给节点。要从不同分布指定权重,请使用
weight
关键字参数:>>> import random >>> n = 20 >>> w = {i: random.expovariate(5.0) for i in range(n)} >>> G = nx.geographical_threshold_graph(20, 50, weight=w)
如果未指定节点位置,则从均匀分布中随机分配。
References
[1]Masuda, N., Miwa, H., Konno, N.: 具有小世界和无标度特性的地理阈值图。 物理评论 E 71, 036108 (2005)
[2]米兰 Bradonjić, Aric Hagberg 和 Allon G. Percus, 地理阈值图中的巨型组件和连通性, 在网络图算法和模型(WAW 2007)中, Antony Bonato 和 Fan Chung(编辑),第 209–216 页,2007
Examples
使用
metric
关键字参数指定备用距离度量。例如,使用 出租车度量 而不是默认的 欧几里得度量:>>> dist = lambda x, y: sum(abs(a - b) for a, b in zip(x, y)) >>> G = nx.geographical_threshold_graph(10, 0.1, metric=dist)