2017-01-27 6 views
0

私はRを使ってDAG(Directed Acyclic graph)を生成しています。 次のコードでErdős-Rényiグラフを生成します。Rでランダムな非循環グラフを生成するとループとバイディレーグが表示されます

library(igraph) 
aph <- erdos.renyi.game(12, 0.1, type=c("gnp", "gnm"), 
          directed = TRUE, loops = FALSE) 

問題はあっても、それはコードが依然としてループを生成しているとグラフが指向されていない

directed = TRUE ,`loops = FALSE` 

と言うことです。 画像1には、頂点211に双方向のエッジが含まれています。 画像2には、ノード6,9および7からのループがあります。

First graph

Second graph

どのように私はこの問題を解決し、正しいDAGを生成することができますか?

+0

こんにちはを使用することができます!グラフは、AからBに向かうエッジとBからAに行くエッジを持つことができます。私はループについて調べます:あなたの望む結果は何ですか? DAGの権利? – Ale

+0

よく方向付けされた有向グラフ、つまりAからBへのパスがあれば、BからAへのパスであってはなりません。 – Caleb

答えて

0

ランダムDAGを生成するには、pcalgライブラリ

library(pcalg) 
set.seed(101) 
myDAG <- randomDAG(n = 20, prob= 0.2, lB = 0.1, uB = 1) 
plot(myDAG) 
+0

私はUbuntu 16.04を使用しています。この環境では、pcalgパッケージ。 CRANで利用できないパッケージが不足しています。したがって、これらの方法でインストールする必要があります。 [ここ](http://stackoverflow.com/questions/25434335/how-to-plot-a-complete-graph-in-r/r/25434810)と[こちら](http://stackoverflow.com/questions)をご確認ください。/18023300/is-rgraphviz-no-longer-available-for-r)を指定します。 – Caleb

関連する問題