Seperti yang Anda sebutkan, teorema Akra-Bazzi menunjukkan bahwa solusi untuk pengulangan T(n,p) adalah untuk semua p ∈ ( 0 , 1 ) . Namun, ini tidak mengungkapkan sifat ketergantungan pada hal . Untuk menentukan yang terakhir, kita bisa menggunakan pendekatan pohon rekursi.O(nlogn)p∈(0,1)p
Pada akar pohon rekursi adalah interval . Dua anaknya adalah interval { 1 , ... , p n }{1,…n}{1,…,pn} dan , yang panjang totalnya lagi n . Masing-masing node memiliki dua anak (dengan asumsi n cukup besar), dan seterusnya. Untuk kesederhanaan kita mengabaikan kesalahan pembulatan, yaitu, kita menganggap bahwa p n{pn+1,…,n}nnpnadalah bilangan bulat; ini hanya masalah teknis, dan saya tidak akan mengkhawatirkannya. Kami menghentikan proses setiap kali satu simpul memiliki panjang paling banyak . Kompleksitas algoritma sebanding dengan total panjang interval di pohon. Ketika p ≠ 1 / 2 , yang daun (node di mana kita menghentikan proses) memiliki kedalaman yang berbeda, dan yang membuat lebih sulit untuk menentukan kompleksitas keseluruhan.1p≠1/2
Kita dapat memperoleh batas atas sederhana dengan mencatat bahwa pohon memiliki paling banyak tingkat : setiap node setidaknya merupakan faktor 1 - p lebih kecil dari induknya. Sama seperti dalam analisis untuk p = 1 / 2 , total panjang interval di tingkat manapun adalah paling n , dan kami memperoleh batas ataslog1−p(1/n)1−pp=1/2n pada waktu berjalan. Sejak log 1 -O(nlog1−p(1/n)) danlog(1-p ) - 1 =-log(1-p)=p±O( p 2 )untukpkecil, kita dapat menulis ini sebagaiO(nlogn / p).log1−p(1/n)=logn/log(1−p)−1log(1−p)−1=−log(1−p)=p±O(p2)pO(nlogn/p)
Berikut ini perhitungan yang lebih akurat. Pertimbangkan level . Misalkan kita tidak menghentikan proses setelah mencapai interval kecil. Kita dapat menghasilkan simpul acak dengan mengambil langkah t , di mana masing-masing kita ke kiri (katakanlah) dengan probabilitas p dan kanan (katakanlah) dengan probabilitas 1 - p . Setiap kali kita mengambil langkah ke kiri log dari panjang interval berkurang dengan - log p , dan setiap kali kita mengambil langkah yang tepat ia mengurangi by - log ( 1 - p ) . Sebuah vertex berada di pohon aktual dari log yang panjangnya berkurang paling banyak log nttp1−p−logp−log(1−p)logn. Berat total interval pada level dari pohon adalah probabilitas tepat bahwa suatu simpul yang dihasilkan menurut proses ini sesuai dengan penurunan paling banyak log n . Yaitu, jika D adalah distribusi yang sama dengan - log p dengan probabilitas p dan to - log ( 1 - p ) dengan probabilitas 1 - p , dan X 1 , ... , X t ∼ D independen, maka total bobot dari level t adalahtlognD−logpp−log(1−p)1−pX1,…,Xt∼Dt . Untuk t super-konstan, variabel acak X 1 + ⋯ + X t kira-kira terdistribusi normal dengan rata-rata [ - p log p - ( 1 - p )Pr[X1+⋯+Xt≤logn]tX1+⋯+Xt dan varians linier dalam t , jadi untuk tmemuaskan[−plogp−(1−p)log(1−p)]ttt , katakanlah, probabilitas akan sangat dekat dengan 1 , sedangkan untuk t memuaskan [ - p log p - ( 1 - p ) log ( 1 - p ) ] t ≥ 2 log n , katakanlah, itu akan sangat mendekati nol. Mendefinisikan[−plogp−(1−p)log(1−p)]t≤(logn)/21t[−plogp−(1−p)log(1−p)]t≥2logn (dikenal sebagai fungsi entropi biner), kami menyimpulkan bahwa waktu berjalan adalah Θ ( n log n / h ( p ) ) (seragam dalam p , seperti n → ∞ ). Sebagai p → 0 kita memiliki h ( p ) ≈ - p log ph(p)=−plogp−(1−p)log(1−p)Θ(nlogn/h(p))pn→∞p→0h(p)≈−plogp, dan perkiraan kami sebelumnya tidak ketat.
Cara lain untuk melihat pada analisis yang sama adalah dengan memiliki urutan yang tak terbatas dari variabel acak independen seperti sebelumnya, dan mendefinisikan menghentikan waktu T untuk menjadi pertama kalinya t sehingga X 1 + ⋯ + X t ≥ log n . Waktu berjalan kemudian sebanding dengan n E [ T ] . Teorema pembaruan dasar kemudian menyatakan bahwa lim n → ∞ E [ T ] /X1,X2,…TtX1+⋯+Xt≥lognnE[T] , menyiratkan bahwa ukuran total interval sama denganlimn→∞E[T]/logn=1/E[D]=1/h(p) . Lebih akurat, untuk setiap p konstan, ukuran total interval adalah ( 1 + α p ( n ) ) n log n / h ) , di mana α(1+o(1))nlogn/h(p)p(1+αp(n))nlogn/h(p) . Konvergensi dalam teorema pembaruan elementer adalah eksponensial dalam parameter waktu - log n dalam kasus kami - jadi harus polinomial dalam n , yaitu, α p ( n ) = O ( n - C p ) . Konvergensi juga mungkin seragam untuk p ∈ ( δ , 1 - δ ) untuk δ > 0 .αp(n)=o(n)lognnαp(n)=O(n−Cp)p∈(δ,1−δ)δ>0
Ringkasnya, panjang total interval dalam pohon rekursi, yang sebanding dengan waktu berjalan, adalah dari bentuk berikut untuk setiap : T ( n , p ) = ( 1 + o ( 1 ) ) n log npmanalogndanh(p)=-plogp-(1-p)log(1-p)dibawa ke basis yang sama, dano(1)adalah fungsi tergantung padapdan cenderung0dengann.
T(n,p)=(1+o(1))nlognh(p),
lognh(p)=−plogp−(1−p)log(1−p)o(1)p0n
Selain itu, mungkin benar bahwa untuk dan p ∈ ( δ , 1 - δ ) memang benar bahwa total panjang interval adalah dalam bentuk T ( n , p ) = ( 1 + O ( n - C δ ) ) n log nδ>0p∈(δ,1−δ)manaCδ>0dan konstanta O besar tersembunyi hanya bergantung padaδ. Secara khusus, harus demikian halnya untuk semua konstantap1,p2,
limn→∞T(n,p1)
T(n,p)=(1+O(n−Cδ))nlognh(p),
Cδ>0δp1,p2
dan konvergensi cepat secara polinomi.
limn→∞T(n,p1)T(n,p2)=h(p2)h(p1),