首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用shortest.path在in中的奇怪结果

用shortest.path在in中的奇怪结果
EN

Stack Overflow用户
提问于 2014-03-06 09:05:02
回答 1查看 120关注 0票数 0

我有一个小的完全连接的网络:

代码语言:javascript
复制
m<-induced.subgraph(g, V(g)[village=="sar"])

以下是一个总结,6个节点和30个链接,一个完全连接的定向网络:

代码语言:javascript
复制
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)

当我运行这个程序时,我得到了一个令人惊讶的结果:

代码语言:javascript
复制
>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吗?感谢您的评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-06 10:00:40

原因是链接是加权的,无论默认情况下shortest.paths(g)设置为weights=NULL,我都有:

代码语言:javascript
复制
> 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注释后编辑:要去掉边缘权重,正确的代码应该是:

代码语言:javascript
复制
shortest.paths(g, V(g)[village=="rudakali"], to=V(g)[village=="rudakali"],weights=NA)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22219645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档