Расстояния кратчайшего пути всех пар узла
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
не поддерживают неориентированных графов с отрицательным весом ребра, или более широко любой график, содержащий отрицательный цикл, по этим причинам:
Отрицательный цикл является путем, который ведет от узла назад к себе с суммой веса ребра на пути, являющемся отрицательным. Если отрицательный цикл находится на пути между двумя узлами, то никакой кратчайший путь не существует между узлами, поскольку более короткий путь может всегда находиться путем пересечения отрицательного цикла.
Один отрицательный вес ребра в неориентированном графе создает отрицательный цикл.
диграф
| график
| самый близкий
| кратчайший путь
| shortestpathtree