此函数通过模拟其演化来创建一个随机图。每次添加一个新顶点时,它都会创建多个到旧顶点的链接,并且旧顶点被引用的概率取决于其入度(优先连接)和年龄。
用法
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
每个新顶点创建的边数(第一个顶点除外)。仅当
out.dist
和out.seq
参数都为 NULL 时才使用此参数。- aging.bin
用于衡量顶点年龄的 bin 数量,请参见下面的详细信息。
- out.dist
如果
out.seq
为 NULL,则用于生成每个时间步中要添加的边数的离散分布。请参见下面的详细信息。- out.seq
每个时间步中要添加的边数,一个包含与顶点数一样多的元素的向量。请参见下面的详细信息。
- out.pref
逻辑常量,是否将不是由顶点发起的边包括在优先连接的基础中。请参见下面的详细信息。
- directed
逻辑常量,是否生成有向图。请参见下面的详细信息。
- zero.deg.appeal
没有相邻边的顶点的“吸引力”的度数相关部分。另请参见下面的详细信息。
- zero.age.appeal
年龄为零的顶点的“吸引力”的年龄相关部分。它通常为零,请参见下面的详细信息。
- deg.coef
度数相关的“吸引力”的系数。请参见下面的详细信息。
- age.coef
“吸引力”的年龄相关部分的系数。请参见下面的详细信息。
- time.window
整数常量,如果为 NULL,则仅将最后
time.windows
时间步中添加的相邻边计为优先连接的基础。另请参见下面的详细信息。- ...
传递给
sample_pa_age()
。
详细信息
这是一个增长图的离散时间步模型。我们从一个在第一时间步包含单个顶点(且没有边)的网络开始。然后在每个时间步(从第二个开始),添加一个新顶点,并启动多个到网络中旧顶点的边。旧顶点连接到的概率与 $$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
时间步中添加的相邻边。
此函数可能会生成具有多条边的图。
参见
随机图模型(游戏) bipartite_gnm()
, erdos.renyi.game()
, sample_()
, sample_bipartite()
, sample_chung_lu()
, sample_correlated_gnp()
, sample_correlated_gnp_pair()
, sample_degseq()
, sample_dot_product()
, sample_fitness()
, sample_fitness_pl()
, sample_forestfire()
, sample_gnm()
, sample_gnp()
, sample_grg()
, sample_growing()
, sample_hierarchical_sbm()
, sample_islands()
, sample_k_regular()
, sample_last_cit()
, sample_pa()
, sample_pref()
, sample_sbm()
, sample_smallworld()
, sample_traits_callaway()
, sample_tree()
作者
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))
#> [1] 195
max(degree(g2))
#> [1] 25
max(degree(g3))
#> [1] 10