В дискретной геометрии непрозрачный набор — это система кривых или другой набор на плоскости , которая блокирует все линии видимости через многоугольник , круг или другую форму. Непрозрачные наборы также называются барьерами , детекторами лучей , непрозрачными покрытиями или (в случаях, когда они имеют форму леса из отрезков линий или других кривых) непрозрачными лесами . Непрозрачные наборы были введены Стефаном Мазуркевичем в 1916 году [1] , а проблема минимизации их общей длины была поставлена Фредериком Багемилом в 1959 году [2].
Например, видимость через единичный квадрат может быть заблокирована его четырьмя граничными ребрами с длиной 4, но более короткий непрозрачный лес блокирует видимость через квадрат с длиной . Не доказано, является ли это кратчайшим возможным непрозрачным множеством для квадрата, и для большинства других форм эта проблема также остается нерешенной. Кратчайшее непрозрачное множество для любого ограниченного выпуклого множества на плоскости имеет длину не более периметра множества и не менее половины периметра. Для квадрата известна немного более сильная нижняя граница, чем половина периметра. Другим выпуклым множеством, непрозрачные множества которого обычно изучаются, является единичный круг , для которого кратчайшее связное непрозрачное множество имеет длину . Без предположения связности кратчайшее непрозрачное множество для круга имеет длину не менее и не более .
Несколько опубликованных алгоритмов, претендующих на нахождение кратчайшего непрозрачного множества для выпуклого многоугольника , позднее оказались неверными. Тем не менее, можно найти непрозрачное множество с гарантированным отношением аппроксимации за линейное время или вычислить подмножество плоскости, видимость которого заблокирована заданной системой отрезков прямых, за полиномиальное время .
Каждое множество в плоскости блокирует видимость через надмножество , его покрытие . состоит из точек, для которых все линии, проходящие через точку, пересекаются . Если данное множество образует подмножество покрытия , то оно называется непрозрачным множеством , барьером , детектором луча или непрозрачным покрытием для . Если, кроме того, имеет специальную форму, состоящую из конечного числа отрезков прямых , объединение которых образует лес , оно называется непрозрачным лесом . Существует множество возможных непрозрачных множеств для любого данного множества , включая его самого, и множество возможных непрозрачных лесов. Для непрозрачных лесов или, в более общем смысле, для систем спрямляемых кривых их длина может быть измерена стандартным способом. Для более общих множеств точек может быть использована одномерная мера Хаусдорфа , которая согласуется со стандартной длиной в случаях отрезков прямых и спрямляемых кривых. [3]
Большинство исследований этой проблемы предполагает, что заданное множество является выпуклым множеством . Когда оно не выпуклое, а просто связное множество , его можно заменить его выпуклой оболочкой, не меняя его непрозрачных множеств. Некоторые варианты проблемы ограничивают непрозрачное множество тем, что оно лежит полностью внутри или полностью снаружи . В этом случае оно называется внутренним барьером или внешним барьером соответственно. Когда это не указано, предполагается, что барьер не имеет ограничений на свое местоположение. Также рассматривались версии проблемы, в которых непрозрачное множество должно быть связным или образовывать одну кривую. Неизвестно, имеет ли каждое выпуклое множество кратчайшее непрозрачное множество, или же вместо этого длины его непрозрачных множеств могут приближаться к инфимуму, никогда не достигая его. [3] Каждое непрозрачное множество для может быть сколь угодно близко аппроксимировано по длине непрозрачным лесом, [4] и было высказано предположение, что каждый выпуклый многоугольник имеет непрозрачный лес в качестве своего кратчайшего непрозрачного множества, но это не было доказано. [3]
Когда область, которую нужно покрыть, является выпуклым множеством , длина ее самого короткого непрозрачного множества должна быть не менее половины ее периметра и не более ее периметра. Для некоторых областей можно сделать дополнительные улучшения этих границ.
Если — ограниченное выпуклое множество, которое должно быть покрыто, то его граница образует непрозрачное множество, длина которого равна периметру . Следовательно, кратчайшая возможная длина непрозрачного множества не превышает периметра. Для множеств , которые являются строго выпуклыми, что означает, что на границе нет отрезков прямых, и для внутренних барьеров эта граница является жесткой. Каждая точка на границе должна содержаться в непрозрачном множестве, поскольку каждая граничная точка имеет касательную линию, проходящую через нее, которая не может быть заблокирована никакими другими точками. [5] Те же рассуждения показывают, что для внутренних барьеров выпуклых многоугольников все вершины должны быть включены. Следовательно, минимальное дерево Штейнера вершин является кратчайшим связным непрозрачным множеством, а путь коммивояжера вершин является кратчайшим непрозрачным множеством с одной кривой . [4] Однако для внутренних барьеров неполигональных выпуклых множеств, которые не являются строго выпуклыми, или для барьеров, которые не обязательно должны быть связаны, другие непрозрачные множества могут быть короче; например, всегда можно опустить самый длинный линейный сегмент границы. В этих случаях периметр или длина дерева Штейнера обеспечивают верхнюю границу длины непрозрачного множества. [3] [4]
Существует несколько доказательств того, что непрозрачное множество для любого выпуклого множества должно иметь общую длину не менее , половины периметра. Одно из самых простых включает формулу Крофтона , согласно которой длина любой кривой пропорциональна ее ожидаемому числу точек пересечения со случайной линией из соответствующего распределения вероятностей на линиях. Удобно упростить задачу, аппроксимируя строго выпуклым надмножеством, которое может быть выбрано так, чтобы иметь периметр произвольно близко к исходному множеству. Тогда, за исключением касательных линий к (которые образуют исчезающую долю всех линий), пересекающая линия пересекает ее границу дважды. Следовательно, если случайная линия пересекается с вероятностью , ожидаемое число пересечений границы равно . Но каждая пересекающая линия пересекает свое непрозрачное множество, поэтому ожидаемое число пересечений с непрозрачным множеством равно не менее , что составляет не менее половины для . По формуле Крофтона длины границы и барьера имеют ту же пропорцию, что и эти ожидаемые числа. [6]
Эта нижняя граница длины непрозрачного множества не может быть улучшена так, чтобы иметь больший постоянный множитель, чем 1/2, потому что существуют примеры выпуклых множеств, которые имеют непрозрачные множества, длина которых близка к этой нижней границе. В частности, для очень длинных тонких прямоугольников одна длинная сторона и две короткие стороны образуют барьер, общая длина которого может быть сделана произвольно близкой к половине периметра. Поэтому среди нижних границ, которые учитывают только периметр области покрытия, граница является наилучшей возможной. [6] Однако приближение к таким образом подразумевает рассмотрение последовательности фигур, а не только одной фигуры, потому что для любого выпуклого множества , которое не является треугольником, существует такое , что все непрозрачные множества имеют длину не менее . [7]
Для треугольника , как и для любого выпуклого многоугольника, кратчайшим связным непрозрачным множеством является его минимальное дерево Штейнера. [8] В случае треугольника это дерево можно описать явно: если самый широкий угол треугольника равен (120°) или больше, оно использует два самых коротких ребра треугольника, а в противном случае оно состоит из трех отрезков от вершин до точки Ферма треугольника. [9] Однако, без предположения связности, оптимальность дерева Штейнера не была продемонстрирована. Изуми доказал небольшое улучшение нижней границы деления периметра пополам для равностороннего треугольника . [10]
Для единичного квадрата периметр равен 4, периметр за вычетом самого длинного ребра равен 3, а длина минимального дерева Штейнера равна . Однако известен более короткий, несвязный непрозрачный лес длиной . Он состоит из минимального дерева Штейнера из трех вершин квадрата вместе с отрезком прямой, соединяющим четвертую вершину с центром. Росс Хонсбергер приписывает свое открытие Морису Пуарье, канадскому школьному учителю, [11] но оно уже было описано в 1962 и 1964 годах Джонсом. [12] [13] Известно, что оно оптимально среди лесов, состоящих всего из двух компонентов, [5] [14] и, как предполагалось, является наилучшим из возможных в более общем плане, но это остается недоказанным. [7] Нижняя граница 2, уменьшающая периметр вдвое для квадрата, уже доказанная Джонсом [12] [13], может быть немного улучшена до , для любого барьера, состоящего из не более чем счетного числа спрямляемых кривых , [7] улучшая аналогичные предыдущие границы, которые ограничивали размещение барьера только вблизи заданного квадрата. [6]
Случай единичной окружности был описан в колонке Scientific American 1995 года Яном Стюартом с решением длиной , [15] оптимальным для одной кривой или связанного барьера [8] [16] [17] но не для непрозрачного леса с несколькими кривыми. Вэнс Фабер и Ян Мычельски приписывают это решение с одной кривой Менахему Магидору в 1974 году. [8] К 1980 году Э. Макай уже предоставил лучшее трехкомпонентное решение с длиной приблизительно , [18] переоткрытое Джоном Дэем в продолжении колонки Стюарта. [19] Неизвестная длина оптимального решения была названа константой обнаружения луча . [20]
Два опубликованных алгоритма утверждают, что генерируют оптимальный непрозрачный лес для произвольных многоугольников, основываясь на идее, что оптимальное решение имеет особую структуру: дерево Штейнера для одного треугольника в триангуляции многоугольника и сегмент в каждом оставшемся треугольнике от одной вершины до противоположной стороны, длиной, равной высоте треугольника. Эта структура соответствует предполагаемой структуре оптимального решения для квадрата. Хотя оптимальная триангуляция для решения этой формы не является частью входных данных для этих алгоритмов, она может быть найдена алгоритмами за полиномиальное время с помощью динамического программирования . [21] [22] Однако эти алгоритмы не решают правильно задачу для всех многоугольников, потому что некоторые многоугольники имеют более короткие решения с другой структурой, чем те, которые они находят. В частности, для длинного тонкого прямоугольника минимальное дерево Штейнера из всех четырех вершин короче, чем решение на основе триангуляции, которое находят эти алгоритмы. [23] Ни один известный алгоритм не был гарантированно найден для правильного решения задачи, независимо от времени его выполнения. [3]
Несмотря на эту неудачу, кратчайший барьер из одной кривой выпуклого многоугольника, который является путем коммивояжера его вершин, может быть точно вычислен за полиномиальное время для выпуклых многоугольников с помощью алгоритма динамического программирования в моделях вычислений, для которых суммы радикалов могут быть вычислены точно. [4] Также было проведено более успешное исследование алгоритмов приближения для этой задачи и для определения покрытия заданного барьера.
Согласно общим границам для длины непрозрачного леса в терминах периметра, периметр выпуклого множества приближает его кратчайший непрозрачный лес с точностью до коэффициента два по длине. В двух работах Думитреску, Цзян, Пач и Тот предлагают несколько алгоритмов аппроксимации с линейным временем для кратчайшего непрозрачного множества для выпуклых многоугольников с лучшими коэффициентами аппроксимации , чем два:
Кроме того, поскольку кратчайший связный внутренний барьер выпуклого многоугольника задается минимальным деревом Штейнера, он имеет схему аппроксимации с полиномиальным временем . [4]
Территорию, занимаемую данным лесом, можно определить следующим образом:
Если вход состоит из отрезков линий, образующих связные компоненты, то каждый из наборов состоит не более чем из клиньев. Из этого следует, что комбинаторная сложность области покрытия и время ее построения выражаются в нотации O big . [25]
Хотя этот алгоритм оптимален в худшем случае для входных данных, область покрытия которых имеет комбинаторную сложность, соответствующую этой границе, на практике его можно улучшить эвристически с помощью фазы предварительной обработки, которая объединяет перекрывающиеся пары оболочек до тех пор, пока все оставшиеся оболочки не станут непересекающимися, за время . Если это сводит входные данные к одной оболочке, более дорогой алгоритм подметания и пересечения не нужно запускать: в этом случае оболочка является областью покрытия. [26]
Мазуркевич (1916) показал, что непрозрачное множество может не содержать нетривиальных кривых и при этом иметь конечную общую длину. [1] Упрощенная конструкция Багемила (1959), показанная на рисунке, дает пример для единичного квадрата. Построение начинается с отрезков прямых, которые образуют непрозрачное множество с дополнительным свойством: отрезки отрицательного наклона блокируют все линии неотрицательного наклона, в то время как отрезки положительного наклона блокируют все линии неположительного наклона. На рисунке начальные отрезки с этим свойством представляют собой четыре непересекающихся отрезка вдоль диагоналей квадрата. Затем он многократно подразделяет эти отрезки, сохраняя это свойство. На каждом уровне построения каждый отрезок прямой разделяется небольшим зазором около своей середины на два отрезка прямой с наклоном того же знака, которые вместе блокируют все линии противоположного знака, которые были заблокированы исходным отрезком прямой. Предельное множество этой конструкции — пространство Кантора , которое, как и все промежуточные этапы конструкции, является непрозрачным множеством для квадрата. При быстром уменьшении размеров зазоров конструкция производит множество, размерность Хаусдорфа которого равна единице, а одномерная мера Хаусдорфа (понятие длины, подходящее для таких множеств) конечна. [2]
Множества расстояний границы квадрата или четырехсегментного кратчайшего известного непрозрачного множества для квадрата содержат все расстояния в интервале от 0 до . Однако, используя аналогичные фрактальные конструкции, также можно найти фрактальные непрозрачные множества, чьи множества расстояний исключают бесконечно много расстояний в этом интервале, или которые (предполагая гипотезу континуума ) образуют множество меры ноль . [2]
Непрозрачные множества были первоначально изучены Стефаном Мазуркевичем в 1916 году. [1] Другие ранние работы по непрозрачным множествам включают статьи HM Sen Gupta и NC Basu Mazumdar в 1955 году, [27] и Фредерика Багемила в 1959 году, [2] но они в основном о расстояниях множеств и топологических свойствах барьеров, а не о минимизации их длины. В постскриптуме к своей статье Багемил спросил о минимальной длине внутреннего барьера для квадрата, [2] и последующая работа в основном была сосредоточена на версиях задачи, включающих минимизацию длины. Они неоднократно ставились с несколькими красочными формулировками: рытье траншеи как можно меньшей длины, чтобы найти прямой зарытый телефонный кабель, [8] попытка найти близлежащую прямую дорогу, заблудившись в лесу, [17] плавание к прямой береговой линии, заблудившись в море, [4] эффективная покраска стен, чтобы сделать стеклянный дом непрозрачным, [28] и т. д.
Проблема также была обобщена на множества, которые блокируют все геодезические на римановом многообразии , [29] [30] или которые блокируют линии через множества в более высоких размерностях. В трех измерениях соответствующий вопрос требует набора поверхностей минимальной общей площади, который блокирует всю видимость через твердое тело. Однако для некоторых твердых тел, таких как шар, неясно, существует ли такой набор, или вместо этого площадь имеет инфимум , который не может быть достигнут. [8] [31]