Нижняя граница чередования
В теории оптимальных бинарных деревьев поиска нижняя граница чередования — это нижняя граница количества операций, необходимых двоичному дереву поиска (BST) для выполнения заданной последовательности доступов.
Было доказано несколько вариантов этой нижней оценки. [ 1 ] [ 2 ] [ 3 ] Эта статья основана на вариации первой границы Уилбера. [ 4 ] Эта нижняя граница используется при проектировании и анализе дерева Танго . [ 4 ] Более того, эту нижнюю оценку можно перефразировать и доказать геометрически: Геометрия бинарных деревьев поиска . [ 5 ]
Определение
[ редактировать ]Оценка основана на фиксированном идеальном BST. , называемое деревом нижней границы, по ключам . Например, для , может быть представлен следующей структурой скобок:
- [([1] 2 [3]) 4 ([5] 6 [7])]
Для каждого узла в , определять:
- быть набором узлов в левом поддереве , включая .
- быть набором узлов в правом поддереве .
Рассмотрим следующую последовательность доступа: . Для фиксированного узла , и для каждого доступа , определите метку относительно как:
- « Л » — если находится в .
- " Р " - если находится в ;
- Нуль – иначе.
Этикетка представляет собой объединение меток всех доступов. Например, если последовательность доступов следующая: затем метка корня это: «RRL», метка 6: «RL», а метка 2: «L».
Для каждого узла , определите количество чередования через y как количество чередований между L и R в метке . В приведенном выше примере чередование через и является и чередование через все остальные узлы .
чередования Граница , , представляет собой сумму чередования всех узлов дерева. Граница чередования приведенной выше последовательности равна .
Утверждение о нижней границе и его доказательство.
[ редактировать ]Граница чередования резюмируется следующей теоремой.
Теорема — Пусть быть последовательностью доступа. Обозначим через граница чередования , затем является нижней границей , стоимость оптимального автономного BST, который обслуживает .
Следующее доказательство основано на. [ 4 ]
Доказательство
[ редактировать ]Позволять быть последовательностью доступа. Обозначим через состояние произвольного BST в момент времени т.е. после выполнения последовательности . Мы также фиксируем нижнюю границу BST .
Для узла в , определите точку перехода для во время быть узлом минимальной глубины в БСТ такой, что путь от корня к включает в себя как узел слева ( y ), так и узел справа ( y ). Интуитивно понятно, что любой алгоритм BST на который обращается к элементу справа ( y ), а затем элемент слева ( y ) (или наоборот) должен коснуться точки перехода хотя бы один раз. В следующей лемме мы покажем, что точка перехода определена корректно.
Лемма 1 — Точка перехода узла в за раз существует и он уникален. [ 4 ]
Определять быть наименьшим общим предком всех узлов в которые находятся слева ( y ). Даны любые два узла в , низший общий предок и , обозначенный , удовлетворяет следующим неравенствам. . Следовательно, находится в Left(y) и — единственный узел минимальной глубины в . Те же рассуждения можно применить и к , самый низкий общий предок всех узлов в которые находятся в Right(y) . Кроме того, самый низкий общий предок для всех точек в Left(y) и right(y) также находится в одном из этих наборов. Следовательно, уникальный узел минимальной глубины должен находиться среди узлов Left(y) и right(y) . Точнее, это либо или . Предположим, это . Затем, является предком . Следовательно, является точкой перехода, поскольку путь от корня к содержит . Более того, любой путь в от корня до узла поддерева должен посетить потому что он является предком всех таких узлов и для любого пути к узлу нужно посетить нужный регион потому что это наименьший общий предок всех узлов в right(y) . В заключение, является уникальной точкой перехода для в .
Вторая лемма, которую нам нужно доказать, гласит, что точка перехода устойчива. Оно не изменится, пока к нему не прикоснутся.
Лемма 2 — Дан узел . Предполагать является точкой перехода за раз . Если алгоритм доступа к BST не затрагивает в для , то точка перехода останется в для . [ 4 ]
Рассмотрим то же определение для и как в лемме 1. Не ограничивая общности, предположим также, что является предком в BST в то время , обозначенный . Как результат, будет точкой перехода . По гипотезе алгоритм BST не затрагивает точку перехода, в нашем случае , на протяжении всего . Следовательно, он не затрагивает ни один узел в Right(y) . Следовательно, остается наименьшим общим предком для любых двух узлов в Right(y) . Однако алгоритм доступа может коснуться узла в Left(y) . касаться наименьшего общего предка всех узлов в Left(y). Точнее, он может одновременно , который мы будем обозначать . Несмотря на это, останется предком по следующим причинам: Во-первых, обратите внимание, что любой узел Left(y), находящийся за пределами дерева с корнем в во время не могу войти в это дерево одновременно , с не затронут в этот период времени. Во-вторых, существует хотя бы один узел в Left(y) за пределами дерева с корнем , в любое время . Это с тех пор изначально был снаружи поддерево, и никакие узлы вне дерева не могут войти в него в этот период времени. Теперь рассмотрим . не может быть с не находится в поддереве . Так, должно быть в Left(y) , так как . Следовательно должен быть предком и, как следствие, предок во время . Следовательно, всегда существует узел в Left(y) на пути от корня до и как таковой остается точкой перехода.
Последняя лемма доказательства гласит, что каждый узел имеет свою уникальную точку перехода.
Лемма 3. Учитывая BST во времени , , любой узел в может быть переходом не более чем для одного узла в . [ 4 ]
Учитывая два различных узла . Позволять быть низшим общим предком соответственно. Из леммы 1 мы знаем, что точка перехода либо или для . Теперь нам предстоит рассмотреть два основных случая.
Случай 1: между ними нет родственных связей. и в . Следовательно, и все непересекающиеся. Таким образом, , и точки перехода разные.
Случай 2. Предположим без ограничения общности, что является предком в .
Случай 2.1. Предположим, что точка перехода не находится в дереве с корнем в . Таким образом, он отличается от и , и, следовательно, точка перехода .
Случай 2.2: Точка перехода находится на дереве с корнем в . Точнее, это один из низших общих предков и . Другими словами, это либо или .
Предполагать является низшим общим предком поддерева с корнем в и не содержит . У нас есть и глубже, чем потому что один из них является точкой перехода. Предположим, что является точкой перехода. Затем, менее глубока, чем . В этом случае, является точкой перехода и является точкой перехода . Аналогичные рассуждения применимы, если менее глубока, чем . В общем, точка перехода является менее глубоким из и , и имеет более глубокую точку перехода.
В заключение отметим, что точки перехода во всех случаях разные.
Теперь мы готовы доказать теорему. Прежде всего, обратите внимание, что количество точек перехода, которых коснулся автономный алгоритм BST, является нижней границей его стоимости, мы считаем меньше узлов, чем требуется для общей стоимости.
По лемме 3 мы знаем, что в любой момент времени , любой узел в может быть переходом не более чем для одного узла в . Таким образом, достаточно посчитать количество касаний переходного узла , сумма всех .
Следовательно, для фиксированного узла , позволять и определить как в лемме 1. Точка перехода находится среди этих двух узлов. На самом деле, оно более глубокое. Позволять быть максимальной упорядоченной последовательностью доступа к узлам, которые чередуются между и . Затем это количество чередования через узел . Предположим, что четные индексированные доступы находятся в , а нечетные находятся в то есть и . По свойствам наименьшего общего предка мы знаем, что доступ к узлу в , оно должно коснуться . Аналогично, доступ к узлу в должен коснуться . Рассмотрим каждый . За два последовательных доступа и , если они избегают прикасаться к точке доступа , затем и должно меняться между ними. Однако по лемме 2 такое изменение требует касания точки перехода. Следовательно, алгоритм доступа BST затрагивает точку перехода хотя бы один раз за интервал . Подводя итог всему , лучший алгоритм касается точки перехода по меньшей мере . Подводя итог всему ,
где это количество чередования через . По определению, это добавить до . На этом доказательство завершается.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Уилбер, Р. (1989). «Нижние границы доступа к двоичным деревьям поиска с вращением». SIAM Journal по вычислительной технике . 18 : 56–67. дои : 10.1137/0218004 .
- ^ Хампапурам, Х.; Фредман, М.Л. (1998). «Оптимальные двувзвешенные бинарные деревья и сложность хранения частичных сумм». SIAM Journal по вычислительной технике . 28 : 1–9. дои : 10.1137/S0097539795291598 .
- ^ Патраску, М.; Демейн, Эд (2006). «Логарифмические нижние границы в модели клеточного зонда» (PDF) . SIAM Journal по вычислительной технике . 35 (4): 932. arXiv : cs/0502041 . дои : 10.1137/S0097539705447256 .
- ^ Jump up to: а б с д и ж Демейн, Эд; Хармон, Д.; Яконо, Дж.; Патраску, М. (2007). «Динамическая оптимальность — почти» (PDF) . SIAM Journal по вычислительной технике . 37 : 240–251. дои : 10.1137/S0097539705447347 .
- ^ Демейн, Эрик Д .; Хармон, Дион; Яконо, Джон ; Кейн, Дэниел ; Патрашку, Михай (2009), «Геометрия бинарных деревьев поиска» , В материалах 20-го ежегодного симпозиума ACM-SIAM по дискретным алгоритмам (SODA 2009) , Нью-Йорк: 496–505, doi : 10.1137/1.9781611973068.55 , ISBN 978-0-89871-680-1