Нижня межа кількості «коротких» шляхів у вкоріненому дереві з розміром полінома


10

Нехай - корінне двійкове дерево. Кожен шлях від кореня Т до листя має довжину n . Кожен вузол T завжди має лівий і правий дочірній вузол, але можливо, що вони однакові (Отже, завжди можливі 2 n шляхи). Розмір T обмежений O ( p o l y ( n ) ) . Вузол з різними дочірніми вузлами називається вузлом розгалуження .TTnT2nTO(poly(n))

Ми говоримо, що два контури відрізняються, якщо є один спільний розгалужувальний вузол, і один шлях іде до лівого дочірнього вузла, а інший шлях - до правого дочірнього вузла. Зрозуміло, що існує принаймні один шлях у з вузлами розгалуження O ( log n ) . В іншому випадку було б занадто багато вузлів в T .TO(logn)T

Чи є краща нижня межа кількості шляхів з вузлами розгалуження якщо я знаю, що на дереві є ω ( log n ) розгалужувальні вузли?O(logn)ω(logn)


@Marc: Буква (5-й рядок) очевидно від `` занадто багато вузлів в '' (7-й рядок)?T
Олександр Бондаренко

@Marc: Ви можете, будь ласка, зробити більш точне ваше твердження "два шляхи різні, якщо вони використовують різні дочірні вузли у вузлі розгалуження". Ви маєте на увазі, що вони різні, якщо є такий розгалужувальний вузол, де вони використовують різні дочірні вузли?
Олександр Бондаренко

Я редагую питання і намагаюся зробити його більш точним.
Марк Бері

А як щодо дерева, яке має лише один шлях (і вузлів)? Це дозволено? n
Петро Шор

Це гарне запитання. Це дозволено, але це не цікавий випадок :) Тоді нам слід зробити нижню межу щодо кількості гілок гілки на дереві, наприклад, вузлів розгалуження. ω(logn)
Марк Бері

Відповіді:


9

Нижня межа - це шляхи з O ( log n ) розгалужуваними вузлами, якщо у вас є принаймні Ω ( log n ) розгалуження у дереві.Ω(logn)O(logn)Ω(logn)

Цього можна досягти: використовуйте дерево, яке має один довгий шлях (довжина ), усі вузли якого є вузлами розгалуження, без інших вузлів розгалуження на дереві.n

Ось ескіз нижньої межі.

По-перше, компактизуйте дерево, уклавши будь-який внутрішній вузол, який не є вузлом розгалуження. Якщо початковий розмір дерева був , нове дерево все одно повинно бути < n c , оскільки ви лише зменшили кількість вузлів. Тепер глибина аркуша - це кількість розгалужувальних вузлів на початковому шляху до цього листя, і ми маємо повне двійкове дерево (кожен вузол має ступінь 2 або 0).<nc<nc

Якщо немає листя глибини , то кількість шляхів на один більший, ніж кількість вузлів розгалуження, що Ω ( log n ) , тож можна припустити, що принаймні один лист має глибину Ω ( log п ) .Ω(logn)Ω(logn)Ω(logn)

Далі, пригадайте нерівність Крафта. Якщо глибина листка в цілому двійкове дерево дорівнює , то Σ v l e a f 2 - d ( v ) = 1 .d(v)Σv leaf2d(v)=1

Тепер у нас менше, ніж листя. Ми хочемо показати, що їх у нас дуже багато на глибині O ( log n ) . Припустимо, ми виключимо з розгляду ті, що мають глибину принаймні log 2 ( n c + 1 ) = ( c + 1 ) log 2 n . Це знімає максимум 1 / n ваги з суми нерівності Крафта, тому для тих листів v на глибині не більше d ( v ) ( c +ncO(logn)log2(nc+1)=(c+1)log2n1/nv , маємоv l o w d e p t h l e a f 2 - d ( v ) > 1 - 1d(v)(c+1)log2n . У нас також єvlowdepthleaf2-d(v)<1(оскільки принаймні один лист має глибину, занадто велику, щоб включати до цієї суми).v low depth leaf2d(v)>11nv low depth leaf2d(v)<1

Досить легко показати, що отримати суму чисел строго між 1 і 1 - 12k1 , нам потрібно щонайменшеlog2nз них. Це показує, що єΩ(logn)шляхи звузлами розгалуженняO(logn).11nlog2nΩ(logn)O(logn)


Якщо когось цікавить, чому я називаю рівняння нерівністю, нерівність Крафта має знак рівності для повних двійкових дерев.
Петро Шор

Дякую за гарну відповідь. Я до цього часу не знав нерівності Крафта. Дуже корисна нерівність.
Марк Бері
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.