- ノード数1からノードを一つずつ増やしつつ、ある確率で辺を増やしていく
- 加えたノードは必ずしも連結しない
- 連結成分の大きさの変化とその融合の具合を追いかける
n.step <- 100
m0 <- 1
g0 <- graph.empty(n=m0,directed=FALSE)
g.series <- list()
g.series[[1]] <- g0
d <- 0.01
for(i in 2:n.step){
tmp.g <- add.vertices(g.series[[i-1]],1)
m <- matrix(sample(c(0,1),i^2,replace=TRUE,prob=c(1-d,d)),i,i)
m[lower.tri(m)] <- 0
diag(m) <- 0
enlarged.m <- matrix(0,i,i)
enlarged.m[1:(i-1),1:(i-1)] <- get.adjacency(g.series[[i-1]])
already.edge <- which(enlarged.m ==1)
m[already.edge] <- 0
ed <- which(m == 1,arr.ind=TRUE)
g.series[[i]] <- add.edges(tmp.g,t(ed)-1)
}
par(mfcol=c(1,2))
for(i in 1:n.step){
plot(g.series[[i]])
plot(degree.distribution(g.series[[i]]))
Sys.sleep(0.3)
}
plot(g.series[[n.step]])
plot(degree.distribution(g.series[[n.step]]))