Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Роздiл 7.doc
Скачиваний:
48
Добавлен:
25.12.2018
Размер:
2.85 Mб
Скачать

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.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]