Вычислительные технологии
Том 24, № 4, 2019
Построение диаграммы Вороного с ограничениями
>к
на плоскости*
Т. Ф. Киреев", Г. Т. Булгакова
1Уфимский государственный авиационный технический университет, Россия "Контактный e-mail: kireevtf@ufntc.ru
Рассмотрен вопрос построения диаграммы Вороного с ограничениями на плоскости, также известный как обобщенная обратная задача Вороного. Эта задача заключается в том, чтобы по заданному набору отрезков на плоскости построить такую диаграмму Вороного, ребра которой будут лежать на этих отрезках. Предложен алгоритм построения диаграммы Вороного с ограничениями с простым доказательством корректности. Описана процедура построения двумерной расчетной сетки на основе такой диаграммы.
Ключевые слова: диаграмма Вороного, обратная задача Вороного, плоская расчетная сетка.
Библиографическая ссылка: Киреев Т.Ф., Булгакова Г.Т. Построение диаграммы Вороного с ограничениями на плоскости // Вычислительные технологии. 2019. Т. 24, № 4. С. 28-37. БОТ: 10.25743/1СТ.2019.24.4.003.
Введение
Диаграмма Вороного имеет огромное множество применений, одно из них — построение расчетных сеток для численного решения задач гидро- и геомеханики. Для таких задач традиционно используются хорошо изученные сетки на основе триангуляции расчетной области, в частности триангуляции Делоне [1-3]. По сравнению с ними сетки на основе диаграммы Вороного имеют некоторые преимущества: их ячейки представляют собой выпуклые многоугольники, а использование узлов-генераторов диаграммы Вороного в качестве расчетных узлов делает такую сетку в точности ортогональной.
При решении гидродинамических задач методом конечных объемов с помощью двухточечной аппроксимации потока сетка на основе диаграммы Вороного позволяет снизить эффект ориентации благодаря тому, что ее ячейки имеют форму выпуклого многоугольника [4]. Свойство ортогональности повышает точность аппроксимации конвективных слагаемых, но в некоторых случаях уменьшает точность аппроксимации массовых слагаемых. Локальное изменение степени ортогональности ячеек позволяет регулировать локальное соотношение ошибки аппроксимации этих двух слагаемых.
Исследование диаграммы Вороного с ограничениями в настоящей работе мотивировано рядом задач подземной гидродинамики, в которых роль ограничений играют пластовые разломы сложной формы, естественные и техногенные трещины.
* Title translation and abstract in English can be found on page 37.
© ИВТ СО РАН, 2019.
Задача построения диаграммы Вороного часто рассматривается как задача построения триангуляции Делоне и наоборот, из-за двойственности между этими двумя объектами. Однако триангуляция Делоне с ограничениями уже не является двойственной к диаграмме Вороного с ограничениями [5]. Узловые точки диаграммы, которая двойственна к такой триангуляции, будут лежать на ребрах триангуляции, поэтому ребра этой диаграммы всегда будут перпендикулярны структурным отрезкам, вместо того чтобы лежать на них.
Для учета ограничений в диаграмме Вороного чаще всего применяют метод отсечения, при котором ячейки Вороного обрезаются так, чтобы их границы лежали на структурных отрезках [6]. Недостаток этого похода заключается в том, что ячейки вблизи структурных отрезков становятся невыпуклыми и теряют свойство ортогональности.
В данной работе изучается вопрос построения диаграммы Вороного с ограничениями, в которой ребра ячеек Вороного в точности формируют структурные отрезки ограничения, т. е. ячейки Вороного не обрезаются. Эта задача также известна как обобщенная обратная задача Вороного (Generalized Inverse Voronoi Problem) [7]. Она заключается в том, чтобы по заданному ограничению найти набор узлов, для которых диаграмма Вороного будет являться диаграммой Вороного с ограничением. В предположении, что узлы диаграммы Вороного могут лежать сколь угодно близко друг к другу, очевидно, что решение этой задачи всегда существует. Открытой проблемой остается поиск оптимального решения, в котором множество узлов диаграммы было бы минимально [8]. Для случая, когда структурные отрезки ограничения разбивают плоскость на прямоугольники, существует простой алгоритм решения этой задачи с помощью решетки Ханана [8].
Один из подходов для построения диаграммы Вороного с ограничениями заключается в использовании триангуляции Делоне [5]. Сначала генерируется триангуляция Делоне с ограничениями, затем проводится локальная корректировка триангуляции: ее ребра перестраиваются так, чтобы они оказались перпендикулярны структурным отрезкам. В конце вычисляется диаграмма Вороного, двойственная к полученной триангуляции. Достоинство алгоритма заключается в том, что он "прокладывает мост" между триангуляцией с ограничениями и диаграммой Вороного с ограничениями. Так, например, можно использовать готовые алгоритмы измельчения или сглаживания триангуляции, чтобы получить измельченную или сглаженную диаграмму Вороного. Второй подход заключается в формировании множества узлов диаграммы Вороного напрямую, без использования триангуляции Делоне [9, 10].
В настоящей работе предложен такой алгоритм построения диаграммы Вороного с ограничениями на плоскости с простым доказательством корректности.
1. Диаграмма Вороного
Определение 1. Для заданного конечного множества точек S С R2 ячейкой Вороного точки г Е S называется множество
VoroCell(S,i) = {х Е R2 : ||ж - г|| < ||ж - j|| Vj Е S,j = г} .
Определение 2. Ребром между ячейками VoroCell(S,i) и VoroCell(S, j) при г = j называется непустое множество
VoroEdge(S,i,j) = VoroCell(S,i) П VoroCell(S,j).
Определение 3. Вершиной между ячейками УатаСбИ(Б,г), УатаСбИ(Б,]) и Уата-Се11(Б, к) при г = ] и г = к называется непустое множество
УатаУбтЬбх (Б,ъ,],к) = УатаСбИ (Б,т).
Ячейка Вороного — это открытая выпуклая область в К2, поскольку ее можно представить в виде пересечения 1 — 1 полуплоскостей. Поэтому ребра между ячейками Вороного представляют собой отрезки, лучи или линии в К2, а вершины между ячейками Вороного — точки в К2. Ребро или вершина могут не существовать, если соответствующее пересечение ячеек Вороного пусто. Иногда ребро может вырождаться в точку, а несколько вершин могут совпадать друг с другом (это происходит, когда Б содержит 4 и более точек, лежащих на одной окружности).
Утверждение 1. Пусть Б С К2 — конечное множество, г Е Б, С — открытый круг конечного радиуса, граница которого проходит через точку г, и С П 5 = 0. Тогда УатаСбИ(Б, г) содержит в себе центр круга С.
Доказательство. Пусть с — центр круга С. Предположим, что с Е УатаСбИ(Б,г). Тогда существует точка ] Е Б, такая, что ] = г и с Е УатаСбИ(Б,]), следовательно, \\с — ] || ^ ||с — г||. Если ||с — Ц\ < \\с — г||, то возникает противоречие с условием С П Б = 0, поскольку ] Е С. Если же \\с — ] \\ = \\с — г\ \, то точка с лежит в пересечении УатаСбИ(Б, г) П УатаСбИ(Б,]), что противоречит исходному предположению. □
Следствие 1.1. Пусть Б С К2 — конечное множество, г,] Е Б — две различные точки, С — открытый круг конечного радиуса, граница которого проходит через точки г,], и С П 5 = 0. Тогда ребро УатаЕйдв(Б,г,]) существует и содержит в себе центр круга С.
Доказательство. Пусть с — центр круга С. Согласно утверждению 1, с Е УатаСбИ(Б, г) и с Е УатаСбИ(Б,]). Значит, с Е УатаЕйдв(Б,г,]), а следовательно, это ребро существует. □
Следствие 1.2. Пусть Б С К2 — конечное множество, 1,],к Е Б — три различные точки, С — открытый круг конечного радиуса, граница которого проходит через точки г,], к, и СП5 = 0. Тогда вершина УатаУбтЬбх(Б, г,], к) существует и совпадает, с центром круга С.
Доказательство. Пусть с — центр круга С. Согласно утверждению 1, с Е УатаСбИ(Б, г), с Е УатаСбИ(Б,]) и с Е УатаСбИ(Б, к). Значит, с Е УатаУвтЬвх(Б, г,], к), а следовательно, эта вершина существует. Но УатаУбтЬбх(Б, г,], к) может быть либо пустым множеством, либо состоять из одной точки, поэтому с = УатаУбтЬбх (Б, %,], к). □
Определение 4. Множеством ячеек диаграммы Вороного называется
УС (Б) = { УатаСбП (Б, г)}^8 . Определение 5. Множеством ребер диаграммы Вороного называется
УЕ (Б ) = { УатаEdgб (Б,г,3 )}г,е8= .
Определение 6. Множеством вершин диаграммы Вороного называется
УУ(Б) = {УогоУеНех.
Определение 7. Диаграммой Вороного для множества точек Б С К2 называется кортеж
УБ(Б) = (УС(Б), УЕ(Б), УУ(5)).
Определение 8. Точки Б диаграммы Вороного УБ (Б) называются узлами или узловыми точками.
Задача построения диаграммы Вороного заключается в том, чтобы по заданным узловым точкам Б найти диаграмму Вороного УБ(Б). На практике, как правило, множество Б выступает в качестве входных данных.
2. Диаграмма Вороного с ограничениями
Определение 9. Плоский конечный граф С = (У,Е) в К2, в котором все ребра Е являются отрезками, а все вершины V имеют ненулевую степень, называется ограничением. Ребра графа называются структурными отрезками. Ребро между двумя вершинами и ь2 обозначается (у\,у2).
Ограничение С может состоять из нескольких компонентов связности и содержать в себе некоторое количество циклов.
Определение 10. Диаграмма Вороного УБ (Б) поддерживает ограничение С, если:
1) У С УУ(Б);
2) V (е Е Е) 3 ({еъ ..., ек} С УЕ (Б)) : е = у г=1.к ег.
В этом случае УБ (Б) называется диаграммой Вороного с ограничением С.
Утверждение 2. Пусть Б С К2 — конечное множество, С = ({ь\,ь2} , {е}) — ограничение, в котором е = (у\,у2). Если существует два открытых круга С\ и С2 с конечными радиусами и центрами в точках и ь2, таких, что
1) \дС\ П 51 > 3 и \дС2 П 51 > 3,
2) дС-1 П дС2 = {г,з}С Б, г =
3) С\ П 5 = С2 П 5 = 0,
то диаграмма Вороного УБ (Б) поддерживает ограничение С.
Доказательство. Поскольку дС\ — окружность и \дС\ П 5\ > 3, то в дС\ П 5 найдутся три различные точки. Согласно следствию 1.2, Е УУ (Б). Аналогично у2 Е УУ (Б). Согласно следствию 1.1, ребро УотоЕйде(Б, г,]) содержит в себе точки и у2. Поскольку УотоЕйде(Б, г,]) — выпуклое множество (отрезок, луч или линия), оно содержит в себе ребро е графа.
Докажем теперь, что УотоЕйде(Б,г,]) не может содержать никаких других точек, кроме е. Рассмотрим точку х = + (1 — Ь) у2 для некоторого Ь > 1. Поскольку \дС\ П > 3, на границе круга С\ найдется точка к Е Б, отличная от точек г и ]. Круги С\ и С2 не содержат точку к,иих границы пересекаются в точках г,], поэтому ||ж — к\\ < ||ж — г|| = ||ж — ]\\. Значит, точка х не принадлежит множествам УотоСе11(Б,1), УотоСе11 (Б,]), а следовательно, не принадлежит множеству УотоЕйде(Б, ). Аналогично для случая Ь < 0. Таким образом, е = (ь\,ь2) = УотоЕйде(Б,г,]) С Е. □
Рис. 1. Примеры диаграмм Вороного с ограничением. Серыми и черными линиями показаны ребра диаграммы, синими точками — узлы диаграммы
На рис. 1, а показаны диаграмма Вороного, поддерживающая ограничение С = ({щ,у2}, {е}), где е = (щ,у2), и соответствующие окружности дС\ и дС2 с центрами в точках У\ и у2. Множество 5 состоит из четырех точек. На рис 1, б показаны диаграмма Вороного, поддерживающая ограничение С = ({у\,у2,у3,у4} , {е,д,К}), где е = (щ,у2) , д = (у2, у3) , Ь = (у2, у4), и соответствующие окружности дС\, дС2, дС3, дС4. Множество 5 состоит из девяти точек.
Задачу построения диаграммы Вороного с ограничением можно сформулировать следующим образом: по заданному ограничению С требуется найти такое множество узлов 5, при котором диаграмма Вороного УВ (5) будет являться диаграммой Вороного с ограничением С. Эта формулировка эквивалентна постановке обобщенной обратной задачи Вороного.
Алгоритм 1. Построение диаграммы Вороного с ограничениями
Входные данные: ограничение С = (V, Е).
Результат: множество 5 С К2, такое, что УБ(Б) поддерживает ограничение С.
1. Выбрать достаточно малое число е и для каждой вершины у Е V построить открытый круг С (у ) радиуса е с центром в точке у так, чтобы:
а) Уух, У2 Е У,уг = У2 : С (ух ) П С (^) = 0;
б) Уе = \уъ У2) Е Е : dгst (С(уг), С(^)) > е;
в) Уу Е V, Уе = (ух, у2) Е Е,у = ух,у = у2 : dist (С(у),е) > е.
2. На каждом ребре е Е Е расположить последовательно достаточно большое
количество точек ,т2,..., ^ (е) | Е е ив центре каждой точки построить
открытый круг С(<ш1) достаточного радиуса так, чтобы:
а) Уе,д Е Е,е = д, Е {1,..., к(е)} , У3 Е {1,..., к(д)} : С^) П С(т°) = 0;
б) Уе Е Е, Уг Е {1,...,к (е)} , У] Е {1,...,к (е)} ,г = з : С «) П С (ю]) = 0 & | дС (-ш?) П дС(т*) | =2 & ^ — з | = 1;
в) Уу Е V, Уе Е Е, Уг Е {2,..., к (е) — 1} : С (юе{) П С (у) = 0;
г) Vv Е V., Ve = (уъу2) Е Е : С «) П С (у) = 0 & \дС «) П дС (у )\ =2 & у = щ ;
= 2^
д) Vv Е V, Уе = (УЪУ2) Е Е : С (тек{е)) П С (у) = 0 & дС (тек{е)) П дС (у)
V = У2.
3. Уе = (у\,у2) Е Е : добавить две точки пересечения окружностей дС(и)е) и дС(щ) и две точки пересечения окружностей дС) и дС(у2) в множество 5.
4. Уе Е Е, VI Е {1,...,к(е) — 1} : добавить две точки пересечения окружностей дС(т(е) и дС(те+1) в множество 5.
5. Vv Е V : если степень вершины V равна 1, то добавить в Б произвольную точку V * на окружности дС (у), такую, что:
а) V * Е $;
б) Vv' Е V : V * Е С (у');
в) Ve Е Е, VI Е {1,...,к(е)} : V* / С (>ше).
Лемма 1. Алгоритм 1 решает задачу построения диаграммы Вороного с ограничениями.
Доказательство. На шаге 1 строится набор непересекающихся кругов С (у) в вершинах у Е V. Условие 1 б алгоритма гарантирует, что на шаге 2 на каждом ребре е Е Е можно будет выбрать хотя бы одну точку м!. Условие 1в алгоритма необходимо для того, чтобы круги С (у) располагались на некотором расстоянии от ребер Е (за исключением ребер, инцидентных вершине у), и благодаря этому на шаге 2 алгоритма в каждой точке < каждого ребра е Е Е можно будет выбрать некоторый ненулевой радиус круга С (ш(е).
На шаге 2 строятся центры кругов ^е на ребрах Е и круги С(т(е) (рис. 2). Условие 2 а гарантирует, что круги С(т(е) и С(м?), расположенные на разных ребрах, не пересекаются между собой. Условие 2 б обеспечивает то, что круги С(ш(е) пересекаются только с двумя соседними кругами С('ш—) (если г > 1) и С(гш(е+1) (если г < к(е)), расположенными на одном общем ребре. Условия 2в-д накладывают ограничения на характер пересечения кругов С (т(е) и С (у). Так, каждый круг С ('ш!), расположенный на ребре е = (у 1,у2), пересекается только с кругом С(у1), а каждый круг С(^(е), расположенный на ребре е = (у1,у2), пересекается только с кругом С(у2). Кроме того, условия 2 б, 2 г и 2 д обеспечивают то, что границы каждой пары пересекающихся кругов пересекаются между собой ровно в двух точках.
Наконец, на шагах 3 и 4 формируется множество £, состоящее из точек на границах кругов С (у) и С (ш(е). Поскольку в графе С все вершины имеют ненулевую степень,
Vv Е V, 3е = (у,у2) Е Е : \дС Ю П С (у )\ = 2, а значит, множество 5 будет содержать по две точки с границы каждого круга С (у).
Рис. 2. Иллюстрация к алгоритму 1. Серыми и черными линиями показаны ребра диаграммы, синими точками — узлы диаграммы
Завершающий шаг 5 нужен для того, чтобы в множество Б попало как минимум по три точки с границы каждого круга С (у).
Докажем, что УБ(Б) поддерживает ограничение С. Рассмотрим произвольное ребро е = {у\,у2) Е Е и построенное на шаге 2 множество точек |т\,т2, Е е. Ребро е
можно представить в виде объединения нескольких отрезков:
е = {VI,= {щт^и(и)е1,т2,)и...и(ыек{е),ь2) .
Обозначив 'Ш0 = У\ и /шек^е)+1 = у2, имеем
е = «^^(и)^ w12)и...и('шек{е),'шек{е)+1) .
В результате выполнения шагов 1 и 2 алгоритма при г Е {0,...,&(е)} для каждого отрезка имеется два круга С(т?) и С(,ш<1+1), центры которых совпадают с концами отрезка. Кроме того,
| дС(м—) П дС«) | = | дС«) П дС(те+1) \ = \дС(те+1) П дС(те+2) \ = 2
в силу условий 2 б, 2 г и 2 д. Поэтому для кругов С(м?) и С(,ш%+1) справедливо
дС(тег) П дС) = {аг, Ьг] С Б, аг = Ьг, г Е {0, ..,к(е)} ,
а следовательно,
\дС«) П 5\> 4, г Е {1, ...,к(е)} .
Благодаря шагу 5 имеем
\дС«) П 5\> 3, г Е{0,к(е) + 1} .
Условия 1 а и 2а-д алгоритма гарантируют, что при г Е {0,..., к(е) + 1} внутрь круга С ) не попадут никакие точки пересечения пар каких-либо других кругов, поэтому
С «) П 5 = 0, г Е {0,...,к(е)+ 1} .
По утверждению 2, диаграмма Вороного УБ(Б) для каждого г Е {0, ...,к(е)} содержит ребро (и^= УотоЕСдеи две вершины и^ и Таким образом,
1) V С УУ(Б);
2) V (е Е Е) 3 ({еъ ..., ек} С УЕ(Б)) : е = иг=!..к
т.е. УБ(Б) поддерживает ограничение С. □
Для графа С = (V, Е) и вершины у Е V обозначим С \ у граф, который получается из графа С удалением вершины у и всех ребер {у, и), инцидентных вершине V (при этом вершины и не удаляются). Так же обозначим С \ е граф, который получается из графа С удалением ребра е.
1
В качестве е на шаге 1 алгоритма можно взять число — {С1вЬ (у, С \ г^}. На ша-
ге 2 алгоритма точки ^1,1^2,, — | на ребре е = {у1,у2) Е Е можно расположить
1
равномерно с шагом к = -сИвЬ (е \ (С (^ и С (у2)) ,С \ е), а радиусы кругов С(чи1;) 3
выбрать равными —к (чтобы соседние круги С (и/?) пересекались между собой в двух точках).
Рис. 3. Пример диаграммы Вороного с ограничением: а — ограничение; б — диаграмма Вороного. Черными линиями показаны ребра ограничения и диаграммы, синими точками — узлы диаграммы
Если требуется минимизировать количество элементов в множестве в, то можно итерационно объединять пары соседних кругов С('Ш?) в один круг большего радиуса до тех пор, пока условия 1 и 2 удовлетворяются.
На рис. 3 показана диаграмма Вороного с ограничением, построенная с помощью такого алгоритма. На рис. 3, б красным цветом изображены окружности дС(у) и дС
На практике может быть полезна немного другая постановка задачи построения диаграммы Вороного с ограничениями: по заданному ограничению С и заданному множеству узлов ¿о требуется найти такое множество узлов при котором диаграмма Вороного УБ(¿0 и будет являться диаграммой Вороного с ограничением С. Для решения этой задачи достаточно дополнить шаги 1 и 2 алгоритма 1 условиями:
1) Уу е V : С(у) п 50 = 0;
2) Уе е Е, Уг е {1,...,к(е)} : С «) П ¿0 = 0.
Эти условия можно удовлетворить, удалив из множества ¿0 подмножества С (у) П ¿0 и и ееЕ^е{1,...,к(е)}С П ¿0 либо выбрав радиусы кругов С (у) и С (м?) достаточно малыми, а число к(е) достаточно большим, не модифицируя при этом ¿0.
Для построения двумерной расчетной сетки с ограничением С можно использовать множество ¿0 = {(гАх,] Ау) е : % = 1,...,п; ] = 1,...,т}, для которого диаграмма Вороного является равномерной сеткой из прямоугольных ячеек длиной Ах и шириной Ау. На рис. 4, а показана расчетная сетка для прямоугольной области с ограничением из рис. 3, а, построенная таким методом.
Одна из важных задач — построение сеток для областей со сложными границами. Построив диаграмму Вороного с ограничением в виде замкнутого непересекающегося контура, можно получить расчетную сетку для области, ограниченной этим контуром (рис. 4, б).
Основные идеи алгоритма можно обобщить для построения трехмерной диаграммы Вороного с ограничениями в виде поверхностей. Разбив все поверхности на плоские треугольники, можно построить сферы с центрами в вершинах треугольников.
Для каждого треугольника пересечение трех его сфер будет определять два узла диаграммы Вороного, равноудаленных от плоскости треугольника [9, 10].
Таким образом, предложены алгоритм построения диаграммы Вороного с ограничениями на плоскости и процедура построения двумерной расчетной сетки на основе такой диаграммы. Полученная расчетная сетка является локально ортогональной, а ее ячейки представляют собой выпуклые многоугольники. Использование такой сетки может повысить точность численного решения некоторых задач гидро- и геомеханики.
Благодарности. Работа выполнена при поддержке ООО "Уфимский НТЦ" и РФФИ (грант № 17-41-020226-р_а).
Список литературы / References
[1] Shewchuk, J.R. Delaunay refinement algorithms for triangular mesh generation // Comput. Geometry. 2002. Vol. 22, No. 1-3. P. 21-74.
[2] Lo S.H. Finite element mesh generation. London: CRC Press, 2014. 672 p.
[3] Frey, P., George, P.L. Mesh generation: application to finite elements. 2nd Edition. London: ISTE & Wiley LTD, 2008. 848 p.
[4] Palagi, C.L., Aziz, K. Use of voronoi grid in reservoir simulation // SPE Advanced Technology Series. 1994. Vol. 2, No. 2. P. 69-77.
[5] Branets, L.V., Branets, L.V., Ghai, S.S. et al. Efficient and accurate reservoir modeling using adaptive gridding with global scale up // Proc. of SPE Reservoir Simulation Symp. 2009. 11 p. SPE118946. DOI: 10.2118/118946-MS.
[6] Yan, D., Wang, W., Levy, B., Liu, Y. Efficient computation of clipped Voronoi diagram for mesh generation // Computer-Aided Design. 2013. Vol. 45, No. 4. P. 843-852.
[7] Aloupis, G., Perez-Roses, H., Pineda-Villavicencio, G. et al. Fitting voronoi diagrams to planar tesselations // Intern. Work. on Combinatorial Algorithms IWOCA 2013: Combinatorial Algorithms, Heidelberg, 2013. P. 349-361.
[8] Banerjee, S., Bhattacharya, B.B., Das, S. et al. On the construction of generalized voronoi inverse of a rectangular tessellation // Proc. 9th Intern. IEEE Symp. on Voronoi Diagrams in Sci. and Eng. New Brunswick, NJ: IEEE, 2012. P 132-137.
[9] Berge, R.L. Unstructured pebi grids adapting to geological feautres in subsurface reservoirs: Master's thesis. Norwegian Univ. of Sci. and Techn., 2016. 105 p.
[10] Abdelkader, A., Bajaj, C.L., Ebeida, M.S., Mitchell, S.A. A seed placement strategy for conforming voronoi meshing // Proc. of 29th Canadian Conf. on Comput. Geometry. CCCG 2017, Ottawa, Ontario, July 26-28. 2017. P. 95-100.
Поступила в 'редакцию 18 января 2019 г., с доработки — 24 апреля 2019 г.
Construction of the Voronoi diagram with constraints on а plane
klreev, tlmur f.*, bulgakova, guzel t.
1Ufa State Aviation Technical University, Ufa, 450000, Russia * Corresponding author: Kireev, Timur F., e-mail: kireevtf@ufntc.ru
Purpose. The problem of construction the Voronoi diagram with constrains on a plane, also known as the generalized inverse Voronoi problem, is considered. The problem is to construct a Voronoi diagram on the plane, which edges lie on a given set of segments.
Methodology. Constructing a Voronoi diagram with constraints is based on the formation of a set of circles and the placement of sites of the diagram at the intersections of these circles. The procedure for constructing a diagram is described by a formal language to prove its correctness.
Findings. An algorithm for constructing a constrained Voronoi diagram with proof of correctness is proposed. A procedure for constructing a two-dimensional computational grid based on such a diagram is described.
Value. The proposed algorithm is rather brief and has a simple proof of correctness. The use of such a grid can improve the accuracy of the numerical solution of some problems in fluid mechanics.
Keywords: Voronoi diagram, inverse Voronoi problem, planar mesh.
Cite: Kireev, T.F., Bulgakova, G.T. Constructing a conforming Voronoi diagram on the plane // Computational Technologies. 2019. Vol. 24, No. 4. P. 28-37. (In Russ.) DOI: 10.25743/ICT.2019.24.4.003.
Acknowledgements. This research was supported by Ufa NTC LLC and RFBR (grant No. 17-41-020226-р_а).
Received January 18, 2019 Received in revised form April 24, 2019
© ICT SB RAS, 2019