ランダムグラフの作り方
まずn個の頂点を用意します。各2点間(全部で n(n-1)/2ペア)について、それぞれさいころをふって出た数によって確率pでエッジを与え、確率1-pで与えないだけです。
頂点の数n = 50の条件で、pの値を0.01, 0.05, 0.1, 0.3と変化させて、どのようなグラフができるかを見てみます。
library(igraph)
#pの値を変化させて目的のグラフを作成
g1 <- random.graph.game(50, p=0.01, direct=F)
g2 <- random.graph.game(50, p=0.01, direct=F)
g3<- random.graph.game(50, p=0.1, direct=F)
g4 <- random.graph.game(50, p=0.3, direct=F)
#各々をプロットする
png("random.graph.png")
par(mfrow=c(2,2))
plot(g1, main = "random graph n = 50, p = 0.01")
plot(g2, main = "random graph n = 50, p = 0.05")
plot(g3, main = "random graph n = 50, p = 0.1")
plot(g4, main = "random graph n = 50, p = 0.3")
dev.off()
pの値が小さいと、ネットワークが分断してしまいました。pの値を大きくすると、ネットワークは密になり、pが0.3では極めて密なネットワークが生成しました。
【参考文献】
増田直紀 今野紀雄 『「複雑ネットワーク」とは何か』 講談社 2006 54 - 57pp