A*算法介绍

本文围绕A*算法展开,作者分享学习感悟,指出该算法通过计算代价函数评估每步代价,在全局与局部最优间抉择。介绍其搜索策略,通过计算G、H得出F值找最小路径,还提及成为A*算法的约束条件及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不得不叹服,强大算法背后,都是简单得不能再简单的逻辑。普林斯顿的算法课程作业里,要让用A*算法。什么都没接触到过,看到后有种想哭的感觉!于是网上查阅资料,渐渐的明白了怎么回事。

通过对A*算法的学习的个人感悟:计算一个代价函数,评估每一步的代价,并找到代价最小的方向。最终得到的解可能不是最优,但每一步都是最佳的策略,总是会非常接近最优解。即常见寻优算法中,全局最优和局部最优之间的抉择问题。

有的文章写得很透彻,看一遍就能让你理解——今后继续向着这个方向去努力,不光自己懂了,还能让其他人明白。


A*算法,又称为启发式搜索。

假设情况如下有一个当前状态S,期望的目标状态D。我们要做的就是找到从S->D的最佳路径。那么如何破案呢?

搜索策略简单得不能再简单,分为两步走:

  1. 判断从S迈出一步的代价,记为G
  2. 从S的某部位到D需要直接步数,记为H

计算并存储各个方向上的F=G+H值,找到F最小的即可。其中当H=0时,为Dijkstra算法(权值为正);

具体计算G和H的方法有很多种。其中,计算H的常见的评估函数有——欧几里得距离曼哈顿距离切比雪夫距离等;

A*算法固然强大,但有一定的约束条件,一种具有F=G+H策略的启发式算法能成为A*算法的充分条件是:
      1、搜索树上存在着从起始点到终了点的最优路径。
      2、问题域是有限的。
      3、所有结点的子结点的搜索代价值>0。
      4、H(n)=<H*(n) (H*(n)为实际问题的代价值)。


 

image001.jpg

 从图中绿点A,到红点B的最优路径搜索就可以使用A*算法。——>见参考的优快云

参考自:

1. A星算法详解(个人认为最详细,最通俗易懂的一个版本)

2. A*搜索算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值