shortest.paths 和 Dijkstra 算法的困难

Difficulties with shortest.paths and Dijkstra Algorithm

我试图借助转换矩阵获得两个节点之间的所有最短路径。
矩阵不对称,因为图形不是有向的。我使用了以下代码:

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 .

你没有设置shortest.pathsmode参数,这个参数是用来告诉igraph是否考虑边缘方向的。我认为 mode="all" 是默认值,它不考虑边缘方向,因为它允许在两个方向上遍历边缘。请尝试 mode="out"