(删除)在图中找到所有最短路径
graphallshortestpaths已被删除。用distances代替。
语法
[dist
] = graphallshortestpaths(G
)
[dist
] = graphallshortestpaths(G
, ...'Directed', DirectedValue
, ...)
[dist
] = graphallshortestpaths(G
, ...'Weights', WeightsValue
, ...)
参数
G | 表示图的n × n邻接矩阵。矩阵G中的非零项表示边的权重。 |
DirectedValue | 属性,指示图形是有向的还是无向的。为无向图输入false。这导致矩阵的上三角形被忽略。默认为true。 |
WeightsValue | 为矩阵G中的边指定自定义权值的列向量。对于矩阵G中的每个非零值(边),它必须有一个条目。当按列遍历矩阵G时,向量中自定义权值的顺序必须与矩阵G中非零值的顺序匹配。此属性允许您使用零值权重。默认情况下,graphallshortestpaths从矩阵G中的非零项获取权重信息。 |
描述
[dist
] = graphallshortestpaths(G
)
使用约翰逊算法,找出矩阵G表示的图中每对节点之间的最短路径。输入G是一个表示图的n × n邻接矩阵。矩阵G中的非零项表示边的权重。
输出dist是一个n × n矩阵,其中dist(S,T)是源节点S到目标节点T的最短路径的距离。该矩阵对角线上的元素总是0,表示源节点和目标节点是相同的。如果0不在对角线上,则表示源节点到目标节点的距离为0。Inf表示源节点和目标节点之间没有路径。
Johnson算法的时间复杂度为O(N*log(N)+N*E),其中N为节点数,E为边数。
[...] = graphallshortestpaths (
G
, 'PropertyName
', PropertyValue
, ...)
使用使用属性名称/属性值对的可选属性调用graphallshortestpaths。您可以以任何顺序指定一个或多个属性。每个PropertyName必须用单引号括起来,不区分大小写。这些属性名/属性值对如下:
[dist
] = graphallshortestpaths(G
, ...'Directed', DirectedValue
, ...)
表示图形是有向的还是无向的。对于无向图,将DirectedValue设置为false。这导致矩阵的上三角形被忽略。默认为true。
[dist
] = graphallshortestpaths(G
, ...'Weights', WeightsValue
, ...)
允许您为边指定自定义权重。WeightsValue是一个列向量,对于矩阵G中的每个非零值(边)都有一个条目。当按列遍历矩阵G时,向量中自定义权重的顺序必须与矩阵G中非零值的顺序匹配。此属性允许您使用零值权重。默认情况下,graphallshortestpaths从矩阵G中的非零项获取权重信息。
参考文献
[1] Johnson, D.B. (1977). Efficient algorithms for shortest paths in sparse networks. Journal of the ACM 24(1), 1-13.
[2] Siek, J.G., Lee, L-Q, and Lumsdaine, A. (2002). The Boost Graph Library User Guide and Reference Manual, (Upper Saddle River, NJ:Pearson Education).
版本历史
在R2006b中引入
R2022b:删除
graphallshortestpaths已被删除。用distances代替。
R2022a:警告
graphallshortestpaths发出警告,它将在未来的版本中被删除。
R2021b:待移除
graphallshortestpaths运行时没有警告,但它将在未来的版本中被删除。
R2021b:支持完整矩阵
除了稀疏矩阵之外,该函数现在还支持完整矩阵。