ПРИКЛАДНАЯ МАТЕМАТИКА
www.volsu.ru
001: http://dx.doi.Org/10.15688/jvolsu1.2015.3.3
УДК 514.142.2+514.174.6 ББК 32.973.26-018.2
АЛГОРИТМ ТРИАНГУЛЯЦИИ, ОСНОВАННЫЙ НА УСЛОВИИ ПУСТОГО ВЫПУКЛОГО МНОЖЕСТВА1
Владимир Александрович Клячин
Доктор физико-математических наук,
заведующий кафедрой компьютерных наук и экспериментальной математики, Волгоградский государственный университет [email protected], [email protected]
просп. Университетский, 100, 400062 г. Волгоград, Российская Федерация
Аннотация. Статья посвящена классической задаче вычислительной геометрии — построению триангуляции заданного конечного множества евклидова пространства. Наиболее часто используемый в настоящее время способ триангуляции был открыт советским геометром Б.Н. Делоне в 30-х годах прошлого века. Этот способ использует специальное условие — условие пустой сферы. В настоящей статье автор предлагает целую серию способов триангу-ляций фиксированного конечного множества, которые основаны на условии, аналогичном условию Делоне. Только в предлагаемом методе фигурирует не евклидова сфера, а некоторое выпуклое множество с непустой внутренностью.
Ключевые слова: триангуляция, условие пустой сферы, триангуляция Делоне, выпуклое множество, выпуклая функция, выпуклая оболочка.
1. Триангуляция конечного множества точек
Пусть Мп — п-мерное евклидово пространство, в котором введен ортонормиро-ванный базис {бг}™=1. Через {,) мы обозначаем скалярное произведение в Мп. Пусть х\,х2, ...,хп — соответствующие выбранному базису декартовы координаты.
Напомним, что ^-мерным симплексом Б = 8(А0, А\,..., Ак) в Мп называется вы-~ пуклая оболочка к +1 точек Аг,г = 0,...,к < п, таких, что векторы А\ — А0, А2 — ^ — А0,..., Ак — А0 линейно независимы. Рассмотрим какой-либо п-мерный симплекс 8. Н Пусть Н±(8) обозначает открытое полупространство, определяемое плоскостью, прохо-ж дящей через к-ю (п — 1)-мерную грань симплекса 5, и содержащее (для Н+(8)) или не | содержащее (для Н-(8)) симплекс 5. Если из контекста ясно, о каком симплексе идет ^ речь, мы будем опускать его обозначение в обозначениях этих полупространств. Также @ вместо обозначения симплекса мы равнозначно будем использовать набор его вершин.
Пусть [Рг}, г = 1,...,И, — некоторый набор Р точек Р^ Е Мга, таких, что любой симплекс в вершинах из [Д} является невырожденным. Триангуляцией Т заданного набора точек называется такой набор п-мерных симплексов 8\,...,8т, что:
1) каждая точка Р.\ заданного набора является вершиной одного из симплексов 5 Е Т;
2) каждая вершина любого симплекса Б Е Т является одной из точек Р.г = = 1,...,М;
3) внутренность пересечения любых двух симплексов пуста.
Один из первых алгоритмов триангуляции с использованием условия пустого шара был предложен Б.Н. Делоне в его работе [6] (перевод см. [1]). Это условие означает, что описанная сфера каждого симплекса триангуляции не содержит внутри себя точек заданного конечного множества. Триангуляции, для которых выполняется это условие, получили название триангуляции Делоне [4; 5]. Несложно показать, что при выполнении условия, что никакие п точек из Р не лежат на одной гиперплоскости и никакие п + 1 точек не лежат на одной (п — 1)-мерной сфере, триангуляция Делоне существует и единственна. С другой стороны, для конечного множества точек общего положения [Рг}, г = 1,...,М, число различных триангуляций этого множества растет с ростом N порядка см (см., например, работу [3] и цитируемую там литературу). Эти факты позволяют поставить задачу о выделении в классе всех триангуляций заданного конечного множества некоторого естественного подкласса, который бы включал в себя классическую триангуляцию Делоне в качестве частного случая.
Практически все алгоритмы построения триангуляции Делоне включают в себя процедуру проверки условия пустой сферы на определенных этапах алгоритма. Хороший обзор алгоритмов имеется в работе [5]. В настоящей статье мы тоже сосредоточимся на подобной процедуре, заменив условие пустой сферы условием пустого выпуклого множества. Дадим соответствующие определения.
2. Семейства выпуклых множеств
Рассмотрим в Мга семейство Ф = Фа, а Е А, выпуклых компактных множеств с непустой внутренностью. Пусть Б произвольный невырожденный симплекс. Определим описанное множество В (Б) Е Ф (если оно существует) из данного семейства как множество, чья граница содержит вершины симплекса (а значит, содержит весь симплекс в силу выпуклости).
Определение 1. Рассмотрим произвольную триангуляцию конечного множества точек Р. Будем говорить, что эта триангуляция является Ф-триангуляцией, если для любого симплекса Б этой триангуляции внутренность множества В (Б) не содержит вершин других симплексов.
Заметим, что если семейство Ф представляет собой семейство всех шаров в Мга, то вышеприведенное определение совпадает с определением триангуляции Делоне. В работе [2] было доказано существование 0-триангуляции конечного множества точек при условии, что семейство Ф обладает следующим свойством: для любого невырожденного симплекса Б в семействе Ф = Ф«,а Е Л, существует, и притом только одно, описанное множество В (Б).
В дальнейшем мы будем предполагать, что это условие на семейство выпуклых множеств выполненным.
Теорема 1. Если семейство выпуклых множеств Ф = Фа, а е Л, обладает вышеприведенным свойством, то описанные множества симплексов обладают следующими свойствами:
1) множество В (Б) однозначно определяется любым симплексом с вершинами на его границе;
2) если для двух невырожденных симплексов Бг, Б2 выполнено В(Б1) = В(Б2) и пересечение В(Бг) ПВ(Б2) не пусто, то персечение границ множеств В(Б1), В(Б2) представляет собой (п — 2)-мерную выпуклую поверхность, лежащую в некоторой гиперплоскости;
3) если два симплекса Бг и Б2 не пересекаются по внутренним точкам, имеют общую (п — I)-мерную грань С и вершины симплексов А, В, не принадлежащие грани О, причем В(51) не содержит внутри себя вершину В симплекса Б2, то В(Б2) не содержит внутри себя вершины А симплекса Бг.
Доказательство. Первое свойство непосредственно следует из условия на семейство Фа,а е Л. Второе свойство доказывается от противного. Если предположить, что пересечение дВ(Бг) П дВ(Б2) не лежит ни в какой гиперплоскости, то найдется некоторый невырожденный симплекс Б' с вершинами на этом пересечении. Но тогда и В(Бг) и В(Б2) будут описанными множествами симплекса Б', что противоречит условию единственности. Таким образом, пересечение дВ(51) П дВ(Б2) лежит в некоторой гиперплоскости. Выпуклость пересечения очевидно следует из выпуклости множеств В(Бг), В(Б2) (см. рис. 1).
Рис. 1. К доказательству теоремы 1
Докажем третье свойство. Пусть П — гиперплоскость, содержащая пересечение дВ(5х) П дВ(Б2). Эта гиперплоскость разбивает каждое из В(81), % = 1, 2, на две выпуклые части В±(Б^. Для определенности будем считать, что В е В+(Б2) и, следовательно, в силу того, что В не лежит внутри В(Бг), выполнено В е В+(Бг). Тогда В+ (Бг) С В+(Б2), В-(Б2) С В-(Бг). Если предположить, что точка А лежит внутри В(Б2), то получим, что А е В-(Б2). Поскольку эта точка лежит на границе В(Бг), то заключаем, что В-(Бг) С В-(Б2). Но это противоречит вложению В-(Б2) С В-(Бг). Следовательно, А не может лежать внутри В(Б2). Теорема доказана полностью.
Заметим, что в общем случае указать способ построения В (Б) для произвольного симплекса 5, а также способ проверки условия пустого выпуклого множества из Фа представляет собой сложную задачу. Однако мы укажем целую серию семейств Фа, для которых это сделать удается.
3. Пример семейства Фа
Рассмотрим произвольную строго выпуклую вниз гладкую функцию хп+1 = Ф(ж), определенную во всем пространстве Мга и такую, что
Ф(ж)
—¡—--> при X ^ Ж. (1)
М
При выполнении этого условия пересечение графика функции Ф(ж) с произвольной невертикальной плоскостью П представляет собой выпуклую компактную (п— 1)-мерную поверхность в Rra+1. Положим для любых х Е Rn,r > 0
Ф(х, г) = {у Е Мга : Ф(у) < Ф(ж) + <УФ(ж), у — х) + г].
В силу свойства (1) и выпуклости Ф(ж) множества Ф(х,г) образуют семейство выпуклых компактных множеств. Покажем, что для всякого невырожденного симплекса S можно построить единственное описанное множество из этого семейства. Пусть также точки Ро,...,Рп Е Мга образуют произвольный невырожденный симплекс S. В пространстве Rra+1 построим набор точек Qi = (pi, Ф(р»)), i = 0,...,п. Построим в пространстве Rra+1 плоскость П, проходящую через эти точки. Очевидно, что проекция пересечения этой плоскости с графиком функции Ф(ж) представляет собой границу некоторого множества Phi(x,r). При этом точка х — это единственная точка, в которой касательная к графику параллельна плоскости П. Существование и единственность такой точки следуют из выпуклости и гладкости функции Ф(ж).
Теперь обратимся к вопросу проверки условия пустоты множеств вида В(х,г). С этой целью построим функцию Н(р0, ...,рп), зависящую от (п +1) точек из Мга. Пусть точки ро,...,рп Е Мга образуют произвольный невырожденный симплекс. В пространстве Rra+1 построим набор точек Qi = (р^, Ф(грг)), i = 0,...,п. Построим в пространстве Rra+1 плоскость П, проходящую через эти точки и еще вертикальную гиперплоскость П', проходящую через точки Q0, ...,Qn-1. Ориентируем эти плоскости нормалями £ и £' соответственно следующим образом. Нормаль £ для П направим вверх, то есть так, чтобы <&п+1, С) ^ 0 (здесь еп+1 — единичный вектор положительного направления оси Охп+1). Вектор £' выберем как внутренний вектор по отношению к симплексу S(р0,...,рп). Такой выбор корректен, поскольку плоскость П' проходит через грань этого симплекса, определяемую вершинами р0,...,рп. В качестве значения функции Н(р0,...,рп) возьмем величину угла между нормалями £ и £'. В основе проверки условия пустоты лежит следующее утверждение.
Теорема 2. Пусть Р С Мга произвольное конечное множество. Зафиксируем произвольно pi Е Р, i = 0, ...,п—1 и пусть П — гиперплоскость, проходящая через эти точки. Будем предполагать, что эти точки образуют невырожденный (п — 1)-мерный симплекс. Пусть Р' С Р — та часть точек из Р, которые лежат по одну сторону от П. Если точка рп Е Р' такова, что
Н('ро, ...,рп) = minН('ро, ...,рп-1,р), р^Р '
то множество В(S), где S — симплекс с вершинами р0,...,рп не содержит внутри себя точек из Р'.
Рис. 2. К доказательству теоремы 2
Доказательство. Доказательство проведем от противного. Предположим, что найдется точка р £ Р', лежащая внутри В(Б). Построим точку С) = (р, ^(р')) £ Кп+1. В силу выпуклости функции Ф(ж) точка С) лежит ниже гиперплоскости П (см. рис. 2).
Пусть П' — вертикальная гиперплоскость в Еп+1, проходящая через точки Qo,...,Qп-1. Здесь точки % = 0,...,п — 1, построены также, как и в определении функции Н(р0, ...,рп). Проведем через точки О0,..., Оп-1, гиперплоскость П. Поскольку точка С) лежит ниже плоскости П, то угол между плоскостями П и П' больше, чем угол между плоскостями П) и П'. Последнее, как нетрудно видеть, означает, что
Н(ро, ...,Рп-1,Рп) > Н(ро, ...,рп-1,р).
Это противоречит выбору точки рп. Таким образом, точка р' не может лежать внутри В (Б). Теорема доказана.
4. Выпуклая оболочка и триангуляция
Для приведенного выше примера семейства выпуклых множеств триангуляция с условием пустых описанных множеств может быть построена универсальным алгоритмом, не зависящим от заданной выпуклой функции Ф(ж). Опишем соответствующую процедуру сведения построения триангуляции к построению выпуклой оболочки точек. Пусть Р С Лп произвольное конечное множество точек, таких что никакие п +1 из них не лежат в одной гиперплоскости и никакие п + 2 из них не лежат на границе одного множества семейства Ф(х,г), построенного в предыдущем подразделе статьи. По множеству Р построим множество
О = {(Х1, ..., Хп+1) £ кп+1 : (Х1,..., Хп) £ Р, Хп+1 = Ф(Ж1,..., Хп)}.
Выпуклая оболочка оопу(^) этих точек представляет собой выпуклый многогранник в Еп+1. Рассмотрим те грани этого многогранника, чьи внешние нормали £ направлены «вниз», то есть для которых выполнено неравенство (£, еп+1) < 0. Проекция этих граней на плоскость хп+1 = 0 образует Ф-триангуляцию множества Р. Действительно, из того, что никакие п + 2 точек из Р не лежат на границе одного множества семейства Ф(х,г), следует, что выбранные грани выпуклой оболочки оопу(^) имеют ровно п +1 вершину, то есть являются п-мерными симплексами в Еп+1. Проекция симплекса тоже будет симплексом. В силу выбора граней проекции их не могут пересекаться по внутренним точкам. Таким образом, совокупность этих проекций образует триангуляцию множества Р. Стоит заметить, что точки множества О не могут лежать ниже гиперплоскости,
содержащей любую выбранную грань. Это простое следствие выпуклости многогранника еопу(^). А это влечет выполнение условия пустого описанного множества для семейства
Ф(ж, г).
ПРИМЕЧАНИЕ
1 Работа выполнена при финансовой поддержке РФФИ (проект № 15-41-02517 р_по-волжье_а).
СПИСОК ЛИТЕРАТУРЫ
1. Делоне, Б. Н. О пустой сфере. К мемуару Георгия Вороного / Б. Н. Делоне ; пер. с фр. А. Ю. Игумнов // Записки семинара «Сверхмедленные процессы». — 2006. — Т. 1. — C. 147-153.
2. Клячин, В. А. Об одном обобщении условия Делоне / В. А. Клячин // Вестн. Томск. гос. ун-та. Матем. и мех. — 2008. — № 1. — C. 48-50.
3. Клячин, В. А. Метод цепей для организации хранения многомерных три-ангуляций / В. А. Клячин, В. В. Попов // Вестник Волгоградского государственного университета. Серия 1, Математика. Физика. — 2013. — № 2 (19). — C. 71-79. — DOI: 10.15688/jvolsu1.2013.2.8.
4. Майоров, А. А. Эффективный алгоритм построения триангуляции Делоне / А. А. Майоров, Т. К. Нгуен // Известия высших учебных заведений. Геодезия и аэрофотосъемка. — 2011. — № 1. — C. 105-108.
5. Скворцов, А. В. Алгоритмы построения и анализа триангуляции / А. В. Скворцов, Н. С. Мирза. — Томск : Изд-во Томск. ун-та, 2006. — 168 с.
6. Delaunay, B. N. Sur la sphere vide. A la memoire de Georges Voronoi / B. N. Delaunay // Известия АН СССР. — 1934. — № 6. — C. 793-800.
REFERENCES
1. Delaunay B.N. O pustoy sfere. K memuaru Georgiya Voronogo [On the Empty Sphere. To the Memory of Georges Voronoi]. Zapiski sеminara «Svеrkhmеdlеnnyе protsеssy», 2006, vol. 1, pp. 147-153.
2. Klyachin V.A. Ob odnom obobshchenii usloviya Delone [On Some Generalization of Delaunay Condition]. Vеstn. Tomsk. gos. un-ta. Matеm. i mеkh., 2008, no. 1, pp. 48-50.
3. Klyachin V.A., Popov V.V. Metod tsepey dlya organizatsii khraneniya mnogomernykh triangulyatsiy [Chain Method for Storage of Multidimensional Triangulations]. Vеstnik Volgogradskogo gosudars^nnogo univеrsitеta. Sеriya 1, Matеmatika. Fizika [Science Journal of Volgograd State University. Mathematics. Physics], 2013, no. 2 (19), pp. 71-79. DOI: 10.15688/jvolsu1.2013.2.8.
4. Mayorov A.A., Nguen T.K. Effektivnyy algoritm postroeniya triangulyatsii Delone [Effective Algorithm of Delaunay Triangulation]. Izvеstiya vysshikh u^bnykh zavеdеniy. Gеodеziya i aerofotosyеmka, 2011, no. 1, pp. 105-108.
5. Skvortsov A.V., Mirza N.S. Algoritmy postroеniya i analiza triangulyatsii [Analisys and Algorithms of Triangulations]. Tomsk, Izd-vo Tomsk. un-ta Publ., 2006. 168 p.
6. Delaunay B.N. Sur la sphere vide. A la memoire de Georges Voronoi. Izvеstiya AN SSSR [Izvestiya: Mathematics], 1934, no. 6, pp. 793-800.
TRIANGULATION ALGORITHM BASED ON EMPTY CONVEX SET CONDITION
Vladimir Aleksandrovich Klyachin
Doctor of Physical and Mathematical Sciences,
Head of Department of Computer Science and Experimental Mathematics, Volgograd State University [email protected], [email protected]
Prosp. Universitetsky, 100, 400062 Volgograd, Russian Federation
Abstract. The article is devoted to generalization of Delaunay triangulation. We suggest to consider empty condition for special convex sets. For given finite set P C Mra we shall say that empty condition for convex set B c Mra is fullfiled if PnB = PndB. Let $ = $a, a G A be a family of compact convex sets with non empty inner. Consider some nondegenerate simplex S C Mra with vertexes p0,...,pn. We define the girth set B(S) G $ if % G dB(S),i = 0,1,...,n. We suppose that the family $ has the property: for arbitrary nondegenerate simplex S there is only one the girth set B(S). We prove the following main result.
Theorem 1. If the family $ = $a,& G A of convex sets have the pointed above property then for the girth sets it is true:
1. The set B(S) is uniquely determined by any simplex with vertexes on dB (S ).
2. Let Si,S2 be two nondegenerate simplexes such that B(Si) = B(S2). If the intersection B(Si) n B(S2) is not empty, then the intersection of boundaries B(Si),B(S2) is (n — 2)-dimensional convex surface, lying in some hyperplane.
3. If two simplexes Si and S2 don't intersect by inner points and have common (n — 1)-dimensional face G and A, B are vertexes don't belong to face G and vertex B of simplex B(S2) such that B G B(Si) then B(S2) does not contain the vertex A of simplex Si.
These statements allow us to define $-triangulation correctly by the following way. The given triangulation T of finite set P C Mra is called $-triangulation if for all simlex S G T the girth set B (S) G Phi is empty. In the paper we give algorithm for construct $-triangulation arbitrary finite set P C Mra. Besides we describe exapmles of families $ for which we prove the existence and uniqueness of girth set B(S) for arbitrary nondegenerate simplex S.
Key words: triangulation, empty shpere condition, Delaunay triangulation, convex set, convex function, convex hull.