Алгоритм нахождения расстояния от источника до всех остальных вершин в ориентированном графе с неотрицательными весами ребер
Исходные данные: G=<V, E > - ориентированный, связный, конечный граф c неотрицательными весами ребер.
v0 - источник, v0V.
- матрица весов ребер.
Результат: расстояния от источника до всех вершин графа
D[v]=d(v0,v), vV.
Метод. Строим такое подмножество S множества вершин графа, , что кратчайший путь из источника в каждую вершину целиком лежит в S.
S:={v0};
D[v]:=c(v0,v); D[v0]:=0;
while VS DO
begin
выбрать вершину uV\S,
для которой ;
;
для всех vV\S: D[v]:=min( D[v], D[v]+C[u,v] )
end.
Чтобы показать корректность алгоритма, надо доказать индукцией по размеру множества S, что для каждой вершины число D[v] равно длине кратчайшего пути из v0 в v. Более того, для всех vV\S число D[v] равно длине кратчайшего пути из v0 в v, лежащего целиком (если не считать саму вершину v) в S.
Базис индукции. Пусть S =1. Кратчайший путь из v0 в себя имеет длину 0, а путь из v0 в v, лежащий целиком (исключая v) в S, состоит из единственного ребра <v0, v>.
Шаг индукции. Пусть u - узел для которого .
Если число D[u] не равно длине кратчайшего пути из v0 в u, то должен быть более короткий путь P. Этот путь должен содержать вершину, отличную от u и не принадлежащую S. Пусть v - первая такая вершина на пути P из вершины v0 в вершину u (смотрите рис. 3.9).
Но тогда расстояние от v0 до v меньше D[u], а кратчайший путь в вершину v, целиком (исключая сам узел v) лежит в S. Следовательно, по предположению индукции, D[v] < D[u] в момент выбора u; таким образом, мы пришли к противоречию. Отсюда заключаем, что такого пути P нет и D[u] - длина кратчайшего пути из v0 в u.
Второе утверждение (о том , что D[u] остается корректным) очевидно ввиду последнего оператора присваивания в алгоритме.
- Журавлев ю.И., Флеров ю.А. Дискретный анализ
- Элементы комбинаторики.
- Введение
- Два принципа комбинаторики
- Функции и размещения
- Числа Стирлинга первого рода
- Циклическая структура перестановок
- Упорядоченные размещения.
- Сочетания и биномиальные коэффициенты.
- Производящие функции
- Биномиальные коэффициенты
- Исчисление конечных разностей
- Разложения
- Полиномиальные коэффициенты
- Разбиения
- Число разбиений
- 1. Формула 1.
- 2. Формула 2.
- Числа Белла.
- Принцип включений - исключений
- Задача о числе беспорядков (Задача о встречах)
- Количество сюръективных отображений
- Перестановки с ограничениями на местоположение
- Системы представителей множеств
- Системы различных представителей
- Системы общих представителей
- Функции алгебры логики
- Элементарные высказывания
- Элементарные логические операции (функции)
- Алгебраические свойства элементарных операций
- Разложение функций алгебры логики по переменным
- Функциональная полнота систем функций алгебры логики
- 1. Замена переменных.
- 2. Суперпозиция функций алгебры логики.
- Замкнутые классы.
- Критерий полноты
- Представление о результатах Поста
- Элементы теории графов
- Степени вершин
- О машинном представлении графов.
- Поиск в графе
- Поиск в глубину в графе
- Поиск в ширину в графе
- Пути и циклы
- Связность
- Деревья
- Остовное дерево (каркас)
- Эйлеровы пути и циклы
- Aлгоритм построения эйлерова цикла
- Гамильтоновы пути и циклы
- Нахождение кратчайших путей в графе
- Алгоритм нахождения расстояния от источника до всех остальных вершин в ориентированном графе с неотрицательными весами ребер
- Максимальный поток в сети
- Рекомендуемая литература.
- Оглавление