如何解决连续地图例如多边形的寻路算法
我尝试研究具有多边形障碍物的平面中两点之间的短路径的不同算法。我发现绝大多数算法都使用离散地图(网格地图,可见性图,Voronoi路线图等)。有些书(例如Ben-Ari撰写的“机器人要素”或Nikolaus Correll撰写的“自主机器人简介”)都提到了连续地图(例如原始多边形数据),但没有解释相应的算法。他们声称记忆或效率优势对很少且简单的障碍很重要,这对我来说很有趣。
我相信,应该有一种使用几何计算(例如交点检测)和某些算法范式(例如最小成本分支定界)的巧妙方法,但是我不想糟糕地重新发明轮子。
对于使用连续映射或有用关键字进行搜索的最短路径算法,是否有资源?
就像建议的那样,我尝试指定一些我使用的术语:
连续映射 (请参见Fig.)是指几何形状的(连续)实数值的存储。障碍物/三角形I.将存储为:A =(3,2),B =(7,5),C =(7,2)。
离散地图 (请参见Fig.)是指将细分划分为多个块(离散化,例如在网格图中)。障碍物/三角形I.现在将存储为单元格索引:(3,2),(4,2),(5,2),(6,3),(6,3),( 6,4) 离散地图中的寻路通常是通过基于图的算法(例如Dijkstra或A *)来完成的。
几何计算 只是一个模糊的术语,我希望用于连续地图的寻路算法中的计算几何运算。 (例如平移,垂直距离,交点检测)
解决方法
对于您所说的“连续贴图”,只需在所有顶点上使用Dijkstra。 唯一的区别是在计算节点之间的距离时必须检查裁剪。
,我的问题的另一个更常用的术语似乎是欧几里德最短路径。 连续图和离散图的算法之间的区别对我来说似乎有点模棱两可。
但是,我发现的与连续地图算法最接近的东西是 Mitchell的连续Dijkstra问题算法(或连续Dijkstra方法)。 该算法使用从起点开始均匀扩散的小波。通过小波的“衍射”,它们到达无法直接到达的区域。这将创建一条最短路径映射,该映射可用于标识到连续配置空间中任意点的欧几里德最短路径。
有关更多信息,请参见:
-
F. Li和R. Klette撰写的
- “欧几里德最短路径精确或近似算法”
- nice but a bit buggy animation by Ivan Chen
- application by Anton Kovsharov
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。