- •Розділ 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.
Визначити мінімальний шлях з вершини у вершину .