部分学者给出了很多代价函数
H的设置方法,使用动态加权方法,为代价函数
H设置一个权值,当不断接近目标位置时,权值也不断降低,这样路径实际代价的重要性相对提高,启发式函数的不确定性相对降低。还有部分专家学者引入带宽搜索的概念,限定了评价值的取值范围,当搜索点的评价值超出该取值范围,那么该搜索点一定不在最优路径上,这样加快了算法的搜索速度。文献[
20]设计了双向搜索的A*算法,通过计算正向搜索点的
G值、反向搜索点的
G值以及两个方向搜索点的距离估值
H的和,可以确定最佳的搜索方向,直至两个方向的搜索在中途相遇,即评价值不再增加。A*搜索算法一般和栅格法结合运用,常见的A*算法变体在四宫格、九宫格或者十六宫格内进行搜索,路径的平滑度和使用的搜索宫格的格子数量相关,格子越多,搜索出来的路径就越平滑。文献[
27]提出了Theta*算法,和原始的A*算法中顶点的父节点必须是相邻顶点不同,它允许顶点的父节点是任意顶点,从而摆脱了搜索宫格对路线平滑度的限制。Theta*算法需要完成大量的顶点是否相互可视的检查工作,降低了搜索效率,后来部分学者又提出了Lazy Theta*算法,减少了顶点相互可视的检查次数。由于动态地图环境建模导致节点发生变化,A*算法一般用于静态地图的搜索。基于A*算法的改进动态搜索算法D*算法
[24]可以适应动态变化的地图,进一步地终身规划A*算法可以重复利用之前的A*计算来产生新的路径,但是两种算法需要一定的计算储存空间的支持。