Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИСКРЕТНАЯ МАТЕМАТИКА - ч5.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

3. Пример решения

Р ассмотрим работу алгоритма Дейкстры на примере сети, изображенной на рис. 8. Узел s1 здесь является источником, r4 - стоком, а числа cij, приписанные дугам, соответствуют их длине или обобщенной стоимости. Матрица обобщенной стоимости этой сети имеет вид:

C ;

Работа алгоритма (см. рис. 9) начинается с того, что источнику приписывается постоянная пометка I1  0, а узлам j  2,3,4 присваиваются временные пометки Ij  . Таким образом производится начальное заполнение. В дальнейшем производится итеративная процедура. Первая итерация: на первом шаге вычисляются новые временные пометки всех узлов (2, 3, 4), не имеющих постоянных пометок:

I2’ min {I2, L1c12}  min { , 0  3}  3,

I3’ min {I3, L1c13}  min { , 0 2}  2,

I4’ min {I4, L1c14}  min { , 0  }  .

На втором шаге узлу 3, временная пометка которого наименьшая из полученных, присваивается постоянная пометка L3I3’  2.

Вторая итерация: на первом шаге вычисляются новые временные пометки узлов 2, 4, не имеющих постоянных пометок:

I2’ min {I2, L3 c32}  min {3,2  }  3,

I4’ min {I4, L3c34}  min { , 2  7}  9.

На втором шаге узлу 2, временная пометка которого наименьшая из полученных, присваивается постоянная пометка L2I2’  3.

Третья итерация: на первом шаге вычисляется новая временная пометка узла 4, не имеющего постоянной пометки:

I4’ min {I4, L2с24}  min {9,3  4}  7.

На втором шаге узлу 4, временная пометка которого наименьшая (и единственная) из полученных, присваивается постоянная пометка L4I4’  7. Так как помеченным оказался сток 4  r, прямой ход алгоритма Дейкстры закончен.

Г рафическая демонстрация этого решения приведена на рис. 9; табличное решение - в табл. 1.

Таблица 1: Прямой ход алгоритма Дейкстры

Узел i:

s1

2

3

r4

Итерация:

Значения пометок

0

0

1

3

2

2

3

9

3

7

В обратном ходе алгоритма Дейкстры (см. рис. 10) участвуют все 4 узла. После исходного заполнения оптимальная цепь имеет вид [?, 4]. Первая итерация: на первом шаге вычисляются величины:

1L4 - L1 - c14  7 - 0 -  - ,

2L4 - L2 - c24  7 - 3 - 4  0,

3L4 - L3 - c34  7 - 2 - 7  - 2.

На втором шаге узел 2, для которого 2  0, включается в оптимальную цепь [?, 2, 4].

Вторая итерация: на первом шаге вычисляются величины:

1L2 - L1 - c12  3 - 0 - 3  0, 3L2 - L3 - c32  3 - 2 -  - .

На втором шаге узел 2, для которого 1  0 включается в оптимальную цепь [1, 2, 4]. Так как это источник (1  s), обратный ход алгоритма Дейкстры закончен.

Графическая демонстрация этого решения приведена на рис. 10; табличное решение - в табл. 2.

Таблица 2: Обратный ход алгоритма Дейкстры

Узел i:

s1

2

3

Оптимальная цепь

Итерация:

Значения i

0

[?, 4]

1

-

0

-2

[?, 2,4]

2

0

-

[1, 2, 4]

Таким образом, с использованием алгоритма Дейкстры решена задача поиска кратчайшей цепи (цепи наименьшей обобщенной стоимости) для сети G (см. рис. 8). Оптимальная цепь: [1, 2, 4], ее длина 7. Оптимальный поток Fmin в сети G: Fmin  {f12  1; f13  0; f23  0; f24  1; f34  0}.