Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями
Определения
| Определение: | 
| Пусть  - сеть с целочисленными пропускными способностями.
 Обозначим и , как максимальная пропускная способность ребра и максимальный поток соответсвенно. . . - потенциал вершины . Тогда общий потенциал выражается формулой: . Остаточную сеть обозначим . Обозначим длину слоистой сети - как длину кратчайшего пути в . | 
Теоремы
Идея доказательства следующая. Сперва мы получим оценку длины слоистой сети с точки зрения величины максимального потока и другого интересующего нас параметра(здесь мы рассматриваем P и C). Эта оценка будет возрастающей функцией интересующего параметра и убывающей функцией от максимального потока. Мы разобьем вычисление максимального потока на 2 части. В первой мы предполагаем, что поток достиг величины, находящейся в пределах от оптимального. Таким образом, потребуется не больше дополнительных фаз перед завершением. В этом и состоит вторая часть вычислений. Теперь используем оценку длины слоистой сети чтобы опредлить предел количества фаз, осуществляемых в 1 части. выбрано так, что оно такого же порядка, что и длина слоистой сети в конце 1 части вычислений. Таким образов количество фаз .
| Лемма (1): | 
Пусть  - расстояние между  и  в сети с текущим потоком, равным 0, и максимальным потоком, равным . 
Тогда   | 
| Доказательство: | 
| 
 Пусть - расстояние между и , а - набор вершин, удаленных от на . - разъединяющее множество узлов: при его удалении исчезают все направлнные пути из в . Следуя правилу сохранения потока, если обозначить как любой допустимый поток, то единиц потока должно проходить через . Но суммарное количество потока, которое может проходить через любую вершину не превосходит ее потенциала. Отсюда, если обозначить как общий потенциал вершин из , то мы имеем: 
 для любого допустимого потока . В частности, , таким образом получаем: и лемма доказана.  | 
| Лемма (2): | 
Пусть  - сеть, а  - допустимый поток в этой сети. Тогда общий потенциал в остаточной сети  равен общему потенциалу .  | 
| Доказательство: | 
| 
 Пусть - функция пропускных способностей в , а - потенциал, множество входящих ребер и множество выходящих ребер вершины из . Достаточно доказать, что . Ребру из соответствуют ребро из с пропускной способностью , и ребро из с пропускной способностью . Аналогично, ребру из соответствуют ребра из с пропускной способностью и с пропускной способностью . Используя правило сохранения потока, нетрудно проверить, что 
 и что и требовалось доказать.  | 
| Теорема (Первая теорема Карзанова): | 
Число итераций алгоритма Диница в сети  (,  - исток и сток, соответственно.) с целочисленными пропускными способностями - .  | 
| Доказательство: | 
| 
 Пусть - максимальный поток в сети . Теорема верна для , так как после каждой фазы поток увеличивается хотя бы на 1. Если , рассмотрим последнюю фазу, на момент начала выполнения которой поток в сети был меньше, чем . После этого потребуется не больше фаз, чтобы найти максимальный поток. На предыдущей фазе поток () в был не больше , таким образом . - сеть с максимальным потоком и потенциалом (по Лемме(2)). Поэтому мы можем использовать Лемму(1) чтобы оценить расстояние между и в . Отсюда получаем оценку длины () слоистой сети: Так как каждая фаза увеличивает длину слоистой сети минимум на один, то осуществляется не больше фаз. Таким образом происходит не более фаз.  | 
| Лемма (3): | 
Пусть в сети  нет параллельных ребер.  - поток в , а  - максимальный поток в . Тогда расстояние  между  и  в  таково: .  | 
| Доказательство: | 
| 
 Как и раньше, обозначим как набор вершин на расстоянии от . Множество и определяют разрез . Пропускная способность этого разреза не больше , так как все ребра между и также являются ребрами между и и не более чем двумя параллельными ребрами, исходящими из какой-то вершины в остаточной сети. По теореме о максимальном потоке/минимальном разрезе, . Таким образом ограничен наименьшим из . Но этот минимум максимизируется, когда для , таким образом . Выражая получаем нужное. | 
| Теорема (Вторая теорема Карзанова): | 
Число итераций алгоритма Диница с целочисленными пропускными способностями - .  | 
| Доказательство: | 
| 
 Если , то теорема очевидна. Положим, что , и рассотрим последнбб фазу, в которой поток не превышает . В этот момент осталось не более фаз, и - сеть с максимальным потоком . Мы можем применить Лемму(2), чтобы оценить длину слоистой сети, и, соответственно, количество выполненных фаз: 
 . Таким образом, прошло фаз, и фаз осталось. Теорема доказана. | 
Литература
- On the efficiency of Maximum-Flow Algorithms on Networks with Small Integer Capacities. David Fernandez-Baca and Charles U.Martel