Матрица весов
-
x1
x2
x3
x4
x5
x6
x7
x8
x9
x1
10
3
6
12
x2
10
18
2
13
x3
18
25
20
7
x4
25
5
16
4
x5
5
10
x6
20
10
14
15
9
x7
2
4
14
24
x8
6
23
15
5
x9
12
13
9
24
5
Найти все при помощи алгоритма Дейкстры кратчайшие пути от вершины x1 ко всем остальным вершинам.
Постоянные пометки снабжать +, остальные пометки рассматриваются как временные.
Решение.
Нулевая итерация
Шаг 1.
Обозначим через l(xi) пометку вершины xi (длина пути от x1 до xi).
Положить s = x1 и l(x1) = 0+ и считать эту величину постоянной пметкой.
Положить l(xi) = ∞ для всех xi ≠ x1 и считать эти пометки временными.
Положить p = x1
Таким образом, все вершины графа помечены: (x1 – постоянной пометкой; xi – переменной пометкой, где i = 2,3,…,9) и выполнена нулевая итерация.
Обновление пометок
Первая итерация
Шаг 2.
Найдем соответствие вершины графа, имеющей постоянную метку, т.е. Г(x1), а это – множество вершин, являющихся конечными вершинами дуг, у которых начальной вершиной является x1:
Г(x1) = {x2, x7, x8, x9}. У этого множества вершин все пометки временные, равные ∞. Найдем постоянную пометку, для чего сначала находим пометки для каждой из этих вершин x2, x7, x8, x9 по зависимости: , тогда:
l(x2) = min[l(x2), l(x1)+c(x1,x2)] = min[∞, 0 + 10] = 10;
l(x7) = min[l(x7), l(x1)+c(x1,x7)] = min[∞, 0 + 3] = 3;
l(x8) = min[l(x8), l(x1)+c(x1,x8)] = min[∞, 0 + 6] = 6;
l(x9) = min[l(x9), l(x1)+c(x1,x9)] = min[∞, 0 + 12] = 12.
Перевод пометок из временных в постоянные.
Шаг 3.
Среди всех вершин с временными пометками найти такую, для которой выполняется условие: , т.е.
min[l(x2), l(x7), l(x8), l(x9), l(x3), l(x4), l(x5), l(x6)] = min[10, 3, 6, 12, ∞, ∞, ∞, ∞] =
= 3 = l(x7)
Шаг 4. Вершина графа x7 получает постоянную метку
3+ = l(x7), а
p = x7
Шаг 5. Постоянной пометкой помечены только две вершины: x1 и x7, но если не все вершины отмечены как постоянные, то требуется все повторить начиная со второго шага. Пометки в начале второй итерации показаны на рис. а)
а) 10 ∞
3+
∞
0+
12 ∞
6 ∞
