
Ответы на билеты за 2008 год (doc) / Билет9
.docБилет №9. Изложите алгоритм построения кратчайшего пути в данном взвешенном графе. Приведите пример решения этой задачи.
Пусть дан взвешенный неориентированный граф, и в нём выделены две вершины S и F. Длиной пути в таком графе называют сумму длин его рёбер. Требуется указать алгоритм построения кратчайшего пути, ведущего из вершины S в вершину F.
Предлагаемый алгоритм основан на применение меняющихся от шага к шагу систем меток, которые снабжаются вершины графа.
Метка, приписываемая на шаге t, вершины a, обозначается мю(сверху (t)) (a). В качестве меток используются неотриц действительные числа и беск., счит больше любого числа. Различают постоянные метки и переменные. По итогам каждого шага одна метка графа объявляется постоянной (ещй одна). Кроме того по итогам каждого шага назнач вершина-лидер для след. шагаю
Длина ребра, соед вершины i и j обознач Cij.
Работа алгоритма прекращается, когда вершина F получит постоянную метку
-
Расставляются метки
мю(0) (S)=0,
Постоянной объявляется только метка вершины S. Вершина S назначается так же лидером след. шага. Пусть проделаные шаги с номеро 0, k-1 и последний из них, не явл заключительными
k)
Пусть
лидерам этого шага служит вершина i.
Рассматриваем
все вершины, смежные с нею, для тех из
них метки
кот
переменны, полагаем
=min{
}
Метки всех остальных вершин по итогам шага k не меняются. Постоянной объявляется минимальная из переменных меток мю(k), причём к конкурсу допускаются все метки рассматриваемого графа. Эта же вершина объявляется лидеров для след. шага.
К завершению этой процедуры постоянная метка вершины F является лишь длинной кратчайшего пути, соед S и F. Сам кратчайший путь находиться путём анализа системы постоянных меток, построенных к этому моменту.