Научная литература
booksshare.net -> Добавить материал -> Математика -> Препарата Ф. -> "Вычислительная геометрия: Введение" -> 166

Вычислительная геометрия: Введение - Препарата Ф.

Препарата Ф., Шеймос М. Вычислительная геометрия: Введение. Под редакцией Ю. М. Банковского — М.: Мир, 1989. — 478 c.
ISBN 5-03-001041-6
Скачать (прямая ссылка): vichgeometr.pdf
Предыдущая << 1 .. 160 161 162 163 164 165 < 166 > 167 168 169 170 171 172 .. 180 >> Следующая


7
5
4
1
8
2
НАЧ
3

7
5
4

®
г
НАЧ
3

(НАЧ)
5
4

3
г
НАЧ
3

НАЧ
5
4
1
3
г
НАЧ
3

НАЧ
®
4
1
3
2
НАЧ
3

НАЧ
3
©

3
г
НАЧ
3

НАЧ
©
;
1
3
г
НАЧ
3

НАЧ
7
/
!
3
г
НАЧ
3

8.8. Пересечения прямоугольников

451

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

(1) Вся работа ведется на одной и той же памяти с использованием массивов ЧПС и сводится лишь к преобразованиям указателей. Поэтому используемая память равна в (/V).

(2) Что касается времени работы, то каждая пара доминирования (т. е. каждая пара прямоугольников, один из которых охватывает другой) обнаруживается только один раз и за константное время в цикле типа while (строки 7—9) процедуры ОБЪЕДИНЕНИЕ. Поэтому, если S —число таких пар, то на данную работу уйдет оптимальное время Q(S). Остальное затраченное время зависит только от N— мощности множества S; обозначим его через D(N). Обозначим через Md(r,s) время работы алгоритма СЛИЯНИЯ ДОМИНИРОВАНИЙ на паре множеств, состоящих из г и s d-мерных точек, где d = 2, 3. Предполагая для простоты, что N четно, имеем

где O(N) времени займет шаг Д1 — «разделение». Аналогично имеем (полагая, что |S2i| = m, а г —четно)

где 0(r + s)— это опять время, нужное для реализации разбиения множества. Верхняя оценка для M3(r,s) получается в результате максимизации правой части (8.9) относительно параметра т. Поскольку верхней оценкой для M2(r',s/) является 0(r' + s'), то повторяя рассуждения из работы [Kung, Luccio, Preparata (1975)], получаем M3(r, s) = 0((г + s)\og(r + s)), и, следовательно, D(N)= 0(N\og2N).

Тем самым доказана следующая теорема:

Теорема 8.10. Задача об охватах, поставленная на N прямоугольниках (и эквивалентная ей задача о ДОМИНИРОВАНИИ в четырехмерном пространстве), может быть решена за время 0(N log2 N + s) с оптимальной затратой памяти 0(/V), где s — это число пар объектов, связанных отношением доминирования.

Безусловно, остается открытым вопрос о существовании лучшего алгоритма для решения двух вышеупомянутых эквивалентных задач. Вместе с тем установление для них в качестве нижней оценки по времени Q(N\og2 N) является весьма маловероятной перспективой.

D (N) = 2D {NJ2) + М3 (N12, N/2) +0(N),

(8.8)

М3 (г, s) = М3 (г/2, пг) + М3 (r/2, s-m) + + М2 (r/2, max (m, s — m))+0(r + s),

(8.9)

15»

452

Гл. 8. Геометрия прямоугольников

8.9. Замечания и комментарии

Некоторые из задач, обсуждавшихся в данной главе, допускают интересные обобщения. Например, задачу о перечислении пересечений N прямоугольников на плоскости можно обобщить на произвольное число измерений. Обозначим через К число пересекающихся пар гиперпрямоугольников, а через d число измерений. Сикс и Вуд [Six, Wood (1982)] построили алгоритм с оценками О (N logd_1 N 4- К) — по времени и 0(AMogd-'Л7) — по памяти; оценка этого алгоритма по времени позднее была улучшена Эдельсбруннером [Edelsbrunner (1983)] до О (N logd~2 N). Чазелле и Инчерпи [Chazelle, Incerpi (1983)], а также Эдельсбруннер и Овермарс [Edelsbrunner, Overmars (1985)] снизили оценку по памяти до 8(ЛГ), которая, очевидно, является оптимальной, сохранив прежнюю оценку по времени. Соответствующую задачу подсчета в отличие от случая пересечения отрезков (см. разд. 7.2.3) можно решить за время О (N logd~1 N) с затратой О (N logd~2 N) памяти, слегка модифицировав алгоритм перечисления пересечений, принадлежащий Сиксу и Вуду, в то время как алгоритм Чазелле и Инчерпи нельзя адаптировать для эффективного решения данной задачи.

Интересным обобщением задачи о пересечении прямоугольников является задача, обычно называемая ПОИСК ПЕРЕСЕЧЕНИИ С ОРТОГОНАЛЬНЫМИ ОБЪЕКТАМИ, в которой среди заданных N изотетичных объектов надо найти все объекты, которые пересекают заданный, изотетичный им запросный объект. (Разумеется, что канонической формой изотетичного объекта в Ed является декартово произведение d интервалов, каждый из которых может вырождаться в единственное значение. Например, точка, изотетичный прямоугольник, а также горизонтальный и вертикальный отрезки прямых являются ортогональными объектами.) Примером подобной задачи, обсуждавшимся в гл. 2, является многомерный региональный поиск в обеих своих формах: «отчета» и «подсчета». ОБРАТНАЯ ЗАДАЧА РЕГИОНАЛЬНОГО ПОИСКА или ОХВАТА ТОЧКИ также относится к этому классу; она ставится так: среди заданных N изотетичных прямоугольников надо найти такие, которые охватывают некую запросную точку. Вайшнави

[Vaishnavi (1982)] предложил структуру данных, которая обеспечивает поиск с затратами О (log N 4- К)х) времени на один запрос и 0(N\ogN) памяти. Чазелле [Chazelle (1983с)] создал оптимальный алгоритм для этой задачи, т. е. его оценки равны

9(Л0 — по памяти и 9(logN 4- К)— по времени запроса. Еще

') Здесь, как обычно, К обозначает мощность результата. — Прим. перев.
Предыдущая << 1 .. 160 161 162 163 164 165 < 166 > 167 168 169 170 171 172 .. 180 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed