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(log⁡n)


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+1−1hn≤2h+1−1→h≤⌈log2⁡(n+1)−1⌉≤⌊log2n⌋O(log⁡n)n−1→O(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]=1n∑ja=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)n∑ja=1nmi⁡[max(Yja-1,Yn-ja)]
1n∑jadoja=do∑jajami⁡[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)n∑ja=1n(mi⁡[Yja-1]+mi⁡[Yn-ja])=2)n∑ja=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]≤4n∑ja=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)⁡n→O(log⁡n)nkk

Na zakończenie z jedną linią:

2E⁡[Xn]≤E⁡[Yn]≤4n∑i=0n−1E⁡[Yi]≤14(n+33)=(n+3)(n+2)(n+1)24→E⁡[hn]=O(log⁡n)

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.