2. Минимальные пути в нагруженных орграфах
Орграф D(V, X) называется нагруженным, если на множестве дуг X определена функция, называемая весовой, ставящая в соответствие каждой дуге некоторое действительное число l(x). Значение l(x) будем называть длиной дуги х.
Обозначим какой-либо путь в орграфе D через , тогда l() – длина этого пути, равная сумме длин входящих в дуг. Заметим, что если длины всех дуг в орграфе равны 1, то длина любого пути будет равна числу дуг в этом пути. Таким образом, можно считать ненагруженный орграф нагруженным с длинами дуг, равными 1.
Путь в нагруженном орграфе D из вершины v в вершину w (v w) называется минимальным, если он имеет минимальную длину среди всех путей орграфа D из v в w.
Длины дуг могут быть как положительными, так и отрицательными. Рассмотрим только такие орграфы, длины дуг которых есть числа l(x) > 0.
Приведем некоторые свойства минимальных путей в нагруженных орграфах:
если для любой х Х l(x) > 0, то любой минимальный путь является простой цепью;
если v1v2…vk – минимальный путь, то для любых номеров i и j таких, что 1 i j k , путь vi vi+1…vj также – минимальный;
если v…uw – минимальный путь среди путей из v в w, содержащих не более k + 1 дуг, то v..u – минимальный путь среди путей из v в u , содержащих не более k дуг.
Рассмотрим теперь задачу поиска минимальных путей в орграфах.
Пусть D(V, X) – нагруженный орграф, n 2. Введем величины ik , где i = 1, …, n, k = 1, 2…Для каждых фиксированных i и k величина ik равна длине минимального пути среди всех путей из v1 в vi (v1 - начало пути), содержащего k дуг. Если таких путей нет, то ik = . Если произвольную вершину v считать путем из v в v нулевой длины, то величины ik можно ввести для k = 0, при этом 10 = 0, i0 = , i = 2,…,n.
Введем также квадратную матрицу С(D) = [cij], порядка n, называемую матрицей длин дуг:
l(vi, vj) – длина дуги (vi, vj).
Для вычисления ik используем формулы:
При i = 2, …,n, k 0 выполняется равенство:
ik+1 = min{jk + cji},
1 j n
где jk – это величины всех вершин кроме i- ой, cji – это длины дуг из каждой j – ой вершины в i – ую, для которой вычисляется ik+1.
при i = 1, k 0 верно равенство:
1k+1 = min{0; min{jk + cj1}, если нет дуг отрицательной длины, то 1k+1 = 0.
1 j n
Приведем алгоритм, позволяющий по таблице величин ik , i = 1, 2,…,n, k = 0, 1, …, n – 1, определить минимальный путь в нагруженном графе D из v1 в любую достижимую вершину, причем алгоритм выделяет путь с наименьшим числом дуг.
Алгоритм носит название алгоритма Форда – Беллмана.
Шаг1. Пусть составлена таблица величин ik , i = 1, 2,…,n, k = 0, 1, …, n – 1. Если i1n-1 = , то вершина vi1 не достижима из v1. Работа алгоритма заканчивается.
Шаг2. Пусть i1n-1< , тогда число i1n-1 выражает длину минимального пути из вершины v1 в вершину vi1. Определим минимальное число дуг k1 1, при котором выполняется равенство i1k1 = i1n-1. Получаем, что k1 - минимальное число дуг в минимальном пути.
Шаг3. Последовательно определим номера вершин в этом пути i2, … , ik1+1:
i2k1-1 + ci2, i1 = i1k1;
i3k1-2 + ci3, i2 = i2k1-1;
………………………
ik1+10 + cik1+1 = ik11.
Пример:
Определить минимальный путь из v1 в v6 в нагруженном орграфе D, изображенном на рисунке:
Составим матрицу длин дуг графа и рядом таблицу величин ik, содержащую шесть столбцов k = 0, 1, …, 5, используя соотношения:
При i = 2, …,n, k 0 выполняется равенство
ik+1 = min{jk + cji},
1 j n
при i = 1, k 0 верно равенство
1k+1 = min{0; min{jk + cj1},
1 j n
| V1 | V2 | V3 | V4 | V5 | V6 |
| i0 | i1 | i2 | i3 | i4 | i5 |
V1 | | | 5 | 5 | 2 | 12 |
| 0 | 0 | 0 | 0 | 0 | 0 |
V2 | | | | | | 2 |
| | | 7 | 5 | 5 | 5 |
V3 | | 2 | | | | |
| | 5 | 3 | 3 | 3 | 3 |
V4 | | 2 | | | | |
| | 5 | 4 | 4 | 4 | 4 |
V5 | | | 1 | 2 | | |
| | 2 | 2 | 2 | 2 | 2 |
V6 | | | | | | |
| | 12 | 12 | 9 | 7 | 7 |
Первый столбец значений ik : 10= 0 (начало пути), остальные - . Вся первая строка содержит нули, т.к. это начало пути и 0 – наименьшая длина из v1 в v1.
Второй столбец: i1 – это длины дуг , соединяющих v1 с другими вершинами и , начиная со второй вершины , заносим значения из первой строки матрицы длин дуг.
Третий столбец: 22 = min{0+, 5+2, 5+2, 2+, 12+}= 7;
32 = min {0+5, +, 5+, 2+1, 12+}=3;
42 = min{0+5, +, 5+, 2+2,12+}= 4;
52 = min{0+2, +,5+,5+,12+} = 2;
62 = min{0+12, +2,5+,5+,2+} = 12.
Четвертый столбец:
23 = min{0+, 3+2, 4+2, 2+, 12+}= 5;
33 = min {0+5, 7+, 4+, 2+1, 12+}=3;
43 = min{0+5, 7+, 3+, 2+2,12+}= 4;
53 = min{0+2, 7+,3+,4+,12+} = 2;
63 = min{0+12, 7+2,3+,4+,2+} = 9.
Пятый столбец:
24 = min{0+, 3+2, 4+2, 2+, 9+}= 5;
34 = min {0+5, 5+, 4+, 2+1, 9+}=3;
44 = min{0+5, 5+, 3+, 2+2,9+}= 4;
54 = min{0+2, 5+,3+,4+,9+} = 2;
64 = min{0+12, 5+2,3+,4+,2+} = 7.
Последний шестой столбец:
25 = min{0+, 3+2, 4+2, 2+, 7+}= 5;
35 = min {0+5, 5+, 4+, 2+1, 7+}=3;
45 = min{0+5, 5+, 3+, 2+2,7+}= 4;
55 = min{0+2, 5+,3+,4+,7+} = 2;
65 = min{0+12, 5+2,3+,4+,2+} = 7.
Итак, минимальный путь из v1 в v6 равен 7 и содержит 4 дуги, т.к. первый раз 7 появилось в столбце i4, т.е. для вершины v6 64 = 7.
Найдем последовательность вершин, входящих в этот путь:
64 = 7= 23 + с26 =5+2;
23 = 5 = 32 + с32 = 3+2;
32 = 3 = 51 + с53 = 2+1;
51 = 10 + с15 = 0+2.
Получили путь v1v5v3v2v6 .
Yandex.RTB R-A-252273-3- Лекция 2
- Лекция 3
- Лекция 4
- Лекция 5
- Лекция 13
- Лекция 14
- Лекция 16
- Основные понятия
- Понятие множества. Способы задания множеств.
- Понятие множества. Способы задания множеств.
- Отношения между множествами.
- 3, Операции над множествами.
- Алгебра множеств.
- Теорема о количестве подмножеств конечного множества.
- Формула включений и исключений.
- Лекция 2
- 1.Понятие вектора. Прямое произведение множеств.
- 2.Теорема о количестве элементов прямого произведения.
- Понятие вектора. Прямое произведение множеств.
- Теорема о количестве элементов прямого произведения.
- Лекция 3
- 2. Понятие высказывания.
- 3. Логические операции над высказываниями
- 4.Формулы алгебры логики.
- Лекция 4
- 2. Важнейшие равносильности алгебры логики.
- 3.Равносильные преобразования формул.
- Задачи для самостоятельного решения
- Лекция 5
- Дизъюнктивная нормальная форма.
- Конъюнктивная нормальная форма.
- Проблема разрешимости.
- Лекция 6
- Функции алгебры логики.
- 3. Представление произвольной функции алгебры логики в виде формулы алгебры логики.
- 4.Приложения алгебры логики в технике (релейно-контактные схемы).
- Контрольные вопросы
- Лекция 7
- Совершенная дизъюнктивная нормальная форма.
- Совершенная конъюнктивная нормальная форма.
- Совершенная дизъюнктивная нормальная форма.
- 2.Совершенная конъюнктивная нормальная форма.
- Лекция 8
- 2.Понятие минимальной днф. Метод минимизирующих карт.
- 3.Метод Квайна.
- 4.Метод Карно.
- 5.Постановка задачи минимизации в геометрической форме.
- 6.Сокращенная днф.
- 7.Тупиковая днф. Днф Квайна.
- Лекция 9
- Некоторые логические операции. Двоичное сложение.
- Полином Жегалкина.
- Некоторые логические операции. Двоичное сложение.
- Полином Жегалкина.
- Лекция 10
- Полная система . Достаточное условие полноты.
- Критерий полноты системы булевых функций.
- Независимые системы. Базис замкнутого класса.
- Полная система. Достаточное условие полноты.
- Критерий полноты системы булевых функций.
- 3. Независимые системы. Базис замкнутого класса.
- Лекция 11
- Понятие предиката.
- Логические операции над предикатами.
- 1. Понятие предиката
- 2. Логические операции над предикатами
- Лекция 12
- 2. Формулы логики предикатов.
- Значение формулы логики предикатов.
- 4. Равносильные формулы логики предикатов.
- Лекция 13
- Построение противоположных утверждений.
- 3. Прямая, обратная и противоположная теоремы.
- 4. Необходимые и достаточные условия.
- 5. Доказательство методом от противного.
- Задачи для самостоятельного решения
- Лекция 14
- 2. Использование метода математической индукции для нахождения сумм конечного числа слагаемых
- 3. Использование метода математической индукции для доказательства неравенств и делимости выражений, зависящих от n на некоторое число
- 4. Обобщение метода математической индукции
- Контрольные вопросы
- Лекция 15
- Операции над бинарными отношениями.
- 3. Свойства бинарных отношений.
- 4. Специальные бинарные отношения.
- Контрольные вопросы
- Лекция 16
- Функция
- 1. 4. Отображение
- Обратная функция
- 2. Свойства отображений и функций
- 3.Операции над функциями. Свойства операций
- Контрольные вопросы
- Лекция 17
- Основные понятия .
- 2. Смежность, инцидентность, степени вершин.
- 3. Способы задания графов
- Маршруты в неориентированном графе
- Операции над графами.
- Связность. Компоненты связности
- Контрольные вопросы
- Лекция 18
- 2. Метрические характеристики неориентированного графа
- Минимальные маршруты в нагруженных графах
- Задачи на деревьях
- Цикловой ранг графа. Цикломатическое число
- Контрольные вопросы
- Лекция 19
- Эйлеровы цепи и циклы
- Гамильтоновы циклы и цепи
- Эйлеровы цепи и циклы
- Гамильтоновы циклы и цепи.
- Контрольные вопросы
- Лекция 20
- Двудольный граф. Условие существования двудольного графа
- Паросочетания . Реберные покрытия
- Двудольный граф. Условие существования двудольного графа
- Паросочетания. Реберные покрытия
- Контрольные вопросы
- Лекция 21
- Основные определения
- Алгоритм плоской укладки графа
- Контрольные вопросы
- Лекция 22
- Способы задания ориентированного графа
- Путь в ориентированном графе
- 4. Связность. Компоненты связности в орграфе
- Контрольные вопросы
- Лекция 23
- 2. Минимальные пути в нагруженных орграфах
- 3. Порядковая функция орграфа без контуров
- Контрольные вопросы