![](/user_photo/2706_HbeT2.jpg)
Уч.пособие-по-ОДМ-2012
.pdf![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr191x1.jpg)
горитм заканчивает работу. Вес остова равен
∑
= 3 × 2 + 2 × 3 + 2 × 4 = 20.
l
Замечание 10.1. При другой нумерации вершин мы получили бы другую последовательность ребер, и остов получился бы отличным от построенного. Несмотря на то, что минимальный остов
не единственнен для данного графа, вес всех полученных остовов будет одинаков.
|
|
|
|
|
|
|
|
|
|
|
|
. |
б) Алгоритм Прима. |
|
|
|
П |
||||||||
|
|
|
|
|
v1 |
Возьмем вершину v0 |
|
|||||
|
|
|
|
|
s |
.и ребро, инцидентное |
||||||
|
|
|
|
2 |
|
|
|
|
данной вершине и имеющее наименьший |
|||
1. |
v0 |
s |
|
|
|
|
|
вес. Таких ребер два. Возьмем .любое из |
||||
|
|
|
|
|
||||||||
|
|
|
|
|
|
них, например, |
Вv0, v1 |
. Получили дерево |
||||
|
|
|
|
T1 |
|
|
T1. |
{ |
} |
А |
||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
v |
Из ребер, смежныхСс ребром {v0, v1}, |
||||||
2. v0 |
|
|
2 s1 |
|||||||||
|
2 |
|
|
v2 |
наименьшую длину имеет ребро {v0, v2}. |
|||||||
|
|
s |
T2 |
s |
Включив его в остов, получаем дерево T2. |
|||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
v |
|
|
|
|
|
|
|
|
|
2 |
s1 |
|
|
|
|
|||
3. |
Барашев |
|
|
|
||||||||
|
|
|
|
|
|
|
Следующим включаем ребро {v0, v3}. Об- |
|||||
|
v0 |
s@@2 |
|
|
|
sv2 |
разовали дерево T3. |
|
|
|||
|
|
|
|
3@ |
@ |
|
|
|
|
|
||
|
|
|
|
T3 |
|
Унучекvs3 |
|
|
||||
|
|
|
|
|
|
|
МИРЭА |
|||||
|
|
|
|
|
|
|
|
|
191
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr192x1.jpg)
|
|
|
v |
|
|
2 s1 |
|
4. |
|
|
|
|
|
|
|
|
v0 |
s@@2 |
sv24 sv4 |
|
|
3@@s |
v3 T4
Опять два ребра, смежных с T3, имеют наименьший вес. Это ребра {v1, v4} и {v3, v4}. Возьмем ребро {v3, v4}.
5. Следующими в остов |
последовательно |
. |
|||||||||
включаем ребра |
|||||||||||
{v4, v6}, {v6, v7} и {v5, v7}. |
|
. |
|
|
|
||||||
|
|
|
v1 |
|
|
|
|
||||
|
|
|
|
|
v5 |
П |
|
. |
|||
|
2 s |
|
|
s@@2 |
|
|
|||||
|
|
|
|
|
|
|
|
@ |
|
|
|
Барашев∑l = 3 × 2 + 2 × 3 + 2 × 4 = 20. |
|
||||||||||
|
2 |
|
sv2 |
Вv |
|
@ v |
|
||||
|
v0 s@@ |
|
|
4 s@@4 |
3 |
|
4 s |
7 |
|
||
|
3 |
|
vs3 |
|
vs6 . |
|
|
||||
|
|
@@ |
@@ |
А |
|||||||
|
|
|
|
|
T |
|
С |
|
|
|
|
на рисунке. |
Унучек |
|
|
|
|
|
|
||||
|
МИРЭА |
|
6. Все вершины включены в остов, заканчиваем работу алгоритма.
Вес полученного дерева
Пример 10.5. Построить минимальный остов графа, изображенного
192
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr193x1.jpg)
|
|
|
|
|
v3 |
|
|
|
|
|
|
|
|
|
|
|
@s |
@ |
|
|
|
|
|
|
|
|
|
v1 |
6 |
6 |
|
|
|
|
|
|
||
|
|
|
4 |
@ v6 |
|
|
|
|
||||
|
|
|
|
|
@ |
|
|
|
|
|
||
|
4 @s |
@ |
6 |
6 @s |
@ |
4 |
|
|
||||
|
|
|
|
@ v4 |
|
|
|
|
@ |
|
|
|
|
|
|
|
|
@ |
|
|
|
|
@ |
|
|
v0 |
s@@ |
5 |
@s |
@ |
5 |
|
|
sv8 |
|
|||
4@ |
|
6 |
6 |
|
|
|
4 |
|
|
|||
|
|
4 |
@ |
|
|
|
|
|||||
|
|
@ |
|
|
@ |
|
|
|
|
|
||
|
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|
vs2 @ |
|
vs7 |
|
|
|
. |
||||
|
|
|
|
5@ |
5 |
|
|
|
|
|
||
|
|
|
|
|
vs5 |
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
П |
|
|
|
|
|
|
|
|
|
|
|
|
||
Решение. |
|
|
|
|
|
|
|
|
. |
|
||
Воспользуемся алгоритмом Краскала. |
В |
|
А |
|||||||||
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Выписываем ребра в порядке возрастания их длин: . |
||||||||||||
Барашев4 |
, v6}, {v2, v7}, {v6, v8}, {v7, v8}; |
|||||||||||
Ребра длины 4: {v0, v1 |
}, {v0 |
, v2}, {v1 |
||||||||||
Ребра длины 5: {v0, v4}, {v2 |
, v5}, {v4, v8}, {v5, v7 |
}; |
||||||||||
Ребра длины 6: {v1, v3}, {v1 |
, v4}, {v2, v4}, {v3, v.6}, {v4, v6}, {v4, v7}. |
|||||||||||
Унучекvs2 vs7 |
|
|
||||||||||
2. Включаем в остов все вершины графа. |
С |
|
||||||||||
|
|
МИРЭА |
||||||||||
|
|
|
vs1 |
vs3 |
|
vs6 |
|
|
||||
v0 s |
|
|
|
|
s |
|
|
|
|
sv8 |
||
|
|
|
|
|
v |
|
|
|
|
|
|
s
v5
3. Включаем в остов T ребро {v0, v1} - первое ребро из списка.
193
|
|
|
vs3 |
|
|
|
|
|
|
v |
|
v |
|
|
|
||
4 |
s1 |
vs4 |
|
s6 |
sv8 |
|
|
|
v0 s |
|
s |
|
s |
|
|
||
|
|
|
|
|
|
|
||
|
v2 |
|
v7 |
. |
|
|
||
|
|
|
vs5 |
|
|
|
|
|
4. Включаем в остов ребра {v0, v2}, |
В . |
}, так |
||||||
{v1, v6.}, {Пv2, v7} и {v6 |
, v8 |
|||||||
как они не образуют цикла с ребром {v0, v1 |
}. Ребро {v7, v8} с весом |
|||||||
4 в остов не включаем. Количество ребер в дереве равно 4. |
|
|||||||
Барашев |
|
|
.А |
|
|
|||
4 s |
vs3 |
|
|
|
|
|||
|
|
s@@С4 |
|
|
||||
|
v1 |
4 |
v6 |
|
|
|
||
УнучекМИРЭА |
|
|
||||||
v0 s |
vs2 |
vs4 |
vs7 |
@@sv8 |
|
|
||
|
|
|
4 |
|
|
|
|
|
s
v5
5.Ребра {v0, v4} и {v2, v5}длины 5 включаем в остов, а ребра {v5, v7} и {v4, v8} - нет (образуются циклы). Количество ребер на данном
этапе работы алгоритма равно 7.
194
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr195x1.jpg)
|
|
|
|
|
vs3 |
|
|
|
|
|
|
|
|
v1 |
|
4 |
v6 |
|
|
|
|||
|
|
|
s |
|
|
s@@4 |
|
|
|||
4 |
|
|
|
|
|
|
|||||
|
|
|
|
|
v4 |
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
v0 |
s@@ |
5 |
|
|
s |
|
|
|
|
sv8 |
|
4@ |
|
|
4 |
|
|
|
|
|
|||
|
|
@ |
|
|
|
|
|
|
|
||
|
|
|
@ |
|
|
vs7 |
|
|
|
||
|
|
vs2 |
@ |
|
|
|
|
. |
|||
|
|
|
|
5@ |
@ |
|
|
|
|
|
|
|
|
|
|
|
vs5 |
|
|
|
|
||
6. Переходим к ребрам с весом 6. Ребро {v.1, vП3} включаем в остов. |
|||||||||||
Количество ребер в дереве равно 8, что на 1 меньше количества |
|||||||||||
вершин. |
|
|
|
|
|
В |
|
|
. |
||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
v |
|
|
|
.А |
||
|
|
|
|
s3 |
|
|
|
||||
|
|
v1 |
6 |
|
|
v6 |
|
|
|
||
|
|
|
4 |
|
|
|
|||||
|
|
|
|
|
s@@С4 |
||||||
4 |
|
s |
|
|
|
|
|||||
|
|
|
|
|
v4 |
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
v0 |
s@@ |
5 |
|
|
s |
|
|
|
|
sv8 |
|
4@ |
|
|
4 |
|
|
|
|
|
|||
|
|
@ |
|
|
|
|
|
|
|
||
|
|
|
@ |
|
|
vs7 |
|
|
|
||
|
|
vs2 |
@ |
|
|
|
|
|
|||
|
|
|
|
5@ |
@ |
|
|
|
|
|
|
|
|
|
|
|
vs5 |
|
|
|
|
|
|
Барашев |
|
|
|
|
|
||||||
|
|
|
|
|
T |
|
|
|
|
|
|
Минимальный остов построен. Его вес равен |
|
||||||||||
Унучек∑l = 5 × 4 + 2 × 5 + 1 × 6 = 36. |
|||||||||||
|
МИРЭА |
195
![](/html/2706/112/html_OD7Vm6jG0x.4Gxd/htmlconvd-jfhYxr196x1.jpg)
10.3Задачи для самостоятельного решения
1. Найти минимальный остов графа, заданного списком взвешенных ребер:
1. ({v0, v1}, 3), |
|
({v0, v4}, 3), |
|
({v0, v2}, 4), ({v1, v3}, 3),({v1, v6}, 4), |
||||||||||||||||||||||||||||
({v1, v4}, 4), ({v2, v4}, 1), ({v2, v7}, 1), ({v2, v5}, 3), ({v3, v6}, 3), |
||||||||||||||||||||||||||||||||
({v4, v6}, 2), ({v4, v8}, 3), ({v4, v7}, 1), ({v5, v7}, 1), ({v6, v8}, 2), |
||||||||||||||||||||||||||||||||
({v7, v8}, 2); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|||||
2. ({v0, v1}, 4), ({v0, v4}, 5), ({v0, v2}, 4), |
|
|
|
|
|
({v1 |
, v6}, 3), |
|||||||||||||||||||||||||
|
({v1, v3}, 3), |
|
||||||||||||||||||||||||||||||
({v1, v4}, 3), ({v2, v4}, 4), ({v2, v7}, 6), ({v2, v5}, 5), ({v3, v6}, 4), |
||||||||||||||||||||||||||||||||
({v4, v6}, 3), ({v4, v8}, 5), ({v4, v7}, 6), ({v5 |
, v7 |
}, 5), ({v6, v8}, 6), |
||||||||||||||||||||||||||||||
({v7, v8}, 5); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.П |
|
|
|
|
|
|
|
|
||||||
3. ({v0, v1}, 4), ({v0, v4}, 4), ({v0, v2}, 4), ({v1, v3 |
}, 2), ({v1, v6}, 5), |
|||||||||||||||||||||||||||||||
({v1, v4}, 2), ({v2, v4 |
}, 3), ({v2 |
, v7 |
|
|
|
|
|
|
|
А |
|
|
, v6}, 2), |
|||||||||||||||||||
}, 5)В, ({v2, v5}, 3), |
.({v3 |
|||||||||||||||||||||||||||||||
Барашев@ |
32 @ |
({v5 |
|
|
|
|
|
|
|
|
@ |
|
||||||||||||||||||||
({v4, v6}, 2), |
({v4, v8 |
}, 5), |
|
({v4 |
, v7 |
}, 3), |
|
, v7 |
}, 3), |
|
({v6 |
, v8}, 5), |
||||||||||||||||||||
({v7, v8}, 4). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
С |
|
|
|
|
|
|
|
|
|
|
|||
2. Найти остов минимальной длины графа G, в котором длины ребер |
||||||||||||||||||||||||||||||||
равны соответствующим элементам aij матрицы A. |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
Унучек |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
@s |
|
|
|
|
a24 |
|
|
@s |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
a14 |
|
|
|
МИРЭА |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
@a25 |
a36 |
|
|
|
@a46 |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
a15 |
|
|
@@@ |
|
a41 |
|
|
@@@ |
|
|
|
|
|
|
|||||||||||
|
@s @ |
|
|
|
|
|
|
|
|
@s |
@ |
|
|
|
|
|
|
@s |
@ |
|
|
|
||||||||||
a11 |
|
|
|
@a16 a26 |
|
|
a |
@a42 |
a51 |
|
|
|
|
@a55 |
||||||||||||||||||
|
|
a |
12 |
|
|
|
@ |
@ |
a |
31 |
|
|
|
|
|
@ |
|
|
|
|
a |
52 |
|
|
|
@ |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ |
|
|
|
|
|
|
|
|
@ |
|
||||||||
s@@ |
|
|
|
a |
|
|
|
@s |
@ |
|
|
|
|
a43 |
@s |
@ |
|
|
|
|
|
a |
|
|
|
s |
||||||
@a |
13 |
|
|
21 |
|
|
|
|
|
@a |
33 |
|
|
|
|
@a |
53 |
|
|
|
56 |
|
||||||||||
@@@ |
|
|
|
a22 |
|
|
@@@ |
|
a44 |
|
|
@@@ |
|
|
|
|
||||||||||||||||
|
|
|
|
s@@ |
|
|
|
|
a |
|
|
@s |
@ |
|
|
|
a |
|
|
|
s |
|
|
|
|
|
||||||
|
|
|
|
|
@a |
23 |
|
34 |
|
|
|
@a |
45 |
|
54 |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
@@@ |
|
a35 |
@@@ |
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
s |
|
|
|
|
|
|
|
|
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
196
|
|
7 |
7 |
6 |
7 |
7 |
6 |
|
|
|
|
|
|
6 |
6 |
6 |
4 |
4 |
6 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
1. A = |
|
5 |
6 |
3 |
3 |
4 |
5 |
; |
|
|
|
|
5 6 5 |
3 |
5 |
3 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
4 |
5 |
6 |
7 |
6 |
|
|
|
|
|
|
|
6 |
6 |
5 |
6 |
6 |
5 |
|
|
|
|
|
|
5 |
5 |
5 |
3 |
3 |
6 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
2. A = |
|
4 |
5 |
2 |
2 |
5 |
4 |
; |
|
|
|
|
4 5 4 |
2 |
4 |
2 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
3 |
3 |
4 |
5 |
6 |
5 |
|
|
|
||
|
|
|
|
П |
|
|||||||
|
|
4 |
4 |
6 |
7 |
6 |
5 |
|
|
|
||
|
3 |
5 |
4 |
1 |
5 |
4 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
5 |
5 |
6 |
4 |
4 |
5 |
; |
|
|
||
3. A = |
1 5 6 |
2 |
5 |
3 |
. |
|
. |
|||||
|
|
|
|
|
|
|
|
|
В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
4 |
5 |
2 |
5 |
1 |
|
|
.А |
||
|
Барашев |
|
||||||||||
|
|
4 |
2 |
2 |
4 |
3 |
2 |
|
|
|||
|
|
2 |
4 |
4 |
3 |
3 |
4 |
|
|
|
|
|
|
|
3 |
5 |
2 |
2 |
2 |
5 |
|
С |
|
|
|
4. A = |
|
4 |
2 |
4 |
2 |
5 |
4 |
. |
|
|
|
|
3 2 5 |
2 |
3 |
3 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. |
∑l |
= 37; |
Унучек |
МИРЭА |
|||
Ответы к задачам для самостоятельного решения |
|||
1. |
|
|
|
1. |
∑l |
= 16; |
|
2. |
= 32; |
|
|
|
l |
|
|
3. |
∑ |
= 23; |
|
2. |
∑l |
|
|
1. |
∑l |
= 55; |
|
2. |
= 43; |
|
|
4. |
∑l |
= 30. |
|
|
∑l |
|
|
197
Глава 11 Алгоритм поиска кратчайшего пути
во взвешенном графе. |
. |
|
.П |
11.1Постановка задачи
|
В |
|
А |
|
Из- |
Даны населенные пункты A, B, . . . , S, связанные сетью автодорог.. |
|||||
Барашев |
|
|
|
и M, |
|
вестна стоимость проезда между каждыми двумя пунктами N |
|||||
связанными дорогой. Требуется найти такой маршрут из A в S, чтобы |
|||||
стоимость проезда была бы наименьшей. |
С |
|
|
|
|
|
. |
|
|
Данную задачу, как и большинство задач логистики, можно решать
с помощью графов.
число - его вес. КаждомуМИРЭАнаселенному пункту A, B, . . . , S соответствует вершина графа v0, v1, . . . , vn. Стоимость проезда - вес (длина) соответствующего ребра. Если автосообщения между пунктами нет, то и соответствующее ребро в графе отсутствует.
Рассмотрим простойУнучеквзвешенный граф G, то есть граф без кратных ребер и петель, каждому ребру которого приписано неотрицательное
На языке графов задача формулируется следующим образом: Требуется найти маршрут из вершины v0 в вершину vn графа G такой, что сумма длин ребер, входящих в этот путь, минимальна.
Такой путь обычно называют кратчайшим.
Кратчайший путь удобно находить с помощью алгоритма Дейкстры. Существует несколько версий данного алгоритма, рассмотрим одну из них.
В процессе изучения алгоритма мы будем использовать символ "∞\. Под "∞\ в этом алгоритме понимают величину, для которой выполнены свойства:
198
а) min(n, ∞) = n, n > 0, то есть все целые числа n меньше "∞\.
б) min(∞, ∞) = ∞
в) n + ∞ = ∞ + ∞ = ∞
В процессе работы алгоритма каждой вершине vi ставим в соответствие метку λ(vi) = ρ(v0, vi) - расстояние от вершины v0 до vi. Длину ребра {vi, vj} обозначим через l(vi, vj).
11.2Алгоритм Дейкстры
|
|
|
. |
|
|
|
|
П |
|
. |
|
|||
I Прямой ход - нахождение длины кратчайшего пути. |
||||
|
|
|
|
. |
1. Всем вершинам v0, v1, . . . , vn графа G ставим в соответствие |
||||
метку λ(vi) = ∞, i = |
0, . . . , n |
. |
|
|
Барашев |
|
|
||
2. Делаем вершину v0 постояннойВ, заменив её метку на 0 |
||||
(λ(v0) = 0). Остальные вершины оставляем временными. |
||||
3. Рассматриваем все смежные с v0 вершины..АВсем вершинам |
||||
vik, смежным с v0, меняем величину метки с λ(vik) = ∞ на |
||||
λ(vik) = l(v0, vik) - длину (вес) ребраС{v0, vik}. Выбираем вер- |
||||
шины (ρ(Унучекv0, vin) < λ(vin)), то заменяем величину метки: |
||||
шину vis, расстояние до которой от v0 |
наименьшее. Делаем |
вершину vis постоянной. Остальные вершины (за исключением v0) - временные.МИРЭА
4. Находим расстояние от вершины v0 до каждой вершины vin, смежной с vis, вдоль пути, проходящего через вершину vis. Это расстояние равно
ρ(v0, vin) = l(v0, vis) + l(vis, vin).
Если найденное расстояние меньше, чем значение метки вер-
λ(vin) = ρ(v0, vin).
Среди всех вершин выбираем вершину с наименьшим значением метки (наименьшим расстоянием до v0). Данная вершина становится постоянной.
199
5. Пусть вершина vk, имеющая метку λ(vk) = ρ(v0, vk) является постоянной на данном этапе алгоритма. Для каждой вершины vj, смежной с vk, проверяем метку.
Если выполнено неравенство λ(vk)+l(vk, vj) < λ(vj) (или, что то же самое, ρ(v0, vk) + l(vk, vj) < ρ(v0, vj)), то значение метки вершины vj заменяем на λ(vk) + l(vk, vj). Таким образом, величина метки вершины vj уменьшится.
6. Находим временную вершину с наименьшей меткой. Делаем
её постоянной. |
|
. |
|
На каждом шаге алгоритма ровно одна временная вершина |
|||
|
П |
|
|
(с наименьшей величиной метки) переходит из разряда вре- |
|||
менных в разряд постоянных, после чего значение её метки |
|||
уже не меняется. |
. |
|
. |
|
|
||
|
|
|
|
7. Шаги 5 и 6 продолжаем до тех пор, пока вершина vn не станет |
|||
постоянной. |
|
А |
|
Барашев |
|
||
8. Если vn - постоянная вершина, Вто величина приписанной ей |
|||
|
. |
|
|
метки λ(vn) = ρ(v0, vn) - есть длина кратчайшего пути из v0 в |
vn. |
|
|
|
|
|
Заметим, что значение меток удобно записывать в таблицу, |
|||||
помечая постоянную метку. На графе отмечаем только вели- |
|||||
чины постоянных меток. |
|
С |
|
|
|
II Обратный ход - нахождение кратчайшего пути. |
|
|
|||
1. Просматривая |
смежные с |
vn |
вершины, находим |
реб- |
|
ро {vjs, vn}, |
для которого |
выполнено |
равенство |
||
l(vjs, vn) = λ(vn) − λ(vjs), |
то |
есть длина |
ребра |
равна |
разностиУнучекметок вершинМИРЭАего концов. Вершина vjs входит в кратчайший путь: vn → vjs.
2.Пусть вершина vjk входит в кратчайший путь. Изучая смежные с ней ребра, находим ребро {vjk, vjl}, для которого верно равенство l(vjk, vjl) = λ(vjk) − λ(vjl). Это означает, что вершина vjl также входит в кратчайший путь:
vn → vjs → . . . → vjk → vjl.
3.Продолжаем искать вершины аналогично предыдущему шагу алгоритма, пока не дойдем до вершины v0.
200