waxman_graph#
- waxman_graph(n, beta=0.4, alpha=0.1, L=None, domain=(0, 0, 1, 1), metric=None, seed=None, *, pos_name='pos')[source]#
返回一个 Waxman 随机图。
Waxman 随机图模型在矩形域中均匀随机地放置
n
个节点。每对距离为d
的节点以以下概率连接:\[p = \beta \exp(-d / \alpha L).\]此函数实现了两种 Waxman 模型,使用
L
关键字参数。Waxman-1:如果未指定
L
,则将其设置为任意两节点之间的最大距离。Waxman-2:如果指定了
L
,则两节点之间的距离从区间[0, L]
中均匀随机选择。
- Parameters:
- nint 或 iterable
节点数量或节点迭代器
- beta: float
模型参数
- alpha: float
模型参数
- Lfloat, 可选
节点之间的最大距离。如果未指定,则计算实际距离。
- domain四个数字的四元组, 可选
域大小,以
(x_min, y_min, x_max, y_max)
形式的元组给出。- metric函数
向量(表示为列表或元组)上的度量。这必须是一个接受两个列表(或元组)作为输入并产生一个数字作为输出的函数。该函数还必须满足 `度量`_ 的四个要求。具体来说,如果 \(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)\)。
如果未指定此参数,则使用欧几里得距离度量。
- seed整数, random_state, 或 None(默认)
随机数生成状态的指示器。 参见 Randomness 。
- pos_name字符串, 默认=”pos”
返回图中表示节点在二维坐标中位置的节点属性的名称。
- Returns:
- Graph
一个随机的 Waxman 图,无向且无自环。每个节点都有一个
'pos'
节点属性,存储该节点在欧几里得空间中的位置,由该函数生成。
Notes
从 NetworkX 2.0 开始,参数 alpha 和 beta 与其在概率分布中的常用角色对齐。在早期版本中,它们在表达式中的位置是颠倒的。它们的调用顺序也被颠倒,以尽量减少向后不兼容性。
References
[1]B. M. Waxman, Routing of multipoint connections. IEEE J. Select. Areas Commun. 6(9),(1988) 1617–1622.
Examples
使用
metric
关键字参数指定备用距离度量。例如,使用 “ 出租车度量” 而不是默认的 欧几里得度量:>>> dist = lambda x, y: sum(abs(a - b) for a, b in zip(x, y)) >>> G = nx.waxman_graph(10, 0.5, 0.1, metric=dist)