Об алгоритме локального укрупнения триангуляции

Романовский Леонид Михайлович УДК 519.5

ОБ АЛГОРИТМЕ ЛОКАЛЬНОГО УКРУПНЕНИЯ

ТРИАНГУЛЯЦИИ

Аннотация

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

Ключевые слова: курантовская аппроксимация, аппроксимация поверхности, триангуляция, локальное укрупнение.

1. ВВЕДЕНИЕ

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

Первым шагом в развитии теории вэйвлетов стали исследования Добеши [1]. Дальнейшее развитие теории отражено в монографии Малла [2]. Вместе с тем, до недавнего времени методы сплайн-вэйвлетной аппроксимации рассматривали, главным образом, одномерные потоки данных. В работе [3] предложен алгоритм обработки двумерных потоковс использованием триангулированной области. Вопрос о локальном укрупнении триангуляции для сплайн-вэйвлетных разложений рассмотрен в [4].

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

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

© Романовский Л.М., 2014

2. ОБОЗНАЧЕНИЯ

Рассмотрим сиплициальное разбиение двумерной плоскости - триангуляцию. Будем считать, что рассматриваемая триангуляция является правильной, то есть никакая вершина не лежит внутри какого-либо ребра.

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

Для задания триангуляции мы будем использовать таблицу инциденций треугольников Т. В качестве таблицы инциденций треугольников мы будем рассматривать список всех треугольников, заданных в триангуляции. В предположении, что общее количество треугольников равно К, таблица инциденций Т будет представлять собой матрицу размера К х 3, где /-я строка состоит из трех чисел (г/0, г/1, г/2) - радиус-векторов вершин треугольника.

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

К0,0 К0,1 К0,2

К1,0 К1,1 К1,2

КК-2,0 КК-2,1 КК-2,2

КК-1,0 КК-1,1 КК-1,2

Порядок строк в таблице не играет роли и никак не отражает взаимное расположение треугольников на плоскости. Также не имеет значения порядок задания вершин.

3. ИЗМЕНЕНИЕ ТАБЛИЦЫ ИНЦИДЕНЦИЙ

На плоскости К2 рассмотрим правильную (возможно, криволинейную) триангуляцию Т0, заданную на прямоугольной сетке узлов, которая характеризуется следующей таблицей инциденций:

Г2/,2] К2/,2 у+2 Г2/,2] К2/+2,2 у К2/+2,2 у+2 К2/+2,2 у К2/+2,2] + 2 Г2/,2 у+2

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

к

2/+1,2 у+1

К

2/+1,2 у+1

К

2/+1,2 у+1

К

2/+1,2 У+1

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

Х0 Уо zo

Х2

x1 У1 z1

означает, что треугольники x0 Уо zo и X

У2 X1 У1

zA заменяются треугольником

У 2

4. УКРУПНЕНИЕ ТРИАНГУЛЯЦИИ

Рассмотрим следующие отображения:

2i ,2 j

r

2i+2,2 j

2i+2,2 j+2

r

2i,2 j+2

r

2i+2,2 j

r

2i+1,2 j+1

r

2i+2,2 j+2 r2

r

2i+1,2 j+1

r

2i,2 j+2 2i+1, 2 j+1 r2i 2 v r

2i,2j

r

2i+ 2,2 j+2 r2i + 2,2 j '2i,2 j+2

2i,2 j 2i+1,2 j+1

V(/, j) e Z2 (/' + j) mod 2 = 0

2i + 2,2 j r2i,2j+ 2

r

j '

r

2i+2,2 j

r2i+2,2 j+ 2 r2i+1,2 j+1

2i+2,2 j+2

r

2i,2 j+2

r

2i,2j

r2i,2 j + 2 r2i ,2 j r2i+2,2 j V(/,7)e

r

2i+1,2 j+1

r

2i+1,2 j+1

r

2i+1,2 j+1

r2i,2j r2i+2,2 j+2 r2i,2 j r2i+2,2 j+2

r2

(i + j + 1)mod2 = 0

r

2i+2,2 j

r

2i,2 j+2

Триангуляция 71, полученная с помощью данного отображения и исходной триангуляции, будет иметь следующий вид:

2i,2j

r2i+2,2 j r2i,2 j+2

r2i+ 2,2 j+2 r2i+2,2 j r2i,2j+2

r2i,2 j r2i+ 2,2 j+2 r2i+2,2 j r2i,2 j r2i+ 2,2 j+2 r2i,2 j+ 2

, (/+ 7)^0mod 2 V(/J)e

(/+ y+ 1)^0mod2 V(7,7)e

Определение. Топологические пространства (X, Tx) и (К 7г) называются гомеоморф-ными, если существует гомеоморфизм f : X ^ 1 то есть функция f имеет обратную и функции f и f-1 непрерывны.

Определение. Топологические группы G и H называются изоморфными, если существует биективное отображение f, являющееся изоморфизмом и гомеоморфизмом.

Сформулируем следующую теорему:

Теорема. Триангуляция Т\ топологически изоморфна исходи oft триангуляции 7о-

Определение. Всякую прямолинейную триангуляцию, нульмерный остов которой содержится в множестве вида {(7/7,7/7)11(7,7) е Z2}, где h - некоторое фиксированное число, назовем стандартной триангуляцией.

z

2

x

z

2

2

Б

и

2

2

Следствие. Для стандартных триангуляции переход от триангуляции % к триангуляции Т\ может быть осуществлен поворотом плоскости на угол %/4 и масштабированием ее с коэффициентом л/2 относительно начала координат.

5. АЛГОРИТМ УКРУПНЕНИЯ

Напишем псевдокод программы, реализующей данный алгоритм:

for i = (-M + 1) to (M - 1) do for j = (-N + 1) to (N - 1) do

All items of T (i, j) are inside of D0 then if (i + j) mod 2 = = 0 then | Add Tl (i, j) tO TreS end else

I Add Tr (i, j) to TreS end

end else

I Add T(i, j) to table Tres end

end

end

Параметрами этой программы являются числа M и N, а также множество значений аппроксимируемой функции ф(x, y) на сетке узлов. Выходные данные - таблица инциден-ций Tres, описывающая триангуляцию с локальными укрупнениями.

Для удобства читателя также приводится графическое изображение примера локально укрупненной триангуляции (рис. 1).

О 2 4 6 8

Рис. 1. Триангуляция с локальным укрупнением

6. ПОСТРОЕНИЕ АППРОКСИМАЦИИ

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

7. ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ

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

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

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

Выходные данные алгоритма - таблица инциденций укрупненных триангуляций и построенные на них курантовские аппроксимации. В программе также реализован вывод построенного на приближенных значениях изображения в формат р^.

Следует отметить, что алгоритм не зависит от индексации узлов сетки и координат узлов. Таким образом, допускается работа с непрямоугольными и криволинейными правильными триангуляциями.

8. РЕАЛИЗАЦИЯ

Алгоритм был реализован в виде компьютерной программы. Язык программирования -Java, проект разработан в Eclipse IDE. Для отображения триангуляции используется библиотека Swing.

9. РЕЗУЛЬТАТЫ

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

В табл. 1 приведены следующие колонки:

1) size - размер исходного изображения в пикселах;

2) V0 - количество вершин, используемых в исходной триангуляции;

3) V - количество вершин, используемых в укрупненной триангуляции (в процентах от исходного количества вершин);

4) T0 - количество треугольников исходной триангуляции;

5) Tj - количество треугольников укрупненной триангуляции (в процентах от исходного количества треугольников).

На рис. 2 приводятся для сравнения исходная картинка и ее аппроксимация, построенная на укрупненной триангуляции.

Табл. 1. 3 укрупнения

size V0 V1 T0 T1

32 х 32 1024 72 % 1922 70 %

32 х 32 1024 63 % 1922 61 %

64 х 64 4096 69 % 7938 68 %

64 х 64 4096 72 % 7938 71 %

128 х 128 16384 66 % 32258 65 %

128 х 128 16384 72 % 32258 72 %

128 х 128 16384 40 % 32258 39 %

256 х 256 65536 62 % 130050 62 %

256 х 256 65536 66 % 130050 66 %

256 х 256 65536 57 % 130050 57 %

256 х 256 65536 65 % 130050 65 %

256 х 256 65536 56 % 130050 56 %

9. ВЫВОДЫ

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

10. ЗАКЛЮЧЕНИЕ

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

Литература

1. Добеши И. Десять лекций по вэйвлетам. НИЦ «Хаотическая и регулярная динамика», 2001.

2. Малла С. Вэйвлеты в обработке сигналов. М. 2003.

3. Демьянович Ю.К., Зимин А.В. Аппроксимации курантова типа и их вэйвлетные разложения // Проблемы математического анализа. 2008. С. 3-22.

4. Демьянович Ю.К., Романовский Л.М. Локальное укрупнение триангуляции и двумерные сплайн-вэйвлеты. СПб.: ВВМ, 2012.

LOCAL TRIANGULATION ENLARGEMENT ALGORITHM

Abstract

This article considers method, allows to process local triangulation enlargement on doubledimension surface, while keeping it's regularity. Proposed algorithm, building triangulation with local enlargement on provided source triangulation. Program, allowing to replase Kurant's approximation on source triangulation replace with Kurant's approximation on enlarged with taking into account local singularities triangulation was implemented. Aprobation of considered algorithm is presented.

Keywords: Kurant approximation, surface approximation, triangulation, local enlargement.

(с) Наши авторы, 2014. Our authors, 2014.

Романовский Леонид Михайлович аспирант математико-механического факультета СПбГУ

leonid. romanovskii@gmaiL com