我尝试研究具有多边形障碍物的平面中两点之间的短路径的不同算法。
我发现的绝大多数算法都使用离散图(网格图、可见性图、Voronoi 路线图等)。
一些书籍(如 Ben-Ari 的“机器人学元素”或 Nikolaus Correll 的“自主机器人简介”)提到了连续地图(例如原始多边形数据),但没有解释相应的算法。他们声称对于少数简单的障碍物具有记忆或效率优势,这对我来说可能非常有趣。
我相信,应该有一个聪明的方法使用几何计算(例如交叉点检测)和一些算法范式(例如最小成本分支和界限),但我不想糟糕地重新发明轮子。
是否有一些使用连续地图或有用关键字搜索的最短路径算法的资源?
就像建议的那样,我尝试指定我使用的一些术语:
- 连续地图
指几何形状的(连续)实数值的存储。障碍物/三角形 I. 将存储为:A = (3,2), B=(7,5), C=(7,2)。
- 离散地图
指细分为块(离散化,例如在网格图中)。障碍物/三角形 I. 现在将存储为单元格索引:
(3,2), (4,2), (5,2), (6,2), (5,3), (6,3), (6,4)
离散地图中的寻路通常由基于图的算法(如Dijkstra
或)完成A*
。
- 几何计算只是我用于计算几何操作的一个模糊术语,我希望在连续地图的寻路算法中使用它。(例如平移、垂直距离、交叉点检测)