【发布时间】:2016-04-01 17:55:13
【问题描述】:
我想使用 Barabási–Albert (BA) Preferential Attachment 模型来生成具有指定属性的图形。 顶点数和边数:V(g)=20,E(g)=72,分别。入度和出度的向量也是已知的。我想生成没有循环、多条边和孤立顶点的有向图。
有人可以提供一些想法如何设置函数 barabasi.game() 的参数吗?我当前的设置是:
out_seq<-degree(g, mode="out")
sum(out_seq)
#[1] 72
g1<-barabasi.game(20,out.seq = out_seq)
summary(g1)
#IGRAPH D--- 20 62 -- Barabasi graph
#+ attr: name (g/c), power (g/n), m (g/x), zero.appeal (g/n),
#| algorithm (g/c)
has.multiple(g1)
#[1] FALSE
之前我使用了函数degree.sequence.game()。它正在工作,但我必须删除参数:method="vl"
degs_out <- degree(g, mode="out")
degs_in <- degree(g, mode="in")
g1<-degree.sequence.game(degs_out, degs_in)#, method="vl")
# IGRAPH D D--- 20 72 -- Degree sequence random graph
#+ attr: name (g/c), method (g/c)
谢谢。
编辑。 vl 和 v1 不同。第一种情况vl是两个字母v和l,第二种情况v1包括字母v和数字1。
【问题讨论】:
-
您可以手动构建一个 out.seq 向量,使边的总数(在所有时间步长上)总计为 72。
-
@LiorKogan,谢谢。我已经构建了 out_seq 向量并检查了边的总数:总和为 72,但生成的图只有 62 条边。如何改变这种情况?
-
您是否有机会获得多重优势?您可以通过
is_simple查询。算法参数在这里对此进行了一些讨论:igraph.org/r/doc/sample_pa.html -
也刚刚在 out.seq 的文档中注意到这一点:“数值向量给出了每个时间步中要添加的边数。它的第一个元素被忽略因为没有边在第一个时间步中添加。”也许第一个元素被忽略了,其中有 10 条边?
标签: r graph-algorithm igraph