如果您从 R 中使用 igraph,请使用此选项
sample_pa {igraph} | R 文档 |
优先连接是一种用于构建图的简单随机算法族。变体包括 Barabási-Abert 模型和 Price 模型。
sample_pa(
n,
power = 1,
m = NULL,
out.dist = NULL,
out.seq = NULL,
out.pref = FALSE,
zero.appeal = 1,
directed = TRUE,
algorithm = c("psumtree", "psumtree-multiple", "bag"),
start.graph = NULL
)
pa(...)
n |
顶点数。 |
power |
优先连接的幂,默认值为 1,即线性优先连接。 |
m |
数值常数,每个时间步要添加的边数。仅当省略 |
out.dist |
数值向量,每个时间步要添加的边数的分布。仅当省略 |
out.seq |
数值向量,给出每个时间步要添加的边数。它的第一个元素被忽略,因为第一个时间步不添加边。 |
out.pref |
逻辑值,如果为真,则总度数用于计算引用概率,否则使用入度。 |
zero.appeal |
没有相邻边的顶点的“吸引力”。请参阅下面的详细信息。 |
有向 |
是否创建有向图。 |
algorithm |
用于生成图的算法。 |
start.graph |
|
... |
传递给 |
这是一个简单的随机算法,用于生成图。它是一个离散时间步模型,在每个时间步中添加一个顶点。
我们从第一个时间步中的单个顶点和没有边开始。然后在每个时间步中添加一个顶点,并且新顶点启动一些到旧顶点的边。旧顶点被选择的概率由下式给出
P[i] \sim k_i^\alpha+a
其中 k_i
是当前时间步中顶点 i
的入度(更准确地说,是 i
的相邻边的数量,这些边不是由 i
本身启动的),\alpha
和 a
是由 power
和 zero.appeal
参数给出的参数。
在时间步中启动的边数由 m
、out.dist
和 out.seq
参数给出。如果给出了 out.seq
且不为 NULL,那么它在一个向量中给出要添加的边数,第一个元素被忽略,第二个是在第二个时间步中要添加的边数,依此类推。如果未给出 out.seq
或为 null 并且给出了 out.dist
且不为 NULL,那么它用作离散分布来生成每个时间步中的边数。它的第一个元素是不添加边的概率,第二个是添加一条边的概率,等等。(out.dist
不需要总和为 1,它会自动标准化。)out.dist
应该包含非负数,并且至少一个元素应该是正数。
如果省略 out.seq
和 out.dist
或为 NULL,那么将使用 m
,它应该是一个正整数常数,并且在每个时间步添加 m
条边。
sample_pa
默认生成一个有向图,将 directed
设置为 FALSE
以生成无向图。请注意,即使生成了无向图,k_i
也表示不由顶点本身启动的相邻边的数量,而不是顶点的总(入 + 出)度数,除非将 out.pref
参数设置为 TRUE
。
一个图对象。
Gabor Csardi csardi.gabor@gmail.com
Barabasi, A.-L. and Albert R. 1999. Emergence of scaling in random networks Science, 286 509–512.
de Solla Price, D. J. 1965. Networks of Scientific Papers Science, 149 510–515.
g <- sample_pa(10000)
degree_distribution(g)