Алгоритм Левита — различия между версиями
Никита (обсуждение | вклад) (→Алгоритм) |
Никита (обсуждение | вклад) (→Алгоритм) |
||
| Строка 11: | Строка 11: | ||
Изначально все вершины, кроме <tex>s</tex> помещаются в множество <tex>M_2</tex>. Вершина <tex>s</tex> помещается в множество <tex>M_1</tex>. | Изначально все вершины, кроме <tex>s</tex> помещаются в множество <tex>M_2</tex>. Вершина <tex>s</tex> помещается в множество <tex>M_1</tex>. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== Псевдокод == | == Псевдокод == | ||
Версия 13:08, 19 октября 2013
Алгоритм Левита находит расстояние от заданной вершины до всех остальных. Работает с ребрами отрицательного веса.
Содержание
Алгоритм
Пусть - текущая длина кратчайшего пути до вершины . Изначально, для всех ; .
Разделим вершины на три множества:
- - вершины, расстояние до которых уже вычислено(возможно, не окончательно)
- - вершины, расстояние до которых вычисляется
- - вершины, расстояние до которых не вычисленно
Изначально все вершины, кроме помещаются в множество . Вершина помещается в множество .