Shortest path distances of all node pairs
returns a matrix, d
= distances(G
)d
, where d(i,j)
is the
length of the shortest path between node i
and node
j
. If the graph is weighted (that is,
G.Edges
contains a variable Weight
), then
those weights are used as the distances along the edges in the graph. Otherwise, all
edge distances are taken to be 1
.
optionally specifies the algorithm to use in computing the shortest path using any
of the input arguments in previous syntaxes. For example, if d
= distances(___,'Method',algorithm
)G
is
a weighted graph, then distances(G,'Method','unweighted')
ignores
the edge weights in G
and instead treats all edge weights as
1
.
The shortestpath
, shortestpathtree
, and
distances
functions do not support undirected graphs with
negative edge weights, or more generally any graph containing a negative cycle,
for these reasons:
A negative cycle is a path that leads from a node back to itself, with the sum of the edge weights on the path being negative. If a negative cycle is on a path between two nodes, then no shortest path exists between the nodes, since a shorter path can always be found by traversing the negative cycle.
A single negative edge weight in an undirected graph creates a negative cycle.
digraph
| graph
| nearest
| shortestpath
| shortestpathtree