Записываем выражения для функции fi

f1
+3 f1
+ 4 f1
+ 2
f1 = 0; f2 = min; f3 = min; f4 = min f5 + 5
f6 + 3 f6 + 6 f6 + 2
f2
+ 3
f
4
+ 5 f3
+ 6
f6 + 1 f4 + 2 f5 + 6
f5 = min ; f6 = min ; f7 = min
f9 +12 f5 + 1 f6 + 8
f7 + 6 f7 + 8
f8 + 7
f7
+ 4

f6
+ 7 f5
+ 12
f8 = min ; f9 = min ; f10 = min f8 + 3 .
f9 + 6 f8 + 6
f9 + 11
Указанные целевые функции , представляют собой систему линейных алгебраических уравнений (в примере имеется 10 уравнений и 10 неизвестных).
Рассмотрим один из вариантов ее решения, учитывая, что f1 = 0 .
Тогда имеем:
2
f2 = 3; f3 = 4; f4 = min f5 + 5 = 2;
f6 + 2

6
7
10
f6
+ 1 7 4
4
f5 = min f9 +12 = min ; f6 = min f5 +1 = min = 4
f7 + 6 f6 + 1 f7 + 1 f5 + 1
f8 + 7
Подставив выражение для f6 в f5, получим
7 f5 = min 4 + 1 = 5.
f5 + 1 + 1
Тогда


11 17 15
f7 = 11; f8 = min ; f9 = min ; f10 = min f8 + 3 .
f9 + 6 f8 + 6 f9 + 11
Подставляя f9 в f8, получаем
11
f8 = min 17 + 6 = 11.
f8 + 6 + 6
Окончательно имеем: f9 = 17; f10 = 14.
Алгоритм Дейкстры предназначен для нахождения кратчайшего пути между вершинами в неориентированном графе. Идея алгоритма следующая, сначала выберем путь до начальной вершины равным нулю, и заносим эту вершину во множество уже выбранных, расстояние от которых до оставшихся невыбранных вершин определено. На каждом следующем этапе находим следующую невыбранную вершину, расстояние до которой наименьшее и соединённую ребром с какой-нибудь вершиной из множества выбранных (это расстояние будет равно расстоянию до уже выбранной вершины плюс длина ребра).
Найти кратчайший путь на графе от вершины L до вершины D (рис.2).

Рис.2. Взвешенный неориентированный граф
Запишем алгоритм в виде последовательности шагов.
Шаг 1. Определяются расстояния от начальной вершины L до всех остальных .
|
Длина пути до выбранной вершины |
Выбранная вершина |
Невыбранные вершины |
||||||||
|
B |
G |
N |
R |
D |
S |
M |
A |
|||
|
0 |
L |
7 |
∞ |
10 |
∞ |
∞ |
∞ |
∞ |
∞ |
|
|
7 |
B |
|
||||||||
Шаг 2. Выбираем наименьшее расстояние от L до B, найденная вершина В прини-
мается за вновь выбранную. Найденное наименьшее расстояние добавляется к длинам ребер
от новой вершины В до всех остальных. Выбирается минимальное расстояние от В до N. Новая вершина N принимается за выбранную.
|
Длина пути до выбранной вершины |
Выбранная вершина |
Невыбранные вершины |
||||||||
|
B |
G |
N |
R |
D |
S |
M |
A |
|||
|
0 |
L |
7 |
∞ |
10 |
∞ |
∞ |
∞ |
∞ |
∞ |
|
|
7 |
B |
∞ |
16 |
10 |
∞ |
∞ |
∞ |
∞ |
34 |
|
|
10 |
N |
|
||||||||
Для наглядности в дальнейшем вместо знака ∞ будем ставить знак “-“.
Шаг 3. Определяются расстояния от вершины N до всех оставшихся (за исключением
L и B) .
|
Длина пути до выбранной вершины |
Выбранная вершина
|
Невыбранные вершины |
||||||||
|
B |
G |
N |
R |
D |
S |
M |
A |
|||
|
0 |
L |
7 |
∞ |
10 |
∞ |
∞ |
∞ |
∞ |
∞ |
|
|
7 |
B |
∞ |
16 |
10 |
∞ |
∞ |
∞ |
∞ |
34 |
|
|
10 |
N |
∞ |
16 |
∞ |
41 |
∞ |
∞ |
∞ |
34 |
|
|
16 |
G |
|
||||||||
Расстояние от вершины L через вершину N до вершины G равно 18. Это расстояние
больше, чем расстояние LB+BG= 16, поэтому оно не учитывается в дальнейшем.
Продолжая аналогичные построения, построим таблицу. Таким образом, найдена
длина кратчайшего пути между вершинами L и D (44 условных единицы).
Траектория пути определяется следующим образом.
Осуществляем обратный просмотр от конечной вершины к начальной.
Просматриваем столбец, соответствующий вершине, снизу вверх и фиксируем первое появление минимальной величины. В столбце, соответствующем вершине D, впервые минимальная длина 44 появилась снизу в четвертой строке. В этой строке указана вершина S, к которой следует перейти, то есть следующим нужно рассматривать столбец, соответствующий вершине S.
|
Длина пути до выбранной вершины |
Выбранная вершина
|
Невыбранные вершины |
|||||||
|
B |
G |
N |
R |
D |
S |
M |
A |
||
|
0 |
L |
7 |
- |
10 |
- |
- |
- |
- |
- |
|
7 |
B |
- |
16 |
10 |
- |
- |
- |
- |
34 |
|
10 |
N |
- |
16 |
- |
41 |
- |
- |
- |
34 |
|
16 |
G |
- |
- |
- |
41 |
- |
16+11= =27 |
- |
34 |
|
27 |
S |
- |
- |
- |
41 |
27+17= =44 |
- |
27+15= =42 |
34 |
|
34 |
A |
- |
- |
- |
41 |
44 |
- |
42 [34+15] |
- |
|
41 |
R |
- |
- |
- |
- |
44 [41+32] |
- |
42 |
- |
|
42 |
M |
- |
- |
- |
- |
44 [42+21] |
- |
- |
- |