ขอบเขตล่างของจำนวนเส้นทาง“ สั้น” ในต้นไม้ที่ถูกรูทด้วยขนาดพหุนาม


10

ให้เป็นต้นไม้ไบนารีที่รูท เส้นทางจากรากของทุกเพื่อใบมีความยาวnทุกโหนดของมีโหนดซ้ายและโหนดลูกที่ถูกต้องเสมอ แต่เป็นไปได้ที่โหนดเหล่านั้นจะเหมือนกัน (ดังนั้นจึงมีเส้นทางที่เป็นไปได้เสมอ) ขนาดของเป็นที่สิ้นสุดโดย(n)) โหนดที่มีโหนดลูกที่แตกต่างกันจะเรียกว่าแตกแขนงโหนดT n T 2 n T O ( p o l y ( n ) )TTnT2nTO(poly(n))

เราบอกว่าสองพา ธ นั้นแตกต่างกันถ้ามีหนึ่งโหนดการแบรนช์ที่แบ่งใช้และหนึ่งพา ธ ไปที่โหนดย่อยซ้ายและอีกพา ธ ไปยังโหนดย่อยขวา เป็นที่ชัดเจนว่ามีเส้นทางอย่างน้อยหนึ่งในกับโหนดแตกแขนง มิฉะนั้นจะมีโหนดมากเกินไปในTO ( บันทึกn ) TTO(logn)T

มีขอบเขตล่างที่ดีกว่ากับจำนวนของเส้นทางที่มีการแยกโหนดถ้าฉันรู้ว่ามีแยกโหนดในต้นไม้ω ( บันทึกn )O(logn)ω(logn)


@ Marc: ตัวอักษร (บรรทัดที่ 5) เห็นได้ชัดว่ามี `` โหนดมากเกินไปใน "(บรรทัดที่ 7)?T
Oleksandr Bondarenko

@Marc: คุณช่วยกรุณาทำให้คำสั่งของคุณแม่นยำยิ่งขึ้น "สองพา ธ นั้นแตกต่างกันถ้าพวกมันใช้โหนดลูกที่แตกต่างกันในโหนดการแตกแขนง" คุณหมายถึงว่ามันแตกต่างกันถ้ามีโหนดการแตกแขนงที่พวกมันใช้โหนดลูกที่แตกต่างกันหรือไม่?
Oleksandr Bondarenko

ฉันแก้ไขคำถามและพยายามทำให้แม่นยำยิ่งขึ้น
Marc Bury

ทรีที่มีแค่หนึ่งพา ธ (และโหนด ) ล่ะ? อนุญาตหรือไม่ n
Peter Shor

นี่เป็นคำถามที่ดี ได้รับอนุญาต แต่นี่ไม่ใช่กรณีที่น่าสนใจ :) จากนั้นเราควรสร้างขอบเขตล่างของจำนวนโหนดการแยกในต้นไม้เช่นแยกโหนด ω(logn)
Marc Bury

คำตอบ:


9

ขอบเขตล่างคือเส้นทางที่มีการแยกโหนดถ้าคุณมีอย่างน้อยแยกโหนดในต้นไม้O ( บันทึกn ) Ω ( บันทึกn )Ω(logn)O(logn)Ω(logn)

สิ่งนี้สามารถเกิดขึ้นได้: ใช้ต้นไม้ที่มีเส้นทางยาวหนึ่งเส้นทาง (ความยาว ) ซึ่งโหนดทั้งหมดนั้นเป็นโหนดย่อย ๆ โดยที่ไม่มีโหนดสาขาอื่น ๆ ในต้นไม้n

นี่คือภาพร่างของขอบเขตล่าง

ก่อนอื่นให้ทำการทรีให้เล็กลงโดยการทำสัญญาต่อโหนดภายในที่ไม่ได้เป็นโหนดการแยก หากขนาดดั้งเดิมของต้นไม้คือต้นไม้ใหม่จะต้องยังคงเป็นเนื่องจากคุณลดจำนวนโหนดเพียงอย่างเดียว ตอนนี้ความลึกของใบไม้คือจำนวนโหนดการแตกแขนงบนเส้นทางเดิมไปยังใบไม้นั้นและเรามีต้นไม้ไบนารีสมบูรณ์ (ทุกโหนดมีสององศาหรือ 0) < n c<nc<nc

หากไม่มีใบไม้ที่มีความลึกดังนั้นจำนวนเส้นทางจะมากกว่าจำนวนโหนดการแยกซึ่งเป็นดังนั้นเราจึงสามารถสันนิษฐานได้ว่าอย่างน้อยหนึ่งใบไม้มี ลึกn)Ω ( บันทึกn ) Ω ( บันทึกn )Ω(logn)Ω(logn)Ω(logn)

ถัดไปจำความไม่เท่าเทียมกันของคราฟท์ ถ้าความลึกของใบในต้นไม้ไบนารีสมบูรณ์คือแล้ว1Σ v l e a f 2 - d ( v ) = 1d(v)Σv leaf2d(v)=1

ตอนนี้เรามีใบไม้น้อยกว่าเราต้องการที่จะแสดงให้เห็นว่าเรามีจำนวนมากของพวกเขาที่มีความลึกn) สมมติว่าเราขจัดออกจากการพิจารณาคนที่มีความลึกอย่างน้อยn สิ่งนี้จะเอาน้ำหนักมากที่สุดออกจากผลรวมในความไม่เสมอภาคของคราฟท์ดังนั้นสำหรับใบเหล่านั้นที่ความลึกมากที่สุดเรามี{n} นอกจากนี้เรายังมี (เนื่องจากอย่างน้อยหนึ่งใบมีความลึกใหญ่เกินไปที่จะรวมอยู่ในผลรวมนี้) O ( log n ) เข้าสู่ระบบ2 ( n + 1 ) = ( C + 1 ) เข้าสู่ระบบ2 n 1 / n V d ( วี) ( C + 1 ) เข้าสู่ระบบ2 n Σ วีลิตรo W d อีพีทีh l e a f 2 - d ( vncO(logn)log2(nc+1)=(c+1)log2n1/nvd(v)(c+1)log2nvlowdepthleaf2-d(v)<1v low depth leaf2d(v)>11nv low depth leaf2d(v)<1

มันค่อนข้างง่ายที่จะแสดงว่าเพื่อให้ได้ผลรวมของตัวเลขอย่างเคร่งครัดระหว่างถึงเราต้องการอย่างน้อยของพวกเขา สิ่งนี้แสดงให้เห็นว่ามีเส้นทางที่มีการแยกโหนด 1 1 - 12k1 log2nΩ(logn)O(logn)11nlog2nΩ(logn)O(logn)


หากใครสงสัยว่าทำไมฉันถึงเรียกสมการความไม่เท่าเทียมกันความไม่เสมอภาคของคราฟท์มีสัญลักษณ์เท่ากับต้นไม้ไบนารีที่สมบูรณ์
Peter Shor

ขอบคุณสำหรับคำตอบที่ดีนี้ ตอนนี้ฉันไม่รู้ความไม่เสมอภาคของคราฟท์ ความไม่เท่าเทียมกันมีประโยชน์มาก
Marc Bury
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.