1 / 14
文档名称:

A星算法.doc

格式:doc   大小:165KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

A星算法.doc

上传人:changjinlai 2019/2/16 文件大小:165 KB

下载得到文件列表

A星算法.doc

文档介绍

文档介绍:A*路径规划初探作者:Panic  文章来源:Panic的小屋  点击数:4316简介:A*算法在人工智能中是一种典型的启发式搜索算法,网友Panic翻译的一篇关于A*的算法。附有图表,非常易懂。相关链接Dijkstra算法粒子群算法遗传算法A* 搜寻法初识A*算法译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。这篇文章非常知名,国内应该有不少人翻译过它,我没有查找,觉得翻译本身也是对自身英文水平的锻炼。经过努力,终于完成了文档,也明白的A*算法的原理。毫无疑问,作者用形象的描述,简洁诙谐的语言由浅入深的讲述了这一神奇的算法,相信每个读过的人都会对此有所认识(如果没有,那就是偶的翻译太差了--b)。原文链接:erence/articles/。(由于本人使用ultraedit编辑,所以没有对原文中的各种链接加以处理(除了图表),也是为了避免未经许可链接的嫌疑,有兴趣的读者可以参考原文。会者不难,A*(念作A星)算法对初学者来说的确有些难度。这篇文章并不试图对这个话题作权威的陈述。取而代之的是,它只是描述算法的原理,使你可以在进一步的阅读中理解其他相关的资料。最后,这篇文章没有程序细节。你尽可以用任意的计算机程序语言实现它。如你所愿,我在文章的末尾包含了一个指向例子程序的链接。压缩包包括C++和BlitzBasic两个语言的版本,如果你只是想看看它的运行效果,里面还包含了可执行文件。我们正在提高自己。让我们从头开始。。。序:搜索区域假设有人想从A点移动到一墙之隔的B点,如下图,绿色的是起点A,红色是终点B,蓝色方块是中间的墙。[图1]你首先注意到,搜索区域被我们划分成了方形网格。像这样,简化搜索区域,是寻路的第一步。这一方法把搜索区域简化成了一个二维数组。数组的每一个元素是网格的一个方块,方块被标记为可通过的和不可通过的。路径被描述为从A到B我们经过的方块的集合。一旦路径被找到,我们的人就从一个方格的中心走向另一个,直到到达目的地。这些中点被称为“节点”。当你阅读其他的寻路资料时,你将经常会看到人们讨论节点。为什么不把他们描述为方格呢?因为有可能你的路径被分割成其他不是方格的结构。他们完全可以是矩形,六角形,或者其他任意形状。节点能够被放置在形状的任意位置-可以在中心,或者沿着边界,或其他什么地方。我们使用这种系统,无论如何,因为它是最简单的。开始搜索正如我们处理上图网格的方法,一旦搜索区域被转化为容易处理的节点,下一步就是去引导一次找到最短路径的搜索。在A*寻路算法中,我们通过从点A开始,检查相邻方格的方式,向外扩展直到找到目标。我们做如下操作开始搜索:1,从点A开始,并且把它作为待处理点存入一个“开启列表”。开启列表就像一张购物清单。尽管现在列表里只有一个元素,但以后就会多起来。你的路径可能会通过它包含的方格,也可能不会。基本上,这是一个待检查方格的列表。2,寻找起点周围所有可到达或者可通过的方格,跳过有墙,水,或其他无法通过地形的方格。也把他们加入开启列表。为所有这些方格保存点A作为“父方格”。当我们想描述路径的时候,父方格的资料是十分重要的。后面会解释它的具体用途。3,从开启列表中删除点A,把它加入到一个“关闭列表”,列表中保存所有不需要再次检查的方格。在这一点,你应该形成如图的结构。在图中,暗绿色方格是你起始方格的中心。它被用浅蓝色描边,以表示它被加入到关闭列表中了。所有的相邻格现在都在开启列表中,它们被用浅绿色描边。每个方格都有一个灰色指针反指他们的父方格,也就是开始的方格。[图2]接着,我们选择开启列表中的临近方格,大致重复前面的过程,如下。但是,哪个方格是我们要选择的呢?是那个F值最低的。路径评分选择路径中经过哪个方格的关键是下面这个等式:F=G+H这里:*G=从起点A,沿着产生的路径,移动到网格上指定方格的移动耗费。*H=从网格上那个方格移动到终点B的预估移动耗费。这经常被称为启发式的,可能会让你有点迷惑。这样叫的原因是因为它只是个猜测。我们没办法事先知道路径的长度,因为路上可能存在各种障碍(墙,水,等等)。虽然本文只提供了一种计算H的方法,但是你可以在网上找到很多其他的方法。我们的路径是通过反复遍历开启列表并且选择具有最低F值的方格来生成的。文章将对这个过程做更详细的描述。首先,我们更深入的看看如何计算这个方程。正如上面所说,G表示沿路径从起点到当前点的移动耗费。在这个例子里,我们令水平或者垂直移动的耗费为10,对角线方向耗费为14。我们取这些值是因为沿对角线的距离是沿水平或垂直移动耗费的的根号2(别怕),。为了简化

最近更新

摩托车维修质量评价方法-全面剖析 37页

无线传感网络提高能耗管理-全面剖析 36页

《提升早会经营力》 21页

傅里叶变换轮廓术中滤波窗方位选择研究 2页

俄歇电子谱仪在金属材料中的应用 2页

供应链企业碳减排投资策略选择与行为演化研究.. 2页

体外受精和胚胎移植的技术和结果 2页

低温进气对闪蒸气压缩机流量影响的实验研究 2页

低品位长石搭配矿化剂高强度电瓷配方的研究 2页

传输VC4级别的SNCP保护优化分析 2页

优化组织确保煤4六采区首采工作面接续 2页

煤矿机电一体化设备买卖合同 6页

焦化厂股东权益转让合同版 6页

价格变动的短期效应——企业行为分析之二 2页

游泳池清洁服务合同样本教学用 6页

以全球观点推进和参与地震科学研究 2页

混凝土企业原材料供应合同协议书 7页

从整理工艺改进麦尔登质量的探讨 2页

从国外节能探索我国节能的深化 2页

液化天然气长期供应合同签订 7页

介绍个人所得税的两种简便计算征税方法 2页

介绍“苏联中学化学教学中的综合技术教育”增.. 2页

海洋航线租赁合同 6页

人工增殖蓝点马鲛作为利用鳀鱼资源另一途径的.. 2页

人14p+标记染色体的分子细胞遗传学研究 2页

洗车场经营权转让合同模板 6页

《细胞的能量通货ATP》课件 26页

河南农业植保机械租赁合同样本 7页

汽车零部件供应与加工合同样本 6页

云母的工业应用及野外技术加工 2页