木のグラフを操作する(2)
- 木を作ってから距離行列を作る
- すべての辺の長さを1で考えれば、ペアの距離のうち、木の辺の数のペアの距離が1
- 残りののペアの長さを2,3,...で分配するわけだが、その分配の仕方は、木の構造(枝分かれの様子)と関係する情報になる
- ペア間距離はigraphパッケージのshortest.paths()関数を使おう
library(igraph) N<-5 M<-matrix(0,N,N) for(i in 1:(N-2)){ M[i,sample((i+1):N,1)]<-1 } M[N-1,N]<-1 M s<-sample(1:N) M<-M[s,s] M M2<-(M+t(M)) M2[lower.tri(M2)]<-0 M2 g<-graph.adjacency(M) is.connected(g,"strong") plot(g) sh.path<-shortest.paths(g)