Теоремы Карзанова о числе итераций алгоритма Диница в сети с целочисленными пропускными способностями — различия между версиями
Строка 1: | Строка 1: | ||
{{Лемма | {{Лемма | ||
|id=lemma1. | |id=lemma1. | ||
− | |statement=Пусть <tex>f</tex> - блокирующий поток в | + | |statement=Пусть <tex>f</tex> - блокирующий поток в сети <tex>G</tex>. <tex>s</tex>, <tex>t</tex> - исток и сток, соответственно. Тогда <tex>\rho_{G}(s, t) < \rho_{G_{f}}(s, t)</tex>. |
}} | }} | ||
Строка 7: | Строка 7: | ||
|definition= | |definition= | ||
В графе G, в котом s, t - исток и сток, соответственно. | В графе G, в котом s, t - исток и сток, соответственно. | ||
− | Для v - вершины, не | + | Для v - вершины, не являющейся истоком или стоком: |
<tex>c^{+}(v) = \sum\limits_{uv \in E} c_{uv}</tex>. | <tex>c^{+}(v) = \sum\limits_{uv \in E} c_{uv}</tex>. | ||
Строка 23: | Строка 23: | ||
|id=th1. | |id=th1. | ||
|about=Первая теорема Карзанова | |about=Первая теорема Карзанова | ||
− | |statement= | + | |statement=Число итераций алгоритма Диница в сети <tex>G</tex> (<tex>s</tex>, <tex>t</tex> - исток и сток, соответственно.) с целочисленными пропускными способностями - <tex>O(\sqrt{c(G)})</tex>. |
− | |proof= | + | |proof=Разобьём все итерации на 2 группы: |
+ | |||
+ | 1). Короткие фазы - когда <tex>\rho(s, t) \leq k</tex>. | ||
+ | |||
+ | 2). Длинные фазы - когда <tex>\rho(s, t) > k</tex>. | ||
+ | |||
+ | Коротких фаз - <tex>O(k)</tex> штук, т.к. после каждой итерации <tex>\rho(s, t)</tex> увеличивается, но не может быть больше <tex>k</tex>. | ||
+ | |||
+ | Длинные фазы: | ||
+ | Число длинных фаз <tex>\leq</tex> количество путей из <tex>s</tex> в <tex>t</tex> длины "<tex> > k</tex>" <tex> \leq \frac{\sum\limits_{v \in V} c(v)}{k} = \frac{c(G)}{k}</tex>. (т.к. через вершину <tex>v</tex> не может пройти больше <tex>c(v)</tex> путей, а на каждом пути лежит <tex>\geq k</tex> вершин.) | ||
+ | |||
+ | Получается, что число длинных фаз - <tex>O(\frac{c(G)}{k})</tex>. | ||
+ | |||
+ | Давайте возьмём <tex>k = \sqrt{c(G)}</tex>. | ||
+ | |||
+ | Получим, что количество фаз - <tex>O(\sqrt{c(G)})</tex>. | ||
+ | |||
+ | А, значит, что количество итераций тоже - <tex>O(\sqrt{c(G)})</tex>. | ||
+ | }} | ||
+ | |||
+ | {{Теорема | ||
+ | |id=th2 | ||
+ | |about=Вторая теорема Карзанова | ||
+ | |statement=Число итераций алгоритма Диница в сети <tex>G</tex> (<tex>s</tex>, <tex>t</tex> - исток и сток, соответственно.) с целочисленными пропускными способностями меньше <tex>c_{max}</tex> - <tex>O(\sqrt[3]{{|V|}^2 c_{max}})</tex>. | ||
}} | }} |
Версия 16:19, 23 декабря 2010
Лемма: |
Пусть - блокирующий поток в сети . , - исток и сток, соответственно. Тогда . |
Определение: |
В графе G, в котом s, t - исток и сток, соответственно.
Для v - вершины, не являющейся истоком или стоком: . . . . . . |
Теорема (Первая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( , - исток и сток, соответственно.) с целочисленными пропускными способностями - . |
Доказательство: |
Разобьём все итерации на 2 группы: 1). Короткие фазы - когда .2). Длинные фазы - когда .Коротких фаз - штук, т.к. после каждой итерации увеличивается, но не может быть больше .Длинные фазы: Число длинных фаз количество путей из в длины " " . (т.к. через вершину не может пройти больше путей, а на каждом пути лежит вершин.)Получается, что число длинных фаз - .Давайте возьмём .Получим, что количество фаз - А, значит, что количество итераций тоже - . . |
Теорема (Вторая теорема Карзанова): |
Число итераций алгоритма Диница в сети ( , - исток и сток, соответственно.) с целочисленными пропускными способностями меньше - . |