stringtranslate.com

R*-дерево

В обработке данных R*-деревья являются вариантом R-деревьев , используемых для индексации пространственной информации. R*-деревья имеют немного более высокую стоимость построения, чем стандартные R-деревья, поскольку данные могут нуждаться в повторной вставке; но полученное дерево обычно будет иметь лучшую производительность запросов. Как и стандартное R-дерево, оно может хранить как точечные, так и пространственные данные. Оно было предложено Норбертом Бекманном, Гансом-Петером Кригелем , Ральфом Шнайдером и Бернхардом Зеегером в 1990 году. [1]

Разница между R*-деревьями и R-деревьями

R*-Tree, построенное путем повторной вставки (в ELKI ). В этом дереве мало совпадений, что приводит к хорошей производительности запросов. Красные и синие MBR — это страницы индекса, зеленые MBR — это конечные узлы.

Минимизация как покрытия, так и перекрытия имеет решающее значение для производительности R-деревьев. Перекрытие означает, что при запросе или вставке данных необходимо расширить более одной ветви дерева (из-за способа разделения данных в областях, которые могут перекрываться). Минимизированное покрытие улучшает производительность обрезки, позволяя чаще исключать целые страницы из поиска, в частности, для запросов отрицательного диапазона. R*-дерево пытается уменьшить и то, и другое, используя комбинацию пересмотренного алгоритма разделения узлов и концепцию принудительной повторной вставки при переполнении узлов. Это основано на наблюдении, что структуры R-деревьев очень восприимчивы к порядку, в котором вставляются их записи, поэтому структура, построенная путем вставки (а не с массовой загрузкой), скорее всего, будет неоптимальной. Удаление и повторная вставка записей позволяет им «найти» место в дереве, которое может быть более подходящим, чем их исходное расположение.

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

R*-дерево описывает три метрики, с помощью которых можно количественно оценить качество разделения. Это перекрытие (общее для R*-деревьев и R-деревьев), определяемое как площадь пересечения ограничивающих прямоугольников двух кластеров; Area-value, представляющее собой сумму площадей двух ограничивающих прямоугольников кластера, и Margin-value, представляющее собой сумму периметров двух ограничивающих прямоугольников кластера.

Производительность

Алгоритм и сложность

Таким образом, сложность запроса и удаления в худшем случае идентична R-Tree. Стратегия вставки в R*-дерево сложнее, чем стратегия линейного разделения ( ) R-дерева, но менее сложна, чем стратегия квадратичного разделения ( ) для размера страницы объектов и мало влияет на общую сложность. Общая сложность вставки по-прежнему сопоставима с R-деревом: повторные вставки затрагивают максимум одну ветвь дерева и, таким образом, повторные вставки, сопоставимы с выполнением разделения на обычном R-дереве. Таким образом, в целом сложность R*-дерева такая же, как и у обычного R-дерева.

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

Ссылки

  1. ^ ab Beckmann, N.; Kriegel, HP ; Schneider, R.; Seeger, B. (1990). "R*-дерево: эффективный и надежный метод доступа для точек и прямоугольников". Труды международной конференции ACM SIGMOD 1990 года по управлению данными - SIGMOD '90 (PDF) . стр. 322. doi :10.1145/93597.98741. ISBN 0897913655.
  2. ^ Гуттман, А. (1984). "R-деревья: динамическая индексная структура для пространственного поиска". Труды международной конференции ACM SIGMOD 1984 года по управлению данными - SIGMOD '84 (PDF) . стр. 47. doi :10.1145/602259.602266. ISBN 0897911288.
  3. ^ Ang, CH; Tan, TC (1997). "Новый линейный алгоритм разделения узлов для R-деревьев". В Scholl, Michel; Voisard, Agnès (ред.). Труды 5-го Международного симпозиума по достижениям в области пространственных баз данных (SSD '97), Берлин, Германия, 15–18 июля 1997 г. Lecture Notes in Computer Science. Том 1262. Springer. стр. 337–349. doi :10.1007/3-540-63238-7_38.

Внешние ссылки