一、A*算法介绍
A*算法结合了代价一致搜索(Uniform Cost Search)中使用的真实后向成本和贪心算法搜索(Greedy Search)中使用的预估前向成本,组成了总估计成本。在选择结点进行扩展时,选择总估计成本最小的结点。——代价一致搜索中使用的从起点到当前结点
走过的真实代价;
——贪心算法中使用的从当前结点
到目标结点需走的预估代价,也即启发式函数;
——A*算法中使用的当前结点
的总估计成本,其中
。
二、A*算法的树搜索版本
定义一:如果启发式函数是非负的并且不会过高估计当前结点到达目标的代价,则称
满足可采纳性。将
定义为当前结点
到达目标的真实最优代价,则可采纳性可数学化为:
定理一:对于一个给定的搜索问题,如果启发式函数
满足可采纳性,那么A*树搜索算法将是最优的。
证明:假设搜索树中两个可达的目标状态,一个最优目标和一个次优目标
。设
的一个祖先结点
(也可能就是
本身)。我们将要证明
总是先于
被选择展开。此证明需要以下三个声明:
1.。由于