首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >shortest.paths和Dijkstra算法的难点

shortest.paths和Dijkstra算法的难点
EN

Stack Overflow用户
提问于 2015-12-05 14:34:36
回答 1查看 129关注 0票数 0

我试图通过一个转移矩阵得到两个节点之间的所有最短路径。

矩阵不是对称的,因为图不是有向的。我使用了以下代码:

代码语言:javascript
复制
g <- graph.adjacency(DDGraph, weighted=TRUE, mode="directed")
str(g)
      [1]   1->  2   2->  3   4-> 40   5->  6   6->164   7->  8   8-> 46   9-> 10  10->121  11-> 12  12-> 13  12->174  13-> 14  14->  1  15-> 18  16-> 17  18-> 16
s.paths <- shortest.paths(g, algorithm = "dijkstra")

现在,最后的输出是一个矩阵,它应该给出用Dijkstra算法计算的两个节点之间的距离。但我得到的是一个symmetric matrix,它不应该是。有人能告诉我我做错了什么吗?

当我使用Johnson算法时,矩阵是不对称的,据我所知,它工作得很好。

知道不能从每个节点到达每个节点可能很有帮助,因此会有很多"Inf“条目。同样,对于Johnson Algorithm,它可以工作,但对Dijkstra却不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-05 19:45:37

您还没有设置mode参数的shortest.paths,该参数应该用来判断是否要考虑边缘方向。我认为mode="all"是默认的,它不考虑边缘方向,因为它允许在两个方向上遍历边缘。试一试mode="out"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34106684

复制
相关文章

相似问题

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