Сравнение R-Tree и Quadtree

Я хочу сравнить R-Tree и Quadtree для геопространственных данных. Хотя есть литература, я изо всех сил пытаюсь найти документы, которые охватывают реальное базовое сравнение. Поэтому я решил задать этот вопрос.

По моему мнению, R-Tree имеет преимущество в том, что он сбалансирован, а у дерева нет пустых листьев. В качестве недостатка основная операция, такая как вставка или удаление, может привести к реорганизации всего индекса.

Квадрат противоположный, он не сбалансирован и имеет пустые листья, но его не нужно ограничивать.

Итак, как фазит от этого, я бы сказал, что R-Tree нуждается в меньшем объеме памяти и быстрее для поиска из-за минимальной высоты. Квадтрит лучше, когда есть много операций обновления, но результирующее дерево может быть неуравновешенным.

Правильны ли эти точки, на ваш взгляд? Есть ли хорошие документы, которые охватывают эту тему?

Auf Wiedersehen, Andre

Ответ 1

"реструктурировать весь индекс". Нет. Реструктуризация R-дерева ограничена одним путем, а не "целым" индексом. Фактически он работает подобно B-дереву.

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

При равномерно распределенных данных с высокой частотой изменения квадранты обычно работают лучше. На диске R-дерево имеет явные преимущества.

Ответ 2

Здесь бумага, которая имеет довольно хорошее сравнение QuadTrees и R деревьев:

Квадратные и R-индексы дерева в Oracle Spatial: сравнение с использованием данных ГИС

Некоторые отличия:

  • Quadtrees требуют точной настройки, выбирая соответствующий уровень плитки для оптимизации производительности. Для R-деревьев не требуется никакой конкретной настройки.
  • Quadtree может быть реализован поверх существующего B-дерева. R-Tree -cannot
  • Показатели Quadtree создаются быстрее, чем R-дерево.
  • R-деревья намного быстрее, чем Quadtree для запросов ближайших соседей.
  • R-деревья существенно быстрее, чем Quadtree для оконных запросов, таких как "внутри", "содержит", "обложки" и т.д.