A*算法分析及研究

来源 :科学与财富 | 被引量 : 0次 | 上传用户:tsy99
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。本文对A*算法的原理及实现过程进行了详细的研究分析。
  关键词:A*算法 最短路径算法 启发式算法
  1.启发式搜索算法
  A*在游戏中有典型的用法,是人工智能在游戏中的代表。A*算法在人工智能中是一种典型的启发式搜索算法,为了研究分析A*算法,需要首先研究清楚什么是启发式算法。
  启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。启发中的估价是用估价函数表示的,表达式如下:
  f(n) = g(n) + h(n)
  其中f(n) 是节点n的估价函数,g(n)是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。在这里主要是h(n)体现了搜索的启发信息,因为g(n)是已知的。如果说详细点,g(n)代表了搜索的广度的优先趋势。但是当h(n) >> g(n)时,可以省略g(n),从而提高效率。
  2.A*算法初步
  启发式搜索其实有很多的算法,比如:局部择优搜索法、最好优先搜索法等等。当然A*也是。这些算法 都使用了启发函数,但在具体的选取最佳搜索节点时的策略不同。象局部择优搜索法,就是在搜索的过程中选取“最佳节点”后舍弃其他的兄弟节点,父亲节点,而一直得搜索下去。这种搜索的结果很明显,由于舍弃了其他的节点,可能也把最好的节点都舍弃了,因为求解的最佳节点只是在该阶段的最佳并不一定是全局的最佳。最好优先就聪明多了,在搜索时没有舍弃节点(除非该节点是死节点),在每一步的估价中都把当前的节点和以前的节点的估价值比较得到一个“最佳的节点”。这样可以有效的防止“最佳节点”的丢失。那么A*算法又是一种什么样的算法呢?其实A*算法也是一种最好优先的算法。只不过要加上一些约束条件罢了。由于在一些问题求解时,我们希望能够求解出状态空间搜索的最短路径,也就是用最快的方法求解问题,这就是A*算法的原理。
  如果一个估价函数可以找出最短的路径,我们称之为可采纳性。A*算法是一个可采纳的最好优先算法。A*算法的估价函数表示为:
  f’(n) = g’(n) + h’(n)
  这里,f’(n)是估价函数,g’(n)是起点到终点的最短路径值,h’(n)是n到目标的最短路径的启发值。由于这个f’(n)其实是无法预先知道的,所以用前面的估价函数f(n)做近似。g(n)代替g’(n),但要求g(n)>=g’(n) (大多数情况下都是满足的,可以不用考虑),h(n)代替h’(n),但需要h(n)<=h’(n)。可以证明应用这样的估价函数是可以找到最短路径的,也就是可采纳的。
  3.A*算法在搜索最短路径中的应用
  A*算法是最好优先算法的一种。只是有一些约束条件而已。 最好优先算法的算法流程如下:有如下的状态空间:(起始位置是A,目标位置是P,字母后的数字表示节点的估价值)搜索过程中设置两个表:OPEN和CLOSED。OPEN表保存了所有已生成而未考察的节点,CLOSED 表中记录已访问过的节点。算法中有一步是根据估价函数重排OPEN表。这样循环中的每一 步只考虑OPEN表中状态最好的节点。具体搜索过程如下:
  1)初始状态:
  OPEN=[A5];CLOSED=[];
  2)估算A5,取得搜有子节点,并放入OPEN表中;
  OPEN=[B4,C4,D6];CLOSED=[A5]
  3)估算B4,取得搜有子节点,并放入OPEN表中;
  OPEN=[C4,E5,F5,D6];CLOSED=[B4,A5]
  4)估算C4;取得搜有子节点,并放入OPEN表中;
  OPEN=[H3,G4,E5,F5,D6];CLOSED=[C4,B4,A5]
  5)估算H3,取得搜有子节点,并放入OPEN表中;
  OPEN=[O2,P3,G4,E5,F5,D6];CLOSED=H3C4,B4,A5]
  6)估算O2,取得搜有子节点,并放入OPEN表中;
  OPEN=[P3,G4,E5,F5,D6];CLOSED=[O2,H3,C4,B4,A5]
  7)估算P3,已得到解;
  A*算法的流程与此是一样的,只要注意估价函数中的g(n)的h(n)约束条件就可以了。创建两个表,OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。算起点的h(s),将起点放入OPEN表,保存路径,即从终点开始,每个节点沿着父节点移动直至起点,这就是所求的路径。算法伪代码如下
其他文献
噻唑类化合物是一类具有广谱生物活性的化合物,它几乎覆盖了植物保护和医药的各个方面。新型噻唑类化合物的研究已成为新药研究的重要领域之一。同时据报道三唑类化合物也具有
白榆是中国北方重要的用材树种,近年来,害虫榆蓝叶甲危害严重,如何选择抗虫的优良品系是当前白榆生产上急待解决的问题。本课题选取白榆优良速生品种(系号:CK、65212号、225号
本文对吉林老爷岭大型真菌的物种多样性、区系多样性与森林植被和季节的相关性进行了系统研究。 物种多样性研究,共获得大型真菌标本400余份,共计261种,隶属于117属52科16目2
玉米是世界上重要的粮食作物,它还作为主要的饲料和重要的工业原料在人们的社会生产和生活中扮演重要角色。它的栽培面积和总产量仅次于小麦、水稻居世界第三位。玉米在其生育
摘 要:对200MW氢冷发电机组氢气漏泄的原因和主要部位进行了分析,结合机组运行的实际情况,提出了查找和治理发电机漏氢的方法。通过加强发电机氢气系统的维护,保证机组安全运行。  关键词:氢冷发电机;漏氢;处理  某电厂现有在役6台国产20万千瓦机组,总装机容量为122万千瓦。发电机的冷却方式均为:定子绕组采用水内冷,转子绕组采用气隙取气斜流式氢气内冷,定子和转子铁芯采用氢气表面冷却,整个发电机内部
由辣椒疫霉(Phytophthora capsici Leonian)引起的植物疫病是毁灭性的植物病害,严重影响着全世界蔬菜等农作物的产量和品质。辣椒疫霉群体遗传结构和对杀菌剂的敏感性变化直
摘 要:本文将着重探讨PCB布线抗干扰设计,参考电路具体情况解析高频电路、敏感零件等PCB布线干扰难题,并提出布线抗干扰的设计思路与对应策略。  关键词:PCB;布线干扰;问题;解析;设计  伴随电子领域的迅猛进步,尤其是大规模集成电路、数字科技的诞生与进步,大众对视听设备的需求度正在大幅度提升。从传统的留声设备到随身听,再到当代的CD、MP3、MP4等,视听商品的质量与视听效果也正在发生着的质的
摘 要:黄陵矿业煤矸石发电有限公司2×330MW机组CFB锅炉自投运以来,总体运行情况较好,但也反映出一些问题,针对运行中NOx排放偏高的问题,2015年7月,公司生产技术部依照东方锅炉厂制定的NOx排放燃烧调试方案进行了现场调试,取得了较好效果,鉴于机组升负荷过程中或负荷达到300MW时NOx排放瞬时超标,2015年8月-9月,我们再次对锅炉进行了燃烧调整,以进一步探索最优的运行工况,分析影响N