Задача о динамической выпуклой оболочке — это класс динамических задач в вычислительной геометрии . Задача состоит в поддержании, т. е. отслеживании, выпуклой оболочки для входных данных, претерпевающих последовательность дискретных изменений, т. е. когда элементы входных данных могут быть вставлены, удалены или изменены. Ее следует отличать от кинетической выпуклой оболочки , которая изучает аналогичные задачи для непрерывно движущихся точек. Задачи о динамической выпуклой оболочке можно различать по типам входных данных и разрешенным типам модификации входных данных.
Легко построить пример, для которого выпуклая оболочка содержит все входные точки, но после вставки одной точки выпуклая оболочка становится треугольником. И наоборот, удаление одной точки может привести к противоположному радикальному изменению размера выходных данных. Поэтому, если выпуклая оболочка должна быть представлена традиционным способом как многоугольник, нижняя граница для наихудшей вычислительной сложности повторного вычисления выпуклой оболочки равна , поскольку это время требуется для простого представления выходных данных. Эта нижняя граница достижима, поскольку несколько универсальных алгоритмов выпуклой оболочки работают за линейное время, когда входные точки упорядочены каким -либо образом, а методы логарифмического времени для динамического поддержания упорядоченных данных хорошо известны.
Эту проблему можно преодолеть, устранив ограничение на выходное представление. Существуют структуры данных, которые могут поддерживать представления выпуклой оболочки за время на обновление, которое намного меньше линейного. В течение многих лет лучшим алгоритмом этого типа был алгоритм Овермарса и ван Лиувена (1981), который занимал время O(log 2 n ) на обновление, но с тех пор он был улучшен Тимоти М. Чаном и другими.
В ряде приложений нахождение выпуклой оболочки является шагом в алгоритме решения общей задачи. Выбранное представление выпуклой оболочки может влиять на вычислительную сложность дальнейших операций общего алгоритма. Например, запрос точки в многоугольнике для выпуклого многоугольника, представленного упорядоченным набором его вершин, может быть дан за логарифмическое время, что было бы невозможно для выпуклых оболочек, сообщаемых набором его вершин без какой-либо дополнительной информации. Поэтому некоторые исследования динамических алгоритмов выпуклой оболочки включают вычислительную сложность различных геометрических задач поиска с выпуклыми оболочками, хранящимися в определенных видах структур данных. Упомянутый подход Овермарса и ван Лиувена допускает логарифмическую сложность различных общих запросов.