如何在具有非凸多边形的欧几里得环境中计算最短路径?


10

有人可以建议有关以非凸多边形为障碍的欧式空间中最短路径计算的论文或算法吗?


请注意,除非您的起点,终点或其他多边形位于非凸多边形与其凸包之间的空间中,否则您可以将非凸多边形替换为其复杂的壳。只需绘制一个非凸多边形及其凸包,然后考虑哪些最短路径通过差异,即可轻松看到。
MSalters 2014年

Answers:


3

最简单的方法是将非凸面多边形转换为多个凸面多边形,然后进行法线凸面碰撞和寻路(通过A *或D *或其他方式)。第一个过程通常被称为计算几何中的三角剖分,有几种常用的方法可以做到。


3

这可能不是您问题的确切答案,但我可能会建议您解决此问题。

实际上,您的问题是两个问题的结合。

  1. 寻找最短路径
  2. 寻找碰撞

第二个问题是第一个问题。我可能建议先了解盲目搜索。这是一个非常简单的演示:盲搜索

如果您阅读了用于构建状态空间的文档,则将需要生成状态点,并且它们必须是合法的,这意味着这些状态可以位于最短的路径上,因此它们不应与空间中的任何对象发生冲突。从现在开始,您可以继续使用Euclidian碰撞算法。在建立状态空间和受冲突限制的搜索树之后,您可以选择任何最短路径算法,也可以选择自己的算法或经过修改的混合算法之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.