Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Рассмотрим работу алгоритма Дейкстры на примере сети, изображенной на рис. 8. Узел s =1здесь является источником, r =4 - стоком, а числа cij, приписанные дугам, соответствуют их длине или обобщенной стоимости. Матрица обобщенной стоимости этой сети имеет вид:
C = ;
Работа алгоритма (см. рис. 9) начинается с того, что источникуприписывается постоянная пометка I 1 = 0, а узлам j = 2,3,4 присваиваются временные пометки Ij = . Таким образом производится начальное заполнение. В дальнейшем производится итеративная процедура. Первая итерация: на первом шаге вычисляются новые временные пометки всех узлов (2, 3, 4), не имеющих постоянных пометок:
I 2’= min { I 2, L 1 + c 12} = min { , 0 + 3} = 3,
I 3’= min { I 3, L 1 + c 13} = min { , 0 +2} = 2,
I 4’= min { I 4, L 1 + c 14} = min { , 0 + } = .
На втором шаге узлу 3, временная пометка которого наименьшая из полученных, присваивается постоянная пометка L 3 = I 3’ = 2.
Вторая итерация: на первом шаге вычисляются новые временные пометки узлов 2, 4, не имеющих постоянных пометок:
I 2’= min { I 2, L 3 + c 32} = min {3,2 + } = 3,
I 4’= min { I 4, L 3 + c 34} = min { , 2 + 7} = 9.
На втором шаге узлу 2, временная пометка которого наименьшая из полученных, присваивается постоянная пометка L 2 = I 2’ = 3.
Третья итерация: на первом шаге вычисляется новая временная пометка узла 4, не имеющего постоянной пометки:
I 4’= min { I 4, L 2 + с 24} = min {9,3 + 4} = 7.
На втором шаге узлу 4, временная пометка которого наименьшая (и единственная) из полученных, присваивается постоянная пометка L 4 = I 4’ = 7. Так как помеченным оказался сток 4 = r, прямой ход алгоритма Дейкстры закончен.
Графическая демонстрация этого решения приведена на рис. 9; табличное решение - в табл. 1.
Таблица 1: Прямой ход алгоритма Дейкстры
Узел i: | s =1 | r =4 | ||
Итерация: | Значения пометок | |||
В обратном ходе алгоритма Дейкстры (см. рис. 10) участвуют все 4 узла. После исходного заполнения оптимальная цепь имеет вид [?, 4]. Первая итерация: на первом шаге вычисляются величины:
1 = L 4 - L 1 - c 14 = 7 - 0 - = - ,
2 = L 4 - L 2 - c 24 = 7 - 3 - 4 = 0,
3 = L 4 - L 3 - c 34 = 7 - 2 - 7 = - 2.
На втором шаге узел 2, для которого 2 = 0, включается в оптимальную цепь [?, 2, 4].
Вторая итерация: на первом шаге вычисляются величины:
1 = L 2 - L 1 - c 12 = 3 - 0 - 3 = 0, 3 = L 2 - L 3 - c 32 = 3 - 2 - = - .
На втором шаге узел 2, для которого 1 = 0 включается в оптимальную цепь [1, 2, 4]. Так как это источник (1 = s), обратный ход алгоритма Дейкстры закончен.
Графическая демонстрация этого решения приведена на рис. 10; табличное решение - в табл. 2.
Таблица 2: Обратный ход алгоритма Дейкстры
Узел i: | s =1 | Оптимальная цепь | ||
Итерация: | Значения i | |||
[?, 4] | ||||
- | -2 | [?, 2,4] | ||
- | [1, 2, 4] |
Таким образом, с использованием алгоритма Дейкстры решена задача поиска кратчайшей цепи (цепи наименьшей обобщенной стоимости) для сети G (см. рис. 8). Оптимальная цепь: [1, 2, 4], ее длина 7. Оптимальный поток F min в сети G: F min = { f 12 = 1; f 13 = 0; f 23 = 0; f 24 = 1; f 34 = 0}.
Дата публикования: 2014-10-20; Прочитано: 432 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!