最小全域木
# 点はk次元空間 # 描図は2次元 library(vegan) Npt<-100 k<-4 X<-matrix(0,Npt,k) for(i in 2:Npt){ X[i,]<-X[i-1,]+rnorm(k) } MST<-spantree(dist(X)) plot(X[,1:2]) # MST[[1]]は2:Npt番ノードの子ノードIDなので # 以下でエッジを引くことができる As<-2:Npt Bs<-MST[[1]] segments(X[As,1],X[As,2],X[Bs,1],X[Bs,2],col=2) # エッジの長さの和 sum(MST[[2]])
- for()を使わない案はこちら(乱数は一度に発生する方が速い)
- for()は…「プロセス」を追いかけている姿だから好き(後から読み返して、何をしたかったかがわかりやすい)