Quickhull is an algorithm for computing the convex hull of points in a plane that performs well in practice, but has poor complexity on adversarial input. In this paper we show the same holds for the numerical stability of Quickhull.
Quickhull — это алгоритм для вычисления выпуклой оболочки конечного множества точек на плоскости, который показывает хорошие результаты на практике, но имеет плохую сложность на враждебных входных данных. В данной работе доказано, что численная устойчивость Quickhull обладает аналогичными характеристиками.
Основная проблема, решаемая в данном исследовании, — анализ численной устойчивости алгоритма Quickhull. Хотя Quickhull показывает отличные результаты на практике с типичным временем выполнения O(|P| log |CH(P)|), его наихудшая сложность составляет O(|P|²).
Практические требования: Вычисление выпуклой оболочки — фундаментальная задача вычислительной геометрии с широким применением в компьютерной графике, робототехнике и других областях
Проблемы численной точности: В практических вычислениях из-за ограничений точности чисел с плавающей точкой и ошибок измерения невозможно получить точное решение, поэтому необходим анализ численной устойчивости алгоритма
Теоретический пробел: Хотя анализ численной устойчивости — зрелая область в математике, он ещё не применялся к алгоритму Quickhull
Определение метрики ошибки: Определена метрика неточности для задачи выпуклой оболочки с соответствующим анализом возмущений
Теоретические границы ошибок: Доказано, что алгоритм Quickhull имеет границу прямой ошибки O(|P|²ε), где ε — машинная точность
Вероятностный анализ: Предоставлено вероятностное обоснование, показывающее, что на практике граница ошибки более вероятно растёт пропорционально log(|CH(P)|)ε
Улучшение алгоритма: Предложены два варианта Quickhull, снижающие наихудшую границу ошибки до O(√|P| log(|P|)ε) или O((log |P|)²ε)
Входные данные: Конечное множество точек P ⊆ ℝ² на плоскости
Выходные данные: Вершины выпуклой оболочки, перечисленные в порядке по часовой (или против часовой) стрелке
Цель: Анализ численной устойчивости алгоритма, то есть границы ошибки между вычисленным и истинным решением
Неправильно классифицированные точки надлежащим образом смещаются
Сохраняется граница dM(P̃,P) ≤ F|P|
Ошибка распространяется с использованием хорошей обусловленности задачи выпуклой оболочки
Данная статья предоставляет первый систематический теоретический анализ численной устойчивости алгоритма Quickhull, достигая хорошего баланса между теоретической строгостью и практической ценностью. Хотя некоторые выводы зависят от вероятностных предположений, общая структура анализа имеет важное академическое значение и практическое применение.