Применение алгоритма Уоршалла Алгоритм Уоршалла может быть модифицирован с целью получения матрицы, содержащей длины кратчайших путей между вершинами [Трамбле, Соренсон, 1982].
Опишем алгоритм [Липский, 1988]
Обозначим через d(m) ij длину кратчайшего из путей из vi в vj с промежуточными вершинами из множества {v1 ,...,vm }.
Тогда имеем следующие уравнения:
Обоснование второго уравнения достаточно простое. Рассмотрим кратчайший путь из vi в vj c промежуточными вершинами из множества {v1 ,...,vm ,vm+1 }.
Если этот путь не содержит vm+1 , то разделив путь на отрезки от vi до vm+1 и от vm+1 до vj , получаем равенство:
d(m+1) ij =d(m) im +d(m) mj .
Соотношения позволяют вычислить расстояния d(vi ,vj )=d(n) ij.
Авторами приведенного алгоритма являются Уоршалл и Р.Флойд (Floyd R.W.).
Дата добавления: 2014-01-20 ; Просмотров: 342 ; Нарушение авторских прав? ; Мы поможем в написании вашей работы!
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет