所有节点对组的最短路径距离
语法
d = distances(G)
d = distances(G,s)
d = distances(G,s,t)
d = distances(___,'Method',algorithm)
说明
d = distances(G)
返回矩阵 d
,其中 d(i,j)
是节点 i
和节点 j
之间的最短路径的长度。如果图进行了加权(即 G.Edges
包含变量 Weight
),则这些权重用作沿图中各边的距离。否则,所有边距离都视为 1
。
d = distances(G,s)
将源节点限制为由 s
定义的节点,这样 d(i,j)
就是从节点 s(i)
到节点 j
的距离。
d = distances(G,s,t)
还将目标节点限制为由 t
定义的节点,这样 d(i,j)
就是从节点 s(i)
到节点 t(j)
的距离。
d = distances(___,'Method',algorithm)
可以使用上述语法中的任何输入参数指定在计算最短路径时使用的算法。例如,如果 G
是加权图,则 distances(G,'Method','unweighted')
将忽略 G
中的边权重,而将所有边权重视为 1
。
提示
-
shortestpath
、shortestpathtree
和distances
函数不支持具有负边权重的无向图,或更通俗地说,不支持包含负循环的任何图,原因如下:-
负循环是从节点出发回到自身的路径,路径上的边权重之和为负值。如果两个节点之间的路径上具有负循环,则这两个节点之间不存在最短路径,因为始终可以通过遍历负循环找到更短路径。
-
无向图中的单个负边权重会创建一个负循环。
-