A算法是一种启发式搜索算法,启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。
1> A*算法原理
A*算法是一种启发式搜索算法,适合求解状态空间中从起始点到目标点的最小代价航线[2]。A*算法把子节点i的估计代价f(i)看成从起始点到子节点i的实际代价g(i)与子节点i到达目标点的估计代价h(i)的和,表达式如下:
A*算法将代价函数值最小的子节点作为下一个可行路径点。算法中一般选用Pathopen表存储已经产生的节点,称开放节点。选用Pathclose表存储已经扩展的节点,即封闭节点。f(i)的作用可以表示为估价各个节点的重要程度,决定它们在Pathopen表中的次序。g(i)在一定程度上体现了路径搜索的横向趋势,然而其对路径搜索的效率有所影响。因此在设计代价函数时,要权衡各种利弊,使得g(i)和h(i)占有适宜的比重。