Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями — различия между версиями
Строка 15: | Строка 15: | ||
Остаточную сеть обозначим <tex>N(f)</tex>. | Остаточную сеть обозначим <tex>N(f)</tex>. | ||
− | Обозначим длину слоистой сети <tex>l</tex> - как длину кратчайшего <tex>s-t</tex> пути в N(f). | + | Обозначим длину слоистой сети <tex>l</tex> - как длину кратчайшего <tex>s-t</tex> пути в <tex>N(f)</tex>. |
}} | }} | ||
Версия 03:10, 27 декабря 2011
Определение: |
Пусть Обозначим и , как максимальная пропускная способность ребра и максимальный поток соответсвенно.. . - потенциал вершины . Тогда общий потенциал выражается формулой: .Остаточную сеть обозначим Обозначим длину слоистой сети . - как длину кратчайшего пути в . | - сеть с целочисленными пропускными способностями.
Лемма (1): |
Пусть - расстояние между и в сети с текущим потоком, равным 0, и максимальным потоком, равным .
Тогда |
Доказательство: |
Пусть - расстояние между и , а - набор вершин, удаленных от на . - разъединяющее множество узлов: при его удалении исчезают все направлнные пути из в . Следуя правилу сохранения потока, если обозначить как любой допустимый поток, то единиц потока должно проходить через . Но суммарное количество потока, которое может проходить через любую вершину не превосходит ее потенциала. Отсюда, если обозначить как общий потенциал вершин из , то мы имеем:
для любого допустимого потока . В частности, , таким образом получаем:и лемма доказана. |
Лемма (2): |
Пусть - сеть, а - допустимый поток в этой сети. Тогда общий потенциал в остаточной сети равен общему потенциалу . |
Доказательство: |
Пусть - функция пропускных способностей в , а - потенциал, множество входящих ребер и множество выходящих ребер вершины из .Достаточно доказать, что . Ребру из соответствуют ребро из с пропускной способностью , и ребро из с пропускной способностью . Аналогично, ребру из соответствуют ребра из с пропускной способностью и с пропускной способностью . Используя правило сохранения потока, нетрудно проверить, что
и что и требовалось доказать. |
Теорема (Первая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( , - исток и сток, соответственно.) с целочисленными пропускными способностями - . |
Доказательство: |
Пусть - максимальный поток в сети . Теорема верна для , так как после каждой фазы поток увеличивается хотя бы на 1. Если , рассмотрим последнюю фазу, на момент начала выполнения которой поток в сети был меньше, чем . После этого потребуется не больше фаз, чтобы найти максимальный поток. На предыдущей фазе поток ( ) в был не больше , таким образом .- сеть с максимальным потоком и потенциалом (по Лемме(2)). Поэтому мы можем использовать Лемму(1) чтобы оценить расстояние между и в . Отсюда получаем оценку длины ( ) слоистой сети: Так как каждая фаза увеличивает длину слоистой сети минимум на один, то осуществляется не больше фаз. Таким образом происходит не более фаз. |
Теорема (Вторая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( , - исток и сток, соответственно.) с целочисленными пропускными способностями меньше - . |