- •Розділ VII Теорія графів
- •7.1. Основні поняття теорії графів.
- •7.2. Подання графа за допомогою матриці інцидентності.
- •7.3. Подання графа за допомогою матриці суміжності графа.
- •7.4. Визначення локальних степенів вершин графа. Повні графи.
- •7.5. Ізоморфізм графів.
- •7.6. Частини графа, суграфи й підграфи.
- •7.7. Графи і бінарні відношення.
- •7.8. Маршрути, шляхи, ланцюги та цикли.
- •7.10. Дерева.
- •7.11. Кістякове дерево зв’язного графа.
- •7.12. Ейлерові графи
- •7.13. Гамільтонові графи.
- •7.14. Планарність графів.
- •7.15. Задачі пошуку маршрутів в графі.
- •7.16. Пошук відстані між вершинами графа.
- •7.17. Мінімальні шляхи у зважених орієнтованих графах.
- •Контрольні запитання
- •Задачі й вправи
7.17. Мінімальні шляхи у зважених орієнтованих графах.
Орієнтований
граф
є зваженим, якщо на множині дуг
визначено вагову функцію
.
Таким
чином, у зваженому орієнтованому
графі
кожній дузі
поставлено у відповідність вагу
.
Значення
будемо називати вагою дуги
.
Для будь-якого шляху
зваженого орієнтованого графа
позначимо через
суму ваг дуг, що входять у
,
при цьому кожна дуга враховується
стільки разів, скільки вона входить у
шлях. Величину
будемо називати вагою шляху
у зваженому орієнтованому
графі
.
Якщо ваги дуг дорівнюють 1, то
виражає введену раніше довжину шляху
у не незваженому орієнтованому
графі.
Отже, будь-який не незважений орієнтований
граф
можна вважати зваженим із вагами дуг,
що дорівнюють 1.
Означення
7.40.
Шлях
у зваженому орієнтованому
графі
з
вершини
у вершину
,
де
,
називається мінімальним, якщо
він має найменшу вагу серед усіх шляхів
з
в
.
Наведемо
деякі властивості мінімальних шляхів
у зваженому орієнтованому
графі
:
1) будь-який мінімальний шлях (маршрут) є простим ланцюгом;
2)
якщо
− мінімальний шлях, то для будь-яких
проміжних вершин
,
шлях
також є мінімальним;
3)
якщо
− мінімальний шлях (маршрут) серед
шляхів з
у
,
що містять не більше як
дуг, то
− мінімальний шлях серед шляхів з
у
,
що з’єднують не більше за
дуг.
При розв’язуванні деяких практичних задач виникає необхідність пошуку максимальних шляхів у навантаженому орієнтованому графі. Така задача легко зводиться до задачі пошуку мінімальних шляхів.
Нехай
− зважений граф;
.
Введемо величини
,
де
Для кожних фіксованих
та
величина
дорівнює вазі мінімального шляху серед
шляхів із
у
,
які містять
не більш як
дуг; якщо
ж таких шляхів немає,
то
.
Крім
того, якщо
довільну вершину
вважати
шляхом з
в
нульової ваги, то величини
можна ввести також і для
,
при
цьому
|
|
(7.3) |
Уведемо
також у розгляд квадратну матрицю
порядку
з елементами

яку
будемо називати
матрицею ваг дуг зваженого орієнтованого
графа
.
Для
обчислення
справджуються рекурентні
формули:
|
|
(7.4) |
|
|
(7.5) |
Опишемо
алгоритм знаходження таблиці значень
величин
(будемо записувати її у вигляді матриці,
де
− номер рядка,
− номер стовпця). Справді, використовуючи
рекурентні
співвідношення, можна послідовно
визначити набір величин
((
)-й
стовпець матриці), починаючи з
,
а потім рухатися крок за кроком, збільшуючи
до будь-якого потрібного значення.
Якщо
при
деякому
,
де
,
виконується рівність
,
то
,
і, зокрема,
,
,
тобто в цьому разі значення
при
не несуть ніякої додаткової інформації;
тоді доцільно обірвати процес послідовного
визначення наборів величин
на значенні
.
Наведемо
алгоритм, що дає змогу за таблицею
величин
,
визначити мінімальний шлях у зваженому
орієнтованому
графі
із
у будь-яку досяжну вершину.
Алгоритм Беллмана. Він включає такі кроки:
Крок
1.
Якщо
,
то вершина
є недосяжною з
(припускаємо, що всі величини
,
скінченні). В цьому випадку робота
алгоритму завершується.
Крок
2.
Нехай
.
Тоді число
виражає вагу будь-якого мінімального
шляху з
в
у зваженому орієнтованому
графі
.
Визначимо мінімальне число
,
при
якому виконується рівність
.
З означення чисел
отримуємо,
що
− мінімальне кількість дуг у шляху
серед усіх мінімальних шляхів із
в
у зваженому орієнтованому
графі
.
Крок
3.
Послідовно
визначаються номери
такі, що
|
…….………………
|
(7.6) |
Із
(7.6) з урахуванням того, що
,
маємо
,
...,
,
,
звідки
|
|
(7.7) |
Додаючи
рівності (7.6) і враховуючи (7.7), знаходимо
,
тобто
− шуканий мінімальний шлях із
в
у зваженому орієнтованому
графі
.
Зауважимо, що в цьому шляху є
дуг. Отже, визначено шлях із мінімальною
кількістю дуг серед усіх мінімальних
шляхів із
в
у зваженому орієнтованому
графі
.
Номери
,
що задовольняють (7.6), взагалі кажучи,
можуть бути вилучені неоднозначно. Ця
неоднозначність відповідає випадкам,
коли існує кілька
різних шляхів із
в
у зваженому орієнтованому
графі
.
Приклад
7.21.
Визначити
мінімальний шлях з
в
у зваженому орієнтованому
графі
,
зображеному на рис.7.22, біля
кожної дуги якого вказано її вагу.
|
|
|
Рис.7.22 |
|
Таблиця 7.6 |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
∞ |
∞ |
1 |
8 |
7 |
∞ |
∞ |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
1 |
∞ |
3 |
1 |
∞ |
∞ |
10 |
∞ |
∞ |
3 |
3 |
3 |
3 |
3 |
|
|
∞ |
2 |
∞ |
∞ |
4 |
∞ |
∞ |
∞ |
1 |
1 |
1 |
1 |
1 |
1 |
|
|
∞ |
∞ |
2 |
∞ |
∞ |
1 |
∞ |
∞ |
8 |
8 |
4 |
4 |
4 |
4 |
|
|
∞ |
∞ |
∞ |
3 |
∞ |
3 |
6 |
∞ |
7 |
5 |
5 |
5 |
5 |
5 |
|
|
∞ |
2 |
∞ |
∞ |
∞ |
∞ |
1 |
∞ |
∞ |
9 |
8 |
5 |
5 |
5 |
|
|
∞ |
∞ |
∞ |
5 |
∞ |
∞ |
∞ |
∞ |
∞ |
13 |
20 |
9 |
6 |
6 |
Складемо
матрицю
ваг дуг зваженого графа
у вигляді перших шості стовпців табл.7.6.
В табл.7.6. є останні стовпці
,
де
k=0,
1, 2, 3, 4, 5, 6, 7, які будемо визначати,
користуючись рекурентним
співвідношеннями:
Стовпець
містить 0 тільки у першому рядку, тобто
,
в усіх інших – ∞. Далі
для усіх стовпців.
Використовуючи рекурентну формулу, маємо:
;
;
;
;
;
.
Стовпець
табл.7.6 заповнений.
;
;
;
;
;
.
Стовпець
табл.7.6 заповнений. І т.д., доки не заповнимо
стовпець
.
Таким
чином задля визначення кожного стовпця
треба використовувати попередній
стовпець і відповідний і-й
стовпець матриці
.
Величина
виражає вагу мінімального шляху з
в
у зваженому орієнтованому
графі
.
Знайдемо мінімальне число
,
при
якому виконується рівність
.
Із
таблиці 7.6 маємо,
.
Таким чином, мінімальна кількість дуг
серед усіх мінімальних шляхів із
в
у зваженому орієнтованому
графі
дорівнює
5.
Визначимо
тепер послідовність номерів
,
де
,
які задовольняють (7.6). Із
табл.7.6 знаходимо, що як таку послідовність
треба взяти
номери 7, 6, 4, 2, 3, 1, оскільки
;
;
;
;
.
Тоді
− шуканий
мінімальний шлях із
в
у зваженому орієнтованому
графі
,
причому він містить
мінімальну кількість дуг серед усіх
можливих мінімальних шляхів із
у
.
Приклад 7.22. За таблицею 7.6 можна зробити декілька висновків. Отже:
-
мінімальний шлях з вершини
у вершину
дорівнює 3 і містить 2 дуги;
-
мінімальний шлях з вершини
у вершину
дорівнює 1 і містить 1 дуги;
-
мінімальний шлях з вершини
у вершину
дорівнює 4 і містить 3 дуги;
-
мінімальний шлях з вершини
у вершину
дорівнює 5 і містить 2 дуги;
-
мінімальний шлях з вершини
у вершину
дорівнює 5 і містить 4 дуги.
Всі ці шляхи можна визначити за табл.7.6, використовуючи той самий алгоритм, що і у прикладі 7.19.
Вправа 7.4.
1. Зображено орграф (рис.7.23)

Рис.7.23.
Визначити
відстань та відповідний їй мінімальний
шлях з вершини
до вершини
.
2. Зображено зважений орграф (рис.7.24.)

Рис.7.24.
Визначити
мінімальний шлях з вершини
у вершину
.












