路径规划是非常常见的一类问题,例如移动机器人从A点移动到B点,游戏中的人物从A点移动到B点,以及自动驾驶中,汽车从A点到B点。这类问题中,都有两个关键问题需要解决:
一是找到最短路径
二是避开障碍物
解决这类问题,不得不提的一个经典的算法就是A*算法。
我们尽量以浅显易懂的语言讲解清楚A*算法的原理及实现过程。
首先,A*算法是什么?
A*算法是一种基于采样搜索的粗略路径规划算法,由stanford研究院的Peter Hart,Nils Nilsson以及Bertram Raphael发表于1968年。
A*算法的提出是想要解决移动机器人路径规划问题,也就是要在地图上找到一条从起点到终点的最短路径。
其次,如何搜索?
那么A*算法是如何去找到一条既短又无障的路径的呢?
图1
简化搜索区域
这张图是不是很难很快的给出答案。那么可以先将问题简化一下:先将图网格化,如图2所示
图2
可以这么理解,网格化就是将连续的问题离散化,离散的数据更便于计算机处理,同时也便于理解。
如图2所示,我们将要