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\) 必须满足:

  1. \(d(x, y) \ge 0\)

  2. \(d(x, y) = 0\) 当且仅当 \(x = y\)

  3. \(d(x, y) = d(y, x)\)

  4. \(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)