A*算法是启发式搜索算法,是根据Dijkstra算法改进而来。
一、定义:是一种在图形平面上,对于有多个节点的路径求出最低通过成本的算法。它属于图遍历和最佳优先搜索算法,亦是BFS 的改进。
二、如何更好的理解A*算法?
如下图所示,S为起始(start)节点,G为目标(goal)节点。
(1)节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。
(2)节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数。
(3)从起点S到达当前节点x的路径长度表示为g(x) 。
(4)从起点S到达目标G并经过点x的估计距离长度表示为f(x) = g(x) + h(x),该公式是A*算法的核心公式。
(5)A*算法通过不断的选择估计距离f最小的节点,逐渐构建最短路径。
逻辑流程
创建两个集合OPEN集,CLOSED集,算法核心是从OPEN集中选择最优(f值小最优,或f相同时,h小的更优)的节点到CLOSED集中,然后将其后继节点放入OPEN集中,然后重复操作选取最优节点,直到到达目标,或者OPEN为空为止。最后再CLOSED集中根据目标G所包含的前序节点逆序查找最后到达起点S,这个链路的逆序即最优路径,具体流程如下图。
搜索过程
以下是前面网络的搜索过程展开图。
组合块中:
(a)灰色为前序节点
(b)蓝色当前节点x
(c)g:起点S到当前节点x的路径距离。
(d)h:当前节点x到终点G的估计距离
(e)f:起点S途径x到达终点G的估计距离,即 f = g + h
(f)绿色框为当前OPEN集合中的最优节点
(g)红色框表示当前OPEN集合中需要被删除的节点
在OPEN、CLOSED中每一行表示一次完整迭代完成时两集合中的节点集合。
最后的最优路径是:S->B->F->k->G
注:当两个节点f相同时,h小的更优
知识点标签: 搜索
本文固定URL: https://www.dotcpp.com/course/954
C语言网推出会员服务,提供C/C++/算法/Python等多套视频学练课程+源码资源社群答疑+私活推荐等资源,享受丰富的技术学习到变现的乐趣,以含金量和学习效果勇敢挑战同类辅导! 点击了解开通
C语言tell()函数:获取打开文件的指针位置
备忘录模式
Python编码规范
HTML语法规范
C语言tan()函数:正切函数
C语言getw()函数:从流中取一整数
模块概述
C语言while循环语句详解
观察者模式
C语言sprintf()函数:格式化输出到字符串中
DataInputStream和DataOutputStream类的常用方法有哪些?
C语言培训要不要参加?哪里参加?
=和==有什么区别
C语言为什么只能在黑窗口下运行
二进制整数如何转换为十进制数?
四种基本的编程命名规范
编程命名规范之下划线命名法
StringTokenizer的用法
学好编程如何赚钱(接私活)?
RandomAccessFile流的常用方法有哪些?
代做工资流水公司鞍山查对公银行流水湘潭流水单模板大庆查询房贷流水成都代做企业贷流水兰州开收入证明洛阳打印离职证明邯郸购房银行流水查询泉州房贷银行流水 代开无锡查转账流水昆明房贷银行流水 公司扬州打印签证流水武汉购房银行流水代开长沙开签证工资流水阜阳自存银行流水费用洛阳企业银行流水代办烟台流水账单打印邢台办理在职证明南通在职证明制作扬州自存流水打印南宁银行流水账单价格宿迁制作银行流水账单海口离职证明代开台州查询对公流水南阳制作签证银行流水大庆做薪资流水单沧州背调工资流水代办镇江公司流水代做威海工资流水代办铜陵工作收入证明代开泰州车贷工资流水 模板香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤