Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации / Лекция 4.ppt
Скачиваний:
32
Добавлен:
01.05.2014
Размер:
98.82 Кб
Скачать

Вычислительная геометрия

Лекция 4

1.Алгоритм Чена построения ВО

2.Рандомизированный алгоритм

3.Аппроксимация ВО

4.Приложения ВО

Выпуклая оболочка простого многоугольника

Диаметр множества

Вычислительная геометрия - Л4

2

Алгоритм Чена построения ВО

(Т.M. Chan)

Алгоритм Джарвиса – О(nh) Алгоритм Киркпатрика-Зайделя – O(n log h)

Идеи: заворачивание подарка + группировка

Параметр m: 1 m n

1 этап: Разделение множества P = {p1, p2,…,pn } на n/m непересекающихся подмножеств Pi, каждое из которых

содержит не более m точек – O(n).

2 этап: Построение выпуклых оболочек CH(Pi) любым из оптимальных алгоритмов (например, алгоритмом Грэхема) – O( n/m m log2 m) = O(n log2 m) .

3этап: Найдем крайнюю точку pstart выпуклой оболочки CH(P)

O(n).

4 этап: см. далее

Вычислительная геометрия - Л4

3

pk

pk+1

Алгоритм Чена построения ВО

pstart

Правые опорные

pk-1

прямые и опорные

точки выпуклых

 

 

оболочек CH(Pi)

 

относительно точки pk

за O( n/m log2 m)

Всего

O( n/m h log2 m)

Очередной шаг на 4 этапе

Вычислительная геометрия - Л4

4

Алгоритм Чена построения ВО

Суммарная сложность: O(n log2m) + O( n/m h log2m) При m = h имеем O(n log2h)

Подбор m (итеративно):

for t := 1, 2, 3, … do t m := min (n, 22 );

Выполнить для P итерацию описанного алгоритма с параметром m (останов. после m шагов заворачивания);

if CH(P) построена then EXIT;

od

Вычислительная геометрия - Л4

5

Алгоритм Чена построения ВО

Завершение при m h, т.е. при t log log h . При фиксированном t время работы O n2t .

Таким образом, общее время работы до завершения

log log h

 

 

O n2

log log h 1

O nlog h

 

 

n2

i

O

 

 

 

i 1

 

 

 

 

 

4, 16, 256, 32768, 10 73 741 824, …

Вычислительная геометрия - Л4

6

Рандомизированный алгоритм построения ВО

См. отдельный файл (презентация MPP: «ЛекцияРандомАлгоритм»)

Вычислительная геометрия - Л4

7

Аппроксимация ВО

См. папку «3Аппроксимация выпуклой оболочки»

Вычислительная геометрия - Л4

8

Приложения ВО

Выпуклая оболочка простого многоугольника (см. папку «4Алгоритм Ли»)

Диаметр множества

Вычислительная геометрия - Л4

9

Диаметр множества

 

Множество точек – множество точек на плоскости

S

= {р1, р2,…,рn},

 

где рi – точка на плоскости с координатами (xi,yi),

 

где i –индекс точки множества,

 

n – количество точек в множестве;

 

Диаметр множества – максимальное расстояние

 

между двумя точками множества

 

D = max [d(pi,pj) i, j 1..n],

где точки pi,pj S, а d(pi,pj) – расстояние между двумя точками на плоскости, d(pi,pj) = ((xj - xi)2 + (yj - yi)2);

Вычислительная геометрия - Л4

10

Диаметр множества

Тривиально можно решить задачу при помощи перебора всех пар точек, при этом время решения составляет O(n2).

Имеются ли способы, позволяющие решить задачу нахождения диаметра множества за меньшее время?

• Какова сложность задачи? (Какова нижняя оценка?)