Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями — различия между версиями
Nikitaevg (обсуждение | вклад)  | 
				Nikitaevg (обсуждение | вклад)   (→Обозначения)  | 
				||
| Строка 1: | Строка 1: | ||
==Обозначения==  | ==Обозначения==  | ||
| − | *   | + | Введём следующие обозначения:  | 
| − | *   | + | * <tex>N = (V,E,s,t,c)</tex> {{---}} [[Определение сети, потока|сеть]] с целочисленными пропускными способностями,  | 
| − | *<tex>c^{+}(v) = \sum\limits_{uv \in E} c_{uv}</tex>  | + | * обозначим <tex>C =  \max\limits_{uv \in E} c_{uv}</tex> и <tex>F</tex> как максимальный поток,  | 
| − | *<tex>c^{-}(v) = \sum\limits_{vu \in E} c_{vu}</tex>  | + | *<tex>c^{+}(v) = \sum\limits_{uv \in E} c_{uv}</tex>,  | 
| − | *<tex>p(v) = min\big\{c^{+}(v), c^{-}(v)\big\}</tex> {{---}} потенциал вершины <tex>v</tex>  | + | *<tex>c^{-}(v) = \sum\limits_{vu \in E} c_{vu}</tex>,  | 
| − | *<tex>P = \sum\limits_{v \in V, v \neq s,t}p(v)</tex> {{---}} общий потенциал  | + | *<tex>p(v) = \min\big\{c^{+}(v), c^{-}(v)\big\}</tex> {{---}} потенциал вершины <tex>v</tex>,  | 
| + | *<tex>P = \sum\limits_{v \in V, v \neq s,t}p(v)</tex> {{---}} общий потенциал,  | ||
*<tex>G_f</tex> {{---}} [[Дополняющая сеть, дополняющий путь|остаточная сеть]].  | *<tex>G_f</tex> {{---}} [[Дополняющая сеть, дополняющий путь|остаточная сеть]].  | ||
| − | |||
==Теоремы==  | ==Теоремы==  | ||
Версия 20:16, 4 января 2017
Содержание
Обозначения
Введём следующие обозначения:
- — сеть с целочисленными пропускными способностями,
 - обозначим и как максимальный поток,
 - ,
 - ,
 - — потенциал вершины ,
 - — общий потенциал,
 - — остаточная сеть.
 
Теоремы
| Лемма (1): | 
Пусть  — расстояние между  и  в исходной сети, максимальный поток в этой сети равен . 
Тогда   | 
| Доказательство: | 
| 
 Пусть — расстояние между и , а — набор вершин, удаленных от на . — разъединяющее множество узлов: при его удалении исчезают все пути из в . Следуя закону сохранения потока, если обозначить как любой допустимый поток, то единиц потока должно проходить через . Но суммарное количество потока, которое может проходить через любую вершину не превосходит ее потенциала. Отсюда, если обозначить как общий потенциал вершин из , то мы имеем: 
 для любого допустимого потока . В частности, , таким образом получаем:  | 
| Лемма (2): | 
Пусть  — сеть, а  — допустимый поток в этой сети. Тогда общий потенциал в остаточной сети  равен общему потенциалу .  | 
| Доказательство: | 
| По теореме о декомпозиции поток можно разбить на множество простых путей из в и циклов. Рассмотрим каждый путь (цикл) и убедимся, что, пуская по нему поток , потенциал вершины не изменится. Действительно, рассмотрим вершину , поток в нее течет по ребру , а из нее по ребру . Пусть — функция пропускных способностей в остаточной сети после пропускания потока по -ому пути (циклу). Рассмотрим . , а , сложив эти два значения, получим, что остается неизменной. Применив такое же рассуждение для , получим, что потенциал каждой вершины остается неизменным. | 
| Теорема (Первая теорема Карзанова): | 
Число итераций алгоритма Диница в сети  ( — исток,  — сток) с целочисленными пропускными способностями — .  | 
| Доказательство: | 
| 
 Пусть — максимальный поток в сети . Теорема верна для , так как после каждой фазы поток увеличивается хотя бы на . Если , рассмотрим последнюю фазу, на момент начала выполнения которой поток в сети был меньше, чем . После этого потребуется не больше фаз, чтобы найти максимальный поток. На предыдущей фазе поток () в был не больше , таким образом . — сеть с максимальным потоком и потенциалом (по Лемме(2)). Поэтому можно воспользоваться Леммой(1), чтобы оценить расстояние между и в , и получить оценку длины слоистой сети: Так как каждая фаза увеличивает длину слоистой сети минимум на один, то осуществляется не больше фаз. Таким образом происходит не более фаз.  | 
| Лемма (3): | 
Пусть в сети  нет параллельных ребер. Пусть  — максимальный поток в . Тогда расстояние  между  и  в  таково: .  | 
| Доказательство: | 
| 
 Обозначим как набор вершин на расстоянии от . Множества и определяют разрез . Пропускная способность этого разреза не больше , так как все ребра между и также являются ребрами между и и не более чем двумя параллельными ребрами, исходящими из какой-то вершины в остаточной сети. По теореме о максимальном потоке/минимальном разрезе, . Таким образом ограничен наименьшим из . Но эта величина максимальна, когда для , таким образом . Выражая , получаем нужное. | 
| Теорема (Вторая теорема Карзанова): | 
Число итераций алгоритма Диница с целочисленными пропускными способностями — .  | 
| Доказательство: | 
| 
 Если , то теорема очевидна. Положим, что , и рассмотрим последнюю фазу, в которой поток не превышает . В этот момент осталось не более фаз, и — сеть с максимальным потоком . Мы можем применить Лемму(3), чтобы оценить длину слоистой сети, и, соответственно, количество выполненных фаз: . Таким образом, прошло фаз, и фаз осталось. |