A*
\(g(x)\)为从初始状态到当前状态\(x\)的实际代价
\(g^\prime(x)\)为从初始状态到当前状态\(x\)的估计代价,因为\(bfs\)的性质,得\(g(x)=g^\prime(x)\)
\(h(x)\)为从当前状态\(x\)到结束状态的实际代价
\(h^\prime(x)\)为从当前状态\(x\)到结束状态的估计代价
\(f(x)\)为从初始状态经过当前状态\(x\)到达结束状态的实际代价,得\(f(x)=g(x)+h(x)\)
\(f^\prime(x)\)为从初始状态经过当前状态\(x\)到达结束状态的估计代价,得\(f^\prime(x)=g^\prime(x)+h^\prime(x)=g(x)+h^\prime(x)\)
\(A^*\)算法根据估价函数\(f^\prime(x)\)从小到大来遍历搜索的状态,其中要求\(h^\prime(x) \leqslant h(x)\),并且\(h^\prime(x)\)越大,算法越快。
\(A^*\)算法可以去解决\(k\)短路问题,其中\(h^\prime(x)\)为从\(x\)到\(t\)的最短路,第\(k\)次经过\(t\)的代价即为为第\(k\)短路