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