乐趣区

关于c++:浅谈路径规划

(这里所谈门路布局并不波及机械臂畛域)
所谓门路布局,即在地图上找到从 A 点到 B 点的可通行路线.这里蕴含两个因素:1、地图;2、“找”– 搜索算法. 对于地图又蕴含很多,如栅格地图、六边形网格地图、可视图、连通图等,” 找 ” 的算法同样也有很多,如迪杰斯特拉算法、A* 算法、遗传算法、基于概率 RRT、PRM 等算法.

地图

所谓地图,实质上是一种数据存储构造。该数据结构中存储着哪些坐标可通行,哪些不可通行。目前利用较多的且最直观的莫过于图片 (jpg,png 等格局),这种存储形式的地图实质上是一种栅格地图,实践上任何一张 jpg 或 png 格局的图片都能够作为门路布局中的地图,图片的栅格坐标即可作为地图坐标。事实上,目前大多数钻研门路布局的计划中,都是将其数据转化为栅格图,通过建设栅格图和实在数据之间的关系实现门路的布局。
其实,上述中以图片作为地图,这只是一种极为非凡的栅格地图,即四边形栅格。在数据以图片的形式存储过程中,默认不得不以像素坐标存储数据,而当下像素坐标不可避免的须要合乎二维笛卡尔坐标系规定. 在这种非凡的四边形栅格坐标示意下,相邻点的坐标只有 + 1 或者 - 1 即可,坐标点之间的间隔天然用欧式间隔示意.
诚然,图片形式存储的地图有其得天独厚的劣势:易于了解、直观可视、计算不便, 然而这种形式存储的地图构造也有不可避免的毛病 …
聊完最罕用的四边形栅格地图 (其实就是一张图片) 外,国外大佬还钻研了六边形栅格地图. 相比于四边形栅格地图,六边形栅格地图在并没有那么直观,如果单纯以六边形栅格存储数据,则地图不可视. 所以在这篇文章中,作者也只是将四边形网格转化为六边形网格,并提供了坐标转换公式,同时指出了六边形网格各种坐标系之间的优劣,而后进行门路布局.
六边形网格地图相比四边形网格地图有肯定的劣势和利用场景,比方在游戏畛域、在军棋推演畛域等. 如下两图所示,上图为六边形坐标及其邻域,下图为六边形示意的栅格地图:

从上边两个图中可是看出,六边形网格坐标示意并不是那么易于了解,起码从图上看不是那么直观. 在上图中,六边形网格坐标轴的夹角是 120 度.
其实无论四边形还是六边形,在示意地图时,都必须满足一个条件:多边形可能齐全笼罩地图数据. 在二维坐标零碎中,目前可能满足此条件的只有正四边形或者正六边形.

门路搜索算法

门路搜索算法有很多,这里只谈谈本人对以后路劲钻研现状的了解:

1、对已有优良门路布局算法的改良。在理论利用的过程中,任何一种算法都会面对许多艰难,而在具体利用方向做出针对性的改良,能够疾速无效的晋升算法的性能,同时解决理论问题。

2、混合算法。门路布局的混合算法即各个算法之间的无效联合。任何一个独自的算法,都不足以解决理论问题中的所有门路布局问题,尤其是在针对一些交叉学科中呈现的新问题。发明出新的算法难度大,而门路布局算法之间的优势互补能够无效提供一种解决问题的新思路。一些智能算法如群体智能算法、强化学习算法、模糊控制、神经网络等慢慢引入到门路布局问题中。这种互补式的混合算法促使了各种办法的交融倒退,通过舍短取长,从而产生出一系类更为优良的算法。

3、环境建模技术和门路布局算法的联合。面对简单的二维甚至三维间断动静环境信息时,算法所能做的是无限的,好的建模技术和优良门路布局算法相结合将成为解决这一问题的一种办法。

退出移动版