Теорема Форда — Фалкерсона

твердження в теорії оптимізації

Теорема Форда[ru] — Фалкерсон[ru] — теорема про найбільший потік у графі, тісно пов'язана з теоремою Менгера.

Формулювання: величина найбільшого потоку в графі шляхів дорівнює величині пропускної спроможності його найменшого розрізу.

Достатність: будь-який потік між вершинами t і s менший або дорівнює величині будь-якого розрізу. Нехай дано деякий потік і деякий розріз. Величина цього потоку складається з величин «вантажів», що перевозяться по всіх можливих шляхах з вершини t до s. Кожен такий шлях повинен мати спільне ребро з цим розрізом. Оскільки по кожному ребру перерізу сумарно не можна перевезти «вантажу» більше, ніж його пропускна здатність, то сума всіх вантажів менша або дорівнює сумі всіх пропускних здібностей ребер даного розрізу. Твердження доведено.

Звідси випливає, що будь-який потік менший або дорівнює величині найменшого розрізу, а отже й найбільший потік менший або дорівнює величині найменшого перерізу.

На цій теоремі ґрунтується алгоритм Форда — Фалкерсона пошуку найбільшого потоку в графі, він же є доведенням необхідності даної теореми, тобто воно є конструктивним.

Інше доведення (через посилення) ред.

Посилимо теорему Форда — Фалкерсона. Доведемо для мережі   з потоком f рівносильність одразу трьох таких фактів:

1° Потік f найбільший.

2° Пропускна здатність найменшого розрізу дорівнює величині потоку f.

3° У графі   немає шляху розширення.


1 ° → 3 °. Припустивши протилежне, отримаємо суперечність, описану в інформації щодо шляху розширення в транспортному графі.

3 ° → 2 °. Очевидно, що величина потоку   не перевищує пропускної здатності найменшого розрізу  . Нехай  . Розглянемо розріз, де у множині   будуть усі вершини, крім  . Його пропускна здатність не менша за пропускну здатність найменшого розрізу, що, у свою чергу, більше від величини потоку  . Отже, існує напрямок   з   у  , що  . Тепер візьмемо всі такі   і перенесемо їх у  . Розглянувши розріз, що вийшов, зауважимо, що його пропускна здатність теж більша від величини потоку. Знову збільшуємо множину   і робимо так доти, поки у множині   залишиться тільки вершина  . Вона ж буде першою вершиною в шляху, який ми створюємо. Тепер дивимося, яку пару ми вибрали минулим ходом. Нехай це пара  . Тоді до шляху додаємо вершину  . Далі дивимось, у парі з якою вершиною була на першому місці вершина  . Нехай це  . Тоді далі до шляху додаємо вершину  . Робимо так доти, доки не дійдемо до вершини  . Однак за побудовою цей шлях є залишковим[прояснити], що суперечить припущенню.

2 ° → 1 °. Як сказано раніше, очевидно, що величина будь-якого потоку не перевищує пропускної спроможності найменшого розрізу, а величина нашого потоку   дорівнює їй. Тоді величина потоку   не менше від величини будь-якого іншого потоку в нашій мережі, тобто потік   максимальний.

Це доведення добре тим, що не використовує складного алгоритму знаходження найбільшого потоку в довільній транспортній мережі.

Приклад ред.

 
Мережа з двома найменшими розрізами

Праворуч показно мережу з 6 вершинами  , де сумарний потік від витоку   до стоку   дорівнює 5. Цей потік є найбільшим для цієї мережі.

У цій мережі можливі 2 найменші розрізи:

Література ред.

Посилання ред.