Вопрос

Учитывая произвольное двоичное дерево на N $ n $ узлов, выберите назначение $ a $ от каждого Родитель к одному из его детей («любимый ребенок» как оно был). Мы определяем посадочную высоту дерева, как $ h_a (\ mathsf {nil})= 0 $ и $ h_a (\ mathsf {node} \; a \; b)=max (h_a (a), h_a (b) +1) $ Если $ a (\ mathsf {узел } \; a \; b)= a $ - это любимый ребенок и симметрично $ \ max (h_a (a) +1, h_a (b)) $ Если $ b $ предпочтительно.

Вопрос: для фиксированного дерева $ T $ T $ , какова минимальная высота перекоса по всем назначениям? Я хотел бы получить асимптотическую границу на $ f (n)=max_ {| t |= n} \ min_ah_a (t) $ .

Другие вариации этой проблемы, в которой меня интересует, есть, когда деревья не двоичные (но все еще есть один любимый ребенок, и все остальные добавляют один на высоту), и когда есть делиться (то есть это даг), Что не влияет на вычисление высоты, но позволяет намного шире «деревья», оставаясь в разделе $ n $ Counted.

Очевидные границы - $ f (n)=omega (\ log n) $ и $ f (n )= O (n) $ . Я думаю, что $ f (n)=theta (\ log n) $ для двоичных деревьев и $ f ( n)=theta (\ sqrt n) $ для dags (с какой-то графиком сетки в качестве контрпример).

Это было полезно?

Решение

Для бинарного дерева, пусть $ h (t)=min_ah_a (t) $ , где $ a $ Диапазоны над всеми благоприятными дочерним заданием $ T $ . Вызов $ h (t) $ Высота перекоса $ t $ .

Вот простое наблюдение. Высота перекоса идеального бинарного дерева (обычной) высоты $ N $ IS $ n $ тоже ,

Идеальное двоичное дерево высоты 2

Для двоичного дерева $ t $ t $ t $ , край называется прохождение, если одна из конечных точек имеет ровно один ребенок. Мы называем двоичное дерево $ m $ mine a b-minor of $ T $ Если $ m $ m может быть получен путем удаления поддерева или неоднократно договаривала преданный край.

Для двоичного дерева $ T $ , что такое высота перекоса? Вот визуализация.

вертикальная вертикальная версия $ t $ - максимальная (обычная) высота всех идеальных двоичных деревьев, которые также являются B-несовершеннолетними. «Математический контейнер»> $ T $ . Интуитивно говоря, двоичное дерево имеет поперечную высоту $ s $ $ \ iff $ " содержит "идеальное двоичное дерево обычной высоты $ s $ .

Доказательство. поскольку оба удаления поддерева и договаривающегося кромки не увеличивают высоту перекоса, $$ h (t) \ ge \ max_ { M \ text {представляет собой B-минор T}} \ mathsf {height} (m), $$ где $ \ mathsf {height} (\ cdot) $ - это (обычная) высота дерева. С другой стороны, по индукции по количеству узлов $ t $ мы можем показать, что бинарное дерево посос перекоса $ S $ должен содержать B-минор, который является идеальным двоичным деревом обычной высоты $ S $ . $ \ Quad \ Checkmark $ .


Напомним, что $ n $ - это количество узлов в $ t $ . У нас есть, $$ h (t) \ le \ lceil \ log_2 (n + 1) \ rceil - 1. $$ <Сильное> Доказательство. Индукция на $ n $ . Базовый случай, $ n= 1 $ легко проверить.

Предположим, что это правда, если количество узлов в $ t $ меньше, чем $ n $ Отказ Рассмотрим двоичное дерево $ t $ $ n $ Узлы с корневым узлом $ r $ .

    .
  • Если $ R $ есть только один ребенок, скажем, $ a $ , затем $$ h (t)= h (\ text {поддерево, укорененный на} a) \ le \ lceil \ log_2 ((n - 1) +1) \ RCEIL - 1 \ le \ lceil \ log_2 (n + 1) \ RCEIL - 1. $$
  • Если $ R $ имеет два детей, скажем, $ a $ и $ b $ . Поскольку количество узлов в подметке укоренилось на $ a $ и поддерево, укоренившись на $ B $ $ N-1 $ , один из поддельных имеет максимально возможное $ \ lfloor (N-1) / 2 \ RFLOOR $ узлы. WLOG, предположим, что это поддерево, укоренившись на $ B $ . потом $$ h (t)=max (h (\ text {поддерева, укоренившись на} a) + 1, h (\ text {поддерево, укоренившись на} b)) \\ \ le \ max (\ lceil \ log_2 (\ lleoor (n-1) / 2 \ Rfloor + 1) \ RCEIL, \ lceil \ log_2 ((n-2) +1) \ RCEIL -1) $$ Поскольку $$ \ LECHIL \ log_2 (\ lfloor (n-1) / 2 \ Rfloor + 1) \ RCEIL=lceil \ log_2 (\ lfloor (n + 1) / 2 \ RFLOOR) \ RCEIL=LECHIL \ log_2 (n + 1) \ RCEIL-1, $$ У нас есть $ h (t) \ le \ lceil \ log_2 (n + 1) \ rceil-1. $ $ \ Quad \ Checkmark $

Напомним, что $ f (n)=max_ {t \ text {- бинарное дерево и} | t |= n} h (t) $ . Вышеуказанное сечение оказалось $ f (n) \ le \ lceil \ log_2 (n + 1) \ rceil-1 $ .

С другой стороны, масса косов из идеального двоичного дерева с $ 2 ^ M-1 $ Узел - $ M-1 $ . Следовательно, $$ f (n)=lceil \ log_2 (n + 1) \ RCEIL-1. $$

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top