如果您从 R 中使用 igraph,请使用此选项
sample_fitness {igraph} | R 文档 |
此函数生成一个非增长随机图,其边的概率与节点适应度分数成比例。
sample_fitness(
no.of.edges,
fitness.out,
fitness.in = NULL,
loops = FALSE,
multiple = FALSE
)
no.of.edges |
生成的图中的边数。 |
fitness.out |
一个数值向量,包含每个顶点的适应度。对于有向图,这指定了每个顶点的出度适应度。 |
fitness.in |
如果为 如果此参数不为 |
循环 |
逻辑标量,是否允许图中的循环边。 |
multiple |
逻辑标量,是否允许图中的多重边。 |
此函数生成一个有向或无向随机图,其中顶点 i
和 j
之间边的概率取决于所涉及的两个顶点的适应度分数。 对于无向图,每个顶点都有一个适应度分数。 对于有向图,每个顶点都有一个出度和入度适应度,并且从 i
到 j
的边的概率取决于顶点 i
的出度适应度和顶点 j
的入度适应度。
生成过程如下。 我们从 N
个断开连接的节点开始(其中 N
由适应度向量的长度给出)。 然后我们随机选择两个顶点 i
和 j
,其概率与它们的适应度成正比。 (当生成的图是有向图时,i
根据出度适应度选择,j
根据入度适应度选择)。 如果顶点尚未连接(或者如果允许多重边),我们会连接它们; 否则我们选择一个新的对。 重复此操作,直到创建所需数量的链接。
可以证明,每个顶点的预期度数将与其适应度成正比,尽管实际观察到的度数不会。 如果您需要生成具有精确度序列的图,请考虑使用 sample_degseq
。
此模型通常用于生成静态无标度网络。 为实现此目的,您必须从所需的幂律分布中提取适应度分数。 或者,您可以使用 sample_fitness_pl
,它会为您生成具有给定指数的适应度。
一个 igraph 图,有向或无向。
Tamas Nepusz ntamas@gmail.com
Goh K-I, Kahng B, Kim D: Universal behaviour of load distribution in scale-free networks. Phys Rev Lett 87(27):278701, 2001.
N <- 10000
g <- sample_fitness(5*N, sample((1:50)^-2, N, replace=TRUE))
degree_distribution(g)
## Not run: plot(degree_distribution(g, cumulative=TRUE), log="xy")