Кратчайший путь между двумя одиночными узлами
вычисляет кратчайший путь, начинающийся с исходного узла P = shortestpath(G,s,t)s и заканчивается в целевом узле t. Если график взвешен (то есть G.Edges содержит переменную Weight), то эти веса используются как расстояния вдоль рёбер на графике. В противном случае все расстояния кромок принимаются равными 1.
shortestpath, shortestpathtree, и distances функции не поддерживают неориентированные графы с отрицательными весами рёбер или, в более общем случае, любой граф, содержащий отрицательный цикл, по следующим причинам:
Отрицательный цикл - это путь, который ведет от узла обратно к себе, при этом сумма весов кромок на пути отрицательна. Если отрицательный цикл находится на пути между двумя узлами, то между узлами не существует кратчайшего пути, так как более короткий путь всегда можно найти, пройдя отрицательный цикл.
Единственный отрицательный вес ребра в неориентированном графике создает отрицательный цикл.
digraph | distances | graph | nearest | shortestpathtree