Анализ реализации с ранговой эвристикой — различия между версиями
Rybak (обсуждение | вклад) м |
Rybak (обсуждение | вклад) |
||
| Строка 86: | Строка 86: | ||
{\sum_{get} \limits} ~ {\sum_{v:v \in get,v \in T_3} \limits} 1/n | {\sum_{get} \limits} ~ {\sum_{v:v \in get,v \in T_3} \limits} 1/n | ||
</tex> </center> | </tex> </center> | ||
| − | Из первого утверждения и | + | Из первого утверждения и в силу использования сжатия путей следует, |
| + | что <tex> R(P(x))</tex> cтрого увеличивается при переходе по ребру из <tex>Т_3</tex>. | ||
| − | Как максимум через <tex> x^{R(k)} </tex> переходов ребро перестанет появляться в классе Т_3. | + | Как максимум через <tex> x^{R(k)} </tex> переходов ребро перестанет появляться в классе <tex>Т_3</tex>. |
<center><tex> | <center><tex> | ||
{\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T_3} \limits} 1/n = {\sum_v \limits ~\sum_{get: in ~ this ~ get ~ v \in T_3} \limits } | {\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T_3} \limits} 1/n = {\sum_v \limits ~\sum_{get: in ~ this ~ get ~ v \in T_3} \limits } | ||
1/n \le \sum_v \limits x^{R(v)} /n | 1/n \le \sum_v \limits x^{R(v)} /n | ||
| − | + | </tex></center> | |
Из второго следствия второго утверждения следует | Из второго следствия второго утверждения следует | ||
| Строка 100: | Строка 101: | ||
</tex></center> | </tex></center> | ||
| − | При <tex> x < 2~</tex> : | + | При <tex> x < 2~</tex>: |
| − | <center> <tex> | + | <center><tex> |
{\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T3} \limits} 1/n | {\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T3} \limits} 1/n | ||
\le | \le | ||
| Строка 112: | Строка 113: | ||
| − | Итак <tex> S=O(1)+O(\log^*(x))+O(1)=O(\log^*(x)) </tex>. | + | Итак <tex> S = O(1) + O(\log^*(x)) + O(1) = O(\log^*(x)) </tex>. |
| − | В силу того что интервал <tex> (1,45...2) </tex> не пустой теорема доказана. | + | В силу того, что интервал <tex> (1,45...2) </tex> не пустой, теорема доказана. |
}} | }} | ||
Версия 06:06, 30 июня 2011
Пусть — процедура объединения двух множеств содержащих и , а — поиск представителя множества, содержащего . Рассмотрим операций и операций (). Не теряя общности, будем считать, что принимает в качестве аргументов представителей, то есть заменяем на .
Оценим стоимость операции . Обозначим — ранг вершины, — представитель множества, содержащего , — отец вершины, — количество вершин в поддереве, корнем которого является .
| Утверждение: |
|
Из принципа работы функции следует:
|
| Утверждение: |
|
Докажем по индукции: Для 0 равенство очевидно. Ранг вершины стает равным при объединении поддеревьев ранга , следовательно: . |
Из последнего утверждения следует:
- Количество вершин ранга
| Теорема: |
Амортизационная стоимость |
| Доказательство: |
|
Рассмотрим некоторое число . Разобьем наши ребра на три класса:
Обозначим эти классы . Амортизированная стоимость
где означает что ребро начало которого находится в было пройдено во время выполнения текущего . Ребро эквивалентно вершине, в которой оно начинается. В силу того, что получаем:
Во время после прохождения K ребер из второго класса Из выше сказанного и первого следствия второго утверждения получаем что:
Для того, чтобы существовал необходимо, чтобы
Из первого утверждения и в силу использования сжатия путей следует, что cтрого увеличивается при переходе по ребру из . Как максимум через переходов ребро перестанет появляться в классе . Из второго следствия второго утверждения следует При :
|