В математике дано непустое множество объектов конечного расширения в -мерном пространстве , например, набор точек, ограничивающая сфера , охватывающая сфера или охватывающий шар для этого набора является -мерной твердой сферой, содержащей все эти объекты.
Ограничивающая сфера, используемая в компьютерной графике и вычислительной геометрии , представляет собой особый тип ограничивающего объема . Существует несколько быстрых и простых алгоритмов построения ограничивающей сферы, имеющих высокую практическую ценность в приложениях компьютерной графики в реальном времени. [1]
В статистике и исследованиях операций объекты обычно являются точками, и обычно сфера интереса - это минимальная ограничивающая сфера , то есть сфера с минимальным радиусом среди всех ограничивающих сфер. Можно доказать, что такая сфера уникальна: если их два, то рассматриваемые объекты лежат в пределах их пересечения. Но пересечение двух несовпадающих сфер равного радиуса содержится в сфере меньшего радиуса.
Проблема вычисления центра минимальной ограничивающей сферы также известна как «невзвешенная проблема евклидова 1-центра ».
Такие сферы полезны при кластеризации , когда группы одинаковых точек данных классифицируются вместе.
В статистическом анализе рассеяние из точек данных в пределах сферы может быть отнесено к ошибкам измерения или естественным (обычно тепловым процессам), в каковом случае кластер представляет собой возмущение точки идеала. В некоторых случаях эта идеальная точка может использоваться вместо точек в кластере, что позволяет сократить время вычислений.
В исследовании операций кластеризация значений до идеальной точки также может использоваться для уменьшения количества входных данных с целью получения приблизительных значений для NP-сложных задач за разумное время. Выбранная точка обычно не является центром сферы, так как это может быть смещено из-за выбросов, но вместо этого вычисляется некоторая форма среднего местоположения, такая как точка наименьших квадратов, для представления кластера.
Существуют точный и приближенный алгоритмы решения задачи об ограничивающей сфере.
Нимрод Мегиддо всесторонне изучал проблему одного центра и публиковал по ней по крайней мере пять раз в 1980-х годах. [2] В 1983 году он предложил алгоритм « отсечения и поиска », который находит оптимальную ограничивающую сферу и работает за линейное время, если размерность фиксирована как константа. Когда учитывается размерность, сложность времени выполнения непрактична для приложений большой размерности. Мегиддо использовал этот подход линейного программирования в линейном времени, когда размерность фиксирована.
В 1991 году Эмо Вельцль предложил гораздо более простой рандомизированный алгоритм, основанный на расширении алгоритма рандомизированного линейного программирования Раймундом Зайделем . Он работает с ожидаемым линейным временем. В статье представлены экспериментальные результаты, демонстрирующие его практичность в более высоких измерениях. [3]
Библиотека алгоритмов вычислительной геометрии (CGAL) с открытым исходным кодом содержит реализацию этого алгоритма. [4]
В 1990 году Джек Риттер предложил простой алгоритм поиска неминимальной ограничивающей сферы. [5] Он широко используется в различных приложениях из-за своей простоты. Алгоритм работает так:
Алгоритм Риттера работает во времени на входах, состоящих из точек в -мерном пространстве, что делает его очень эффективным. Однако это дает только грубый результат, который обычно на 5-20% больше оптимального. [ необходима цитата ]
Bădoiu et al. представили приближение к проблеме ограничивающей сферы [6], где приближение означает, что построенная сфера имеет радиус не более , где - наименьший возможный радиус ограничивающей сферы.
Coreset небольшое подмножество, что разложение решения на подмножестве является ограничивающей сфера всей совокупности. Базовый набор создается постепенно путем добавления самой дальней точки в набор на каждой итерации.
Kumar et al. улучшил этот алгоритм аппроксимации [7], чтобы он работал во времени .
Fischer et al. (2003) предложили точный решатель, хотя алгоритм не имеет полиномиального времени работы в худшем случае. [8] Алгоритм чисто комбинаторные и реализует схему поворотное аналогично симплекс - метода для линейного программирования, ранее использовавшийся в некоторых эвристиках. Он начинается с большой сферы, которая покрывает все точки и постепенно сжимается до тех пор, пока не станет невозможной. Алгоритм содержит правильные правила завершения в случаях вырождения, упущенного предыдущими авторами; и эффективное управление частичными решениями, что значительно ускоряет работу. Авторы подтвердили, что алгоритм эффективен на практике в малых и умеренно малых (до 10 000) измерениях, и утверждают, что он не проявляет проблем с числовой стабильностью при операциях с плавающей запятой. [8] Реализация алгоритма на C ++ доступна как проект с открытым исходным кодом. [9]
Ларссон (2008) предложил метод «оптимальной сферы с экстремальными точками» с управляемым приближением скорости к точности для решения задачи об ограничивающей сфере. Этот метод работает, беря набор векторов направления и проецируя все точки на каждый вектор в ; служит компромиссной переменной скорости и точности. К экстремальным точкам этих проекций применяется точный решатель . Затем алгоритм перебирает оставшиеся точки, если таковые имеются, при необходимости увеличивая сферу. Для больших этот метод на порядки быстрее точных методов, но дает сопоставимые результаты. Это худшее время . [1]