Поиск предков: различия между версиями

Перейти к навигации Перейти к поиску
Строка 99: Строка 99:




Полный результат Петрашку и Торупа [ ] представляет собой компромисс (1). Первоначально он был показан только для детерминированных алгоритмов запросов, но со временем был распространен и на нижнюю границу рандомизированного алгоритма [16]. Среди удивительных последствий этого результата было то, что классический поиск ван Эмде Боаса является оптимальным для почти линейного объема памяти (и, следовательно, для динамических структур данных), тогда как при наличии квадратичного объема памяти он может уступать технике Бима и Фич.
Полный результат Петрашку и Торупа [15] представляет собой компромисс (1). Первоначально он был показан только для детерминированных алгоритмов запросов, но со временем был распространен и на нижнюю границу рандомизированного алгоритма [16]. Среди удивительных последствий этого результата было то, что классический поиск ван Эмде Боаса является оптимальным для почти линейного объема памяти (и, следовательно, для динамических структур данных), тогда как при наличии квадратичного объема памяти он может уступать технике Бима и Фич.




С технической точки зрения идея [ ] заключается в одновременном анализе нескольких запросов. Затем рассматривается коммуникативная игра, включающая все запросы, и доказывается версия леммы об исключении раунда с прямой суммой. Возможно, доказательство в данном случае даже проще, чем у обычной леммы об исключении раунда. Это достигается за счет рассмотрения более сильной модели индуктивного анализа, в которой алгоритму разрешается ''отклонить'' большую часть запросов, прежде чем приступить к зондированию.
С технической точки зрения идея работы [15] заключается в одновременном анализе нескольких запросов. Затем рассматривается коммуникативная игра, включающая все запросы, и доказывается версия леммы об исключении раунда с прямой суммой. Возможно, доказательство в данном случае даже проще, чем у обычной леммы об исключении раунда. Это достигается за счет рассмотрения более сильной модели индуктивного анализа, в которой алгоритму разрешается ''отклонить'' большую часть запросов, прежде чем приступить к зондированию.




Строка 110: Строка 110:




Поскольку блоки размером wO(1) могут обрабатываться деревьями слияния за константное время, из этого следует, что коэффициенты w объема памяти не имеют значения. Более экстремальное применение этой идеи дают экспоненциальные деревья [ ]. Здесь блоки имеют размер @(n1~y), где у – достаточно небольшая константа. Блоки обрабатываются рекурсивно таким же образом, что дает в итоге O(lglg n) уровней. Если начальное время запроса не меньше tq > lg" n, то время запроса на каждом уровне уменьшается в геометрической прогрессии, так что общее время растет только на постоянный коэффициент. Однако при соответствующем выборе у любое полиномиальное требование к памяти сводится к линейному. Кроме того, экспоненциальное дерево может быть обновлено за время O(tq), даже если исходная структура данных была статической.
Поскольку блоки размером <math>w^{(O(1)}</math> могут обрабатываться деревьями слияния за константное время, из этого следует, что коэффициенты w объема памяти не имеют значения. Более экстремальное применение этой идеи дают ''экспоненциальные деревья'' [3]. Здесь блоки имеют размер <math>\Theta(n^{1 - \gamma})</math>, где <math>\gamma</math> – достаточно небольшая константа. Блоки обрабатываются рекурсивно таким же образом, что дает в итоге O(lg lg n) уровней. Если начальное время запроса не меньше <math>t_q \ge lg^{\varepsilon} \; n</math>, то время запроса на каждом уровне уменьшается в геометрической прогрессии, так что общее время растет только на постоянный коэффициент. Однако при соответствующем выборе <math>\gamma</math> любое полиномиальное требование к памяти сводится к линейному. Кроме того, экспоненциальное дерево может быть обновлено за время <math>O(t_q</math>), даже если исходная структура данных была статической.


== Применение ==
== Применение ==