consistent heuristic  启发的一致性

admissible heuristic 可接受启发

UCS orders by backward cost——g(n)
Greedy orders by forward cost——h(n)  (h(n)就是heuristic)

A*就是结合g(n)和h(n)

A* orders by backward cost(gn) + forward cost(hn)

g(n)可以看做从start到current所花费的cost,h(n)从current到end的花费。

from heapq import heappush, heappopdef aStarTsa(stateSpaceGraph, h, startState, goalState):frontier = []heappush(frontier, (h[startState], startState))print('Initial frontier:',list(frontier));while frontier:node = heappop(frontier)if (node[1].endswith(goalState)): return nodeprint('Exploring:',node[1][-1],'at cost',node[0])for child in stateSpaceGraph[node[1][-1]]:heappush(frontier, (node[0]+child[0]-h[node[1][-1]]+h[child[1]], node[1]+child[1]))print(list(frontier));aStarMotivation = {
'S':[(1,'a')],'a':[(1,'b'),(3,'d'),(8,'e')],'b':[(1,'c')],'c':[],'d':[(2,'G')],'e':[(1,'d')]}
aStarMotivationH = {'S':6,'a':5,'b':6,'c':7,'d':2,'e':1,'G':0}print('Solution path:',aStarTsa(aStarMotivation, aStarMotivationH, 'S', 'G'))

https://blog.csdn.net/haolexiao/article/details/70302848

https://www.jianshu.com/p/c728bb269116

https://www.zhihu.com/question/23052955

启发函数heuristic 与 A*相关推荐

  1. A*算法中启发函数的使用

    A*算法使用启发函数h(n)来获得对于从任意结点n走到目标结点的最小代价的估计,因此选用一个好的启发函数是非常重要的. A*算法中启发函数的使用 启发函数可以用来控制A*算法的行为. 在极端情况下,如 ...

  2. 为什么a*算法采用哈密尔顿距离作为启发函数比不在位数为启发函数的性能要好?_【论文研读】路径规划中的Hybrid A*算法...

    本文目的 由于在carla-autoware的示例中使用了hybrid A* 算法,所以本文基于以下两篇文章对hybrid A* 算法过程进行整理:(文中挑选了一些个人认为便于理解算法的图片,均来自于 ...

  3. 寻路优化(一)——二维地图上A*启发函数的设计探索

    工作中需要优化A*算法,研究了一天,最后取得了不错的效果.看网上的朋友还没有相关的研究,特此记录一下.有错误欢迎大家批评指正.如需转载请注明出处,http://www.cnblogs.com/Leon ...

  4. 为什么a*算法采用哈密尔顿距离作为启发函数比不在位数为启发函数的性能要好?_KDD2019: 使用神经网络为A*搜索算法赋能 --以个性化路径推荐为例...

    本文系 KDD2019 论文的解读: Wang, Jingyuan, Ning Wu, Wayne Xin Zhao, Fanzhang Peng, and Xin Lin. "Empowe ...

  5. 搜索技术——盲目与启发

    如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间 搜索是人工智能中的一个基本问题,并与推理密切相关.搜索策略的优劣将直接影响到智能系统的性能与推理效率. 一:搜索的基本概念 搜索:根据问题 ...

  6. dlut-KFQ人工智能导论答案1

    人工智能导论作业,仅对fans开放,不要外传,不一定对,最后两个不要抄!!!!! 定义h=n*k n为已经走的步数,k为不同的数字的个数 基本步骤:编码,群体设定,适应度函数,选择复制,交叉重组,变异 ...

  7. 数学建模,8月学习感想

    数学建模概览 Matlab入门 常用的操作指令 数据类型 建模流程 分析问题 建立模型&求解模型 数据建模技术 优化技术 连续模型求解 评价模型求解 机理建模方法 撰写论文 前情提示 正文部分 ...

  8. 【人工智能】— 有信息搜索、最佳优先搜索、贪心搜索、A*搜索

    [人工智能]- 有信息搜索 无/有信息的搜索 Informed Search Algorithms Best-first search(最佳优先搜索) Greedy Search A* Search ...

  9. Maltab在数学建模中的应用(第二版)——读书笔记上

    Maltab在数学建模中的应用(第二版)--读书笔记上 1.MATLAB与数据文件的交互 1.1数据拟合 1.2数据拟合实例 1.3数据可视化 1.4层次分析法 2.规划问题的MATLAB求解(多约束 ...

  10. 人工智能(搜索策略)

    有信息搜索(Informed Search): 1. 又称为启发式搜索(Heuristic Search) 2. 搜索过程中利用与问题有关的经验信息 3. 引入估计函数(evaluation func ...

最新文章

  1. CF 1098 C. Construct a tree
  2. 8086标志操作指令
  3. mysql过滤效率和java过滤效率_如何合理选择初中高效过滤器的效率?
  4. 如何检查python是否安装了pip_如何检测和删除通过pip安装的Python包?
  5. Python邮件操作实例:发个邮件用Python实现远程自动关机
  6. 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
  7. yii2 asset.php,Yii2中使用asset压缩js,css文件的方法_php实例
  8. Struts2校验器(一)之规格文件
  9. android中include标签使用详解
  10. oracle的freelist,Oracle表的分类以及相关参数的详解
  11. QCC3040---Local name module
  12. 计算机启动显示安装程序正在启动服务,电脑停在“安装程序正在启动服务”解决办法...
  13. java 人民币转换,java人民币大小写转换方法
  14. 国产本地互联网络(LIN)物理层收发器 TJA 1028T
  15. stream filter 多条件筛选
  16. matplotlib之pyplot模块——填充多边形(fill)
  17. 新公司没开多久就倒闭
  18. 【window10】解决任务管理器有进程无法强制结束情况
  19. 关于按照Intellij IDEA开发WebService步骤时输入http://localhost:8080/services出现404错误的解决方案
  20. Excel Charting Utility赠品

热门文章

  1. $(document)和$(window)各是什么意思
  2. 一招解决微博视频不能下载的问题
  3. 绝对干货的Twitter搜索技巧
  4. MindManager下载和使用
  5. 什么是自然语言理解?自然语言理解的准则是什么?
  6. MatLab 数字图像处理实验 图像分割
  7. 《实时控制软件设计》团队项目分组
  8. Spark作业提交流程
  9. GitHub 总星 4w+!删库?女装?表情包?这些沙雕中文项目真是我每天快乐的源泉!
  10. YOLOv5损失函数定义