Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Региональный поиск метод квадрантного дерева / doc / Региональный поиск. Метод квадрантного дерева.doc
Скачиваний:
26
Добавлен:
01.05.2014
Размер:
168.45 Кб
Скачать

10

1. Постановка задачи.

Рассматривается задача регионального поиска: для заданных набора точек S и области R сообщить о точках из набора S, попадающих в R. Предполагается, что выполняется серия запросов по области для некоторого фиксированного набора точек S. Такая задача называется задачей поиска области.

2. Анализ задачи.

При самом упрощенном подходе к поиску по области набор точек S можно организовать в виде списка. Тогда для запроса по области R можно проверять каждую точку в списке на попадание в область R. Это занимает время, пропорциональное |S|, то есть размеру S, что неэффективно, когда число точек оказывается малым по сравнению с |S|.

В данной работе для решения поставленной задачи предлагается использовать метод квадрантного дерева.

2.1 Описание метода.

Для упрощения описания предполагается, что точки набора S лежат в положительном квадранте на плоскости, так что они могут быть заключены в квадратный домен D, левый нижний угол которого совпадает с началом координат. Следовательно, будет достаточно рассматривать не всю плоскость, а только выделенный домен D, который может подвергнуться делению.

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

Квадрантное деление получается путем рекуррентного деления квадратного домена D на квадранты. Данный квадрант делится путем проведения двух секущих прямых линий, одна из которых вертикальная, другая – горизонтальная, пересекающихся в центре квадранта и таким образом получаются 4 одинаковых по размеру квадрантных подквадранта.

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

Построение квадрантного дерева основано на идее адаптивного деления – квадранты подвергаются делению, пока не выполняться следующие условия:

а) число точек из набора S в каждом из них не превосходит величины M – коэффициента заполняемости ячейки;

б) глубина дерева не станет больше D – предельной глубины.

Величины M и N используются совместно для получения квадрантного дерева, удовлетворяющего следующим условиям для каждого внешнего узла n:

1. n лежит не глубже, чем D.

2. Если глубина n определенно меньше, чем D, тогда n накрывает не более, чем M точек из S.

3. Если n не является корнем, то родитель узла n накрывает больше, чем M точек из S.

Совместно все эти условия определяют уникальное квадрантное дерево для любого заданного набора точек S, содержащегося в домене D.

Соседние файлы в папке doc