logo search
tsvpis

3.3. Нахождение кратчайшего расстояния

Дан связный неориентированный взвешенный граф G. Если существует ребро с вершинами vi и vj, то стоимость перехода из vi в vj составит C(i,j) = C (vi, vj). Если же ребра vi vj нет, то полагаем C(i,j) =.

На выходе в данном графе выделяется вершина v0. Надо найти кратчайшее расстояние от v0 до всех остальных вершин.

Для решения задачи поиска кратчайшего расстояния используется (кроме прямого перебора) два алгоритма: Форда – Беллмана и Дейкстры.

Рассмотрим простейший алгоритм поиска кратчайшего расстояния – алгоритм Форда-Беллмана. Этот алгоритм является классическим примером алгоритма на поиск транзитивного замыкания.

Общая идея работы всех алгоритмов на поиск транзитивного замыкания

Пересчитываем что-либо (в нашем случае, стоимости вершин) до тех пор, пока это что-то не стабилизируется. Как только произойдет стабилизация, необходимо остановиться. Ответ получен.