Научная статья на тему 'Сравнительный анализ алгоритмов триангуляции Делоне применительно к формированию трехмерных фрактальных объектов'

Сравнительный анализ алгоритмов триангуляции Делоне применительно к формированию трехмерных фрактальных объектов Текст научной статьи по специальности «Математика»

CC BY
551
59
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Cloud of science
ВАК
Область наук
Ключевые слова
ФОРМИРОВАНИЕ ТРЕХМЕРНЫХ ФРАКТАЛЬНЫХ СТРУКТУР / ТРИАНГУЛЯЦИЯ НА ЗАДАННОМ МАССИВЕ ТОЧЕК / ТРИАНГУЛЯЦИЯ ДЕЛОНЕ

Аннотация научной статьи по математике, автор научной работы — Теплов А.А., Майков К.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Comparative analysis of Delaunay’s triangulation algorithms for the construction of three-dimensional fractal objects

The results of the comparative analysis of the virtually popular methods of the Delaunay’s triangulation with high performance and low resource consumption are described in this article. The practical expediency of choosing two-pass Delaunay triangulation methods for forming three-dimensional fractal objects is substantiated and a modification of the two-pass fan algorithm is proposed.

Текст научной работы на тему «Сравнительный анализ алгоритмов триангуляции Делоне применительно к формированию трехмерных фрактальных объектов»

Cloud of Science. 2017. T. 4. № 4 http:/ / cloudofscience.ru

Сравнительный анализ алгоритмов триангуляции Делоне применительно к формированию трехмерных фрактальных объектов

А. А. Теплов, К. А. Майков

Московский государственный технический университет имени Н. Э. Баумана 105005, Москва, ул. 2-я Бауманская, 5, стр. 1

e-mail: teploff.a@mail.com, maikov@bmstu.ru

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

1. Введение

Вычисление трехмерных фрактальных объектов представляет собой весьма трудоемкую, рекурсивную процедуру. Чем выше сложность и нерегулярность исходного фрактального объекта, тем больше требуется машинно-аппаратных ресурсов для вычисления параметров фрактальной структуры, что представляет собой актуальную проблему, решение которой может быть получено либо разработкой новых методов и алгоритмов вычисления, либо развитием аппаратной платформы. Одним из ресурсоемких этапов вычисления фрактальных структур является триангуляция [4, 5]. На практике возникает необходимость выбора аргументированного метода построения триангуляции, удовлетворяющего требованиям высокого быстродействия и практически приемлемой ресурсоемкости, а также способного максимально точно представить фрактальную модель объекта.

2. Постановка решаемых задач

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

вания. Перед тем как сформировать фрактальные структуры, необходимо произвести триангуляцию на исходном наборе точек, обеспечивающую наибольшую «степень правильности» треугольников, под которой понимается следующее:

- определение оптимального угла среди всех углов всех построенных треугольников, что помогает избежать построения «тонких» треугольников [1];

- минимизация суммы радиусов окружностей, описанных около треугольников, среди всех возможных триангуляций.

Проблема «степени правильности» треугольников решается триангуляцией, удовлетворяющей условию Делоне [3].

3. Сравнительный анализ ряда известных алгоритмов триангуляции Делоне

Триангуляция называется триангуляцией Делоне, если она является выпуклой и удовлетворяет условию Делоне [1] (рис. 1).

Рисунок 1. Пример триангуляции с демонстрацией условия Делоне

Пара соседних треугольников триангуляции удовлетворяет условию Делоне, если этому условию удовлетворяет триангуляция, составленная только из этих двух треугольников [1]. Треугольник триангуляции удовлетворяет условию Делоне, если этому условию удовлетворяет структура, построенная только из этого треугольника и трех его соседей [1].

Известные алгоритмы триангуляции Делоне можно разделить на следующие четыре категории [1]: итеративные алгоритмы; алгоритмы слияния; двухпроходные алгоритмы; пошаговые алгоритмы.

Рассмотрим основные особенности построения алгоритмов указанных групп.

4. Итеративные алгоритмы триангуляции Делоне

В итеративных алгоритмах реализуется последовательное добавление точек в частично построенную триангуляцию Делоне [2]. Из всего множество из N точек

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

Среди известных итеративных алгоритмов можно выделить четыре, обладающих высоким быстродействием и низкой ресурсоемкостью, а именно [1]:

- алгоритм с полосовым разбиением точек;

- алгоритм с квадратным разбиением точек;

- алгоритм послойного сгущения;

- алгоритм с сортировкой по 2-коду.

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

-I----Т----1'

Рисунок 2. Последовательность выбора точек в алгоритме с полосовым разбиением

В итеративном квадратном алгоритме триангуляции разбивается плоскость с точками на ) квадратов, а добавление точек производится последовательными группами, соответствующими смежным квадратам [1] (рис. 3).

Рисунок 3. Порядок выбора точек в алгоритме с квадратным разбиением

Результаты экспериментальных исследований показали [1], что быстродействие рассматриваемого алгоритма на 10-20% выше, чем у алгоритма с полосовым разбиением [1].

В итеративном алгоритме триангуляции с послойным сгущением область триангуляции разбивается на подобласть с точками на и = (2" + 1) х (2" +1) элементарных ячеек размером и х V. Считается, что точка принадлежит слою i, если оба номера квадрата кратны 2' (тогда все исходные точки образуют слой 0, слой i + 1 будет подмножеством слоя i, а максимальный номер слоя к = шт(и,V)) [2].

В итеративном алгоритме с сортировкой по Z-коду для каждой точки плоскости (х,у) строится соответствующий Z-код [2], согласно которому реализуется сортировка всех точек [2]. Прямоугольная область исходных точек разбивается на четыре равных прямоугольника с нумерацией двоичными числами от 0 до 112; схема разбиения представлена на рис. 4, а. Каждый из полученных прямоугольников разбивается на четыре области, с последующим формированием фрагмента двоичного кода, полученного ранее [2] (рис. 46). Количество циклов разбиения определяется погрешностью, удовлетворяющей условию Делоне [2].

Трудоемкость итеративных алгоритмов Делоне определяется как О (N2) [1], а для случая равномерного распределения точек — О (N) [1].

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

а б

Рисунок 4. Итеративный алгоритм с сортировкой по Z-коду: а, 6 — порядок вставки точек в триангуляцию

5. Алгоритмы слияния триангуляции Делоне

Алгоритмы слияния реализуют разбиение исходного множества точек на несколько подмножеств и построение триангуляций на этих подмножествах с последующим объединением нескольких триангуляций [1]. Среди известных алгоритмов слиянием можно выделить два, обладающих высоким быстродействием и низкой ресурсо-емкостью, а именно [1]:

- алгоритм выпуклого полосового слияния;

- алгоритм невыпуклого полосового слияния.

Особенность реализации алгоритма выпуклого полосового слияния проиллюстрирована на рис. 5а—г, где отражено построение выпуклых полосовых триангуля-ций и последующее применение алгоритма слияния, используемого в алгоритмической структуре «Разделяй и властвуй» [2].

а б в г

Рисунок 5. Алгоритм выпуклого полосового слияния: а—г — шаги работы алгоритма;

д — достраивание выпуклости

Рассматриваемый алгоритм обладает избыточностью, так как при построении выпуклой оболочки узкой полосы формируются длинные, узкие треугольники, которые подлежат дальнейшему перестроению при слиянии [1].

Особенности структуры алгоритма невыпуклого полосового слияния отображены на рис. 6а-д.

а б в г д

Рисунок 6. Алгоритм невыпуклого полосового слияния: а-в — шаги работы алгоритма; г — слияние полос; д — локальное достраивание выпуклости

Результаты экспериментальных исследований [1] показывают, что быстродействие алгоритма невыпуклого слияния на 10-15% выше, чем у алгоритма выпуклого слияния. Трудоемкость алгоритмов слияния составляет в среднем О (N) [1]. Известным алгоритмам слияния свойственна избыточность, определяемая необходимостью построения выпуклых областей для узких полос, а, следовательно, формированием длинных, узких треугольников, перестраиваемых при слиянии. Алгоритмы слияния обладают высоким быстродействием, что обусловливает их практическое преимущество.

6. Двухпроходные алгоритмы построения триангуляции Делоне

Преимущественная особенность двухпроходных алгоритмов состоит в том, что на первом цикле, игнорируя выполнение условия Делоне, строится некоторая триангуляция, которая на втором цикле модифицируется с учетом удовлетворения условию Делоне [1]. Как показано в [1], среди известных двухпроходных алгоритмов высоким быстродействием и низкой ресурсоемкостью обладают веерный и ленточный алгоритмы.

В веерном алгоритме триангуляции из исходных точек выбирается точка, наиболее близко расположенная к исходному массиву точек [1] (рис. 7а). Далее для остальных точек вычисляется полярный угол относительно выбранной центральной точки, с последующей сортировкой угловых значений [1] (рис. 76). Затем все точки соединяются ребрами с центральной точкой и соседними в отсортированном списке [1] (рис. 7в), и триангуляция достраивается до выпуклой (рис. 7г). В заключение производится полное перестроение триангуляции для выполнения условия Делоне [1] (рис. 7д).

а б в г д

Рисунок 7. Веерный алгоритм: а — исходные точки; б — круговая сортировка; в — невыпуклая триангуляция; г — достраивание до выпуклой; д — перестроение триангуляции

В ленточном алгоритме на первом шаге все точки исходного массива разбиваются на полосы (рис. 8а), с последующей сортировкой внутри полос и объединением (рис. 8 б). Далее все полосы соединяются между собой с использованием процедуры объединения алгоритма невыпуклого полосового слияния (рис. 8в). Затем полученная триангуляция достраивается до выпуклой (рис. 8г) и производится полное перестроение триангуляции для выполнения условия Делоне [1] (рис. 8д).

а б в г д

Рисунок 8. Ленточный алгоритм: а — разбиение на полосы; б — построение в полосах ломанных; в — слияние полос; г — достраивание до выпуклости;

д — перестроение триангуляции

Трудоемкость двухпроходных алгоритмов составляет в среднем О (N) [1], а в худшем случае — О (N2) [1]. Недостатком двухпроходных алгоритмов Делоне является необходимость в большом количестве сортировок для каждой полосы. В то же время данный алгоритм характеризуется высоким быстродействием, т. к. очередной треугольник, попадающий в триангуляцию, не подвергается проверке на удовлетворение условия Делоне.

7. Пошаговые алгоритмы триангуляции Делоне

Алгоритмы пошагового построения рассматривают лишь треугольники, удовлетворяющие условию Делоне в конечной триангуляции, а поэтому не требуют перестроения [1].

Как показано в [1], среди известных пошаговых алгоритмов приемлемым быстродействием и низкой ресурсоемкостью обладает пошаговый клеточный алгоритм. В клеточном пошаговом алгоритме реализуется клеточное разбиение плоскости и поиск очередного соседа Делоне [1] путем последовательного перебора точек, близлежащих к базовой линии клеток [1]. На первом этапе множество исходных точек разбивается вертикальными и горизонтальными равноотстоящими линиями на участки, и все точки помещаются в списки, соответствующие формируемым участкам. Общее количество клеток имеет значение порядка 9(N) [1] (рис. 9).

Рисунок 9. Выбор очередной точки в клеточном алгоритме

Как видно, при большой концентрации точек в тех или иных клетках квадрата применение пошагового клеточного алгоритма является нецелесообразным. Преимущественной особенностью пошагового алгоритма является построение треугольников, удовлетворяющих условию Делоне, причем дальнейшее построение других треугольников не повлияет на их перестроение. Трудоемкость данного алгоритма в среднем составляет О(Ы), а в худшем случае — О (N2).

8. Выбор прототипа алгоритма формирования трехмерных фрактальных структур

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

Из приведенных выше результатов сравнительного анализа следует, что двух-проходные алгоритмы триангуляции Делоне, в частности, двухпроходной веерный алгоритм, удовлетворяют указанным критериям. Однако алгоритм нуждается в модификации с целью повышения быстродействия применительно к формированию динамических фрактальных структур. В частности, алгоритм избыточен в:

- определении центра масс точек. При большом количестве точек нецелесообразно вычислять значение среднего арифметического, так как по

этой причине может произойти переполнение данных, что впоследствии повлечет за собой ошибку или сбой программы. Поэтому целесообразно все значения точек триангуляции разделить на интервалы по осям X и У;

- использовании процедуры сортировки. Целесообразно заменить процедуру сортировки на процедуру динамического вычисления координат точки относительно соседних точек, так как это позволит существенно уменьшить время построения триангуляции.

Схема предложенной модификации веерного алгоритма триангуляции Делоне представлена на рис. 10.

Особый интерес представляют следующие процедуры:

- вычисление оптимального числа интервалов для массива координат точек по осям X и У;

- динамическое вычисление координат точек относительно соседних точек.

При определении оптимального числа интервалов по осям X и У, можно воспользоваться правилом Стерджеса [7], согласно которому количество интервалов п определяется как

п = 1 + \о%2 N \ ,

где N — общее число наблюдений величины; [ х ] — целая часть числа х.

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

9. Выводы

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

I

Вычисление оптимального числа интервалов для массива координат точек по осям X иУ

1

Определение значений границ интервалов по осям X и У

т

Вычисление центра масс А(Хс, ТО

Определение угловых значений точек массива относительно точки А(Хс, ¥с)

Динамическое вычисление координат точек относительно соседних точек

Построение ребра от каждой точки массива к точке АО^.Ус)

Достроение получившейся триангуляции до выпуклой

I

Перестроение триангуляции, удовлетворяющей условию Делоне

Рисунок 10. Схема модифицированного веерного алгоритма триангуляции Делоне

Литература

[1] Скворцов А. В., Мирза Н. С. Алгоритмы построения и анализа триангуляции. — Томск : Изд-во Томского университета, 2006.

[2] Скворцов А. В. Триангуляция Делоне и ее применение. — Томск : Изд-во Томского университета, 2002.

[3] Шайдуров В. В. Многосеточные методы конечных элементов. — М. : Наука, 1989.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

[4] Костюк Ю. Л., Фукс А. Л. Визуально гладкая аппроксимация однозначной поверхности, заданной нерегулярным набором точек. — Томск : Изд-во Томского университета, 2000. С. 41-45.

[5] Скворцов А. В. Построение триангуляции Делоне за линейное время. — Томск : Изд-во Томского университета, 1999. С. 120-126.

[6] Кнут Д. Э. Искусство программирования. Т. 1. Основные алгоритмы. — М. : Вильямс, 2008. 680 с.

[7] Sturges H. The choice of a class-interval // J. Amer. Statist. Assoc. 1926. Vol. 21. P. 65-66.

Авторы:

Александр Александрович Теплов — магистр, кафедра «Программное обеспечение ЭВМ и информационные технологии», Московский государственный технический университет имени Н. Э. Баумана

Константин Анатольевич Майков — доктор технических наук, профессор, профессор кафедры «Программное обеспечение ЭВМ и информационные технологии», Московский государственный технический университет имени Н. Э. Баумана

Comparative analysis of Delaunay's triangulation algorithms for the construction of three-dimensional

fractal objects

A. A. Teplov, K. A. Maikov

Bauman Moscow State Technical University Baumanskaya 2-ya Str., 5, Moscow, Russia, 105005

e-mail: teploff.a@mail.com, maikov@bmstu.ru

Abstract. The results of the comparative analysis of the virtually popular methods of the Delaunay's triangulation with high performance and low resource consumption are described in this article. The practical expediency of choosing two-pass Delaunay triangulation methods for forming three-dimensional fractal objects is substantiated and a modification of the two-pass fan algorithm is proposed.

Key words: construction of three-dimensional fractal structures, triangulation on a given cell array, Delaunay's triangulation.

References

[1] Skvortsov A. V., Mirza N. S. (2006) Algoritmy postroyeniya i analiza triangulyatsii. Tomsk, Izd-vo Tomskogo universiteta. 168 p. [In Rus]

[2] Skvortsov A. V. (2002) Triangulyatsiya Delone i yeye primeneniye. Tomsk, Izd-vo Tomskogo universiteta. 128 p. [In Rus]

[3] Shaydurov V. V. (1989) Mnogosetochnyye metody konechnykh elementov. Moscow, Nauka. 288 p. [In Rus]

[4] Kostyuk Yu. L., Fuks A. L. (2002) Vizual'no gladkaya approksimatsiya odnoznachnoy po-verkhnosti, zadannoy neregulyarnym naborom tochek. Tomsk, Izd-vo Tomskogo universiteta. p. 41-45. [In Rus]

[5] Skvortsov A. V. (1999) Postroyeniye triangulyatsii Delone za lineynoye vremya. Tomsk, Izd-vo Tomskogo universiteta. p. 120-126.

[6] Knut D. E. f2008) Iskusstvo programmirovaniya. Vol. 1. Osnovnyye algoritmy. Moscow, Vil'yams. 680 p.

[7] Sturges H. (1926) J. Amer. Statist. Assoc. 21:65-66.

i Надоели баннеры? Вы всегда можете отключить рекламу.