ความลึกที่คาดหวังของต้นไม้ที่สร้างแบบสุ่มคืออะไร?


19

ฉันคิดเกี่ยวกับปัญหานี้มานานแล้ว แต่ไม่มีความคิดเกี่ยวกับมัน

อัลกอริทึมการสร้างมีดังนี้ เราถือว่ามีnโหนดต่อเนื่องจำนวนจาก0ไปn1 1 แล้วสำหรับแต่ละiใน{1,,n1}เราทำให้iพ่อแม่ของโหนด TH ในต้นไม้เป็นโหนดสุ่ม{0,,i1} } ย้ำผ่านแต่ละiในการสั่งซื้อเพื่อให้ผลที่ได้คือต้นไม้สุ่มที่มีโหนดราก00(อาจเป็นแบบสุ่มไม่พอ แต่อาจไม่สำคัญ)

ความลึกที่คาดหวังของต้นไม้นี้คืออะไร?


ฉันถือว่าv0เป็นรูทและคุณตั้งใจจะพูดว่า: "สำหรับแต่ละiใน[1,n)เราจะสร้างพาเรนต์ของโหนดi th ... " ขวา?
ไม่มีชื่อ

คุณลองทำอะไร คุณได้ลองเขียนความสัมพันธ์ที่เกิดซ้ำแล้วพูดสำหรับd(i)ซึ่งเป็นความลึกที่คาดหวังของโหนดiหรือไม่?
DW

3
วัตถุเหล่านี้เป็นที่รู้จักกันภายใต้ชื่อ "ต้นไม้แบบสุ่มซ้ำ"
เจมส์มาร์ติน

คำตอบ:


15

ฉันคิดว่ามีผลการมุ่งเน้นเกี่ยวกับแต่ฉันยังไม่ได้กรอกรายละเอียดelogn

เราสามารถได้รับการผูกไว้บนสำหรับความน่าจะเป็นที่โหนดมีdบรรพบุรุษไม่รวม0 สำหรับแต่ละห่วงโซ่ที่สมบูรณ์เป็นไปได้ของdบรรพบุรุษภัณฑ์( 1 , 2 , . . . , d )น่าจะเป็นของห่วงโซ่ที่เป็น(nd0d(a1,a2,...,ad) . สิ่งนี้สอดคล้องกับ1(1a1)(1a2)(1ad)×1nคูณหนึ่งเทอมของ(1+1)1nซึ่งคำสั่งนั้นถูกสั่ง ดังนั้นขอบเขตบนของความน่าจะเป็นนี้คือ1(1+12+13+1n1)dโดยที่Hn-1คือหมายเลขn-1 ที่ประสานกัน1+11n(d!)Hn1dHn1n1 1 Hn-1ล็อก(n-1)+γ สำหรับการแก้ไขdและnความน่าจะเป็นที่โหนดnอยู่ที่ความลึกd+1มากที่สุด1+12+...+1n1Hn1log(n1)+γdnnd+1

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

โดยการประมาณของสเตอร์ลิงเราสามารถประเมินสิ่งนี้เป็น

1n2πd(elognd)d.

สำหรับขนาดใหญ่อะไรก็ตามที่มีขนาดใหญ่กว่าe log nฐานของเลขชี้กำลังมีขนาดเล็กดังนั้นขอบเขตนี้มีขนาดเล็กและเราสามารถใช้สหภาพถูกผูกมัดเพื่อบอกว่าความน่าจะเป็นที่มีอย่างน้อยหนึ่งโหนดที่มีddelogndภัณฑ์บรรพบุรุษมี เล็ก


ดู

Luc Devroye, Omar Fawzi, Nicolas Fraiman "คุณสมบัติความลึกของต้นไม้แบบสุ่มซ้ำที่แนบมาด้วยสเกล"

B. Pittel หมายเหตุเกี่ยวกับความสูงของต้นไม้แบบสุ่มซ้ำและต้นไม้ค้นหาแบบสุ่ม โครงสร้างและอัลกอริธึมแบบสุ่ม, 5: 337–348, 1994

อดีตอ้างว่าหลังแสดงให้เห็นว่าความลึกสูงสุดคือมีความน่าจะเป็นสูงและมีหลักฐานอีกประการหนึ่ง(e+o(1))logn


2
ดีมาก. ชี้แจงสำหรับผู้อ่านอื่น ๆ : ตั้งแต่ที่คุณไม่สามารถทำซ้ำฉันคำว่า( 1 + 1aiเป็นแค่ขอบเขตบน (1+12++1n1)d
Peter Shor

3

คำถามนี้ได้รับคำตอบเมื่อหลายปีก่อน แต่เพื่อความสนุกนี่เป็นข้อพิสูจน์อย่างง่ายเกี่ยวกับขอบเขตบน เราให้ความผูกพันกับความคาดหวังจากนั้นก็ผูกหาง

กำหนด RV จะเป็นความลึกของโหนดฉัน{ 0 , 1 , ... , n - 1 } กำหนดφ ฉัน = Σ ฉันJ = 0อีd Jdii{0,1,,n1}ϕi=j=0iedj.

บทแทรก 1. ความลึกสูงสุดที่คาดไว้, มากที่สุดE[maxidi] 1eHn1

พิสูจน์ ความลึกสูงสุดที่มากที่สุด 1 เพื่อให้จบเราแสดงE [ ln ϕ n - 1 ] elnϕn1 1E[lnϕn1]eHn1

สำหรับท่านใด , เครื่องในφ ฉัน- 1โดยการตรวจสอบของφ ฉัน , E [ φ ฉันi1ϕi1ϕi

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

โดยการเหนี่ยวนำมันจะตามมาว่า

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

ดังนั้นด้วยความเห็นร่วมของลอการิทึม

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

นี่คือหางที่ถูกผูกไว้:

c0Pr[maxidi]eHn1+c is at most exp(c).

Proof. By inspection of ϕ, and the Markov bound, the probability in question is at most

Pr[ϕn1exp(eHn1+c)]E[ϕn1]exp(eHn1+c).
From the proof of Lemma 1, E[ϕn1]exp(eHn1). Substituting this into the right-hand side above completes the proof.   

As for a lower bound, I think a lower bound of (e1)HnO(1) follows pretty easily by considering maxidilnϕtlnn. But... [EDIT: spoke too soon]

It doesn't seem so easy to show the tight lower bound, of (1o(1))eHn...


2

I have actually thought about the same question (although in a completely different formulation) a few months ago, as well as some close variants.

I don't have a closed form (/ asymptotic) solution for it, but you might find this view useful (are you only looking for upper bound perhaps?).

The process you describe here is a generalization of the Chinese Restaurant Process, where each "table" is a subtree whose root's parent is v0.

This also gives us a recursion formula for your question.

Denote by h(n) the expected heights of a such tree process with n nodes.

Denote by Pn(B)=ΠbB(b1)!n! (the probability of distribution B of the nodes into subtrees).

Then the quantity you're looking for, h(n), is given by:

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

If you wish to code this recursion, make sure you use the following so it won't go into infinite loop:

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

Where Bn is the set of all partitions of n identical balls into any number of non-empty bins, and h(1)=1.


In practice, when I needed this I just used a simple monte-carlo method for estimating h(n), as trying to actually compute h by this method is extremely inefficient.


1
Thanks for the idea! Actually I wrote a monte-carlo program the first time when I met with this problem, but to my surprise the accurate result is so difficult to get.
zhxchen17
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.