Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями — различия между версиями
Nikitaevg (обсуждение | вклад) |
Nikitaevg (обсуждение | вклад) (Доказательство второй леммы) |
||
Строка 48: | Строка 48: | ||
Пусть <tex> N </tex> {{---}} сеть, а <tex>f</tex> {{---}} допустимый поток в этой сети. Тогда общий потенциал в остаточной сети <tex>G_f</tex> равен общему потенциалу <tex>N</tex>. | Пусть <tex> N </tex> {{---}} сеть, а <tex>f</tex> {{---}} допустимый поток в этой сети. Тогда общий потенциал в остаточной сети <tex>G_f</tex> равен общему потенциалу <tex>N</tex>. | ||
|proof= | |proof= | ||
− | + | По [[Теорема_о_декомпозиции | теореме о декомпозиции]] поток можно разбить на множество простых путей из <tex>s</tex> в <tex>t</tex> и циклов. Рассмотрим каждый путь (цикл) и убедимся, что, пуская по нему поток <tex>f_i</tex>, потенциал вершины не изменится. Действительно, рассмотрим вершину v, поток <tex>f_i</tex> в нее течет по ребру <tex>uv</tex>, а из нее по ребру <tex>vw</tex>. Пусть <tex>c_{f_i}</tex> {{---}} функция пропускных способностей в остаточной сети после пропускания потока по <tex>i</tex>-ому пути (циклу). Рассмотрим <tex>c^+_{f_1}(v) = c_{f_1}(uv) + c_{f_1}(wv)</tex>. <tex>c_{f_1}(uv) = c(uv) - f_i</tex>, а <tex>c_{f_1}(wv) = c(wv) + f_i</tex>, сложив эти два значения, получим, что <tex>c^+(v)</tex> остается неизменной. Применив такое же рассуждение для <tex>c^-(v)</tex>, получим, что потенциал каждой вершины остается неизменным. | |
− | |||
− | |||
− | |||
− | <tex> | ||
− | |||
− | |||
− | |||
− | <tex> | ||
− | |||
− | что | ||
}} | }} | ||
{{Теорема | {{Теорема |
Версия 21:27, 2 января 2017
Определения
Определение: |
Пусть сеть с целочисленными пропускными способностями.
Обозначим и как максимальный поток.. . — потенциал вершины . Тогда общий потенциал выражается формулой: .Остаточную сеть обозначим . Обозначим длину слоистой сети — как длину кратчайшего пути в . | —
Теоремы
Лемма (1): |
Пусть — расстояние между и в исходной сети, максимальный поток в этой сети равен .
Тогда |
Доказательство: |
Пусть сохранения потока, если обозначить как любой допустимый поток, то единиц потока должно проходить через . Но суммарное количество потока, которое может проходить через любую вершину не превосходит ее потенциала. Отсюда, если обозначить как общий потенциал вершин из , то мы имеем: — расстояние между и , а — набор вершин, удаленных от на . — разъединяющее множество узлов: при его удалении исчезают все пути из в . Следуя закону
для любого допустимого потока . В частности, , таким образом получаем:и лемма доказана. |
Лемма (2): |
Пусть — сеть, а — допустимый поток в этой сети. Тогда общий потенциал в остаточной сети равен общему потенциалу . |
Доказательство: |
По теореме о декомпозиции поток можно разбить на множество простых путей из в и циклов. Рассмотрим каждый путь (цикл) и убедимся, что, пуская по нему поток , потенциал вершины не изменится. Действительно, рассмотрим вершину v, поток в нее течет по ребру , а из нее по ребру . Пусть — функция пропускных способностей в остаточной сети после пропускания потока по -ому пути (циклу). Рассмотрим . , а , сложив эти два значения, получим, что остается неизменной. Применив такое же рассуждение для , получим, что потенциал каждой вершины остается неизменным. |
Теорема (Первая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( — исток, — сток) с целочисленными пропускными способностями — . |
Доказательство: |
Пусть — максимальный поток в сети . Теорема верна для , так как после каждой фазы поток увеличивается хотя бы на 1. Если , рассмотрим последнюю фазу, на момент начала выполнения которой поток в сети был меньше, чем . После этого потребуется не больше фаз, чтобы найти максимальный поток. На предыдущей фазе поток ( ) в был не больше , таким образом .— сеть с максимальным потоком и потенциалом (по Лемме(2)). Поэтому можно воспользоваться Леммой(1), чтобы оценить расстояние между и в , и получить оценку длины слоистой сети: Так как каждая фаза увеличивает длину слоистой сети минимум на один, то осуществляется не больше фаз. Таким образом происходит не более фаз. |
Лемма (3): |
Пусть в сети параллельных ребер. Пусть — максимальный поток в . Тогда расстояние между и в таково: . нет |
Доказательство: |
Обозначим Таким образом как набор вершин на расстоянии от . Множества и определяют разрез . Пропускная способность этого разреза не больше , так как все ребра между и также являются ребрами между и и не более чем двумя параллельными ребрами, исходящими из какой-то вершины в остаточной сети. По теореме о максимальном потоке/минимальном разрезе, . ограничен наименьшим из . Но эта величина максимальна, когда для , таким образом . Выражая , получаем нужное. |
Теорема (Вторая теорема Карзанова): |
Число итераций алгоритма Диница с целочисленными пропускными способностями — . |
Доказательство: |
Если , то теорема очевидна. Положим, что , и рассотрим последнюю фазу, в которой поток не превышает . В этот момент осталось не более фаз, и — сеть с максимальным потоком . Мы можем применить Лемму(3), чтобы оценить длину слоистой сети, и, соответственно, количество выполненных фаз:Таким образом, прошло . фаз, и фаз осталось. Теорема доказана. |