- •Махов а.М.
- •Санкт-Петербург
- •Введение
- •I. Введение в теорию графов Перечень используемых в дальнейшем обозначений
- •1. Определения
- •2. Ориентированные и неориентированные сети
- •3. Теорема о максимальном потоке и минимальном разрезе
- •4. Изоморфизм и гомеоморфизм графов.
- •6. Матричные представления сетей
- •5. Деревья и древовидности
- •7. Укладка графа. Плоские и планарные графы.
- •II. Задача о кратчайшей цепи
- •1. Постановка задачи
- •2. Алгоритм решения (алгоритм Дейкстры)
- •3. Пример решения
- •Примеры экономических задач, сводимых к задаче о кратчайшей цепи
- •III. Задача о минимальном остовном контуре
- •1. Постановка задачи
- •2. Алгоритм решения (алгоритм Литтла)
- •3. Пример решения
- •4. Задача коммивояжера
- •5. Заключительные замечания
- •Дополнительная литература
3. Пример решения
Р
ассмотрим
работу алгоритма Дейкстры на примере
сети, изображенной на рис. 8. Узел s1
здесь
является источником, r4
- стоком, а числа cij,
приписанные дугам, соответствуют их
длине или обобщенной стоимости. Матрица
обобщенной стоимости этой сети имеет
вид:
C
;
Работа алгоритма (см. рис. 9) начинается с того, что источнику приписывается постоянная пометка I1 0, а узлам j 2,3,4 присваиваются временные пометки Ij . Таким образом производится начальное заполнение. В дальнейшем производится итеративная процедура. Первая итерация: на первом шаге вычисляются новые временные пометки всех узлов (2, 3, 4), не имеющих постоянных пометок:
I2’ min {I2, L1 c12} min { , 0 3} 3,
I3’ min {I3, L1 c13} min { , 0 2} 2,
I4’ min {I4, L1 c14} min { , 0 } .
На втором шаге узлу 3, временная пометка которого наименьшая из полученных, присваивается постоянная пометка L3 I3’ 2.
Вторая итерация: на первом шаге вычисляются новые временные пометки узлов 2, 4, не имеющих постоянных пометок:
I2’ min {I2, L3 c32} min {3,2 } 3,
I4’ min {I4, L3 c34} min { , 2 7} 9.
На втором шаге узлу 2, временная пометка которого наименьшая из полученных, присваивается постоянная пометка L2 I2’ 3.
Третья итерация: на первом шаге вычисляется новая временная пометка узла 4, не имеющего постоянной пометки:
I4’ min {I4, L2 с24} min {9,3 4} 7.
На втором шаге узлу 4, временная пометка которого наименьшая (и единственная) из полученных, присваивается постоянная пометка L4 I4’ 7. Так как помеченным оказался сток 4 r, прямой ход алгоритма Дейкстры закончен.
Г
рафическая
демонстрация этого решения приведена
на рис. 9; табличное решение - в табл. 1.
Таблица 1: Прямой ход алгоритма Дейкстры
Узел i: |
s1 |
2 |
3 |
r4 |
Итерация: |
Значения пометок |
|||
0 |
0 |
|
|
|
1 |
|
3 |
2 |
|
2 |
|
3 |
|
9 |
3 |
|
|
|
7 |
В обратном ходе алгоритма Дейкстры (см. рис. 10) участвуют все 4 узла. После исходного заполнения оптимальная цепь имеет вид [?, 4]. Первая итерация: на первом шаге вычисляются величины:
1 L4 - L1 - c14 7 - 0 - - ,
2 L4 - L2 - c24 7 - 3 - 4 0,
3 L4 - L3 - c34 7 - 2 - 7 - 2.
На втором шаге узел 2, для которого 2 0, включается в оптимальную цепь [?, 2, 4].
Вторая итерация: на первом шаге вычисляются величины:
1 L2 - L1 - c12 3 - 0 - 3 0, 3 L2 - L3 - c32 3 - 2 - - .
На втором шаге узел 2, для которого 1 0 включается в оптимальную цепь [1, 2, 4]. Так как это источник (1 s), обратный ход алгоритма Дейкстры закончен.
Графическая демонстрация этого решения приведена на рис. 10; табличное решение - в табл. 2.
Таблица 2: Обратный ход алгоритма Дейкстры
Узел i: |
s1 |
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}.
