Предварительно введем ряд понятий и докажем ряд утверждений.
Определение. Разрезом в сети называется пара множеств и , удовлетворяющих условиям:
1. , ;
2. ;
3. .
Через обозначим множество всех дуг, начала которых лежат в , а концы – в , а через - множество всех дуг, начала которых лежат в , а концы – в .
Определение. Положим . Число называется пропускной способность разреза .
Также для разреза введем числовые характеристики:
,
.
Пример 4. Для сети и потока в ней из примера 1, рассмотрим разрез , где и . Имеем: , , .
Лемма 1. Для любого потока и любого разреза справедливо равенство .
Доказательство. Согласно условию сохранения потока в вершинах для произвольной вершины имеем: , или . Следовательно,
. (1)
Кроме того
. (2)
Сложив почленно равенства (1) и (2), получим
,
,
,
.
Первое и третье слагаемые последнего равенства взаимно уничтожаются, следовательно,
,
. ■
Следствие 1. .
Доказательство. Пусть , . Тогда , и равенство из леммы 1 запишется следующим образом: . ■
Следствие 2. Для любого потока и любого разреза справедливо неравенство .
|
|
Доказательство. Из условия ограничения по пропускной способности , т.е.
.
Тогда с учетом равенства из леммы 1 имеем:
■
Определение. Разрез называется минимальным, если для любого разреза справедливо неравенство
.
Лемма 2. Если для некоторого потока и некоторого разреза выполняется равенство , то поток максимален, а разрез минимален.
Доказательство. Пусть - максимальный поток, а - минимальный разрез. Тогда справедлива следующая цепочка неравенств
.
Поскольку крайние члены в этой цепочке неравенств совпадают, то она превращается в цепочку равенств, что означает, что поток максимален, а разрез минимален. ■
Лемма 3. Пусть - поток в сети и – -дополняющая цепь из в . Тогда в сети существует поток такой, что
.
Доказательство. Определим в сети функцию по формуле
Докажем, что функция является потоком.
Вначале покажем, что функция неотрицательна и удовлетворяет условию 1) определения потока.
Пусть - прямая дуга цепи . Тогда
.
Пусть - обратная дуга цепи . Тогда
и
.
Таким образом, для любой дуги цепи выполнено . Если , то .
Теперь убедимся в выполнении для функции условия 2) определения потока. Понятно, что это условие следует проверить лишь для вершин , входящих в цепь . Пусть - дуга, по которой «пришли» в вершину , а - дуга, по которой «ушли» из . Каждая из этих дуг может быть как прямой, так и обратной в цепи . Следовательно, возможны четыре различных случая.
1. Пусть обе дуги и прямые. В этом случае,
и ,
так что
и .
Но для потока выполнено условие , следовательно, и для потока имеем .
|
|
2. Пусть дуга - прямая и - обратная, т.е. обе дуги входят в вершину . В этом случае,
и ,
так что
и .
Так как для потока выполнено условие , то и для потока имеем .
Аналогично рассматриваются случай 3 (обе дуги и - обратные) и случай 4 (дуга - обратная и - прямая).
Таким образом, мы показали, что функция - поток в цепи .
Определим теперь величину потока . Напомним, что . Из вершины дуги только выходят, поэтому та единственная дуга с началом в вершине , которая входит в цепь , является прямой дугой цепи . Следовательно, для нее выполнено равенство . На остальных дугах, выходящих из , поток не менялся, так что имеем:
. ■
Объединяет приведенные выше результаты следующая теорема.
Теорема (Форд, Флакерсон). Для потока в сети следующие условия эквивалентны:
1. поток максимален;
2. не существует - дополняющей цепи из в ;
3. существует разрез , для которого .
Доказательство. Доказательство проведем по следующей схеме: .
. Будем рассуждать от противного. Предположим, что для максимального потока найдется -дополняющая цепь из в . Тогда по лемме 3 существует поток такой, что , т.е. . Полученное неравенство противоречит тому, что поток максимален.
. Определим как множество всех вершин , для каждой из которых существует -цепь такая, что . Добавим в вершину и положим . Докажем, что для полученного разреза выполняется равенство .
Покажем, что для любой дуги выполнено равенство . Будем рассуждать от противного. Предположим, найдется дуга , для которой . Пусть - начало, - конец этой дуги, , . Множество определено нами так, что можно говорить о существовании -цепи , для которой . Дополним эту цепь дугой и вершиной до -цепи . Будем иметь: (здесь учтено, что , поскольку - прямая дуга в цепи ). Но выполнение неравенства означает, что вершина . Пришли к противоречию. Таким образом, предположение было неверным и для любой дуги выполнено равенство . Следовательно, .
Аналогично показывается, что для всех дуг имеет место равенство и, следовательно, . Поскольку (в силу леммы 1) для любого разреза справедливо равенство , для построенного разреза получаем равенство .
. Это утверждение полностью совпадает с утверждением доказанной ранее леммы 2. ■
Следствие. Величина максимального потока в произвольной сети равна пропускной способности минимального разреза.
Замечание. В ходе доказательства теоремы при обосновании справедливости перехода был, по существу, предложен алгоритм нахождения минимального разреза. А именно: пусть найден максимальный поток ; находим как множество всех вершин , для каждой из которых существует -цепь такая, что ; добавляем в вершину и положим . Полученный разрез минимален.
Пример 5. Для сети из примера 1, разрез , где и , минимален.