Анализ реализации с ранговой эвристикой
Версия от 06:02, 30 июня 2011; Rybak (обсуждение | вклад)
Пусть
— процедура объединения двух множеств содержащих и , а — поиск представителя множества, содержащего . Рассмотрим операций и операций ( ). Не теряя общности, будем считать, что принимает в качестве аргументов представителей, то есть заменяем на .Оценим стоимость операции
. Обозначим — ранг вершины, — представитель множества, содержащего , — отец вершины, — количество вершин в поддереве, корнем которого является .Утверждение: |
Из принципа работы функции следует:
|
Утверждение: |
Докажем по индукции: Для 0 равенство очевидно. Ранг вершины стает равным при объединении поддеревьев ранга , следовательно: . |
Из последнего утверждения следует:
- Количество вершин ранга
Теорема: |
Амортизационная стоимость |
Доказательство: |
Рассмотрим некоторое число . Разобьем наши ребра на три класса:
Обозначим эти классы .Амортизированная стоимость
где означает что ребро начало которого находится в было пройдено во время выполнения текущего . Ребро эквивалентно вершине, в которой оно начинается.В силу того, что получаем:
Во время после прохождения K ребер из второго классаИз выше сказанного и первого следствия второго утверждения получаем что:
Для того, чтобы существовал необходимо, чтобы
Из первого утверждения и всилу использования сжатия путей следует, что cтрого увеличивается при переходе по ребру из Т_3.Как максимум через переходов ребро перестанет появляться в классе Т_3.Из второго следствия второго утверждения следует При :
|