Jak wspomniałeś, twierdzenie Akra – Bazzi pokazuje, że rozwiązaniem rekurencji jest dla wszystkich . Nie ujawnia to jednak charakteru zależności od . Aby ustalić to drugie, możemy zastosować podejście drzewa rekurencyjnego.T(n,p)O(nlogn)p∈(0,1)p
W katalogu głównym drzewa rekurencji jest interwał . Jego dwoje potomków to przedziały i , których łączna długość wynosi ponownie . Każdy z tych węzłów ma dwoje dzieci (zakładając, że jest wystarczająco duży) i tak dalej. Dla uproszczenia ignorujemy błędy zaokrąglania, tzn. Zakładamy, że jest liczbą całkowitą; to tylko technika i nie martwiłbym się tym. Zatrzymujemy proces za każdym razem, gdy węzeł ma długość co najwyżej . Złożoność algorytmu jest proporcjonalna do całkowitej długości interwałów w drzewie. Kiedy , liście{1,…n}{1,…,pn}{pn+1,…,n}nnpn1p≠1/2 (węzły, na których zatrzymujemy proces) mają różną głębokość, co utrudnia określenie ogólnej złożoności.
Możemy uzyskać prostą górną granicę, zauważając, że drzewo ma co najwyżej poziomy: każdy węzeł jest co najmniej mniejszy niż jego rodzic. Podobnie jak w analizie dla , całkowita długość przedziałów na dowolnym poziomie wynosi co najwyżej , i otrzymujemy górną granicę na czas trwania. Ponieważ i dla małego , możemy to zapisać jako .log1−p(1/n)1−pp=1/2nO(nlog1−p(1/n))log1−p(1/n)=logn/log(1−p)−1log(1−p)−1=−log(1−p)=p±O(p2)pO(nlogn/p)
Oto dokładniejsze obliczenia. Rozważ poziom . Załóżmy, że nie zatrzymamy procesu po osiągnięciu krótkiego odstępu czasu. Możemy wygenerować losowy wierzchołek, wykonując kroków, w każdym z których idziemy w lewo (powiedzmy) z prawdopodobieństwem i w prawo (powiedzmy) z prawdopodobieństwem . Za każdym razem, gdy wykonujemy lewy krok, dziennik długości interwału zmniejsza się o , a za każdym razem, gdy robimy prawy krok, zmniejsza się o . Wierzchołek znajduje się w rzeczywistym drzewie dziennika o długości zmniejszonej maksymalnie o . Łączna waga interwałów na poziomiettp1−p−logp−log(1−p)logntdrzewa jest dokładnie prawdopodobieństwem, że wierzchołek wygenerowany zgodnie z tym procesem odpowiada co najwyżej zmniejszeniu . Oznacza to, że jeśli jest rozkładem równym z prawdopodobieństwem oraz z prawdopodobieństwem , a są niezależne, to całkowita waga poziomu wynosi . Dla superstałej zmienna losowa jest z grubsza normalnie rozkładana ze średnią wariancją liniowąlognD−logpp−log(1−p)1−pX1,…,Xt∼DtPr[X1+⋯+Xt≤logn]tX1+⋯+Xt[−plogp−(1−p)log(1−p)]tt, więc dla spełniającego , powiedzmy, prawdopodobieństwo będzie bardzo bliskie , podczas gdy dla spełnianie , powiedzmy, będzie bardzo bliskie zeru. Definiując (znany jako binarna funkcja entropii), dochodzimy do wniosku, że czas działania to (jednolite w , jak ). Jako mamy , więc nasze wcześniejsze oszacowanie nie było ścisłe.t[−plogp−(1−p)log(1−p)]t≤(logn)/21t[−plogp−(1−p)log(1−p)]t≥2lognh(p)=−plogp−(1−p)log(1−p)Θ(nlogn/h(p))pn→∞p→0h(p)≈−plogp
Innym sposobem spojrzenia na tę samą analizę jest posiadanie nieskończonej sekwencji niezależnych zmiennych losowych jak poprzednio i zdefiniowanie czasu zatrzymania jako pierwszego tak aby . Czas działania jest wówczas proporcjonalny do . Twierdzenie o elementarnym odnowieniu stwierdza następnie, że , co oznacza, że całkowity rozmiar przedziałów wynosi . Dokładniej, dla każdej stałej całkowity rozmiar przedziałów wynosi , gdzieX1,X2,…TtX1+⋯+Xt≥lognnE[T]limn→∞E[T]/logn=1/E[D]=1/h(p)(1+o(1))nlogn/h(p)p(1+αp(n))nlogn/h(p)αp(n)=o(n) . Konwergencja w elementarnym twierdzeniu o odnowieniu jest wykładnicza w parametrze czasu - w naszym przypadku - więc powinna być wielomianowa w , to znaczy . Prawdopodobnie zbieżność jest również jednolita dla dla dowolnego .lognnαp(n)=O(n−Cp)p∈(δ,1−δ)δ>0
Podsumowując, całkowita długość przedziałów w drzewie rekurencyjnym, która jest proporcjonalna do czasu działania, ma następującą postać dla każdego : gdzie i są przenoszone do tej samej bazy, a jest funkcją zależną od i zmierzającą do pomocą .p
T(n,p)=(1+o(1))nlognh(p),
lognh(p)=−plogp−(1−p)log(1−p)o(1)p0n
Co więcej, prawdopodobnie prawdą jest, że dla dowolnego i dowolnego prawdą jest, że całkowita długość przedziałów ma postać gdzie i ukryta duża stała O zależą tylko od . W szczególności powinno być tak, że dla wszystkich stałych ,
a konwergencja jest wielomianowo szybka.δ>0p∈(δ,1−δ)
T(n,p)=(1+O(n−Cδ))nlognh(p),
Cδ>0δp1,p2limn→∞T(n,p1)T(n,p2)=h(p2)h(p1),