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

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

Препарата Ф., Шеймос М. Вычислительная геометрия: Введение. Под редакцией Ю. М. Банковского — М.: Мир, 1989. — 478 c.
ISBN 5-03-001041-6
Скачать (прямая ссылка): vichgeometr.pdf
Предыдущая << 1 .. 128 129 130 131 132 133 < 134 > 135 136 137 138 139 140 .. 180 >> Следующая


Следовательно, наименьшую охватывающую окружность можно получить в результате решения варианта Трехмерной задачи линейного программирования. Комбинируя этот результат с аналогом теоремы 7.12 для трех измерений, получаем следующее усиление теоремы 6.14:

Следствие 7.4. Наименьшую окружность, охватывающую N-точечное множество, можно вычислить за оптимальное время Q(N).

Рис. 7.24. Иллюстрация : ния поверхностей z = f{x,y) = <p(x,y)=f(x,y) + (x* + y*).

') Здесь для простоты исключается возможность существования четырех точек из S, лежащих на одной окружности.

364

Гл. 7. Пересечения

Замечание 2. Особенно интересным приложением линейного программирования является задача о линейной разделимости (рассматриваемая здесь в Ed).

Определение 7.2. Говорят, что два точечных множества S\ и S2 в Ed являются линейно разделимыми, если существует такое линейное (d— 1)-мерное многообразие л, что Si и 52 лежат по разные его стороны. (Для двух измерений я— прямая, а для трех — обычная плоскость.)

Покажем теперь, что линейная разделимость является задачей линейного программирования. Пусть даны два множества точек в d-мерном пространстве: S{ = {(x\l).....x{jA:

'==1.....и S2 = {(*</>.....*<>>): / = 15,1+1.....JS.I +

+1S21}, где I Si I + IS21 = N; ищем одну из плоскостей ptfi + ... + pdxd + pd+l = 0, удовлетворяющих условиям:

( Pla\')+... +pjfit) + Pd+l^0 при 1</<|5,|,

I pA() + • • • + pdaf + pd+l > 0 при IS, I + 1 < / < tf.

Очевидно, что эта задача является задачей линейного программирования, и, согласно предыдущим результатам, ее можно решить за время O(N) при двух и трех измерениях.

7.2.6. Ядро плоского многоугольника

В разд. 2.2.1 было показано, что поиск точки в ядре звездного многоугольника является важным шагом при предобработке, необходимой для ответа на соответствующий вопрос о принадлежности. Тогда мы отложили разработку алгоритма построения ядра до тех пор, пока не появятся необходимые для этого средства. Задача ставится следующим образом:

Задача С.1.5 (ЯДРО МНОГОУГОЛЬНИКА). Дан N-вер-шинный (не обязательно простой) многоугольник на плоскости. Надо построить его ядро.

Во-первых, заметим, что ядром является пересечение N полуплоскостей. Действительно, каждое ребро многоугольника Р определяет одну полуплоскость, в которой должно лежать это ядро (рис. 7.25). Такие полуплоскости называются внутренними (или левыми полуплоскостями сообразно с обходом границы ядра против часовой стрелки). Известно [Yaglom, Boltyanskii (1961)], что ядро многоугольника является пере-

7.2. Плоские приложения

365

сечением его левых полуплоскостей. Поэтому непосредственно получаем, что

ЯДРО МНОГОУГОЛЬНИКА ocjv ПЕРЕСЕЧЕНИЕ ПОЛУПЛОСКОСТЕЙ, и, используя результат разд. 7.2.4 (теорему 7.10), имеем

Следствие 7.5. Ядро произвольного N-угольника можно построить за время O(NlogN).

Заметим, однако, что нижняя оценка Q(NlogN), доказанная в теореме 7.10, неприменима к задаче о построении ядра, поскольку ребра простого многоугольника не могут занимать

Допустимая (внутренняя) V///// Запретная полуплоскость, определен- Г^СУ///, полуплоскость ная ребром и; иг\ / ^yyyy^L^

Рис. 7.25. Каждое ребро многоугольника Р определяет допустимую полуплоскость.

произвольных положений, а значит, нет сводимости к задаче о сортировке. Другими словами, нет оснований считать, что необходимо затратить более чем линейное время для построения _ядр_гц_более того, сейчас будет показано, что такой алгоритм существует [Lee, Preparata (1978)].

Входной многоугольник Р представлен последовательностью вершин (у0, vu vN-i), где N ^ 4, a ei — Vi-\Vi при i— 1, 2, ..., JV — 1 есть ребро, связывающее вершины vi-i и у,- [е0 = = v/r-iVo). Для простоты ссылок опишем P циклическим списком чередующихся вершин и ребер voeiv\в2 ... eN-iVN-ieoVo-Предположим также, что граница P ориентирована против часовой стрелки, т. е. внутренность Р лежит слева от каждого из .ребер. Будем говорить, что вершина и,- вогнута, если внутренний угол при vt больше 180°, и выпукла в противном случае; без потери общности предположим, что нет внутренних углов, равных 180°. Если К(Р) (ядро Р) не пусто, то результатом работы также станет последовательность вершин и ребер

Из этого региона вершина ц не видна, поэтому ядро не может располагаться

здесь

К(Р).

366

Гл. 7. Пересечения

Алгоритм просматривает вершины Р по порядку и строит последовательность выпуклых многоугольников К\, К2, ¦¦¦ Кы-\- Каждый из этих многоугольников может быть либо ограниченным, либо нет. Позднее будет показано (лемма 7.1), что Ki является общим пересечением полуплоскостей, лежащих ???53—01- ориентированных ребер ер, ei, е,. Отсюда, оче-

видно,. следует, что Kn-\ = К(Р) и что К\ э К2 э ... э Кг, последнее означает, что существует такое r0 > 1, что /С,- будет неограниченным или ограниченным в зависимости от условия i < г0 или i г0 соответственно.

Если точки wt и wi+1 лежат на прямой, несущей es. — ребро Р, то обозначим через ауге5.ау,Ч1 отрезок этой прямой,
Предыдущая << 1 .. 128 129 130 131 132 133 < 134 > 135 136 137 138 139 140 .. 180 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed