如果您从 R 中使用 igraph,请使用此选项
sample_pa_age {igraph} | R 文档 |
此函数通过模拟图的演化来创建随机图。每次添加新顶点时,它会创建一些到旧顶点的链接,并且旧顶点被引用的概率取决于它的入度(优先连接)和年龄。
sample_pa_age(
n,
pa.exp,
aging.exp,
m = NULL,
aging.bin = 300,
out.dist = NULL,
out.seq = NULL,
out.pref = FALSE,
directed = TRUE,
zero.deg.appeal = 1,
zero.age.appeal = 0,
deg.coef = 1,
age.coef = 1,
time.window = NULL
)
pa_age(...)
n |
图中顶点的数量。 |
pa.exp |
优先连接指数,请参见下面的详细信息。 |
aging.exp |
老化的指数,通常是一个非正数,请参见下面的详细信息。 |
m |
每个新顶点创建的边数(除了第一个顶点)。仅当 |
aging.bin |
用于测量顶点年龄的 bin 的数量,请参见下面的详细信息。 |
out.dist |
如果 |
out.seq |
每个时间步要添加的边数,一个向量,包含与顶点数一样多的元素。请参见下面的详细信息。 |
out.pref |
逻辑常量,是否包括非顶点发起的边作为优先连接的基础。请参见下面的详细信息。 |
有向 |
逻辑常量,是否生成有向图。请参见下面的详细信息。 |
zero.deg.appeal |
没有相邻边的顶点的“吸引力”的度数相关部分。另请参见下面的详细信息。 |
zero.age.appeal |
年龄为零的顶点的“吸引力”的年龄相关部分。通常为零,请参见下面的详细信息。 |
deg.coef |
度数相关的“吸引力”的系数。请参见下面的详细信息。 |
age.coef |
“吸引力”的年龄相关部分的系数。请参见下面的详细信息。 |
time.window |
整数常量,如果为 NULL,则仅将在过去 |
... |
传递给 |
这是一个增长图的离散时间步模型。我们从一个包含单个顶点(没有边)的网络开始于第一个时间步。然后在每个时间步(从第二个开始),添加一个新的顶点,并且它会发起一些边到网络中的旧顶点。旧顶点连接到的概率与以下成比例:
P[i] \sim (c\cdot k_i^\alpha+a)(d\cdot l_i^\beta+b)
.
这里 k_i
是顶点 i
在当前时间步的入度,l_i
是顶点 i
的年龄。年龄简单地定义为自添加顶点以来经过的时间步数,扩展是顶点年龄被划分为 aging.bin
个 bin。
c
,\alpha
,a
,d
,\beta
和 b
是参数,可以通过以下参数设置:pa.exp
(\alpha
,必需参数),aging.exp
(\beta
,必需参数),zero.deg.appeal
(a
,可选,默认值为 1),zero.age.appeal
(b
,可选,默认值为 0),deg.coef
(c
,可选,默认值为 1)和 age.coef
(d
,可选,默认值为 1)。
每个时间步发起的边数由 m
,out.seq
和 out.pref
参数控制。如果给出了 out.seq
,则将其解释为一个向量,给出每个时间步要添加的边数。它应该的长度为 n
(顶点数),并且它的第一个元素将被忽略。如果未给出 out.seq
(或 NULL)且给出了 out.dist
,则它将用作离散概率分布以生成边数。它的第一个元素给出了在某个时间步添加零条边的概率,第二个元素是添加一条边的概率,等等。(out.seq
应该包含非负数,但如果它们加起来不等于 1,它们将被标准化为加起来等于 1。此行为类似于 sample
命令的 prob
参数。)
默认情况下会生成一个有向图,但如果 directed
设置为 FALSE
,则会创建一个无向图。即使生成了无向图,k_i
也仅表示非顶点本身发起的相邻边,除非 out.pref
设置为 TRUE
。
如果给出了 time.window
参数(并且不为 NULL),则 k_i
仅表示在先前 time.window
时间步中添加的相邻边。
此函数可能会生成具有多条边的图。
一个新的图。
Gabor Csardi csardi.gabor@gmail.com
# The maximum degree for graph with different aging exponents
g1 <- sample_pa_age(10000, pa.exp=1, aging.exp=0, aging.bin=1000)
g2 <- sample_pa_age(10000, pa.exp=1, aging.exp=-1, aging.bin=1000)
g3 <- sample_pa_age(10000, pa.exp=1, aging.exp=-3, aging.bin=1000)
max(degree(g1))
max(degree(g2))
max(degree(g3))