试题中的A*算法,什么是A*算法??

今天做题遇到了一个算法题目,“请描述意思下A*算法,它是什么类型的算法??”,当时我看的时候,隐约记得以前好像看过这个算法,因为印象不是很深刻,就直接写了深度优先,最短路径算法。这个写得不严谨,回来之后查了一下A*算法是啥东西。首先第一条出来的是百度百科,A*是一种静态路由的中求解最有效的算法。我记得以前学习过路由算法就是深度优先,遍历每个与他连接的节点,取最小权值的节点,把遍历的节点保存到已经遍历的对象中或者链表中,说明已经标志过了,然后继续遍历未被访问的对象。今天看了A*算法,也是类似这种型的算法。他的公式表示为 f(n) = g(n)+h(n);其中f(n)表示从初始节点到目标节点的估价函数,g(n)是实际代价函数,h(n)是到达目标的估价。而广度优先只有f(n)=g(n)没有估价,就是没有方向的意思。A*算法的优异程度取决于这个两个函数的值,如果估价h(n)取得好,遍历的节点就减少,那么计算量就会大大的减少,少走弯路。所以h(n)是关键。那h(n)去多少合适呢。在路径搜索中两个节点的距离可以通过欧几里得距离计算的出。这个就要说道启发式算法,要做到最好,一项工夫可能不能,必须多备技能才行。什么是启发算法,我也是第一次听说的,原谅我算法了解的少。不懂就网上查找呗,简要说明一下什么启发式算法。他是为最优解而提出的,在路径一样的情况,在可接受的花费情况下给出可行解,有点类似线性规划的,最优解,但是是针对数学,我们要做的是游侠算法,帮助我们的角色hero找到最好的路径,完成任务。我看了几个bloger写得A*算法都是参照一个国外的人写得,并且引用了里面的图片和代码,说明这个算法学习难度还是有点大。只能说他是路径搜索算法中最优的,非常有用。在游戏中经常可以看到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值