英文原文链接:http://theory.stanford.edu/~amitp/GameProgramming/
原博客来链接:https://blog.csdn.net/denghecsdn/article/details/78778769
开个博客学习A星算法,全当是一个记录吧。学习过程中有很多不会的问题,希望找到一起学的同学,互相交流。qq:942475720
路径规划问题是在给定的地图上,一直起点,并给定一个目标点,从而寻找这其中的最短路径。
动态环境下寻路——避开行人
静态环境下寻路——最短路径(环境成本),避开障碍物
一 介绍A星算法
三 实施说明
草图
A* 算法分成close和open两个集合,open集合包含候选的节点,和起始位置点,close集包含已经检查过的节点。open集是“边界”部分,close集合属于"内部",每个节点需要保存指向它的 副将
去掉所有代码后的A*算法相当简单。有两组,打开和关闭。开放集包含那些候选节点。最初,开放集只包含一个元素:起始位置。封闭集包含已经检查过的节点。最初,闭合集为空。从图形上看,开放集是“边界”,封闭集是访问区域的“内部”。每个节点还保存指向它的父节点的指针,以便我们可以确定它是如何找到的。
有一个主循环,它重复的调用出open中最好的节点n(f值最低的节点)并检查它。
如果N是目标,那么我们就完成了。
否则,节点n将从open列表中移除