- 多次元立方格子上の点の占拠状態を把握したい
- 点の座標からペアワイズの距離行列を作ることは容易
- 距離行列と格子をグラフとみなした場合の隣接行列との関係を確認しよう
- 1辺の長さが1の場合で考える
M <- E <- list()
M[[1]] <- matrix(0,1,1)
E[[1]] <- matrix(0,1,1)
n <- 10
for(i in 2:n){
up.e <- cbind(E[[i-1]],diag(rep(1,2^(i-2))))
lw.e <- cbind(diag(rep(1,2^(i-2))),E[[i-1]])
E[[i]] <- rbind(up.e,lw.e)
up.m <- cbind(M[[i-1]],M[[i-1]]+1)
lw.m <- cbind(M[[i-1]]+1,M[[i-1]])
M[[i]] <- rbind(up.m,lw.m)
}
library(igraph)
G <- list()
par(ask = TRUE)
for(i in 1:n){
G[[i]] <- graph.adjacency(E[[i]],mode = "undirected")
tmp.sh.paths <- shortest.paths(G[[i]])
print(sum((tmp.sh.paths-M[[i]])^2))
plot(G[[i]])
}