A*算法是一种在图形平面上,有多个节点的路径中,寻找一条从起始点(source)到目标点(goal)的最短遍历路径的算法。它属于启发式搜索算法,因为它使用启发式方法来计算图中的节点,从而减少实际计算的节点数量。
A*(A星)算法是一种启发式搜索算法,用于在图中找到从起始点(source)到目标点(goal)的最短路径。它属于最佳优先搜索算法的一种,使用启发式方法来估计从当前节点到目标节点的距离,以此来优化搜索过程。
算法原理
A*算法的核心思想是,它在搜索过程中,对每个节点计算两个值:
1. g(n):从起始点到当前节点n的实际代价。
2. h(n):从当前节点n到目标点的估计代价(启发式函数)。
算法使用这两个值的和(f(n) = g(n) + h(n))来评估每个节点的优先级。节点的f(n)值越小,被优先搜索的可能性越大。
启发式函数(Heuristic Function)
启发式函数h(n)是A*算法的关键部分