Выпуклый слой (вычислительная геометрия)![]() Вы́пуклый слой[комм 1] непустого конечного множества точек на плоскости — все точки этого множества, лежащие на границе его выпуклой оболочки, то есть вершины самого большого по площади выпуклого многоугольника (или концы отрезка, когда все точки лежат на одной прямой) с вершинами в точках множества[1][2][3][4][5]. Синонимы: первый выпуклый слой[1][5]. В соответствии с общепринятой практикой не только собственно выпуклая оболочка , но также и её граница называются выпуклой оболочкой, а выпуклая оболочка обозначаться [6]. Второй выпуклый слой — выпуклый слой множества точек после удаления первого выпуклого слоя. Третий выпуклый слой — выпуклый слой множества точек после удаления первого и второго выпуклых слоёв. И так далее, пока в слоях есть точки. Формальное определение выпуклых слоёв дано ниже[1][2][4]. Выпуклые слои плоского множества из точек можно найти за оптимальное время [7][2]. Выпуклые слои — один из двух способов разложить всё точечное множество на непересекающиеся слои. Другой способ — максимальные слои[1][5]. ![]() Набор всех выпуклых слоёв плоского множества можно сравнить с разложением луковицы на слои[8]. Луковое разложение[комм 1], или луковица[комм 1], множества точек — множество всех выпуклых слоёв этого множества точек[4][3]. Шелушение[комм 1], или лущение[комм 1], множества точек — процесс представления этого множества в виде луковицы[4][8]. Общее положение исходного множества точек заключается в том, что все его точки различны и никакие три точки не лежат на одной прямой. Если количество точек исходного множества в общем положении больше 2, то среди его выпуклых слоёв имеется по крайней мере один выпуклый двумерный многоугольник[5]. Обычно в статьях по вычислительной геометрии подразумевается именно это общее положение множества точек[1][2][3][4][5]. Понятие выпуклых слоёв множества точек можно рассматривать как естественное и более робастное обобщение понятия выпуклой оболочки[2][4]. Концепция выпуклых слоёв имеет приложения, например, к распознаванию образов и статистике , а также в контексте метода частичного каскадирования[англ.] — задаче отчёта о диапазоне[англ.] полуплоскости[2][4]. Формальное определение![]() Формальное определение выпуклых слоёв[комм 1] — рекурсивное с использованием обозначений[1]. Первый выпуклый слой множества из точек на плоскости состоит из точек , лежащих на границе выпуклой оболочки этого множества. Пусть и множество , , — это точки множества без всех точек выпуклых слоёв с номерами . Тогда -й выпуклый слой состоит из точек , лежащих на границе выпуклой оболочки , если множество точек ; иначе слой не определён[1][4][5]. В соответствии с общепринятой практикой не только собственно выпуклая оболочка , но также и её граница называются выпуклой оболочкой, а выпуклая оболочка может обозначаться [6]. Луковое разложение[комм 1], или луковица[комм 1], множества точек — множество всех выпуклых слоёв этого множества точек[4][3]. Шелушение[комм 1], или лущение[комм 1], множества точек — процесс представления этого множества в виде луковицы [4][8]. Общее положение исходного множества точек заключается в том, что все его точки различны и никакие три точки не лежат на одной прямой. Если количество точек исходного множества в общем положении больше 2, то среди его выпуклых слоёв имеется по крайней мере один выпуклый двумерный многоугольник[5]. Обычно в статьях по вычислительной геометрии подразумевается именно это общее положение множества точек. Тогда выпуклый слой множества — вершины самого большого по вложенности выпуклого многоугольника с вершинами в точках множества[1][2][3][4][5]. Свойства луковицыКоличество слоёв лукового разложения множества точек — число такое, что , но [4]:
![]() ![]() Обозначим через количество точек в слое , а через
количество точек «толстого слоя»
получается, что , [5]. Предложение 1. Если множество точек находится в общем положении, то есть все его точки различны и никакие три точки не лежат на одной прямой, то [5]. Вычисление первых выпуклых слоев плоского множества точек в общем положении имеет многочисленные приложения, например, используется в качестве первого шага при вычислении[5]:
-множество, или -уровень, заданного множества — пересечение множества с некоторой полуплоскостью , , такое, что количество элементов множества [5]. -оболочка, или -пояс, заданного множества — множество точек такое, что для любой прямой, проходящей через , в каждой из двух замкнутых полуплоскостей, определяемых этой прямой, есть по крайней мере точек из [5]. Предложение 2. Из определения следует, что -оболочка содержит множество точек [5]. Эквивалент сортировкеКроме практической значимости, проблема определения выпуклых слоёв множества точек интересна сама по себе как геометрический «эквивалент» сортировке. Различные алгоритмы вычисления выпуклой оболочки множества точек позволяют провести параллель с различными алгоритмами сортировки[2]:
Теорема 1. Выпуклые слои плоского множества из точек можно построить за время по любой вычислительной модели такой, что в ней сортировка вещественных чисел занимает время [1][2]. Но вычисление выпуклых оболочек проще, чем сортировка, поскольку выход алгоритма вычисления оболочки может содержать лишь небольшую часть исходных точек, тогда как алгоритм сортировки выдаёт все точки. Один из способов преодоления этого разрыва в сложности — требование вычисления всех выпуклых слоёв множества точек, так как тогда не получится воспользоваться возможной нехваткой выходных данных для ограничения временно́й сложности задачи[2]. Робастное оценивание в статистикеГеометрия и статистика тесно взаимосвязаны, поскольку многомерные статистические данные можно представить точками в евклидовом пространстве. В такой постановке задачи статистики превращаются в чисто геометрические задачи. Например, в некоторых задачах статистики базовый алгоритм — поиск выпуклой оболочки[9]. Основная задача в статистике, согласно Ф. Препарата и М. Шеймоса[англ.][10], — оценивание параметров данной популяции, например, средние значения, на основе малой случайной выборки. Хорошая статистическая оценка обладает робастностью (устойчивостью), то есть слабой зависимостью от отклонения от моделируемого распределения популяции. Методы такой оценки основаны на концепции, когда наибольшее доверие заслуживают данные, наиболее близкие к «центру» выборки[10]. Для обеспечения такой робастности удаляются периферийные точки, чтобы удалить предполагаемые выбросы, то есть наблюдения, существенно выпадающие из основной массы. Известен алгоритм под названием «лущение» или «шелушение», заключающийся в удалении выпуклой оболочки множества точек, затем снова в удалении выпуклой оболочки оставшегося множества, и так до некоторого предела, при таком подходе возникло понятие глубины множества[8][2]. Глубина точки множества точек на плоскости — номер выпуклого слоя, к которому принадлежит точка [8]. Глубина множества точек на плоскости — глубина его самой глубокой точки , то есть количество непустых выпуклых слоёв[8]. Отсюда возникает следующая геометрическая проблема, которая имеет и самостоятельный интерес[8]. Проблема 1 (глубина множества). Найти глубину каждой точки множества на плоскости[8]. Теорема 1. Произвольному алгоритму, вычисляющему глубину каждой точки плоского множества из точек, требуется сравнений в худшем случае[11]. Теорема 2. Выпуклые слои плоского множества из точек, а заодно и глубину множества , можно найти за оптимальное время [7][2]. Поиск в полуплоскости![]() Поиск в полуплоскости точек — один из типов задачи регионального поиска, когда ищутся все точки данного множества, лежащие в полуплоскости запроса[12]. Для упрощения поиска на плоскости точек данного множества , лежащих в полуплоскости запроса , сначала ищется множество выпуклых слоёв
Пусть теперь — граница . Предположим также, что пересекает , то есть полуплоскость содержит по крайней мере одну точку множества ; в противном случае задача тривиальна: либо в нет точек из , либо они все в полуплоскости. Определяем по очереди, пересекает ли прямая слои , и собираем вершины слоёв, лежащие в . Процесс обрывается, когда не пересекает . Это означает, что вместе с последующими слоями полуплоскость либо не содержит ни одной точки слоя , либо содержит их все. Можно доказать, что множество оболочек , пересекаемых , образует начало последовательности . Пусть — это те слои, которые пересекает . Тогда слой называется соседним слоем прямой [13]. ПримечанияКомментарииИсточники
Литература
|
Portal di Ensiklopedia Dunia