- •Лекція №18. Структури та параметри графів
- •Питання для самоперевірки та вправи
- •Лекція №19. Мости, блоки
- •Питання для самоперевірки та вправи
- •Лекція №20. Зв’язність
- •Питання для самоперевірки та вправи
- •Змістовий модуль 5. Спеціальні графи Лекція №21. Двохдольні графи
- •Питання для самоперевірки та вправи
- •Лекція №22. Обходи графів
- •Гамільтонові графи
- •Питання для самоперевірки та вправи
- •Лекція №23. Дерева
- •Питання для самоперевірки та вправи
- •Змістовий модуль 6. Алгоритми на графах Лекція №24. Фарбування графів
- •Деякі числа теорії графів
- •Питання для самоперевірки та вправи
- •Лекція №25 Мережі
- •Розріз мережі
- •Алгоритм знаходження максимального потоку
- •1. Розстановка поміток
- •2. Збільшення потоку
- •Питання для самоперевірки та вправи
- •Питання для самоперевірки та вправи
- •Лекція №27 Побудова дерева найкоротших шляхів. Транспортна задача
- •Питання для самоперевірки та вправи
- •Основна
- •Додаткова
Питання для самоперевірки та вправи
1. Знайти максимальний потік в транспортній мережі:
3
10
11
4
8
11
s
t
2
4
5
2
2. Алгоритм знаходження найкоротшого шляху між двома заданими вершинами.
3. Знайдіть найкоротший шлях між вершинами s і t:
14
15
21
7
18
17
5
s
9
15
11
t
8
10
44
16
5
41
Лекція №27 Побудова дерева найкоротших шляхів. Транспортна задача
Для знаходження найкоротшого шляху між вершинами використовуємо співвідношення
(27.1)
де
- це вершина, що безпосередньо передує
вершині
в найкоротшому шляху від
до
.
Якщо
існує декілька найкоротших шляхів від
до будь-якої іншої вершини, то при деякій
фіксованій вершині
співвідношення (27.1) буде виконуватися
більше, ніж для одної вершини
.
В цьому випадку вибір може бути довільним,
або таким, що розглядаються усі дуги
,
які входять в якийсь з найкоротших
шляхів.
Знайдемо
найкоротший шлях від
і
.
Для цього знаходимо вершину
з співвідношення:
В стовпці, що відповідає вершині в матриці, представленої таблицею 11.1 і в останній стрічці таблиці 11.2 знаходимо числа, сума яких дорівнює 5.
В стовпці таблиці 11.1 є числа 10, 18, 2, 13. Беремо найменше з них – це 2, яке відповідає вершині .
.
Таким чином,
задовольняє співвідношенню 12.1.
Знаходимо
тепер вершину
,
що безпосередньо передує вершині
.
Вершина
повинна задовольняти умові:
.
В стовпці таблиці 11.1 знаходяться числа 3, 2, 4, 14, 24. Беремо найменше з них – це 2, йому відповідає вершина :
.
Беремо наступне найменше число
.
Отже, найкоротший шлях від
до
- це шлях
.
Знайдемо
найкоротший шлях від
до
.
По таблиці 11.2
.
В матриці 11.1 в стовпці
є числа 18, 25, 20. Беремо 18, що відповідає
вершині
:
.
Але найкоротший шлях від до вже побудовано на попередньому кроці, отже:
Знайдемо найкоротший шлях від до
Таким чином будується дерево найкоротших шляхів для будь-якої іншої вершини.
Транспортна задача
Серед задач пошуку максимального потоку в практиці значне місце посідають задачі найбільш раціонального розподілу потоків по дугах транспортної мережі. Такі задачі носять назву транспортних.
У випадках, коли транспортна мережа становить схему організації перевезень будь-яких вантажів, розв’язання транспортної задачі повинно дати відповідь про найбільш раціональний з точки зору певного критерію план перевезень або розподіл маршрутів. Серед можливих критеріїв, які повинні задовольнити розв’язання транспортної задачі, можуть бути, наприклад, економічний (мінімальна вартість перевезень), часовий (доставка в найкоротший час) тощо.
Транспортна
задача з критерію мінімальної вартості
перевезень в термінах теорії графів
формулюється так. Дано транспортну
мережу з найбільшим потоком
,
потік
,
який повинен бути забезпечений по ній,
пропускні спроможності
окремих дуг, а також вартість проходження
одиниці потоку по кожній дузі
.
Необхідно знайти такий розподіл потоку по дугах транспортної мережі, який забезпечує мінімальну вартість його транспортування з вершини у вершину . При цьому для кожної дуги повинно виконуватися співвідношення:
,
а вартість проходження потоку
по дузі
дорівнюватиме добутку
.
При розв’язанні цієї задачі будемо
розглядати величини
,
тобто як довжини відповідних дуг.
У цьому випадку вартість проходження потоку по будь-якому шляху буде дорівнювати добутку довжини цього шляху на величину потоку і задача зводиться до задачі знаходження найкоротшого шляху.
Якщо нема обмежень на пропускну спроможність дуг, то найкоротшим буде той шлях, який забезпечує мінімальну вартість проходження потоку. Якщо є такі обмеження, то задача розв’язується в декілька етапів.
Загальний шлях розв’язання задачі.
У
графі
,
що зображує транспортну мережу з
довжинами дуг
,
відшукується найкоротший шлях
і пропускна спроможність
.
По
цьому шляху пропускається потік:
Якщо
,
задача розв’язана і шлях
є найбільш економічним для потоку
.
Якщо
,
потік
вважається частковим і переходимо до
графа
,
який отримуємо з графа
шляхом заміни пропускних спроможностей
дуг
У
такому разі дуги, в яких
з
розгляду виключаються. Потік, розподілення
якого тепер відшукується в графі
:
.
Отже,
повертаємося до попередньої задачі
пошуку найекономічнішого розподілу
потоку
на графі
.
Розв’язання
цієї задачі дає найекономічніший шлях
з пропускною спроможністю
,
через який пропускається частковий
потік:
Якщо
- задача розв’язана, якщо
переходимо до графа
і так далі.
Цей процес треба повторювати доти, поки сума часткових потоків не досягне значення . Ці часткові потоки дають найекономічніший розподіл потоку .
s
a
c
b
t
8/5
5/4
15/8
6/5
5/8
5/2
20/8
Наприклад:
У графі
знайти найекономічніший шлях перевезень
вантажів з вершини
у вершину
,
якщо
.
Вартість перевезень та пропускна спроможність зазначена на дугах – x/y, де х - вартість перевезень, а y - пропускна спроможність.
Розв’язок:
У
графі
знайдемо найкоротший шлях з вершини
у вершину
.
Таким шляхом буде
- (s,a),
(a,b), (b,t).
=2
<
.
Вартість перевезень часткового потоку
.
Переходимо до графа
при цьому дуга (a,b)
з розгляду виключається:
.
Потік, який відшукується в графі
.
Найкоротший шлях з вершини
у вершину
тепер буде
- (s,b),
(b,t).
=3
<
.
Вартість перевезень часткового потоку
.
Оскільки
переходимо до графа
;
-
(s,a),(a,с),
(с,t).
<
.
Вартість перевезень часткового потоку
.
.
Переходимо
до графа
,
потік, який відшукується:
.
- (s,b),
(b,c), (c,t)
,
отже, задача розв’язана.
.
Найекономнішим
буде шлях, вартість перевезень по якому
для заданої мережі буде:
грошових одиниць.
