Separação de um poliedro pré-processado e um plano


14

Tenho sérios problemas para entender um passo do artigo de Dobkin e Kirkpatrick sobre a separação dos poliedros. Estou tentando entender esta versão: http://www.cs.princeton.edu/~dpd/Papers/SCG-09-invited/old%20papers/DPD+Kirk.pdf

Argumenta que, depois de conhecermos a melhor separação de e , realizada por e , podemos encontrar a melhor separação de e nos passos . Isso é feito da seguinte maneira. Pegamos o plano paralelo a através de e cortamos em duas partes. Por um lado, o ponto mais próximo de é e, por outro, temos um poliedro `` elementar '' que podemos verificar no tempo . Meu problema é - como encontramos esse poliedro elementar? Observe que o grau de S r i s i P i - 1 SPiSrisiPi1SO(1)SriPi1SriO(1)riem pode ser ilimitada.Pi1

No pdf para provar Thm 5.1 da página 9, eles usam Thm 3.1 da página 4, o que dificulta tudo.


Eu realmente me pergunto se, se ofereço uma recompensa na descrição da qual digo que a resposta de JeffE não está clara para mim e, em um comentário à sua resposta, eu especifico meu problema com ela, por que as pessoas continuam votando sua resposta sem responder à minha pergunta? questão? Além disso, eu me pergunto, a resposta dele receberia a recompensa automaticamente?
Domotorp

um voto positivo indica que a resposta fornece algo de valor, o que deu! apenas não exatamente o que você queria. de fato, a resposta que você precisava parecia ser um refinamento da sugestão geral. Além disso, por que se preocupar com os votos de outra pessoa?
Suresh Venkat

Respostas:


6

Resposta atualizada e reescrita do zero.

Você recebe um politopo . Executar a hierarquia Dobkin-Kirkpatric em P. Isto dá-lhe uma sequência de polytops P 1P 2... P k = P . Vamos supor que você gostaria de encontrar o ponto mais próximo em P de um ponto de consulta q . O algoritmo básico começa calculando o ponto mais próximo c 1 a q em P 1 , depois considera todas as novas regiões (tendas) adjacentes a c 1 , encontre o ponto mais próximo c 2 a qPP1P2Pk=PPqc1qP1c1c2qnessas novas regiões e continue dessa maneira até chegarmos a .Pk

Agora, se aparece sobre uma borda, então não há nenhum problema - apenas duas tendas pode tocar neste borda, ou apenas um deles pode cobrir a borda. Como tal, a actualização c i + 1 a partir de C i , neste caso, leva tempo constante.cici+1Ci

Assim, o problema é quando encontra-se em um vértice de grau elevado, porque então o número de novas tendas adjacentes para que quando em movimento para P i + 1 pode ser grande. Para superar isso, vamos simular um vértice de alto grau como uma coleção de vértices de baixo grau. Em particular, em cada estágio, se c i se encontrar em um vértice v , lembraremos de duas arestas consecutivas e i , e i adjacentes a v , de modo que o ponto mais próximo de q em P i + 1ciPi+1civei,eivqPi+1fica em uma barraca adjacente ou que cobre uma dessas duas arestas. Como tal, podemos fazer o cálculo necessário em tempo constante.

Portanto, continuamos com o problema de como acompanhar essas duas arestas à medida que subimos.

Para fazer isso, pré-calcule para cada vértice de P uma direção tangente t v . Seja Q i ( v ) o polígono convexo que é a figura de vértice de v para o polígono P i (com o plano que define que a figura de vértice tem normal na direção de t v ). Conceptualmente, Q 1 ( v ) , Q 2 ( v ) , . . . , Q k ( v )vPtvQi(v)vPitvQ1(v),Q2(v),...,Qk(v)se comporta como uma hierarquia 2D DK. Se o ponto mais próximo de a q estiver em um vértice w , isso corresponderá a ve uma aresta adjacente e em P i , onde a aresta e cruza o plano da figura do vértice em w . Se o ponto mais próximo do Q i ( v ) para q encontra-se em uma vantagem e ' , então você lembrar as duas bordas adjacentes de P i que definem os dois vértices de e ' (aquiQi(v)qwvePiewQi(v)qePie pertence a Q i ( v ) ).eQi(v)

E agora estamos a fazer ... Na verdade, se é também sobre Q i + 1 ( v ) , então podemos atualizado em tempo constante (uma vez que esta é apenas uma hierarquia DK 2d). Se, por outro lado, c i + 1 não estiver mais em Q i + 1 ( v ) , ele deverá pertencer a uma nova barraca adjacente ou que cubra o ponto anterior c i . Em ambos os casos, podemos atualizá-lo em tempo constante.ci+1Qi+1(v)ci+1Qi+1(v)ci


Resposta atualizada. Veja se faz algum sentido agora. É assim que penso sobre essa estrutura de dados. Pode não ter relação com o que está no jornal.
Sariel Har-Peled

Eu entendo agora, obrigado! Portanto, o truque é escolher as direções tangentes no início e mantê-las inalteradas o tempo todo! Excluí meus comentários anteriores relacionados à sua resposta antiga. Obrigado mais uma vez!
Domotorp

Sim. Feliz por ajudar!
Sariel Har-Peled

8

O teorema 3.1 requer que a representação hierárquica de seja compacta . Um dos requisitos de compacidade é que o grau de r i em P i - 1 é delimitada por uma constante. Veja a parte inferior da página 3.PriPi1

A definição e construção da hierarquia de Dobkin-Kirkpatrick é muito mais explícita em seus artigos anteriores (referências [9,10,11] no artigo que você está lendo). Eu recomendo a leitura deles primeiro.


Penso que eles garantem que o grau de vértices em seja limitado. Eu não vejo como você pode certificar-se o grau de r i é limitado. Se, por exemplo, você tem um poliedro em que dois vértices estão conectados a cada vértice, como você pode começar? Pi1Piri
Domotorp

1
(. De facto, com um subconjunto independente do grau 4-vértices) com um dos outros vértices, que todos têm um grau 4. O ponto representa um vértice de P i - 1 , mas não um vértice de P i . riPi1Pi
Jeffε

Portanto, há um mal-entendido. Eu acho que é um vértice de P i , bem como no algoritmo que eu descrevi, nomeadamente a mais próxima de S . Estou errado? riPiS
Domotorp 7/12

Esse parece ser um desses pressupostos de posição geral padrão, mas tedioso. Se você não se importa com o tempo de execução, sempre pode substituir um vértice de grau por dois vértices extremamente próximos de grau d / 2 + 3 (se você insistir em faces triangulares). Repita isso até todos os vértices até que todos os graus são menores do que 10.dd/2+3
Sariel Har-Peled

@Sariel: Eu estava pensando o mesmo, mas então por que o processo terminaria? Observe que, quando excluímos um vértice, seus vizinhos podem não formar uma face; portanto, podemos ter que adicionar novas arestas; na verdade, talvez tenhamos que aumentar o grau de um vértice.
Domotorp

1

Caso alguém ainda esteja interessado na pergunta: o obstáculo na explicação de Dobkin Kirpatrick também foi apontado na detecção ótima de Barba e Langerman de interseções entre poliedros convexos .

Eles observam no artigo (versão SODA 2015, não arxiv) que a Geometria Computacional de O'Rourke em C , cap. 7, já detalha uma solução alternativa (que é essencialmente a resposta de Sariel). O documento SODA também apresenta uma solução alternativa; definindo uma variante da hierarquia DK na qual cada vértice tem grau delimitado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.