Анализ реализации с ранговой эвристикой — различия между версиями
Строка 30: | Строка 30: | ||
Из второго утверждения следует: | Из второго утверждения следует: | ||
− | 1. <tex> R(v) \le log_2(n) </tex> | + | 1. <tex> R(v) \le \log_2(n) </tex> |
2. Количество вершин ранга <tex> i \le {n \over 2^i} </tex> | 2. Количество вершин ранга <tex> i \le {n \over 2^i} </tex> | ||
Строка 37: | Строка 37: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | Амортизационная стоимость <tex> get = O(log^{*}(n)) </tex> | + | Амортизационная стоимость <tex> get = O(\log^{*}(n)) </tex> |
|proof= | |proof= | ||
Рассмотрим некоторое число <tex> x </tex> . | Рассмотрим некоторое число <tex> x </tex> . | ||
Строка 63: | Строка 63: | ||
Во время <tex> get </tex> после прохождения K ребер из второго класса <tex> R(v1) \ge x^{x^{.^{.^{.^{x^{R(v)}}}}}} </tex> | Во время <tex> get </tex> после прохождения K ребер из второго класса <tex> R(v1) \ge x^{x^{.^{.^{.^{x^{R(v)}}}}}} </tex> | ||
− | Из выше сказанного и первого следствия второго утверждения получаем что:<center> <tex> {\sum_{v:v \in get,v \in T2} \limits} \le log^*_x(log_2(n)) = O(log^*(n)) </tex></center> Для того, чтобы <tex> log^*_x </tex> существовал необходимо, чтобы <tex> x > e ^{ 1 /e } \approx 1,44 </tex> | + | Из выше сказанного и первого следствия второго утверждения получаем что:<center> <tex> {\sum_{v:v \in get,v \in T2} \limits} \le \log^*_x(\log_2(n)) = O(\log^*(n)) </tex></center> |
+ | |||
+ | Для того, чтобы <tex> \log^*_x </tex> существовал необходимо, чтобы <tex> x > e ^{ 1 /e } \approx 1,44 </tex> | ||
Строка 70: | Строка 72: | ||
Как максимум через <tex> x^{R(k)} </tex> переходов ребро перестанет появляться в классе Т3. | Как максимум через <tex> x^{R(k)} </tex> переходов ребро перестанет появляться в классе Т3. | ||
− | |||
− | Из второго следствия второго утверждения следует <tex> {\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T3} \limits} 1/n \le \sum_{Rank=0}^{log_{2}(n)} \limits {nx^{Rank} \over 2^{Rank} n} </tex>. | + | <center><tex> {\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T3} \limits} 1/n = {\sum_v \limits ~\sum_{get: in ~ this ~ get ~ v \in T3} \limits } 1/n \le \sum_v \limits x^{R(v)} /n </tex></center>. |
+ | |||
+ | Из второго следствия второго утверждения следует | ||
+ | <center> <tex> {\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T3} \limits} 1/n \le \sum_{Rank=0}^{log_{2}(n)} \limits {nx^{Rank} \over 2^{Rank} n} </tex></center>. | ||
− | При <tex> x < 2~ | + | При <tex> x < 2~</tex> :<center> <tex>{\sum_{get} \limits}~ {\sum_{v:v \in get,v \in T3} \limits} 1/n \le \sum_{Rank=0}^{log_{2}(n)} \limits {x^{Rank} \over 2^{Rank}} \le \sum_{Rank=0}^\infty \limits {x^{Rank} \over 2^{Rank} } \le { 2 \over 2-x } = O(1) </tex></center>. |
− | В результате <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> не пустой теорема доказана. | ||
}} | }} |
Версия 00:28, 23 марта 2011
Пусть
- процедура слития двух множеств содержащих , , а - поиск корня поддерева содержащего . Рассмотрим операций и операций . Для удобства и без потери общности будем считать принимает в качестве аргументов корни поддеревьев и , то есть заменяем на .Тогда нам надо оценить стоимость операции
. Обозначим - ранг вершины, - отец вершины, - самый первый отец вершины, - количество вершин в поддерева корнем которого являетсяУтверждение: |
Из того как работает следует: 1.2. Между Записав неравенство из первого пункта вдоль пути из второго пункта следует что и существует путь вида : |
Утверждение: |
Докажем по индукции: Для 0 равенство очевидное. Ранг вершины стает равным при сливании поддеревьев ранга i-1, отсюда следует: . |
Из второго утверждения следует:
1.
2. Количество вершин ранга
Теорема: |
Амортизационная стоимость |
Доказательство: |
Рассмотрим некоторое число . Разобьем наши ребра на три класса:1.Ведут в корень или в сына корня. 2. 3. Все остальные. Обозначим эти классы Амортизированная стоимость где означает что ребро начало которого находится в было пройдено во время выполнения текущего . Ребро эквивалентно вершине в которой оно начинается.В силу того что получаем:Во время Из выше сказанного и первого следствия второго утверждения получаем что: после прохождения K ребер из второго классаДля того, чтобы существовал необходимо, чтобы
Из первого утверждения и того что происходит сжатие путей следует cтрого увеличивается при переходе по ребру из Т3.Как максимум через переходов ребро перестанет появляться в классе Т3.Из второго следствия второго утверждения следует
|