Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Локализация точки / Локализация точки.doc
Скачиваний:
94
Добавлен:
01.05.2014
Размер:
16.82 Mб
Скачать
    1. Задача локализации точки на планарном подразбиении

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

Для удобства дальнейших рассуждений, будем предполагать, что никакие две вершины графа не имеют одинаковых ординат. В случае невыполнения этого условия, поворот осей координат на малый угол позволит получить граф удовлетворяющий нашему предположению. Отметим, что любой плоский прямолинейный граф (ППЛГ) определяет подразбиение плоскости (планарное подразбиение).

Определение. Локализацией точки на планарном подразбиении будем называть процесс определения области, содержащей запрошенную точку.

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

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

Особенно удобно представлять плоский прямолинейный граф с помощью реберного списка с двойными связями (РСДС).

Пусть задан ППЛГ , гдеи. Главная компонента РСДС для планарного графаэто реберный узел. Между ребрами графа и реберными узлами существует взаимно однозначное соответствие, т.е. каждое ребро представлено ровно один раз. Реберный узел два информационных поляи два поля указателей. Значения этих полей таковы. Полесодержит начало ребра, а полесодержит его конец (так ребро получает условную ориентацию). Указатель(соответственно) задает реберный узел, содержащий первое ребро, встречаемое вслед за ребром, при повороте от него против часовой стрелки вокруг(соответственно).

Рис.1. Представление ППЛГ с помощью РСДС.

С помощью РСДС можно легко вычислить ребра, инцидентные заданной вершине следующим образом. Пусть HV – это массив адресов ребер, где на j-ом месте находится адрес первого ребра инцидентного вершине j. Массив A будет содержать адреса ребер.

Procedure ПолучениеСпискаРеберИнцидентныхВершине ( j )

Begin

a := HV[j]; a0:=a; A[1]:=a; i:=2;

if (V1[a] = j)

then a:=P1[a];

else a:=P2[a];

while (a <> a0) do

begin

A[i]:=a;

if (V1[a] = j)

then a:=P1[a];

else a:=P2[a];

i:=i+1;

end

End

Время работы этой процедуры пропорционально числу ребер, инцидентных вершине j.

      1. Техника плоского заметания

Эффективные алгоритмы для геометрических задач часто конструируются при помощи общих методов теории алгоритмов, таких как «разделяй и властвуй», балансировка и т.п.[4]. Однако существует метод, который подсказан исключительно и естественно природой некоторых геометрических задач. Этот метод называется заметанием, и наиболее часто встречаются примеры плоского заметания. Суть этой техники заключается в следующем. Пусть имеется некая прямая (например, горизонтальная), которая заметает плоскость снизу вверх, останавливаясь в особых точках именуемых «точками событий». Пересечение заметающей прямой с входными данными задачи содержит всю полезную для продолжения поиска информацию. Итак, мы имеем две основные структуры:

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

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

Соседние файлы в папке Локализация точки