Como posso calcular o caminho mais curto em ambientes euclidianos com polígonos não convexos?

10

Alguém pode sugerir artigos ou algoritmos sobre o cálculo de caminhos mais curtos em espaços euclidianos com o polígono não convexo como obstáculos?

aneuryzm
fonte
Observe que, a menos que seu ponto inicial, ponto final ou outro polígono esteja no espaço entre um polígono não convexo e seu casco convexo, você poderá substituir o polígono não convexo por seu casco complexo. Fácil de ver, basta desenhar um polígono não convexo e seu casco convexo, considerando então quais caminhos mais curtos passam pela diferença.
MSalters

Respostas:

3

A abordagem mais simples é transformar os polígonos não convexos em múltiplos convexos e, em seguida, realizar colisão convexa normal e busca de caminhos (via A * ou D * ou o que for). O primeiro processo é freqüentemente chamado de triangulação na geometria computacional, e existem várias maneiras comuns de fazê-lo.


fonte
3

Esta pode não ser a resposta exata para sua pergunta, mas posso sugerir uma abordagem para esse problema.

Na verdade, seu problema são dois problemas combinados.

  1. Localizando caminhos mais curtos
  2. Encontrar colisões

E o segundo problema está incorporado no primeiro. Posso recomendar a compreensão da pesquisa cega primeiro. Aqui está uma apresentação muito simples: Pesquisa Cega

Se você ler o documento para a construção do espaço de estado, precisará gerar pontos de estado e eles deverão ser legais, o que significa que esses estados podem estar no caminho mais curto para que não colidam com nenhum objeto no seu espaço. A partir de agora, você pode continuar com os algoritmos de colisão euclidiana. Depois de criar seu espaço de estado e árvore de pesquisa restrita a colisões, você pode escolher qualquer um dos algoritmos de caminho mais curto ou um dos seus ou um híbrido modificado.

Gorky
fonte