2016-07-05 4 views
0

を使用して小世界ネットワークを生成したいが、watts.strogatz.game()に実装されているように「再配線」を使用しない。 Newmanのバリエーションでは、すべてのローカルリンクは固定されていますが、一定数のランダムリンクが固定レートで(基本的に「長距離」接続を追加して)ネットワーク上でランダムに持ち上げられ、落とされます。私は単純に格子(例えばg <- graph.lattice(length=20, dim=1, circular=TRUE))を生成し、その上に古典的なランダムグラフを置くことができたと思った。しかし、グラフを入力引数として使用する方法はわかりません。あるいは、特定の確率でランダムなエッジを追加することは可能でしょうか?igraphでSmallmanモデルをNewman-Wattsアルゴリズムを使用して生成する

ご協力いただきありがとうございます。

ありがとうございます!

答えて

1

graph.latticeを使用して格子を生成し、次にerdos.renyi.gameを同じ数の頂点とし、ランダムグラフを生成する確率を固定します。次に、%u%(共用体)演算子を使用して2つのグラフを結合することができます。同じエッジがラティスとランダムグラフの一部になった場合、マルチエッジの可能性はわずかです。したがって、望ましくない場合は、simplify()もユニオンで呼び出す必要があります。

+0

Fab!十分に簡単に聞こえます。助けてくれてありがとう、Tamas! – Sibylle

0

これは、誰かが興味がある場合のために、トリックを行うようです。この「再配線」を繰り返し行う機能を作成するだけです。多くのおかげで再び、Tamas!

library(igraph) 
g <- graph.lattice(length=100, dim=1, circular=TRUE) 
g2 <- erdos.renyi.game(100, 1/100) 
g3 <- g %u% g2 
g3 <- simplify(g3) 
plot.igraph(g3, vertex.size = 1,vertex.label = NA, layout=layout_in_circle) 
関連する問題