Научная статья на тему 'Задачи компьютерной геометрии'

Задачи компьютерной геометрии Текст научной статьи по специальности «Математика»

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

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

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

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

Похожие темы научных работ по математике , автор научной работы — Косолап А.И.

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

Paper is devoted to the statement and the solution of a class of quadratic optimizing problems in the computer geometry: the search of ellipsoid the minimum volume that contain the set of points of Euclidean space, the search of the minimum distance between ellipsoids, the construction of the hyperplane separating two ellipsoids. Effective algorithms for the solution of this class of problems are offered.

Текст научной работы на тему «Задачи компьютерной геометрии»

УДК 519.85

КВАДРАТИЧНЫЕ ЗАДАЧИ КОМПЬЮТЕРНОЙ ГЕОМЕТРИИ

© Косолап А.И.

Днепропетровский национальный университет им. Олеси Гончара

факультет прикладной математики

пр-т Гагарина, 72, г. Днепропетровск, 49010, Украина е-ма1ь: anivkos@ua.fm

Abstract. Paper is devoted to the statement and the solution of a class of quadratic optimizing problems in the computer geometry: the search of ellipsoid the minimum volume that contain the set of points of Euclidean space, the search of the minimum distance between ellipsoids, the construction of the hyperplane separating two ellipsoids. Effective algorithms for the solution of this class of problems are offered.

Введение

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

В последние годы внимание исследователей в этой области привлекают такие объекты как эллипсоиды. Эллипсоиды имеют небольшое количество геометрических параметров и эффективны для приближения широкого класса выпуклых объектов при моделировании физических систем. Обнаружение столкновения или наложения двух эллипсоидов является, таким образом, важной проблемой с приложениями в компьютерной графике, компьютерной мультипликации, виртуальном мире, робототехнике, CAD/CAM, вычислительной физике. Однако использование эллипсоидов ограничивалось недостатком эффективных методов для обнаружения их разделения или наложения. Рассмотрение эллипсоидов в n-мерном евклидовом пространстве является стимулирующим фактором для разработки эффективных алгоритмов квадратичной оптимизации.

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

1, Постановка задач и анализ последних результатов

Любой геометрический объект можно представить множеством точек {хг} в п -мерном евклидовом пространстве. Опишем эти точки эллипсоидом минимального объема. Уравнение эллипсоида имеет вид

гр гр

Е = {х | х (}х + д х < 1 }•.

где С2 - положительно определенная матрица. Известно, что эллипсоид минимального объема, содержащий заданное множество точек, единственный. Объем эллипсоида равен

¥Ы(Е) = 7Ш

где ш - объем единичного шара. Таким образом, задача построение эллипсоида, содержащего заданное множество точек {хг} сводится к решению следующей оптимизационной задачи

тт{(Ы (Я-1) | (хг)ТЯхг + ЧТхг < 1, г = 1,..., гп, ф У 0}, (1)

где необходимо определить положительно определенную матрицу (} и вектор д. Учитывая то, что функция <1о1 (} 1 является выпуклой, а множество всех положительно определенных матриц образует выпуклый конус, задача (1) является задачей выпуклой оптимизации. Однако условие положительной определенности матрицы не может быть записано в явном виде, что создает трудности в решении задачи (1), Заменим целевую функцию задачи (1) на эквивалентную 1о§с1е1;(5-1, Градиент этой функции равен (}. Это позволяет использовать для решения задачи (1) метод Франка-Вулфа, в котором на каждой итерации решается линейная задача полуопределенной оптимизации

• Q \ Xi• Q + (¡Гхг < 1. / = 1.....т.(} > О}-.

где символ • обозначает скалярное произведение матриц (сумма произведений элементов матриц с одинаковыми индексами) и А'( = х'(х'}'.

В настоящее время разработаны прямо-двойственные методы внутренней точки для решения линейных задач полуопределенной оптимизации [2], Ниже рассматриваются более простые алгоритмы решения задачи (1),

Если геометрический объект задан в виде многогранника {х \ Ах < 0. х > 0}, то задача построения эллипсоида минимального объема, содержащего многогранник, значительно усложняется, так как становится МР-сложной [3],

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

шт{||а; - ж*||2 | (х - х°)ТЯ(х - х°) < 1}. (2)

В работе предлагается эффективный алгоритм для решения задачи (2),

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

2, Алгоритмы решения задач компьютерной геометрии

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

mm < Xj \ xjXj = xk, ^ Xj = 1, A > О jei(k) jei(k) jei(k)

для k = l,...,I(k), где I(k) - множество индексов оставшихся точек. Если 0 < max{Aj} < 1, то точку хк можно представить линейной комбинацией других точек, тогда такие точки исключаем из дальнейшего рассмотрения (обновляем множество индексов 1(к)). Пусть число оставшихся точек равно т,.

Разработан простой алгоритм решения задачи (1), когда оси эллипсоида совпадают с осями координат [7]. В этом случае, задача (1) преобразуется к виду

п п ^

log(oj) | o,j{xlj — Xj)2 < 1, г = 1,,,,, гп, а > 0 > , (3)

j=i j=i )

Задача (3) преобразуется к двойственной

max log(uj(z) — v?(z)) \ eTz = 1, г > 01 , (4)

где е - вектор, состоящий из единиц, а

т

»./'(-) = ^2zi{x)f,i = 1 ,...,П,

г=1

т

П.

г=1

Для решения задачи (4) используем метод Франка-Вулфа [8]. Пусть г* - ее решение, тогда искомый эллипсоид имеет вид

п

щиЛг*) — vnz*)) з—1 J

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

i 1

min < ^^(а1 xl — b)2 | ||a|| = 1 > ,

где а1 x = b - искомая гиперплоскость. Вектор а определяет новую ось координат. Остальные оси координат получим, решая следующую последовательность задач

а1 х' — Ь)2 | |\а\| = 1, (а?)'1 а = 0, j = 1,..., /с| , к = 1,..., п — 1.

Ее решение а определяет к-ю ось координат.

После преобразования координат, решаем задачу (4) и дня найденного эллипсоида производим обратное преобразование координат. Разработана программа, реализующая данный алгоритм. Пример работы программы представлен на рис. 1 дня 7 точек

{7,-3; 1,6;-4, 6; 4,1;-2, 5; 1,2;-3,8}. Уравнение эллипсоида имеет вид

0.0103(^1 + 0.641)2 + 0.0367(^-2 - 0.997)2 + 0.0064(х1 + 0.641)(х2 - 0.997) = 1.

mm

i=i

В

Рис. 1. Эллипсоид, содержащий точки

Задаче поиска минимального расстояния между двумя выпуклыми множествами 5*1 и 5*2, посвящено много работ |9, 10|, Она формулируется следующим образом. Найти

гшп{ |\х — у\\х е 5*1, у е 5*2}.

Будем предполагать, что заданы два эллипсоида матрицами н (}■> центрами в точках г1, г2 соответственно. Для поиска минимального расстояния между эллипсоидами Е\(г1) и Е2(г2), рассмотрим следующую модификацию алгоритма [4].

1, Находим точки х1,х2 пересечения отрезка [г1, г2] с границами эллипсоидов Еъ Е2.

2, Вычисляем градиенты д1. //•_> в точках х1,х2 к эллипсоидам . /-.'•_>. Задача поиска минимального расстояния решена, если

гр / ^^в \

^./' .............../' ^ | с.............. тр { 1 — 0. % — 1. 2.

V (-к 9г )

тогда ее решение - отрезок [ж1, ж2] (е - вектор, состоящий из единиц). Определяем центры новых шаров по формулам

- Г_9А о

~ IIQ.II ' '

и переходим к шагу 1, Из сходимости данного алгоритма [4] следует, что скалярные произведения

{9*791) .

1,2

Ы\\Ы\У '

будут убывать, когда к —оо , где д* - градиент в оптимальной точке. Это означает, что скорость сходимости алгоритма можно увеличить, если на втором шаге выбирать градиент в виде д\ + гДе 0.

В других алгоритмах на каждой итерации решается только задача (2), Она может быть решена методом Франка-Вулфа, Более простым является следующий алгоритм поиска минимального расстояния от заданной точки х° до границы эллипсоида (полагаем = )

1, Находим градиент д2 (х1) и решаем задачу

тах{д2х | х е Е2}.

Ее решение достигается в точке

у/9% Я*192

iе i

X = г2 +

12

Проектируем точку х1 на гиперплоскость д2(х — х*) = 0, имеем

1 , 9%{х*-х1)

X = х Л--п—п-д2.

119211

Если точки х и х* не совпадают, то полагаем х1 = (х + х*)/2 и переходим к шагу 1,

В противном случае, проектируем исходную точку х° на гиперплоскость д2(х — х*) = 0, Если проекция хр совпадает с точкой х*, то задача решена, иначе полагаем х1 = (1 — о:)^1 + ахр(0 < а < 1, а —0) и переходим к шагу 1,

На каждой итерации этого алгоритма расстояние между точкой х1 и границей эллипсоида Е-2 убывает. Одновременно убывает расстояние между точкой касания гиперплоскости эллипсоида и проекцией па эту гиперплоскость исходной точки. Поэтому в продело будет найдено решение задачи (2),

Были проведены многочисленные эксперименты но сравнению эффективности этих алгоритмов. Они показали, что скорость сходимости второго алгоритма выше, В примере (см, рис, 2.)

первый алгоритм потребовал более 300 итераций (нахождения шаров) дня заданной точности г = 0,00001, а второй алгоритм потребован 7 решений задачи (2), Минимальный отрезок равен [1,348937, —0.13478; 0,531722, —0.32035].

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

Эта гиперплоскость перпендикулярна отрезку [ж1, ж2] и проходит через его середину. Гиперплоскость а1 х = Ь будет разделять два эллипсоида, если точка максимума а1 х па Е\ и точка минимума па Е-2 .пожать но разные стороны этой гиперплоскости (при условии, что Е\ С {х \ а1 х < Ь}). Это позволяет построить следующий алгоритм разделяющей гиперплоскости

1. Находим точки ./•'. ./•'■' пересечения отрезка [г1, г2] с границами эллипсоидов

2, На к-й итерации вычисляем градиент д в точке х* = (.г1 + х2)/'2 к Ei, если к -нечетно и к Е2, если к - четно.

Ех = {х | 1,2(.Ti - 2)2 + 0,05 (.т - З)2 < 1}, Е2 = {х | (ti + З)2 + 20т2 + 4(ti + 3).т2 < 10},

Рис. 2. Минимальный отрезок, соединяющий эллипсоиды

Ei, Е2.

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

3, Решаем задачи

max{gTa; \ х & Ei} и min{gTx \ х G Е2}.

Пусть х1 и х1 - их решения. Если эти точки лежат по разные стороны гиперплоскости аТ(х — х*) = 0, то эта гиперплоскость разделяющаяя, в противном случае полагаем к = к + 1 и переходим к шагу 2,

В рассмотренном примере на рис, 2 разделяющая гиперплоскость l,078a;i — 0,198x2 = ^0,996 была найдена за три итерации.

Заключение

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

список литературы

1. Препарата Ф. Вычислительная геометрия: Введение / Ф. Препарата, М. Шеймос; пер. с англ. С. А. Вичеса, М. М. Комарова; под. ред. Ю. М. Баяковского. - М. : Наука. - 1989. - 480 с.

2. Todd M.J. Semidefinite optimization / M. J. Todd // Acta Numerica. - 2001. - 10. - P. 515-560.

3. Goton J. Minimal ellipsoid circumscribing a polytope define by a system of linear inequalities / J. Goton, H. Konno. - University of Tsukuba. 2004. - 12 p.

4. Lin A. On the distance between two ellipsoids / A. Lin, S.-P. Han. //SIAM Journal of Optimization -2002. - 13. - P. 298-308.

5. Boyd S. Convex Optimization / S. Boyd, L. Vandenberghe. - Cambridge University Press. Cambridge. UK. - 2004. - 730 p.

6. Wang W. An algebraic condition for the separation of two ellipsoids / W. Wang, J. Wang, M.-S. Kim //Сотр. Aided Geom. Design. - 2001. - 18(6). - P. 531-539.

7. Kumar P. Computing Minimum-Volume Enclosing Axis-Aligned Ellipsoids / P. Kumar, E. A. Yildirim //J. Optim. Theory Appl. - 2008. - 136. - P. 211-228.

8. Мину M. Математическое программирование. Теория и алгоритмы / М. Мину; пер. с франц. А.И. Штерна. - М.: Наука. - 1990. - 488 с.

9. Cameron S. A comparison of two fast algorithms for computing the distance between convex polyhedral / S. Cameron // IEEE Trans. Robot. Automat. - 1997. - vol. 13, no. 6. - P. 915-920.

10. Jimenez P., Thomas F., Torras C. 3D collision detection: A survey / P. Jimenez, F. Thomas, C. Torras // Computers and Graphics. - 2001. - 25(2). - P. 269-285.

Статья поступила в редакцию 19.04-2010

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