Проблема предшественника
В информатике проблема предшественника включает в себя поддержание набора по заданному элементу, элементов для эффективного запроса какой элемент предшествует или следует за этим элементом в порядке. Структуры данных , используемые для решения проблемы, включают сбалансированные двоичные деревья поиска , деревья Ван Эмде Боаса и деревья слияния . В задаче статического предшественника набор элементов не меняется, но в задаче динамического предшественника допускаются вставки в набор и удаления из него. [ 1 ]
Проблема предшественника — это простой случай проблемы ближайшего соседа , и структуры данных, которые ее решают, находят применение в таких задачах, как сортировка целых чисел .
Определение
[ редактировать ]Проблема состоит в поддержании набора S , который содержит подмножество U целых чисел. Каждое из этих целых чисел может храниться с слова размером w , подразумевая, что . Структуры данных, решающие задачу, поддерживают следующие операции: [ 2 ]
predecessor(x)
, который возвращает наибольший элемент в S, меньший или равный xsuccessor(x)
, который возвращает наименьший элемент в S, больший или равный x
Кроме того, структуры данных, решающие динамическую версию задачи, также поддерживают следующие операции:
insert(x)
, который добавляет x в множество Sdelete(x)
, который удаляет x из множества S
Проблема обычно анализируется в трансдихотомической модели вычислений, такой как словесное ОЗУ .
Структуры данных
[ редактировать ]
Одним из простых решений этой проблемы является использование сбалансированного двоичного дерева поиска , которое обеспечивает (в нотации Big O ) работы время для запросов-предшественников. Дерево Ван Эмде Боаса обеспечивает время запроса , но требует космос . [ 1 ] Дэн Уиллард предложил улучшить использование пространства с помощью x-fast trie , для которого требуется пространство и то же время запроса, а также более сложный y-fast trie , для которого требуется только космос. [ 3 ] Деревья слияния , представленные Майклом Фредманом и Уиллардом, достигают время запроса и для запросов-предшественников статической проблемы. [ 4 ] Динамическая задача решена с использованием экспоненциальных деревьев с время запроса, [ 5 ] и с ожидаемым временем с помощью хеширования . [ 6 ]
Математические свойства
[ редактировать ]Был ряд статей, доказывающих нижние оценки проблемы-предшественника или определяющих, каким время выполнения асимптотически оптимальных будет решений. Например, Майкл Бим и Фейт Эллен доказали, что всех значений w n существует значение для со временем запроса (в нотации Big Theta ). , и аналогично, для всех значений n существует значение n такое, что время запроса равно . [ 1 ] Другие доказательства нижних оценок включают понятие сложности связи .
Для задачи статического предшественника Михай Патрашку и Миккель Торуп показали следующую нижнюю оценку оптимального времени поиска в модели ячейки-зонда : [ 7 ] где ОЗУ имеет разрядность , набор содержит целые числа бит каждый и представлен в ОЗУ с помощью слова пространства и определения .
В случае, когда для и , оптимальное время поиска и дерево Ван Эмде Боаса достигает этой границы. [ 7 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Бим, Пол; Фич, Вера (август 2002 г.). «Оптимальные границы проблемы предшественника и связанных с ней проблем» . Журнал компьютерных и системных наук . 65 (1): 38–72. дои : 10.1006/jcss.2002.1822 . S2CID 1991980 .
- ^ Рахман, Наиля; Коул, Ричард; Раман, Раджив (17 августа 2001 г.). Оптимизированные структуры данных предшественников для внутренней памяти (PDF) . Международный семинар по алгоритмической разработке. стр. 67–78.
- ^ Уиллард, Дэн (24 августа 1983 г.). «Лог-логарифмические запросы диапазона наихудшего случая возможны в пространстве Θ (n)». Письма об обработке информации . 17 (2): 81–84. дои : 10.1016/0020-0190(83)90075-3 .
- ^ Фредман, Майкл ; Уиллард, Дэн (1990). «Прорыв через теоретический информационный барьер с помощью термоядерных деревьев». Симпозиум по теории вычислений : 1–7.
- ^ Андерссон, Арне; Торуп, Миккель (2007), «Динамические упорядоченные множества с экспоненциальными деревьями поиска», Журнал ACM , 54 (3): A13, arXiv : cs/0210006 , doi : 10.1145/1236457.1236460 , MR 2314255 , S2CID 8175703 .
- ^ Раман, Раджив (1996), «Очереди с приоритетами: маленькие, монотонные и трансдихотомические», Четвертый ежегодный европейский симпозиум по алгоритмам (ESA '96), Барселона, Испания, 25–27 сентября 1996 г. , Конспекты лекций по информатике, том . 1136, Берлин: Springer-Verlag, стр. 121–137, doi : 10.1007/3-540-61680-2_51 , ISBN. 978-3-540-61680-1 , МР 1469229 .
- ^ Перейти обратно: а б Патрашку, Михай; Торуп, Миккель (21 мая 2006 г.). «Компромисс во времени и пространстве для поиска предшественников». Материалы тридцать восьмого ежегодного симпозиума ACM по теории вычислений . стр. 232–240. arXiv : cs/0603043 . дои : 10.1145/1132516.1132551 . ISBN 1595931341 . S2CID 1232 .