Як я можу обчислити найкоротший шлях в евклідових середовищах з невипуклими багатокутниками?


10

Чи може хтось запропонувати документи чи алгоритми щодо обчислення найкоротших шляхів в евклідових просторах з невипуклим багатокутником як перешкодами?


Зауважте, що якщо ваша початкова точка, кінцева точка або інший багатокутник лежить у просторі між невипуклим багатокутником і його опуклим корпусом, ви можете замінити невипуклий багатокутник його складним корпусом. Легко помітити, просто намалювавши невипуклий багатокутник та його опуклий корпус, а потім врахувати, які найкоротші шляхи проходять різницю.
MSalters

Відповіді:


3

Найпростіший підхід полягає в тому, щоб перетворити невипуклі багатокутники в кілька опуклих, а потім зробити звичайне опукле зіткнення і контур (за допомогою A * або D * або будь-якого іншого). Перший процес часто називають тріангуляцією в обчислювальній геометрії, і існує кілька загальних способів зробити це.


3

Це може бути не точною відповіддю на ваше запитання, але я можу запропонувати вам підхід до цього питання.

Насправді ваша проблема - це дві проблеми разом.

  1. Знаходження найкоротших шляхів
  2. Знаходження зіткнень

А друга проблема вкладається в першу. Я можу порекомендувати спершу розібратися у сліпому пошуку. Ось дуже проста презентація про це: Сліпий пошук

Якщо ви читаєте документ про побудову простору штатів, вам потрібно буде генерувати точки стану, і вони повинні бути юридичними, тобто ці стани можуть бути на вашому найкоротшому шляху, тому вони не повинні стикатися з будь-якими об'єктами у вашому просторі. Відтепер ви можете продовжувати алгоритми зіткнення Евкліда. Після побудови свого простору стану та дерева пошуку, обмеженого зіткненнями, ви можете обрати будь-який алгоритм найкоротшого шляху або один із власних чи модифікованих гібридних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.