跳到内容

此函数基于 Watts-Strogatz 模型的变体生成具有小世界属性的网络。通过首先创建一个周期性无向格,然后以概率 p 重连每条边的两个端点,同时避免创建多重边,来获得网络。

用法

sample_smallworld(dim, size, nei, p, loops = FALSE, multiple = FALSE)

smallworld(...)

参数

dim

整数常量,起始格的维度。

size

整数常量,格在每个维度上的大小。

nei

整数常量,格的顶点将被连接的邻域范围。

p

零到一之间的实数常量,重连概率。

loops

逻辑标量,是否允许在生成的图中存在环。

multiple

逻辑标量,是否允许在生成的图中存在多重边。

...

传递给 sample_smallworld()

一个图对象。

详细信息

请注意,此函数可能会创建具有环和/或多重边的图。您可以使用 simplify() 来消除这些。

此过程与 Watts 和 Strogatz 的原始模型(参见参考资料)不同,因为它重连边的**两个**端点。因此,在 p=1 的极限情况下,我们获得一个 G(n,m) 随机图,其顶点和边数与原始格相同。相比之下,原始的 Watts-Strogatz 模型仅重连每条边的一个端点,因此即使对于 p=1,网络也不会完全随机化。对于 p 的适当选择,这两种模型都表现出同时具有短路径长度和高聚类系数的特性。

参考文献

Duncan J Watts and Steven H Strogatz: Collective dynamics of ‘small world’ networks, Nature 393, 440-442, 1998.

作者

Gabor Csardi csardi.gabor@gmail.com

示例


g <- sample_smallworld(1, 100, 5, 0.05)
mean_distance(g)
#> [1] 2.651717
transitivity(g, type = "average")
#> [1] 0.4970309