Нижняя граница для числа «коротких» путей в корневом дереве с полиномиальным размером

10

Пусть - корневое двоичное дерево. Каждый путь от корня до листа имеет длину . Каждый узел всегда имеет левый и правый дочерние узлы, но возможно, что они одинаковы (поэтому всегда возможно путей). Размер ограничен . Узел с разными дочерними узлами называется ветвящимся узлом .TTnT2nTO(poly(n))

Мы говорим, что два пути различны, если есть один общий ветвящийся узел, и один путь идет к левому дочернему узлу, а другой путь идет к правому дочернему узлу. Ясно, что в есть хотя бы один путь с ветвящимися узлами. Иначе в было бы слишком много узлов .TО(журналN)T

Существует ли лучшая нижняя граница для числа путей с ветвящимися узлами, если я знаю, что в дереве есть ветвящихся узлов?О(журналN)ω(журналN)

Марк Бери
источник
@Marc: Буква (5-я строка) явно из "слишком большого количества узлов" (7-я строка)?T
Александр Бондаренко
@Marc: Не могли бы вы уточнить ваше утверждение: «два пути различны, если они используют разные дочерние узлы в разветвляющемся узле». Вы имеете в виду, что они разные, если есть такой ветвящийся узел, где они используют разные дочерние узлы?
Александр Бондаренко
Я редактирую вопрос и пытаюсь сделать его более точным.
Марк Бери
Как насчет дерева, которое имеет только один путь (и узлов)? Это разрешено? N
Питер Шор
Это хороший вопрос. Это разрешено, но это не интересный случай :) Затем мы должны сделать нижнюю границу для числа ветвящихся узлов в дереве, например, ветвящихся узлов. ω(журналN)
Марк Бери

Ответы:

9

Нижняя граница - пути с ветвящимися узлами, если в дереве есть хотя бы ветвящихся узлов.O ( log n ) Ω ( log n )Ω(журналN)О(журналN)Ω(журналN)

Это может быть достигнуто: используйте дерево, которое имеет один длинный путь (длина ), все узлы которого являются узлами ветвления, без других узлов ветвления в дереве.N

Вот эскиз нижней границы.

Во-первых, уплотните дерево, сжимая любой внутренний узел, который не является ветвящимся узлом. Если исходный размер дерева был , новое дерево все равно должно быть , поскольку вы только сократили количество узлов. Теперь глубина листа - это число ветвящихся узлов на исходном пути к этому листу, и у нас есть полное двоичное дерево (каждый узел имеет степень 2 или 0). < n c<Nс<Nс

Если нет листьев глубины , то число путей на единицу больше, чем число ветвящихся узлов, которое равно , поэтому мы можем предположить, что хотя бы один лист имеет глубина .Ω ( log n ) Ω ( log n )Ω(журналN)Ω(журналN)Ω(журналN)

Далее вспомним неравенство Крафта. Если глубина листа в полном двоичном дереве равна , то .Σ v l e a f 2 - d ( v ) = 1d(v)Σv Lеaе2-d(v)знак равно1

Теперь у нас меньше, чем листьев. Мы хотим показать, что у нас их много на глубине . Предположим, мы исключаем из рассмотрения те, которые имеют глубину не менее . Это убирает не более веса из суммы в неравенстве Крафта, поэтому для этих листьев на глубине не более , мы имеем . У нас также есть (поскольку по крайней мере один лист имеет слишком большую глубину, чтобы включить его в эту сумму). O ( log n ) log 2 ( n c + 1 ) = ( c + 1 ) log 2 n 1 / n v d ( v ) ( c + 1 ) log 2 n v l o w d e p t h l e a f 2 - d ( vNсО(журналN)log2(nc+1)=(c+1)log2n1/Nvd(v)(с+1)журнал2NΣv Lовес dепTчас Lеaе2-d(v)>1-1NΣv Lовес dепTчас Lеaе2-d(v)<1

Довольно легко показать, что для получения суммы чисел строго между и нам нужно по крайней мере из них. Это показывает, что существуют пути с ветвящимися узлами.2k111nlog2nΩ(logn)O(logn)

Питер Шор
источник
Если кому-то интересно, почему я называю уравнение неравенством, неравенство Крафта имеет знак равенства для полных двоичных деревьев.
Питер Шор
Спасибо за этот хороший ответ. Я не знал неравенства Крафта до сих пор. Очень полезное неравенство.
Марк Бери