我有一个小的完全连接的网络:
m<-induced.subgraph(g, V(g)[village=="sar"])以下是一个总结,6个节点和30个链接,一个完全连接的定向网络:
IGRAPH DNWB 6 30 --
attr: id (v/n), name (v/c), village (v/c), religion (v/c), adoption.lag
(v/n), type (v/c), shape (v/c), size (v/n), color (v/c), dist (v/n),
dist.sar (v/n), weight (e/n)当我运行这个程序时,我得到了一个令人惊讶的结果:
>shortest.paths(m)
A B C D E F
A 0 3 3 3 3 3
B 3 0 3 3 3 3
C 3 3 0 3 3 3
D 3 3 3 0 3 3
E 3 3 3 3 0 3
F 3 3 3 3 3 0网络是定向的,有6个节点和30个链接,因此每个节点都链接到其他每个节点:最短路径值不是应该是1吗?感谢您的评论。
发布于 2014-03-06 10:00:40
原因是链接是加权的,无论默认情况下shortest.paths(g)设置为weights=NULL,我都有:
> E(g)$weight<-1
> shortest.paths(g, V(g)[village=="rudakali"], to=V(g)[village=="rudakali"],weights=NULL)
A B C D E F
A 0 1 1 1 1 1
B 1 0 1 1 1 1
C 1 1 0 1 1 1
D 1 1 1 0 1 1
E 1 1 1 1 0 1
F 1 1 1 1 1 0
> E(g)$weight<-10
> shortest.paths(g, V(g)[village=="rudakali"], to=V(g)[village=="rudakali"],weights=NULL)
A B C D E F
A 0 10 10 10 10 10
B 10 0 10 10 10 10
C 10 10 0 10 10 10
D 10 10 10 0 10 10
E 10 10 10 10 0 10
F 10 10 10 10 10 0在Gabor注释后编辑:要去掉边缘权重,正确的代码应该是:
shortest.paths(g, V(g)[village=="rudakali"], to=V(g)[village=="rudakali"],weights=NA)https://stackoverflow.com/questions/22219645
复制相似问题