Дерево кратчайшего пути - Shortest-path tree
Учитывая связаны, ненаправленный график грамм, а дерево кратчайшего пути укорененный в вершине v это остовное дерево Т из грамм, такое, что расстояние от корня v в любую другую вершину ты в Т это кратчайший путь расстояние от v к ты в грамм.
В связных графах, где кратчайшие пути четко определены (то есть, где нет циклов отрицательной длины), мы можем построить дерево кратчайших путей, используя следующий алгоритм:
- Вычислить расстояние (ты) кратчайшее расстояние от корня v к вершине ты в грамм с помощью Алгоритм Дейкстры или же Алгоритм Беллмана – Форда.
- Для всех некорневых вершин ты, мы можем назначить ты родительская вершина пты такой, что пты связан с ты, и это расстояние (пты) + edge_dist (пты,ты) = расстояние (ты). Если несколько вариантов пты существовать, выбрать пты для которого существует кратчайший путь из v к пты с минимальным количеством граней; это правило разрыва связей необходимо для предотвращения циклов, когда существуют циклы нулевой длины.
- Постройте дерево кратчайшего пути, используя ребра между каждым узлом и его родителем.
Вышеупомянутый алгоритм гарантирует существование деревьев кратчайших путей. Нравиться минимальные остовные деревья, деревья кратчайших путей в общем случае не уникальны.
В графах, у которых веса всех ребер равны единице, деревья кратчайших путей совпадают с поиск в ширину деревья.
В графах с отрицательными циклами множество кратчайших простых путей из v ко всем остальным вершинам не обязательно образует дерево.
Смотрите также
Рекомендации
Кан, Роберт С. (1998). Дизайн глобальной сети: концепции и инструменты для оптимизации. Сеть. Морган Кауфманн. ISBN 978-1558604582.
Этот комбинаторика -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |