Алгоритм триангуляции, основанный на условии пустого выпуклого множества

Автор: Клячин Владимир Александрович

Журнал: Математическая физика и компьютерное моделирование @mpcm-jvolsu

Рубрика: Прикладная математика

Статья в выпуске: 3 (28), 2015 года.

Бесплатный доступ

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

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

Короткий адрес: https://sciup.org/14968986

IDR: 14968986   |   DOI: 10.15688/jvolsu1.2015.3.3

Текст научной статьи Алгоритм триангуляции, основанный на условии пустого выпуклого множества

DOI:

1.    Триангуляция конечного множества точек

Пусть R n п -мерное евклидово пространство, в котором введен ортонормиро-ванный базис { е « } ”=1 . Через { , ) мы обозначаем скалярное произведение в R n . Пусть ж 1 , х 2 ,..., х п — соответствующие выбранному базису декартовы координаты.

Напомним, что к -мерным симплексом S = S(А 0 , А 1 ,..., А ^ ) в R n называется выпуклая оболочка к + 1 точек А г = 0,...,к п , таких, что векторы А 1 А 0 , А 2 — — А д ,..., А ^ А 0 линейно независимы. Рассмотрим какой-либо п -мерный симплекс S . Пусть H ± (S ) обозначает открытое полупространство, определяемое плоскостью, проходящей через к (п 1) -мерную грань симплекса S , и содержащее (для H + (S ) ) или не содержащее (для H - (S ) ) симплекс S . Если из контекста ясно, о каком симплексе идет речь, мы будем опускать его обозначение в обозначениях этих полупространств. Также вместо обозначения симплекса мы равнозначно будем использовать набор его вершин.

Пусть {P i } , г = 1,...,N , — некоторый набор P точек P i Е R , таких, что любой симплекс в вершинах из { P i } является невырожденным. Триангуляцией Т заданного набора точек называется такой набор п -мерных симплексов S 1 ,...,S m , что:

  • 1)    каждая точка Pi заданного набора является вершиной одного из симплексов S Е Т;

  • 2)    каждая вершина любого симплекса S Е Т является одной из точек Pi, г = = 1,...,N;

  • 3)    внутренность пересечения любых двух симплексов пуста.

  • 2.    Семейства выпуклых множеств

Один из первых алгоритмов триангуляции с использованием условия пустого шара был предложен Б.Н. Делоне в его работе [6] (перевод см. [1]). Это условие означает, что описанная сфера каждого симплекса триангуляции не содержит внутри себя точек заданного конечного множества. Триангуляции, для которых выполняется это условие, получили название триангуляции Делоне [4; 5]. Несложно показать, что при выполнении условия, что никакие п точек из Р не лежат на одной гиперплоскости и никакие п + 1 точек не лежат на одной (п 1) -мерной сфере, триангуляция Делоне существует и единственна. С другой стороны, для конечного множества точек общего положения { P i } , г = 1,...,N , число различных триангуляций этого множества растет с ростом N порядка c N (см., например, работу [3] и цитируемую там литературу). Эти факты позволяют поставить задачу о выделении в классе всех триангуляций заданного конечного множества некоторого естественного подкласса, который бы включал в себя классическую триангуляцию Делоне в качестве частного случая.

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

Рассмотрим в R семейство Ф = Ф а , а Е А , выпуклых компактных множеств с непустой внутренностью. Пусть S произвольный невырожденный симплекс. Определим описанное множество B(S ) Е Ф (если оно существует) из данного семейства как множество, чья граница содержит вершины симплекса (а значит, содержит весь симплекс в силу выпуклости).

Определение 1. Рассмотрим произвольную триангуляцию конечного множества точек P . Будем говорить, что эта триангуляция является Ф -триангуляцией, если для любого симплекса S этой триангуляции внутренность множества B(S ) не содержит вершин других симплексов.

Заметим, что если семейство Ф представляет собой семейство всех шаров в R , то вышеприведенное определение совпадает с определением триангуляции Делоне. В работе [2] было доказано существование ^ -триангуляции конечного множества точек при условии, что семейство Ф обладает следующим свойством: для любого невырожденного симплекса S в семействе Ф = Ф а Е А , существует, и притом только одно, описанное множество B(S ) .

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

Теорема 1. Если семейство выпуклых множеств Ф = Ф а , а Е Л , обладает вышеприведенным свойством, то описанные множества симплексов обладают следующими свойствами:

  • 1)    множество В(S) однозначно определяется любым симплексом с вершинами на его границе;

  • 2)    если для двух невырожденных симплексов S1, S2 выполнено B(S1) = В(S2) и пересечение В(S1) ПB(S2) не пусто, то персечение границ множеств B(S1), B(S2) представляет собой (п2) -мерную выпуклую поверхность, лежащую в некоторой гиперплоскости;

  • 3)    если два симплекса S1 и S2 не пересекаются по внутренним точкам, имеют общую (п 1)-мерную грань G и вершины симплексов А, В, не принадлежащие грани G, причем В(S1) не содержит внутри себя вершину В симплекса S2, то B(S2) не содержит внутри себя вершины А симплекса S1.

  • 3.    Пример семейства Фа

Доказательство. Первое свойство непосредственно следует из условия на семейство Ф а ,а Е Л . Второе свойство доказывается от противного. Если предположить, что пересечение dB(S 1 ) П ЭВ(S 2 ) не лежит ни в какой гиперплоскости, то найдется некоторый невырожденный симплекс S с вершинами на этом пересечении. Но тогда и В (S 1 ) и В(S 2 ) будут описанными множествами симплекса S , что противоречит условию единственности. Таким образом, пересечение ЭВ (S 1 ) П дВ(S 2 ) лежит в некоторой гиперплоскости. Выпуклость пересечения очевидно следует из выпуклости множеств В (S i ), В (S 2 ) (см. рис. 1).

Рис. 1. К доказательству теоремы 1

Докажем третье свойство. Пусть П — гиперплоскость, содержащая пересечение дВ (S 1 ) П дВ (S 2 ) . Эта гиперплоскость разбивает каждое из В (S i ), г = 1, 2, на две выпуклые части В ± (S i ) . Для определенности будем считать, что В Е В + (S 2 ) и, следовательно, в силу того, что В не лежит внутри В (S 1 ) , выполнено В Е B + (S 1 ) . Тогда В + (S 1 ) С В + (S 2 ), В - (S 2 ) С В - (S 1 ) . Если предположить, что точка А лежит внутри В (S 2 ) , то получим, что А Е B - (S 2 ) . Поскольку эта точка лежит на границе B(S 1 ) , то заключаем, что В - (S 1 ) С В - (S 2 ) . Но это противоречит вложению В - (S 2 ) С В - (S 1 ) . Следовательно, А не может лежать внутри B(S 2 ) . Теорема доказана полностью.

Заметим, что в общем случае указать способ построения В(S ) для произвольного симплекса S , а также способ проверки условия пустого выпуклого множества из Ф а представляет собой сложную задачу. Однако мы укажем целую серию семейств Ф а , для которых это сделать удается.

Рассмотрим произвольную строго выпуклую вниз гладкую функцию х п+1 = Ф(х) , определенную во всем пространстве R и такую, что

Ф(х)

и

^ + то при X ^ то .

При выполнении этого условия пересечение графика функции Ф(х) с произвольной невертикальной плоскостью П представляет собой выпуклую компактную (п— 1) -мерную поверхность в R n +1 . Положим для любых х G R n ,r > 0

Ф(х,г) = G R : Ф(у) Ф(х) + ^Ф(х), у Xх) + г } .

В силу свойства (1) и выпуклости Ф(х) множества Ф(х,г) образуют семейство выпуклых компактных множеств. Покажем, что для всякого невырожденного симплекса S можно построить единственное описанное множество из этого семейства. Пусть также точки р 0 ,...,р п G R образуют произвольный невырожденный симплекс S . В пространстве R n +1 построим набор точек Q t = (p t , Ф(р г )), i = 0,...,п . Построим в пространстве R n +1 плоскость П , проходящую через эти точки. Очевидно, что проекция пересечения этой плоскости с графиком функции Ф(х) представляет собой границу некоторого множества Р Ы(х,г) . При этом точка х — это единственная точка, в которой касательная к графику параллельна плоскости П . Существование и единственность такой точки следуют из выпуклости и гладкости функции Ф(х) .

Теперь обратимся к вопросу проверки условия пустоты множеств вида В(х,г) . С этой целью построим функцию Н 0 , ...,р п ) , зависящую от (п + 1) точек из R . Пусть точки р 0 ,...,р G R образуют произвольный невырожденный симплекс. В пространстве R n +1 построим набор точек Q t = г , Ф(р г )), i = 0,...,п . Построим в пространстве R n +1 плоскость П , проходящую через эти точки и еще вертикальную гиперплоскость П , проходящую через точки Q 0 , ...,Q n- 1 . Ориентируем эти плоскости нормалями £ и ^' соответственно следующим образом. Нормаль £ для П направим вверх, то есть так, чтобы ( е п+1 , £ ) >  0 (здесь е п+1 — единичный вектор положительного направления оси Ох п+1 ). Вектор £ выберем как внутренний вектор по отношению к симплексу S(р 0 , ...,р п ) . Такой выбор корректен, поскольку плоскость П проходит через грань этого симплекса, определяемую вершинами р 0 ,...,р п . В качестве значения функции Н(р 0 ,...,р п ) возьмем величину угла между нормалями £ и £ . В основе проверки условия пустоты лежит следующее утверждение.

Теорема 2. Пусть Р с R произвольное конечное множество. Зафиксируем произвольно р г G Р, i = 0, ..., п— 1 и пусть П — гиперплоскость, проходящая через эти точки. Будем предполагать, что эти точки образуют невырожденный (п 1) -мерный симплекс. Пусть Р с Р — та часть точек из Р , которые лежат по одну сторону от П . Если точка р п G Р такова, что

Н (ро,...,рп) = minH (ро,...,рп-1,р), ер ‘ рер*

то множество В(S) , где S — симплекс с вершинами р 0 ,...,р п не содержит внутри себя точек из Р .

Рис. 2. К доказательству теоремы 2

Доказательство. Доказательство проведем от противного. Предположим, что найдется точка р Е Р , лежащая внутри B (S ) . Построим точку Q = (р, Ф(р )) Е R n +1 . В силу выпуклости функции Ф(х) точка Q лежит ниже гиперплоскости П (см. рис. 2).

Пусть П — вертикальная гиперплоскость в R n +1 , проходящая через точки Q o ,...,Q n -1 . Здесь точки Q ^ , г = 0, ...,п 1 , построены также, как и в определении функции Н(р 0 , ...,рп) . Проведем через точки Q o , ...,Q n- 1 ,Q гиперплоскость П . Поскольку точка Q лежит ниже плоскости П , то угол между плоскостями П и П больше, чем угол между плоскостями П и П . Последнее, как нетрудно видеть, означает, что

Н о , ...,Р п - 1 п ) >  Н о , ...,р п - 1 ,р).

Это противоречит выбору точки р п . Таким образом, точка р не может лежать внутри B(S ) . Теорема доказана.

4.    Выпуклая оболочка и триангуляция

Для приведенного выше примера семейства выпуклых множеств триангуляция с условием пустых описанных множеств может быть построена универсальным алгоритмом, не зависящим от заданной выпуклой функции Ф(х) . Опишем соответствующую процедуру сведе´ ния построения триангуляции к построению выпуклой оболочки точек. Пусть Р С Rn произвольное конечное множество точек, таких что никакие п + 1 из них не лежат в одной гиперплоскости и никакие п + 2 из них не лежат на границе одного множества семейства Ф(х,г) , построенного в предыдущем подразделе статьи. По множеству Р построим множество

Q = { (^ 1 , ..., Х п+1 ) Е R n +1 : (Х 1 ,..., Х п ) Е Р, Х п+1 = Ф(хъ ..., Х п ) } .

Выпуклая оболочка conv(Q) этих точек представляет собой выпуклый многогранник в Rn+1. Рассмотрим те грани этого многогранника, чьи внешние нормали £ направлены «вниз», то есть для которых выполнено неравенство (£, еп+1) < 0. Проекция этих граней на плоскость хп+1 = 0 образует Ф-триангуляцию множества Р. Действительно, из того, что никакие п + 2 точек из Р не лежат на границе одного множества семейства Ф(х,г), следует, что выбранные грани выпуклой оболочки conv(Q) имеют ровно п + 1 вершину, то есть являются п-мерными симплексами в R7^1. Проекция симплекса тоже будет симплексом. В силу выбора граней проекции их не могут пересекаться по внутренним точкам. Таким образом, совокупность этих проекций образует триангуляцию множества Р. Стоит заметить, что точки множества Q не могут лежать ниже гиперплоскости, содержащей любую выбранную грань. Это простое следствие выпуклости многогранника conv(Q). А это влечет выполнение условия пустого описанного множества для семейства Ф(х, г).

Список литературы Алгоритм триангуляции, основанный на условии пустого выпуклого множества

  • Делоне, Б.Н. О пустой сфере. К мемуару Георгия Вороного/Б.Н. Делоне; пер. с фр. А. Ю. Игумнов//Записки семинара «Сверхмедленные процессы». -2006. -Т. 1. -C. 147-153.
  • Клячин, В.А. Об одном обобщении условия Делоне/В.А. Клячин//Вестн. Томск. гос. ун-та. Матем. и мех. -2008. -№ 1. -C. 48-50.
  • Клячин, В.А. Метод цепей для организации хранения многомерных триангуляций/В.А. Клячин, В.␣В. Попов//Вестник Волгоградского государственного университета. Серия 1, Математика. Физика. -2013. -№ 2 (19). -C. 71-79. -DOI: DOI: 10.15688/jvolsu1.2013.2.8
  • Майоров, А.А. Эффективный алгоритм построения триангуляции Делоне/А.А. Майоров, Т.К. Нгуен//Известия высших учебных заведений. Геодезия и аэрофотосъемка. -2011. -№ 1. -C. 105-108.
  • Скворцов, А.В. Алгоритмы построения и анализа триангуляции/А.В. Скворцов, Н.С. Мирза. -Томск: Изд-во Томск. ун-та, 2006. -168 c.
  • Delaunay, B.N. Sur la sphere vide. A la memoire de Georges Voronoi/B.N. Delaunay//Известия АН СССР. -1934. -№ 6. -C. 793-800.
Статья научная