A*算法是一种大规模静态路网中求解最短路径最有效的搜索方法,相比于Dijkstra算法,它提供了搜索方向的启发性指引信息,在大多数情况下大大降低了Dijkstra算法无效的冗余的扩展搜索,因此也成为自动驾驶路径规划中的首选算法。
Dijkstra算法和A*算法的伪代码如下,可以看到A*算法搜索过程中,增加了对于未来预测的启发性的Cost,从而指引搜索过程快速收敛。
也可以通过以下可视化效果直观感受下:
下文是斯坦福大学介绍A*算法在游戏领域应用的一篇非常详细的译文,虽然文章比较久远,但是理论是通用的。有进一步研究意向的同学,可以自行到以下地址研究学习,网站也包含大量丰富的演示Demo。