A*寻路算法(曼哈顿距离)

本文介绍了A*寻路算法,包括其评价函数f(n) = g(n) + h(n)的构成,以及算法的工作原理。通过一个示例解释了如何计算f, g, h的值,并讨论了单调限制的概念。文章提供了演示程序链接,展示了算法在带有障碍物的网格上的运行情况。同时指出了A*算法在目标点位于死路时的效率问题。" 126431738,11346085,JSON5:增强版JSON,支持注释和更多特性,"['JSON', 'javascript', '前端']

前一些天,在群有人问到A*算法的问题。

之前我已经有实现过,并将之放到github上(https://github.com/XJM2013/A_Star)。有兴趣的能够下载下来看看。

这里上传了一个相当好的A*算法演示程序,大家能够下载下来看看效果:http://download.youkuaiyun.com/detail/a374826954/8781185

以下描写叙述是摘自清华大学出版社《人工智能》一书:

评价函数的形式例如以下:

f(n) = g(n) + h(n)

当中,n是被评价的结点。

g*(n):表示从初始结点s到结点n的最短的耗散值。

h*(n):表示从结点n到目标结点g的最短的耗散值;

f*(n)=g*(n)+h*(n):表示从结点s经过结点n到目标结点g的最短路径的耗散值。

而f(n)、g(n)和h(n)则分别表示是对f*(n)、g*(n)和h*(n)3个函数值的预计值,的一种预測。

A算法就是利用这样的预測,来达到搜索的目的。

当在算法A的评价函数中,使用的启示函数h(n)是处于h*(n)的下界范围。即满足h(n)≤h*(n)时,则把这个算法称为算法A*。

须要说明的是。程序因为添加了一些调试信息。略微会比实际慢一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值