測地線

イメージ 1 測地線の数と長さを求めるにはgeodist関数を使う。

例.

> dat <- matrix(c(
+ 0,1,1,0,
+ 0,0,0,1,
+ 0,0,0,1,
+ 0,0,0,0),
+ 4, byrow = T)
> geodist(dat)

$counts
    [,1] [,2] [,3] [,4]
[1,]  1  1  1  2
[2,]  0  1  0  1
[3,]  0  0  1  1
[4,]  0  0  0  1

$gdist
    [,1] [,2] [,3] [,4]
[1,]  0  1  1  2
[2,]  Inf  0  Inf 1
[3,]  Inf Inf  0  1
[4,]  Inf Inf  Inf  0


$countsで測地線(最短経路)の数が、$gdistで測地線距離(最短距離)が行列の形で得られる。

注意

geodistに入力するネットワークのデータは二値、すなわち各辺の重みは0か1であることを想定している。
追記:重みがついていても全て同じ値であれば、正しい距離が算出される。ステップ数(たどる辺の数)が最も小さい経路を測地線とするため、ステップ数は大きいが、その重みの合計は小さいような経路があると、正しい距離が算出されない。

その他のパラメータ

inf.replace
結合していないノード間の距離に使用する値を指定する。デフォルトはInf(無限大)。