A*算法是在Dijstra算法上进行改进,知道起点和终点位置Dijstra算法是四面八方全部寻找,而A*算法则可以往一个最优方向寻找,即启发式的搜索,在提高算法效率的同时,保证找到一条最优路径。
一、原理:
A*算法的核心在于估价函数的设计上,如下式:
![]()
其中:
称为耗散函数,为起始节点
到节点n的实际代价(距离);
称为启发函数,表示节点n到目标节点
的估计代价;
表示从起始节点经由节点n到目标节点的估计代价。
同Dijstra算法类似,A*算法也维持一个Open表。Open表中节点
A*算法作为Dijkstra算法的改进版,通过启发式搜索实现高效寻找最优路径。核心在于估价函数,涉及开放表、封闭表和父节点等概念。算法流程包括起点入表、遍历节点、更新节点状态等步骤。常见的评估函数有欧几里得距离、曼哈顿距离和切比雪夫距离。
A*算法是在Dijstra算法上进行改进,知道起点和终点位置Dijstra算法是四面八方全部寻找,而A*算法则可以往一个最优方向寻找,即启发式的搜索,在提高算法效率的同时,保证找到一条最优路径。
A*算法的核心在于估价函数的设计上,如下式:
![]()
其中:
称为耗散函数,为起始节点
到节点n的实际代价(距离);
称为启发函数,表示节点n到目标节点
的估计代价;
表示从起始节点经由节点n到目标节点的估计代价。
同Dijstra算法类似,A*算法也维持一个Open表。Open表中节点
2万+
3782

被折叠的 条评论
为什么被折叠?