Случайное двоичное дерево - Random binary tree

В Информатика и теория вероятности, а случайное двоичное дерево это двоичное дерево выбран случайным образом из некоторых распределение вероятностей на бинарных деревьях. Обычно используются два разных распределения: бинарные деревья, сформированные путем вставки узлов по одному в соответствии с случайная перестановка, и бинарные деревья, выбранные из равномерное дискретное распределение в котором все разные деревья одинаково вероятны. Также возможно сформировать другие распределения, например, путем многократного разбиения. Добавление и удаление узлов непосредственно в случайном двоичном дереве, как правило, нарушает его случайную структуру, но трогать и соответствующее рандомизированное двоичное дерево поиска структуры данных использовать принцип бинарных деревьев, сформированных из случайной перестановки, чтобы поддерживать сбалансированное двоичное дерево поиска динамически по мере добавления и удаления узлов.

Для случайных деревьев, которые не обязательно являются двоичными, см. случайное дерево.

Бинарные деревья из случайных перестановок

Для любого набора чисел (или, в более общем смысле, значений из некоторых общий заказ ) можно сформировать двоичное дерево поиска в котором каждое число вставляется последовательно как лист дерева без изменения структуры ранее вставленных чисел. Позиция, в которую должен быть вставлен каждый номер, однозначно определяется бинарный поиск в дереве, образованном предыдущими числами. Например, если три числа (1,3,2) вставляются в дерево в этой последовательности, число 1 будет находиться в корне дерева, число 3 будет помещено как его правый дочерний элемент, а число 2 как левый потомок числа 3. Существует шесть различных перестановок чисел (1,2,3), но из них можно построить только пять деревьев. Это потому, что перестановки (2,1,3) и (2,3,1) образуют одно и то же дерево.

Ожидаемая глубина узла

При любом фиксированном выборе значения Икс в данном наборе п числа, если случайно переставить числа и сформировать из них двоичное дерево, как описано выше, ожидаемое значение длины пути от корня дерева до Икс самое большее 2 журнала п + О(1), куда "бревно"обозначает натуральный логарифм функция и О вводит нотация большой O. Для ожидаемого числа предков Икс по линейности математического ожидания равна сумме по всем остальным значениям у в наборе вероятности того, что у является предком Икс. И ценность у является предком Икс когда именно у это первый элемент, который нужно вставить из элементов в интервале [Икс,у]. Таким образом, значения, примыкающие к Икс в отсортированной последовательности значений имеют вероятность 1/2 быть предком Икс, значения на один шаг имеют вероятность 1/3и т. д. Сложение этих вероятностей для всех позиций в отсортированной последовательности дает дважды Номер гармоники, что приводит к указанной выше границе. Граница этой формы сохраняется также для ожидаемой длины поиска пути к фиксированному значению. Икс это не входит в данный набор.[1]

Самый длинный путь

Хотя анализировать не так просто, как среднюю длину пути, было проведено много исследований по определению математического ожидания (или границ высокой вероятности) длины самого длинного пути в двоичном дереве поиска, созданном на основе случайного порядка вставки. Теперь известно, что эта длина для дерева с п узлов, почти наверняка

куда β уникальный номер в диапазоне 0 < β < 1 удовлетворяющий уравнению

[2]

Ожидаемое количество листьев

В модели случайной перестановки каждое из чисел из набора чисел, использованных для формирования дерева, за исключением наименьшего и наибольшего чисел, имеет вероятность 1/3 быть листом на дереве, потому что это лист, когда он вставлен после двух своих соседей, и любая из шести перестановок этих двух соседей, и это равновероятно. По аналогичным соображениям наименьшее и наибольшее из чисел имеют вероятность 1/2 быть листом. Следовательно, ожидаемое количество листьев - это сумма этих вероятностей, которая для п ≥ 2 точно (п + 1)/3.

Treaps и рандомизированные бинарные деревья поиска

В приложениях структур данных двоичного дерева поиска значения в дерево редко вставляются без удаления в случайном порядке, что ограничивает непосредственное применение случайных двоичных деревьев. Однако разработчики алгоритмов разработали структуры данных, которые позволяют выполнять вставки и удаления в двоичном дереве поиска, на каждом этапе сохраняя в качестве инварианта свойство, что форма дерева является случайной величиной с тем же распределением, что и случайный двоичный поиск дерево.

Если данному набору упорядоченных чисел назначены числовые приоритеты (отдельные числа, не связанные с их значениями), эти приоритеты могут использоваться для построения Декартово дерево для чисел - двоичное дерево, имеющее в качестве последовательности обхода в порядке сортировки отсортированную последовательность чисел, упорядоченный по приоритетам. Хотя известны более эффективные алгоритмы построения, полезно думать о декартовом дереве как о построенном путем вставки заданных чисел в двоичное дерево поиска в порядке приоритета. Таким образом, выбирая приоритеты либо как набор независимых случайных действительных чисел в единичном интервале, либо выбирая их как случайную перестановку чисел из 1 к п (куда п - количество узлов в дереве), и поддерживая свойство упорядочивания кучи с помощью вращения деревьев после любой вставки или удаления узла можно поддерживать структуру данных, которая ведет себя как случайное двоичное дерево поиска. Такая структура данных известна как трогать или рандомизированное двоичное дерево поиска.[3]

Равномерно случайные двоичные деревья

Количество бинарных деревьев с п узлов - это Каталонский номер: за п = 1, 2, 3, ... это количество деревьев

1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, … (последовательность A000108 в OEIS ).

Таким образом, если одно из этих деревьев выбирается равномерно случайным образом, его вероятность равна взаимный каталонского номера. Деревья в этой модели имеют ожидаемую глубину, пропорциональную квадратному корню из п, а не до логарифма;[4] Тем не менее Номер Strahler равномерно случайного двоичного дерева, более точная мера расстояния от листа, на котором узел имеет число Стрелера я всякий раз, когда у него есть ребенок с этим номером или два ребенка с номером я − 1, с большой вероятностью является логарифмическим.[5]

Из-за их большой высоты эта модель равновероятных случайных деревьев обычно не используется для деревьев двоичного поиска, но применялась к задачам моделирования разбирать деревья из алгебраические выражения в компилятор дизайн[6] (где вышеупомянутая оценка числа Штралера переводится в количество регистров необходимо для оценки выражения[7]) и для моделирования эволюционные деревья.[8] В некоторых случаях анализ случайных бинарных деревьев в рамках модели случайных перестановок может быть автоматически перенесен на унифицированную модель.[9]

Случайное разделение деревьев

Деврое и Крушевски (1996) генерировать случайные двоичные деревья с п узлы путем генерации случайной величины с действительным знаком Икс в единичном интервале (0,1), присвоив первому xn узлов (с округлением до целого числа узлов) в левое поддерево, следующий узел - в корень, а оставшиеся узлы - в правое поддерево, и продолжая рекурсивно в каждом поддереве. Если Икс выбирается равномерно случайным образом в интервале, результат такой же, как и случайное двоичное дерево поиска, сгенерированное случайной перестановкой узлов, поскольку любой узел с равной вероятностью будет выбран в качестве корневого; однако эта формулировка позволяет использовать вместо этого другие дистрибутивы. Например, в модели с равномерно случайным двоичным деревом, как только корень зафиксирован, каждое из двух его поддеревьев также должно быть равномерно случайным, поэтому модель с равномерной случайностью также может быть сгенерирована с помощью другого выбора распределения для Икс. Как Деврой и Крушевский показать, выбрав бета-распространение на Икс и, используя соответствующий выбор формы для рисования каждой из ветвей, математические деревья, созданные в этом процессе, можно использовать для создания реалистичных ботанических деревьев.

Примечания

  1. ^ Хиббард (1962); Кнут (1973); Махмуд (1992), п. 75.
  2. ^ Робсон (1979); Питтель (1985); Деврой (1986); Махмуд (1992), стр. 91–99; Рид (2003).
  3. ^ Мартинес и Роура (1998); Зайдель и Арагон (1996).
  4. ^ Кнут (2005), п. 15.
  5. ^ Деврое и Крушевски (1995). То, что оно является не более чем логарифмическим, тривиально, потому что число Стрелера каждого дерева ограничено логарифмом числа его узлов.
  6. ^ Махмуд (1992), п. 63.
  7. ^ Flajolet, Raoult & Vuillemin (1979).
  8. ^ Олдос (1996).
  9. ^ Махмуд (1992), п. 70.

Рекомендации

  • Олдос, Дэвид (1996), «Распределения вероятностей на кладограммах», в Олдосе, Дэвид; Пемантл, Робин (ред.), Случайные дискретные структуры, Объемы IMA по математике и ее приложениям, 76, Springer-Verlag, стр. 1–18..
  • Деврой, Люк (1986), "Заметка о высоте деревьев двоичного поиска", Журнал ACM, 33 (3): 489–498, Дои:10.1145/5925.5930.
  • Деврой, Люк; Крушевский, Пол (1995), "Заметка о числе Хортона-Стрелера для случайных деревьев", Письма об обработке информации, 56 (2): 95–99, Дои:10.1016 / 0020-0190 (95) 00114-Р.
  • Деврой, Люк; Крушевски, Пауль (1996), «Ботаническая красота случайных бинарных деревьев», в Бранденбурге, Франц Й. (ред.), Отрисовка графика: 3-е Междунар. Symp., GD'95, Пассау, Германия, 20-22 сентября 1995 г., Конспект лекций по информатике, 1027, Springer-Verlag, стр. 166–177, Дои:10.1007 / BFb0021801, ISBN  978-3-540-60723-6.
  • Дрмота, Майкл (2009), Случайные деревья: взаимодействие комбинаторики и вероятности, Springer-Verlag, ISBN  978-3-211-75355-2.
  • Флажолет, П.; Raoult, J.C .; Вюйлемен, Дж. (1979), «Количество регистров, необходимых для вычисления арифметических выражений», Теоретическая информатика, 9 (1): 99–125, Дои:10.1016/0304-3975(79)90009-4.
  • Хиббард, Томас Н. (1962), «Некоторые комбинаторные свойства некоторых деревьев с приложениями к поиску и сортировке», Журнал ACM, 9 (1): 13–28, Дои:10.1145/321105.321108.
  • Кнут, Дональд Э. (1973), "6.2.2 Поиск двоичного дерева", Искусство программирования, III, Addison-Wesley, pp. 422–451..
  • Кнут, Дональд Э. (2005), «Проект раздела 7.2.1.6: Создание всех деревьев», Искусство программирования, IV.
  • Махмуд, Хосам М. (1992), Эволюция случайных деревьев поиска, Джон Уайли и сыновья.
  • Мартинес, Конрадо; Роура, Сальвадор (1998), «Рандомизированные бинарные деревья поиска», Журнал ACM, 45 (2): 288–323, CiteSeerX  10.1.1.17.243, Дои:10.1145/274787.274812.
  • Питтель, Б. (1985), "Асимптотический рост класса случайных деревьев", Анналы вероятности, 13 (2): 414–427, Дои:10.1214 / aop / 1176993000.
  • Рид, Брюс (2003), «Высота случайного дерева двоичного поиска», Журнал ACM, 50 (3): 306–332, Дои:10.1145/765568.765571.
  • Робсон, Дж. М. (1979), "Высота деревьев двоичного поиска", Австралийский компьютерный журнал, 11: 151–153.
  • Зайдель, Раймунд; Арагон, Сесилия Р. (1996), «Рандомизированные деревья поиска», Алгоритмика, 16 (4/5): 464–497, Дои:10.1007 / s004539900061.

внешняя ссылка