Dowód, że losowo zbudowane drzewo wyszukiwania binarnego ma wysokość logarytmiczną

10

Jak udowodnić, że oczekiwana wysokość losowo zbudowanego drzewa wyszukiwania binarnego z węzłami wynosi ? Istnieje dowód we CLRS Wstęp do algorytmów (rozdział 12.4), ale ja go nie rozumiem.nO(logn)

użytkownik1675999
źródło
1
Które pytanie? Jaki przykład Edytuj i podaj pełne dane.
Ran G.
3
Unikaj używania skrótów (takich jak BST) i zakładaj, że większość z nas nie ma książki CLRS. Jeśli możesz skopiować to twierdzenie tutaj i wyjaśnić, czego nie rozumiesz, otrzymasz więcej odpowiedzi.
Ran G.
2
To będzie zależeć od sposobu wyszukiwania binarne drzewo jest zbudowany. (Nawet jeśli wynik nie, dowód będzie). Przydałoby się więcej szczegółów.
Peter Shor

Odpowiedzi:

21

Pomyślmy o tym intuicyjnie. W najlepszym przypadku drzewo jest idealnie zrównoważone; w najgorszym przypadku drzewo jest całkowicie niezrównoważone:

Binarne drzewo wyszukiwania o zrównoważonej wysokościDrzewo wyszukiwania binarnego najgorszego przypadku

Zaczynając od węzła głównego , to lewe drzewo ma dwukrotnie więcej węzłów na każdej kolejnej głębokości, tak że drzewo ma węzły i wysokość (czyli w tym przypadku 3). Przy odrobinie matematyki , co oznacza, że ​​ma wysokość. W przypadku drzewa całkowicie niezrównoważonego wysokość drzewa wynosi po prostu . Mamy więc swoje granice.n = h i = 0 2 i = 2 h + 1 - 1 h n 2 h + 1 - 1 h log 2 ( n + 1 ) - 1 l o g 2 n O ( log n ) n - 1 O (pn=i=0h2i=2h+11hn2h+11hlog2(n+1)1log2nO(logn)n1O(n)

Gdybyśmy budowali drzewo zrównoważone z uporządkowanej listy , wybralibyśmy środkowy element, który będzie naszym węzłem głównym. Jeśli zamiast tego losowo konstruujemy drzewo, każdy z węzłów zostanie równie prawdopodobnie wybrany, a wysokość naszego drzewa wynosi: Wiemy, że w drzewie wyszukiwania binarnego lewe poddrzewo musi zawierać tylko klucze mniejsze niż węzeł główny. Tak więc, jeśli losowo wybieramy element , lewe poddrzewo ma elementy , a prawe poddrzewa ma elementy , więc bardziej kompaktowo:n h e i g h t t r e e = 1 + max ( h e i g h t l e f t s u b t r e e , h e i g h t r i g h t s u b{1,2,,n}ni t h i - 1 n - i h n = 1 + max ( h i - 1 , h n - i ) E [ h n ] = 1

hmijasolhttrmimi=1+max(hmijasolhtlmifat subtrmimi,hmijasolhtrjasolht subtrmimi)
jathja-1n-jahn=1+max(hja-1,hn-ja). Stąd sensowne jest, że jeśli każdy element jest równie prawdopodobne, że zostanie wybrany z równą prawdopodobieństwem, oczekiwana wartość jest tylko średnią wszystkich przypadków (a nie średnią ważoną). Stąd:mi[hn]=1nja=1n[1+max(hja-1,hn-ja)]

Jak zapewne zauważyłeś, nieznacznie odstąpiłem od tego, jak CLRS to udowadnia, ponieważ CLRS używa dwóch stosunkowo powszechnych technik dowodowych, które są niepokojące dla niewtajemniczonych. Pierwszym z nich jest użycie wykładników (lub logarytmów) tego, co chcemy znaleźć (w tym przypadku wysokości), co sprawia, że ​​matematyka jest nieco bardziej przejrzysta; drugim jest użycie funkcji wskaźnika (które zamierzam tutaj zignorować). CLRS definiuje wysokość wykładniczą jako , więc analogiczna rekurencja to . Y n = 2 × max ( Y i - 1 , Y n - iYn=2)hnYn=2)×max(Yja-1,Yn-ja)

Zakładając niezależność (że każde losowanie elementu (spośród dostępnych elementów) jako podstawy poddrzewa jest niezależne od wszystkich poprzednich losowań), nadal mamy relację: dla którego zrobiłem dwa kroki: (1) przesunięcie zewnątrz, ponieważ jest stała, a jedną z właściwości sumowania jest to, że , oraz (2) przeniesienie 2 na zewnątrz, ponieważ jest to również stała, a jedną z właściwości oczekiwanych wartości jest . Teraz zastąpimy

mi[Yn]=ja=1n1nmi[2)×max(Yja-1,Yn-ja)]=2)nja=1nmi[max(Yja-1,Yn-ja)]
1njadoja=dojajami[zax]=zami[x]maxdziałają z czymś większym, ponieważ w przeciwnym razie uproszczenie jest trudne. Jeśli argumentujemy za nieujemnym , : , a następnie: tak, że ostatni krok wynika z obserwacji, że dla , i i przejście wszystkich droga do , i , więc każdy terminXYmi[max(X,Y)]mi[max(X,Y)+min(X,Y)]=mi[X]+mi[Y]
mi[Yn]2)nja=1n(mi[Yja-1]+mi[Yn-ja])=2)nja=0n-12)mi[Yja]
ja=1Yja-1=Y0Yn-ja=Yn-1ja=nYja-1=Yn-1Yn-ja=Y0Y0do pojawia się dwa razy, więc możemy zastąpić całe podsumowanie analogicznym. Dobra wiadomość jest taka, że ​​mamy wznowienie nazwa ; zła wiadomość jest taka, że ​​nie jesteśmy daleko od miejsca, w którym zaczęliśmy.Yn-1mi[Yn]4nja=0n-1mi[Yja]

W tym momencie CLRS wyciąga dowód indukcyjny nazwa z ich ... repertuaru doświadczeń matematycznych, takiego, który zawiera tożsamość które użytkownik musi udowodnić. Ważne w ich wyborze jest to, że jego największym terminem jest i przypominamy, że używamy wysokości wykładniczej tak że . Być może ktoś skomentuje, dlaczego wybrano ten konkretny dwumian. Jednak ogólną ideą jest ograniczenie z góry naszego ponownego wystąpienia wyrażeniem dla pewnego stałego .mi[Yn]14(n+3)3))ja=0n-1(ja+3)3))=(n+3)4)n3)Yn=2)hnhn=log2)n3)=3)log2)nO(logn)nkk

Na zakończenie z jedną linią:

2E[Xn]E[Yn]4ni=0n1E[Yi]14(n+33)=(n+3)(n+2)(n+1)24E[hn]=O(logn)
Merbs
źródło
WOW. DZIĘKI !!!! Chociaż nie wiem o oczekiwanej wartości, ten rodzaj ma sens. Nie zrobiłem dyskretnego kursu matematyki przed zrobieniem algorytmów. W razie wątpliwości opublikuję więcej komentarzy. Dziękuję Merbs.
user1675999,
ale dlaczego dokładnie wysokość wykładnicza jest mniejsza lub równa wybranemu dwumianowi? Nadal nie rozumiem, dlaczego nie możemy wybrać żadnego dwumianu z innym największym terminem i wykonać dokładnie taką samą matematykę ... prawdopodobnie jestem głupi, ale po prostu nie rozumiem, dlaczego ... i do tej pory dowód ma sens, wtedy musieli po prostu wyciągnąć coś całkowicie z
zaskoczenia
@Zeks Możemy więc wybrać inne dwumianowe o większych terminach. Jeśli termin jest wciąż wielomianowy ( n^k), wniosek jest taki sam, ponieważ kjest on odrzucany w notacji big-O (sposób 3 został usunięty). Ale jeśli podstawimy coś wykładniczego ( e^n), nadal będzie to prawidłowa górna granica, po prostu nie ścisła . Wiemy, że oczekiwana wysokość jest co najmniej logarytmiczna, więc ustalenie, że jest co najwyżej logarytmiczne, czyni ją ciasną.
Merbs
@DavidNathan Nie rozumiem twojej obawy - czy wątpisz, że 1 / n jest stałą, czy można ją przenieść poza podsumowanie? Podobnie jak stała 2, jest w dużej mierze pobierany w celach ilustracyjnych, aby uprościć pozostały dowód.
Merbs