Задачі про потоки в мережах Поняття потоку. Теорема Форда-Фалкерсона
В теорії оптимізації та теорії графів, задача про максимальний потік полягає у знаходженні такого потоку за транспортною мережею, щоб сума потоків з витоку, або, що означає те ж саме, сума потоків до стоку була максимальна.
Задача про максимальний потік є окремим випадком більш складних задач, таких, як, наприклад, задача про циркуляцію.
Водночас спеціальна структура окремих класів потокових задач дозволяє побудувати ефективні алгоритми їх розв’язування.
Будемо розглядати мережу
як двійку, де
-
множина вузлів, що зв’язані між собою
дугами з множини
.
Якщо дуги є спрямованими,
то мережа — орієнтована. Мережу
називатимемо зв’язною, якщо для
довільного розбиття множини вузлів
мережі
на дві підмножини
та
(
)
знайдеться щонайменше одна дуга
,
така що
та
або
та
.
В потокових задачах розглядаються
лише зв’язні мережі. Розв’язання
потокової задачі полягає в знаходженні
таких значень функції потоку для всіх
дуг мережі, що протікає від джерела до
витоку мережі і забезпечує екстремальне
значення функції мети. Джерело
— це вузол мережі, в який може втікати
потік з зовнішнього середовища. Витік
— це вузол мережі, з якого потік може
витікати в зовнішнє середовище.
Потоком в
орієнтованій мережі називається
цілочисельна функція
,
визначена на множині дуг мережі, для
якої виконуються наступні умови:
де
—
множина всіх вузлів, що зв’язані
безпосередньо з вузлом
дугами, спрямованими до нього;
—
множина всіх вузлів, що зв’язані
безпосередньо з вузлом
дугами, що спрямовані віднього;
— пропускна здатність дуги
.
Таким чином функція потоку визначена на кожній дузі мережі, є невід’ємною, значення якої не перевищує пропускної здатності дуг. Умова 2 є умовою збереження потоку — який потік втікає в будь-який проміжний вузол мережі, такий і витікає.
розрізом
називається розбиття множини
вузлів мережі на дві підмножини
та
такі, що
та
.
Пропускна здатність розрізу
дорівнює
,
тобто є сумою пропускних здатностей
“прямих” дуг, що йдуть з вершин множини
до вершин множини
.
Максимальний потік в мережі визначається за допомогою пропускних здатностей розрізів мережі. Звичайно, величина максимального потоку не повинна перевищувати величину пропускної здатності розрізу. Вимога орієнтованості мережі не є обмежуючою, тому що завжди неорієнтовану дугу з пропускною здатністю можна замінити парою протилежно спрямованих орієнтованих дуг, кожна з яких матиме пропускну здатність . Наступна теорема є теоремою про максимальний потік в мережі.
Теорема Форда-Фалкерсона.
Величина потоку з джерела
до витоку
в орієнтованій мережі не перевищує
пропускної здатності
будь-якого
розрізу. Величина максимального потоку
дорівнює пропускній здатності мінімального
розрізу, тобто і потік
,
і розріз
одночасно оптимальні в тому і лише в
тому випадку, якщо
для всіх дуг
,
таких що
та
для всіх дуг
,
таких що
.
Нехай
— розріз, такий що
та
, якщо знайдеться таке
,
для якого
або
.
Такий розріз будується за допомогою наступної процедури:
визначаємо множину
;
якщо для якогось знайдеться таке
,
,
що
або
,
то
включаємо в
;
включення повторюємо до моменту, поки неможливо буде розширити далі.
В результаті
,
так як в іншому випадку існував би
збільшуючий (ауґментальний) шлях з
в
,
що суперечить припущенню про те, що
потік максимальний.
