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


19

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

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

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


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

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

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

คำตอบ:


15

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

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

(log⁡n)dn(d!)(1+o(1))

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

1n2πd(elog⁡nd)d.

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


ดู

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

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

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


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

3

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

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

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

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

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

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

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

E[ϕn−1]=∏i=1n−1(1+ei)<∏i=1n−1exp⁡(ei)=exp⁡(eHn−1).

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

E[ln⁡ϕn−1]≤ln⁡E[ϕn−1]<ln⁡exp⁡(eHn−1)=eHn−1.       ◻

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

c≥0Pr[maxidi]≥eHn−1+c is at most exp⁡(−c).

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

Pr[ϕn−1≥exp⁡(eHn−1+c)]≤E[ϕn−1]exp⁡(eHn−1+c).
From the proof of Lemma 1, E[ϕn−1]≤exp⁡(eHn−1). Substituting this into the right-hand side above completes the proof.   ◻

As for a lower bound, I think a lower bound of (e−1)Hn−O(1) follows pretty easily by considering maxidi≥ln⁡ϕt−ln⁡n. But... [EDIT: spoke too soon]

It doesn't seem so easy to show the tight lower bound, of (1−o(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)=Πb∈B(b−1)!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)=∑B∈BnPn(B)⋅maxb∈Bh(b)

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

h(n)=∑B∈Bn∖{{n}}Pn(B)⋅maxb∈Bh(b)1−1n!

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.