Взвешенное расстояние. Алгоритм Форда-Беллмана

Пусть G=<M,R> - взвешенный граф, в котором вес каждой дуги (a,b) есть некоторое вещественное число μ(a,b). Весом маршрута a1,…,an+1 называется число . Взвешенным расстоянием (ω-расстоянием) ρω(a,b) между вершинами a и b называется минимальный из весов (a,b)- маршрутов). Маршрут с минимальным весом называется кратчайшим. Взвешенным эксцентриситетом вершины a называется величина . Взвешенной центральной вершиной называется вершина a, для которой . Взвешенный эксцентриситет центральной вершины называется взвешенным радиусом.

Пусть G=<M,R> - взвешенный граф, имеющий n вершин и матрицу весов W=(ωij). Предположим, что в G отсутствуют контуры с отрицательным весом, поскольку двигаясь по такому контуру достаточное число раз можно получить маршрут бесконечно малого веса.

Алгоритм Форда-Беллмана (для нахождения взвешенного расстояния от вершины ai (источника) до всех вершин графа G):

Зададим строку , полагая . Определим строку , полагая . Нетрудно заметить, что - минимальный из весов (ai,aj) -маршрутов, состоящих не более чем из двух дуг.

Продолжая процесс, на шаге s определим строку , полагая . Искомая строка ω-расстояний получается при s=n-1: . Алгоритм можно завершить на шаге k, если D(k)=D(k+1).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: