我试图通过一个转移矩阵得到两个节点之间的所有最短路径。
矩阵不是对称的,因为图不是有向的。我使用了以下代码:
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却不起作用。
发布于 2015-12-05 19:45:37
您还没有设置mode参数的shortest.paths,该参数应该用来判断是否要考虑边缘方向。我认为mode="all"是默认的,它不考虑边缘方向,因为它允许在两个方向上遍历边缘。试一试mode="out"。
https://stackoverflow.com/questions/34106684
复制相似问题