Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями — различия между версиями
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). Длинные фазы - когда . Коротких фаз - штук, т.к. после каждой итерации увеличивается, но не может быть больше . Длинные фазы: Число длинных фаз количество путей из в длины больше . (т.к. через вершину не может пройти больше путей, а на каждом пути лежит вершин.) Получается, что число длинных фаз - . Давайте возьмём . Получим, что количество фаз - . А, значит, что количество итераций тоже - . |
| Теорема (Вторая теорема Карзанова): |
Число итераций алгоритма Диница в сети (, - исток и сток, соответственно.) с целочисленными пропускными способностями меньше - . |