什么是 A*(A-Star)算法?
A*(A-Star)算法是一种启发式搜索方法,目前在网络路由算法、机器人探路、人工智能、游戏设计等方面有着普遍的应用。
A*算法一般是以估价函数 的大小来排列待扩展状态的次序,每次选择 f(n) 值最小者进行扩展。
f(n)=g(n)+h(n)
其中g(n) 是初始结点到n结点的实际代价,而h(n)是从n结点点到目的结点的最佳路径的估计代价,且h(n)<=h(n), h(n)为n结点到目的结点的最优路径的代价。
保证找到全局最优解的条件,关键在于估价函数h(n)的选取:
估价值h(n)小于等于n结点到目标结点最优路径的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低,但能得到全局最优解。
如果估价值h(n)大于实际值, 搜索的点数少,搜索范围小,效率高,但不能保证得到全局最优解。
估价值与实际值越接近,估价函数取得就越好。