Dolna granica z przeplotem
W teorii optymalnych drzew wyszukiwania binarnego dolna granica przeplotu jest dolną granicą liczby operacji wymaganych przez drzewo wyszukiwania binarnego (BST) do wykonania danej sekwencji dostępów.
Udowodniono kilka wariantów tej dolnej granicy. Ten artykuł jest oparty na odmianie pierwszej granicy Wilbera. Ta dolna granica jest używana w projektowaniu i analizie drzewa Tango . Co więcej, tę dolną granicę można przeformułować i udowodnić geometrycznie, Geometria drzew wyszukiwania binarnego .
Definicja
Granica jest oparta na ustalonym BST zwanym drzewem dolnej granicy, nad kluczami . Na przykład dla , można przedstawić za pomocą następującej struktury nawiasów:
- [([1] 2 [3]) 4 ([5] 6 [7])]
Dla każdego węzła w określ:
- być zbiorem węzłów w lewym poddrzewie , w tym .
- być zbiorem węzłów w prawym poddrzewie .
Rozważ następującą sekwencję dostępu: . Dla stałego węzła dla każdego dostępu zdefiniuj etykietę w odniesieniu do jako :
- „ L ” jeśli jest w .
- „ R ” - jeśli jest w y
- Null - inaczej.
Etykieta połączeniem etykiet ze wszystkich dostępów Na przykład, jeśli sekwencja dostępów to: to etykieta korzenia to: „RRL”, etykieta 6 to: „RL”, a etykieta 2 to: „L”.
Dla każdego węzła ilość przeplotu przez y liczbę naprzemiennych między L i R na etykiecie . powyższym przykładzie przeplatanie przez wszystkie wynosi i przeplatanie przez wszystkie inne .
Granica przeplotu jest drzewa Granica przeplotu powyższej sekwencji to .
Stwierdzenie dolnej granicy i jego dowód
Wiązanie z przeplotem podsumowuje następujące twierdzenie.
Twierdzenie — Niech będzie sekwencją Oznacz przez granicę przeplotu , a następnie jest dolną granicą , koszt optymalnego BST offline, który obsługuje .
Poniższy dowód opiera się na.
Dowód
Niech być sekwencją dostępu Oznacz przez stan dowolnego BST w czasie sekwencji . Naprawiamy również dolną granicę BST . .
Dla węzła zdefiniuj punkt przejścia w czasie, o minimalnej głębokości BST że ścieżka od korzenia do węzeł z ( y ) i węzeł z prawej ( y ). Intuicyjnie, każdy algorytm BST na który uzyskuje dostęp do elementu z prawej ( y , a następnie elementu z lewej ( y ) (lub odwrotnie), musi dotykać punktu przejścia T ja przynajmniej raz. W poniższym Lemacie pokażemy, że punkt przejścia jest dobrze zdefiniowany.
Lemat 1 Punkt przejścia czasie i unikalny
Zdefiniuj jako najniższego wspólnego przodka wszystkich węzłów w lewym ( y ) . Biorąc pod uwagę dwa węzły , najniższy wspólny przodek i za i oznaczony przez , spełnia następujące nierówności. . W konsekwencji w Left (y) jest unikalnym węzłem o minimalnej głębokości w . To samo rozumowanie można zastosować do , najniższy wspólny przodek wszystkich węzłów w prawym (y) . Ponadto najniższy wspólny przodek dla wszystkich punktów w Left(y) i right(y) również znajduje się w jednym z tych zestawów. Dlatego unikalny węzeł minimalnej głębokości musi znajdować się wśród węzłów Left(y) i right(y) . Dokładniej, jest to albo lub . Załóżmy, że jest to . Następnie jest przodkiem . konsekwencji jest punkt przejścia, ponieważ ścieżka od korzenia do zawiera . Co więcej, ścieżka w do węzła w poddrzewie musi odwiedzić T ponieważ jest przodkiem wszystkich takich węzłów, a dla każdej ścieżki do węzła w prawym regionie należy odwiedzić, to najniższy wspólny przodek wszystkich węzłów w prawym (y) . Podsumowując, jest to unikalny punkt przejścia dla w .
Drugi lemat, który musimy udowodnić, mówi, że punkt przejścia jest stabilny. Nie zmieni się, dopóki nie zostanie dotknięty.
Lemat 2 - Biorąc pod uwagę węzeł . Załóżmy punktem przejścia w momencie . Jeśli algorytm dostępu dla BST nie dotyka { dla in [j, k punkt przejścia w T dla .
Rozważ tę samą definicję dla i jak w lemacie 1. Bez utraty ogólności załóżmy również, że jest przodkiem w BST w czasie , oznaczony przez . W rezultacie będzie punktem przejścia . BST nie dotyka punktu przejścia, w naszym , czas W związku z tym nie dotyka żadnego węzła w Right(y) . W konsekwencji pozostaje najniższym wspólnym przodkiem dla dowolnych dwóch węzłów w y) . Jednak algorytm dostępu może dotykać węzła w Left(y) . Dokładniej, może dotykać najniższego wspólnego przodka wszystkich węzłów w Left(y) czasie , co będziemy oznaczać przez . Mimo to pozostanie przodkiem następujących powodów: Po pierwsze, zauważ, że każdy węzeł Left (y) znajdujący się poza drzewem ma korzenie w w czasie jot nie może wejść do tego drzewa na raz , ponieważ nie jest dotykany w tym przedziale czasowym. Po drugie, istnieje co najmniej jeden węzeł ) drzewem w dowolnym momencie . Dzieje się tak, ponieważ początkowo znajdował się poza 's i żadne węzły spoza drzewa nie mogą wejść do niego w tym przedziale czasowym. Teraz rozważmy . nie może być nie znajduje się w poddrzewie . Więc musi być w (y) , ponieważ . W konsekwencji przodkiem konsekwencji przodkiem czasie . Dlatego zawsze istnieje węzeł w (y) na ścieżce od korzenia do taki pozostaje punktem przejścia.
dowodu stwierdza, że każdy węzeł punkt przejścia.
Lemat 3 - Biorąc uwagę BST w czasie każdy węzeł czasie być tylko przejściem dla co najwyżej jednego .
Biorąc pod uwagę dwa różne węzły . Niech będzie najniższym wspólnym przodkiem odpowiednio. Z lematu 1 wiemy, że punkt przejścia dla \ jest dla . Teraz mamy dwa główne przypadki do rozważenia.
{ \ displaystyle P. . W i są wszystkie rozłączne. Zatem , a punkty przejścia są różne .
: Załóżmy bez utraty ogólności, że jest przodkiem w .
2.1: Załóżmy, że punkt przejścia nie znajduje się w drzewie zakorzenionym w w . Zatem się od aw od punktu przejścia .
Przypadek 2.2: Punkt przejścia znajduje się w drzewie zakorzenionym w w . Dokładniej, jest to jeden z najniższych wspólnych przodków i . Innymi słowy, jest to albo lub .
Załóżmy , jest najniższym wspólnym przodkiem poddrzewa zakorzenionego w i nie zawiera . Mamy i głębiej niż nich jest punktem przejścia. Załóżmy, że jest punktem przejścia. Wtedy mniej głęboka niż . W tym przypadku jest punktem przejścia i jest punktem przejścia . Podobne rozumowanie ma zastosowanie, głębokie . Podsumowując, punkt przejścia jest mniej głęboki od \ displaystyle i ma głębszy jako punkt przejścia.
Podsumowując, punkty przejścia są różne we wszystkich przypadkach.
Teraz jesteśmy gotowi do udowodnienia twierdzenia. Przede wszystkim zauważ, że liczba dotkniętych punktów przejścia przez algorytm BST offline jest dolną granicą jego kosztu, liczymy mniej węzłów niż jest to wymagane dla całkowitego kosztu.
Wiemy z lematu 3, że w dowolnym momencie dowolny węzeł może być tylko przejściem dla co najwyżej jednego węzła w . Zatem wystarczy policzyć liczbę dotknięć węzła przejściowego sumę wszystkich .
Dlatego dla stałego węzła , i zdefiniowane jak w Lemacie 1. Punkt przejścia jest jednym z tych dwóch węzłów. W rzeczywistości jest głębszy. Niech będzie maksymalnie uporządkowaną sekwencją dostępu do węzłów, które występują naprzemiennie między i . Wtedy to ilość przeplotu w węźle . Załóżmy, że parzyste dostępy indeksowane są w , a te nieparzyste są w tj. i . Z właściwości najniższego wspólnego przodka wiemy że dostęp do węzła w musi dotykać . . dostęp do węzła musi dotykać . Rozważmy każde . dostępów , _ , a następnie i musi się zmienić w międzyczasie. Jednak zgodnie z Lematem 2 taka zmiana wymaga dotknięcia punktu przejścia. punktu przejścia co najmniej raz w przedziale . Podsumowując wszystkie najlepszy algorytm . Displaystyle Podsumowując, y
gdzie ilością przeplotu przez . definicji suma się do } To kończy dowód.