Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями — различия между версиями
Berkut (обсуждение | вклад) |
|||
Строка 1: | Строка 1: | ||
− | |||
− | |||
− | |||
− | |||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | + | Пусть <tex>N = (V,E,s,t,c)</tex> - сеть с целочисленными пропускными способностями. | |
− | + | ||
+ | Обозначим <tex>C</tex> и <tex>F</tex>, как максимальная пропускная способность ребра и максимальный поток соответсвенно. | ||
<tex>c^{+}(v) = \sum\limits_{uv \in E} c_{uv}</tex>. | <tex>c^{+}(v) = \sum\limits_{uv \in E} c_{uv}</tex>. | ||
Строка 12: | Строка 9: | ||
<tex>c^{-}(v) = \sum\limits_{vu \in E} c_{vu}</tex>. | <tex>c^{-}(v) = \sum\limits_{vu \in E} c_{vu}</tex>. | ||
− | <tex>c^{+}( | + | <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>. | ||
+ | }} | ||
+ | |||
+ | |||
+ | {{Лемма | ||
+ | |statement= | ||
+ | Пусть <tex>l</tex> - расстояние между <tex>s</tex> и <tex>t</tex> в сети с текущим потоком, равным 0, и максимальным потоком, равным <tex>F</tex>. | ||
+ | |||
+ | Тогда <tex>l \leq \frac{P}{F} + 1</tex> | ||
+ | |||
+ | |proof= | ||
+ | Пусть <tex>l</tex> - расстояние между <tex>s</tex> и <tex>t</tex>, а <tex>V_i</tex> - набор вершин, удаленных от <tex>s</tex> на <tex>i</tex> <tex>(i \leq l)</tex>. | ||
+ | <tex>V_i</tex> - разъединяющее множество узлов: при его удалении исчезают все направлнные пути из <tex>s</tex> в <tex>t</tex>. | ||
+ | Следуя правилу сохранения потока, если <tex>f</tex> обозначить как любой допустимый поток, то <tex>|f|</tex> единиц потока должно проходить через <tex>V_i</tex>. | ||
+ | Но суммарное количество потока, которое может проходить через любую вершину не превосходит ее потенциала. | ||
+ | Отсюда, если обозначить <tex>P_i</tex> как общий потенциал вершин из <tex>V_i</tex>, то мы имеем: | ||
+ | |||
+ | <tex>|f| \leq P_i</tex> | ||
− | <tex> | + | для любого допустимого потока <tex>f</tex>. В частности, <tex>F \leq P_i</tex>, таким образом получаем: |
− | <tex> | + | <tex>(l - 1)F \leq \displaystyle \sum_{i = 1}^{l - 1} P_i \leq P</tex> |
+ | |||
+ | и лемма доказана. | ||
}} | }} | ||
+ | |||
+ | |||
+ | {{Лемма | ||
+ | |statement= | ||
+ | Пусть <tex>N</tex> - сеть, а <tex>f</tex> - допустимый поток в этой сети. Тогда общий потенциал в остаточной сети <tex>N(f)</tex> равен общему потенциалу <tex>N</tex>. | ||
+ | |proof= | ||
+ | |||
+ | }} | ||
+ | |||
+ | |||
+ | |||
+ | |||
{{Теорема | {{Теорема |
Версия 23:32, 24 декабря 2011
Определение: |
Пусть Обозначим и , как максимальная пропускная способность ребра и максимальный поток соответсвенно.. . - потенциал вершины . Тогда общий потенциал выражается формулой: . | - сеть с целочисленными пропускными способностями.
Лемма: |
Пусть - расстояние между и в сети с текущим потоком, равным 0, и максимальным потоком, равным .
Тогда |
Доказательство: |
Пусть - расстояние между и , а - набор вершин, удаленных от на . - разъединяющее множество узлов: при его удалении исчезают все направлнные пути из в . Следуя правилу сохранения потока, если обозначить как любой допустимый поток, то единиц потока должно проходить через . Но суммарное количество потока, которое может проходить через любую вершину не превосходит ее потенциала. Отсюда, если обозначить как общий потенциал вершин из , то мы имеем:
для любого допустимого потока . В частности, , таким образом получаем:и лемма доказана. |
Лемма: |
Пусть - сеть, а - допустимый поток в этой сети. Тогда общий потенциал в остаточной сети равен общему потенциалу . |
Теорема (Первая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( , - исток и сток, соответственно.) с целочисленными пропускными способностями - . |
Доказательство: |
Разобьём все итерации на 2 группы: 1). Короткие фазы - когда .2). Длинные фазы - когда .Коротких фаз - штук, т.к. после каждой итерации увеличивается, но не может быть больше .Длинные фазы: Число длинных фаз количество путей из в длины больше . (т.к. через вершину не может пройти больше путей, а на каждом пути лежит вершин.)Получается, что число длинных фаз - .Давайте возьмём .Получим, что количество фаз - А, значит, что количество итераций тоже - . . |
Теорема (Вторая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( , - исток и сток, соответственно.) с целочисленными пропускными способностями меньше - . |