Berapa kedalaman yang diharapkan dari pohon yang dihasilkan secara acak?


19

Saya sudah memikirkan masalah ini sejak lama, tetapi tidak tahu.

Algoritma pembangkitnya adalah sebagai berikut. Kami berasumsi ada n diskrit bernomor dari 0 hingga n1 . Kemudian untuk setiap i di {1,,n1} , kita menjadikan orang tua simpul ke- i di pohon menjadi simpul acak di {0,,i1} . Iterasi melalui masing-masing i agar hasilnya adalah pohon acak dengan simpul akar 0 . (Mungkin ini tidak cukup acak tetapi ini tidak masalah.)

Berapa kedalaman yang diharapkan dari pohon ini?


Saya berasumsi v0 adalah root dan Anda bermaksud mengatakan: "Lalu untuk setiap i di [1,n) , kami membuat induk simpul ke- i ...". Baik?
Tanpa judul

Apa yang sudah kamu coba? Sudahkah Anda mencoba menulis relasi perulangan, katakan untuk d(i) yang merupakan kedalaman yang diharapkan dari simpul i ?
DW

3
Objek-objek ini dikenal dengan nama "pohon rekursif acak".
James Martin

Jawaban:


15

Saya pikir ada hasil konsentrasi tentang elogn , tetapi saya belum mengisi detailnya.

Kita bisa mendapatkan batas atas untuk probabilitas bahwa simpul memiliki d leluhur tidak termasuk 0 . Untuk setiap kemungkinan rantai lengkap d nenek moyang nol ( a 1 , a 2 , . . . , A d ) , probabilitas rantai yang ( 1nd0d(a1,a2,...,ad) . Ini sesuai dengan1(1a1)(1a2)(1ad)×1n kali jangka waktu(1+11ntempat ketentuan dipesan. Jadi, batas atas untuk probabilitas ini adalah1(1+12+13+1n1)d di manaHn-1adalahn-1st harmonik nomor1+11n(d!)Hn1dHn1n1 . LogHn-1(n-1)+γ. Untuk fixddann, probabilitas simpulnpada kedalamand+1adalah paling banyak1+12+...+1n1Hn1log(n1)+γdnnd+1

(logn)dn(d!)(1+o(1))

Dengan perkiraan Stirling, kita dapat memperkirakan ini sebagai

1n2πd(elognd)d.

Untuk besar , apa pun yang jauh lebih besar dari e log n , basis eksponensial kecil, jadi ikatan ini kecil, dan kita dapat menggunakan ikatan terikat untuk mengatakan bahwa probabilitas bahwa setidaknya ada satu simpul dengan leluhur d bukan nol adalah kecil.delognd


Lihat

Luc Devroye, Omar Fawzi, Nicolas Fraiman. "Kedalaman sifat lampiran pohon rekursif acak skala."

B. Pittel. Perhatikan ketinggian pohon rekursif acak dan pohon pencarian m-ary acak. Struktur dan Algoritma Acak, 5: 337–348, 1994.

Mantan klaim yang terakhir menunjukkan kedalaman maksimum adalah dengan probabilitas tinggi, dan menawarkan bukti lain.(e+o(1))logn


2
Sangat bagus. Untuk memperjelas bagi pembaca lainnya: karena Anda tidak bisa mengulangi , istilah ( 1 + 1aihanyalah batas atas. (1+12++1n1)d
Peter Shor

3

Pertanyaan ini dijawab beberapa tahun yang lalu, tetapi, hanya untuk bersenang-senang, ini adalah bukti sederhana dari batas atas. Kami memberi batasan pada harapan, lalu ekor terikat.

Tentukan rv menjadi kedalaman simpul i { 0 , 1 , , n - 1 } . Mendefinisikan φ i = Σ i j = 0 e d j .dii{0,1,,n1}ϕi=j=0iedj.

lemma 1. Kedalaman maksimum yang diharapkan, paling banyak eE[maxidi] .eHn1

Bukti. Kedalaman maksimum paling banyak pada . Untuk menyelesaikannya kami menunjukkan E [ ln ϕ n - 1 ] elnϕn1 .E[lnϕn1]eHn1

Untuk setiap , pengkondisian pada ϕ i - 1 , dengan memeriksa ϕ i , E [ ϕ ii1ϕi1ϕi

E[ϕi|ϕi1]=ϕi1+E[edi]=ϕi1+eiϕi1=(1+ei)ϕi1.

Dengan induksi maka

E[ϕn1]=i=1n1(1+ei)<i=1n1exp(ei)=exp(eHn1).

Jadi, dengan konkavitas logaritma,

E[lnϕn1]lnE[ϕn1]<lnexp(eHn1)=eHn1.       

Inilah ekor yang diikat:

lemma 2. Perbaiki . Kemudian Pr [ maks i d i ] ec0Pr[maxidi]eHn1+cexp(c)

ϕ

Pr[ϕn1exp(eHn1+c)]E[ϕn1]exp(eHn1+c).
E[ϕn1]exp(eHn1)   

(e1)HnO(1)maxidilnϕtlnn [EDIT: bicara terlalu cepat]

(1o(1))eHn


2

Saya sebenarnya telah memikirkan pertanyaan yang sama (walaupun dalam formulasi yang sama sekali berbeda) beberapa bulan yang lalu, serta beberapa varian yang dekat.

Saya tidak punya solusi bentuk tertutup (/ asimptotik) untuk itu, tetapi Anda mungkin menganggap ini berguna (apakah Anda hanya mencari batas atas?).

v0

Ini juga memberi kami formula rekursi untuk pertanyaan Anda.

h(n)n

Pn(B)=ΠbB(b1)!n!B

h(n)

h(n)=BBnPn(B)maxbBh(b)

Jika Anda ingin membuat kode rekursi ini, pastikan Anda menggunakan yang berikut ini agar tidak masuk ke loop tak terbatas:

h(n)=BBn{{n}}Pn(B)maxbBh(b)11n!

Bnnh(1)=1


h(n)h


1
Terima kasih atas idenya! Sebenarnya saya menulis program monte-carlo pertama kali ketika saya bertemu dengan masalah ini, tetapi yang mengejutkan saya hasil yang akurat sangat sulit didapat.
zhxchen17
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.