Разделение предварительно обработанного многогранника и плоскости


14

У меня есть серьезные проблемы с пониманием одного шага в статье Добкина и Киркпатрика о разделении многогранников. Я пытаюсь понять эту версию: http://www.cs.princeton.edu/~dpd/Papers/SCG-09-invited/old%20papers/DPD+Kirk.pdf

Он утверждает, что после того, как мы знаем лучшее разделение и , реализованное с помощью и , мы можем найти лучшее разделение и за шагов. Это делается следующим образом. Мы берем плоскость, параллельную через и разрезаем на две части. С одной стороны, ближайшая точка к - это а с другой стороны у нас есть «элементарный» многогранник, который мы можем проверить за раз. Моя проблема - как нам найти этот элементарный многогранник? Обратите внимание, что степень S r i sPiSriP i - 1 SsiPi1SO(1)SriPi1SriO(1)riв может быть неограниченным.Pi1

В PDF, чтобы доказать Thm 5.1 со страницы 9, они используют Thm 3.1 со страницы 4, что усложняет задачу.


Мне действительно интересно, что если я предлагаю вознаграждение, в описании которого я говорю, что ответ Джеффа мне не ясен, и в комментарии к его ответу я указываю свою проблему с ним, то почему люди продолжают отказываться от ответа на него, не отвечая на мой вопрос? Кроме того, мне интересно, получит ли его ответ награду автоматически?
Домоторп

upvote указывает, что ответ дает что-то ценное, что он и сделал! просто не совсем то, что вы хотели. действительно, ответ, который вам нужен, кажется, является уточнением общего предложения. Кроме того, зачем беспокоиться о чьих-то возражениях?
Суреш Венкат

Ответы:


6

Ответ обновлен и переписан с нуля.

Вам предоставляется многогранник . Запуск Добкин-Kirkpatric иерархии на P. Это дает последовательность многогранников P 1P 2... P к = P . Предположим, вы хотите найти ближайшую точку на P к точке запроса q . Основные начинается алгоритм вычисления по ближайшей точке гр 1 к ц на P 1 , то он считает , что все новые регионы (палатки) , прилегающие к C 1 , найти ближайшую точку гр 2 к цPP1P2Pk=PPqc1qP1c1c2qв этих новых регионах, и продолжайте в том же духе, пока мы не достигнем .Pk

Теперь, если находится на краю, тогда нет никаких проблем - только две палатки могут касаться этого края, или только одна из них может покрывать край. Таким образом, обновление c i + 1 от C i в этом случае занимает постоянное время.cici+1Ci

Поэтому проблема в том, что когда лежит в вершине высокой степени, потому что тогда число новых палаток, смежных с ней, при переходе к P i + 1 может быть большим. Чтобы преодолеть это, мы собираемся смоделировать вершину большой степени как набор вершин, имеющих низкую степень. В частности, на каждом этапе, если c i лежит в вершине v , мы будем помнить два последовательных ребра e i , e i, смежных с v , так что ближайшая точка к q в P i + 1ciPi+1civei,eivqPi+1лежит на палатке, которая либо смежна, либо покрывает один из этих двух краев. Таким образом, мы можем выполнять необходимые вычисления за постоянное время.

Таким образом, мы остаемся с проблемой того, как отслеживать эти два края, когда мы поднимаемся.

Для этого предварительно вычислите для каждой вершины из P касательное направление t v . Пусть Q i ( v ) - выпуклый многоугольник, который является вершиной v для многоугольника P i (плоскость, определяющая вершину, имеет нормаль в направлении t v ). Концептуально, Q 1 ( v ) , Q 2 ( v ) , . , , , Q k ( v )vPtvQi(v)vPitvQ1(v),Q2(v),...,Qk(v)ведет себя как 2d иерархия DK. Если ближайшая точка на к q лежит на вершине w, то это соответствует v и смежному ребру e в P i , где ребро e пересекает плоскость фигуры вершины в точке w . Если ближайшая точка на Q i ( v ) к q лежит на ребре e , то вы помните два смежных ребра P i, которые определяют две вершины e (здесьQi(v)qwvePiewQi(v)qePie принадлежит Q i ( v ) ).eQi(v)

И теперь мы закончили ... Действительно, если также находится на Q i + 1 ( v ), то мы можем обновить его за постоянное время (так как это просто 2d иерархия DK). Если, с другой стороны, c i + 1 больше не находится на Q i + 1 ( v ), то он должен принадлежать новой смежной палатке или покрывать предыдущую точку c i . В любом случае мы можем обновить его в постоянное время.ci+1Qi+1(v)ci+1Qi+1(v)ci


Обновленный ответ. Посмотрите, имеет ли это смысл сейчас. Я так думаю об этой структуре данных. Это может не иметь никакого отношения к тому, что в статье.
Сариэль Хар-Пелед

Теперь я понимаю, спасибо! Итак, хитрость в том, что мы выбираем касательные направления в начале и сохраняем их неизменными все время! Я удалил мои предыдущие комментарии, которые были связаны с вашим старым ответом. Еще раз спасибо!
domotorp

Да. Рад был помочь!
Сариэль Хар-Пелед

8

Теорема 3.1 требует, чтобы иерархическое представление является компактным . Одним из требований к компактности является то, что степень r i в P i - 1 ограничена константой. Смотрите внизу страницы 3.PriPi1

Определение и построение иерархии Добкина-Киркпатрика намного более явны в их более ранних статьях (ссылки [9,10,11] в статье, которую вы читаете). Я настоятельно рекомендую сначала прочитать их.


Я думаю, что они гарантируют, что степень вершин в ограничена. Я не понимаю, как вы могли убедиться, что степень r i ограничена. Например, если у вас есть многогранник, где две вершины связаны с каждой вершиной, то как вы можете начать? Pi1Piri
domotorp

1
С одной из других вершин, которые имеют степень 4. (Фактически, с независимым подмножеством вершин степени 4.) Точка является вершиной P i - 1, но не является вершиной P i . riPi1Pi
Джефф

Итак, есть недоразумение. Я считаю , что является вершиной Р я а в алгоритме , который я описал, в частности , ближайший к S . Я ошибаюсь? riPiS
Домоторп

Кажется, это одно из этих стандартных, но утомительных предположений общего положения. Если вас не волнует время выполнения, вы всегда можете заменить вершину степени двумя чрезвычайно близкими вершинами степени d / 2 + 3 (если вы настаиваете на треугольных гранях). Повторяйте это до тех пор, пока все вершины не станут меньше 10 градусов.dd/2+3
Сариэль Хар-Пелед

@Sariel: я думал так же, но тогда почему процесс закончится? Обратите внимание, что когда мы удаляем вершину, ее соседи могут не образовывать грани, поэтому нам, возможно, придется добавлять новые ребра, фактически нам, возможно, придется увеличивать степень вершины.
Домоторп

1

В случае, если кого-то все еще интересует вопрос: загвоздка в объяснении Добкина Кирпатрика была также указана в « Оптимальном обнаружении пересечений между выпуклыми многогранниками» Барбы и Лангермана .

Они отмечают в статье (версия SODA 2015, а не arxiv), что вычислительная геометрия О'Рурка в C , глава 7, уже детализирует обходной путь (который по сути является ответом Сариэля). Документ SODA также представляет альтернативное решение; определение варианта иерархии DK, в котором каждая вершина имеет ограниченную степень.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.