Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
67
Добавлен:
01.05.2014
Размер:
1.03 Mб
Скачать

4 Исследование алгоритмов на плоскости

4.1 Методика исследования

Для количественного анализа описанных алгоритмов построения выпуклых оболочек на плоскости автором было проведено моделирование работы различных алгоритмов построения выпуклых оболочек на различных распределениях точек. При этом анализировалась скорость работы алгоритмов.

Для сравнения алгоритмов в различных условиях в экспериментах строились наборы данных, располагавшимися в единичном квадрате [ 0,1 )2 , со следующими характеристиками:

1.Равномерное распределение. Всех точки были распределены равномерно и независимо в единичном интервале.

2.Нормальное распределение. Все точки размещались в единичном квадрате по нормальному распределению с центром в точке (0,5; 0,5) и среднеквадратическим отклонением 0,1. Точки, попадавшие за пределы единичного квадрата, отбрасывалась.

3.Распределение Лапласа. Все точки размещались в единичном квадрате по распределению Лапласа с центром в точке (0,5; 0,5). Точки, попадавшие за пределы единичного квадрата, отбрасывалась.

4.Распределение точек на окружности. Все точки были равномерно распределены по окружности радиуса 0.5 с центром в точке (0,5; 0,5).

5.Кластерное распределение. Внутри единичного квадрата случайно выбиралось (равномерно и независимо по обеим координатам) случайное количество точек, которые становились центрами кластеров. Внутри кластеров точки распределялись по равномерному распределению в окружности случайного радиуса, описанной вокруг центра кластера.

Впараграфах 3.2.1 – 3.2.5 приведены результаты моделирования работы различных алгоритмов построения выпуклой оболочки на различных типах экспериментальных данных.

[17]Эксперименты проводились на машине с процессором Athlon 750, среднее время построения выпуклой оболочки представлено в миллисекундах. Во всех таблицах данные верны с относительной точностью 1% при доверительной вероятности 0,95.

31

4.2 Результаты исследования

4.2.1 Равномерное распределение точек

Рисунок 19. Пример равномерного распределения исходного множества точек

Рисунок 20. График времени работы алгоритмов на равномерном распределении

32

4.2.2 Нормальное распределение точек

Рисунок 21. Пример нормального распределения исходного множества точек

Рисунок 22. График времени работы алгоритмов на нормальном распределении исходного множества точек

33

4.2.3 Лапласовское распределение точек

Рисунок 23. Пример лапласовского распределения исходного множества точек

Рисунок 24. График времени работы алгоритмов на лапласовском распределении исходного множества точек

34

4.2.4 Распределение точек на окружности

Рисунок 25. Пример распределения исходного множества точек на окружности

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

Аналогичные проблемы проявляются и при проведении экспериментов с методом «Разделяй и властвуй», который показывает слишком высокое время работы. Поэтому этот алгоритм также был исключен из экспериментов.

Рисунок 26. График времени работы алгоритмов распределении исходного множества точек на окружности

35

4.2.5 Кластерное распределение точек

Рисунок 27. Пример кластерного распределения исходного множества точек

По тем же причинам, что и в пункте 4.2.4, из рассмотрения были исключены алгоритмы Джарвиса и «Разделяй и властвуй».

Рисунок 28. График времени работы алгоритмов на кластерном распределении исходного множества точек

36

4.3 Анализ результатов

Результаты проведенных экспериментов показали, что различные алгоритмы ведут себя на различных классах входных данных. Практически на всех распределениях лучшую скорость работы показал модифицированный алгоритм Чена, использующий предобработку прямоугольником, в основном работающий чуть быстрее алгоритма Грэхема, использующего тот же метод предобработки. Однако, несмотря на использование множества улучшений, модифицированный алгоритм Чена остался чувствительным к результату, что показали результаты его тестирования. При распределении точек на окружности этот алгоритм уже на пяти тысячах точек работал в среднем в течение двух секунд, что было примерно в 200 раз больше, чем у других алгоритмов.

4.4 Комбинированный алгоритм

На основе результатов экспериментов автором был предложен «комбинированный алгоритм» построения выпуклой оболочки, использующий преимущества алгоритмов на наиболее благоприятных для них распределениях данных. Комбинированный алгоритм основан на модификации алгоритма Чена, предложенной автором. Так как эксперименты показали чрезвычайно высокое время работы как обычного, так и модифицированного алгоритмов Чена на распределениях данных, в которых число вершин выпуклой оболочки велико и близко к общему количеству точек, то на таких распределениях комбинированный алгоритм использует метод Грэхема для построения выпуклой оболочки.

После описания комбинированного алгоритма были проведены повторные эксперименты, в которых учавствовали только следующие алгоритмы:

Алгоритм Грэхема с предобработкой отсечением прямоугольником

Алгоритм Эндрю

Алгоритм быстрого построения оболочки

Модифицированный алгоритм Чена

Комбинированный алгоритм

Данные, полученные в результате тестирования, представлены в следующих графиках:

37

Равномерное распределение:

Рисунок 29. График времени работы алгоритмов на равномерном распределении исходного множества точек

38

Нормальное распределение:

Рисунок 30. График времени работы алгоритмов на нормальном распределении исходного множества точек

39

Лапласовское распределение:

Рисунок 31. График времени работы алгоритмов на лапласовском распределении исходного множества точек

40

Соседние файлы в папке Выпуклые оболочки