A*(A-Star)搜索算法 入门详解

时间:2025-03-30 07:52:50
  • 很显然,实现最短路是不需要用A*这样的搜索算法的(可以用SPFA,dijkstra等)
  • 所以,最短路只是相当于一个模型,用于介绍A*算法, 更便于理解。
  • 一般用于搜索中,通过若干次操作使状态 S S S变成目标状态 T T T,求最小操作数,
  • G ( x ) G(x) G(x)表示到当前状态的实际操作数,
  • H ( x ) H(x) H(x)是到目标状态的估算代价,因为我们还没有到达目标状态,不知道其实际代价,只能通过估计,
  • 然后找到 F ( x ) = G ( x ) + H ( x ) F(x)=G(x)+H(x) F(x)=G(x)+H(x)最小,即估算出来的总代价最小的状态进行转移,一定程度上能够优化普通的搜索。
  • F ( x ) F(x) F(x) G ( x ) G(x) G(x)一定时,或多或少会受到 H ( x ) H(x) H(x)的影响,所以 H ( x ) H(x) H(x)会影响到每次的操作的优先顺序,不会像普通的搜索一样按部就班的来。
  • 也就是说,并不知道如何操作是最优的,但可以优先选择估计最优的状态进行下一步操作,使得尽可能地先操作更优的状态,使得离真实答案更加接近,达到优化时间的目的。