很多文章中会提及 heuristic approach、heuristic algorithm、启发式算法,启发函数 等术语,但是对于什么是heuristic,却并没有解释得很清楚。

启发,顾名思义,是教师 启发引导 学生学习。

关于 heuristic 的一些描述:

掌握领域知识,标准是能设计简单Heuristic(启发式的)的solution
什么时候需要ML?

  • 对问题的要求是从60%提高到80%的时候
  • Heuristic已经复杂到很难维护了(比如说当有些IDS里部署的规则已经达到几千条仍无法cover的时候)

article link

二、启发式搜索算法
1.贪婪最佳优先
在Dijkstra算法中,我已经发现了其最终要的缺陷,搜索存在盲目性。在这里,我们只针对这个痛点,采用贪婪最佳优先搜索来解决。如何解决?我们只需稍微改变下观念即可,在Dijkstra算法中,优先队列采用的是,每个顶点到起始顶点的预估值来进行排序。在贪婪最佳优先搜索采用的是,每个顶点到目标顶点的预估值来进行排序。
三、启发函数
f(n)=g(n)+h(n)f(n)=g(n) +h(n)f(n)=g(n)+h(n)
f(n)f(n)f(n) 是节点 nnn 的综合优先级。当我们选择下一个要遍历的节点时,我们总会选取综合优先级最高(值最小)的节点。g(n)g(n)g(n) 是节点 nnn 距离起点的代价。h(n)h(n)h(n) 是节点 nnn 距离终点的预计代价,这也就是A star算法的启发函数
上面已经提到,启发函数会影响A star算法的行为
aritcle link

第一出引文的heuristic,说的应该是从实际问题出发,总结出规则。这种heuristic solution与从数学模型出发的solution相对应,在文中应该是和machine learning的算法相对应。
第二处引文的启发函数,是A star算法在某一节点的决策依据。启发函数可以根据需求进行修改。所以我觉得,此处这个heuristic的意思,应该是一种引申义,即启发函数启发着A star算法进行决策。

联想
我们的学习如果是启发式的,那么学习过程会非常轻松。
如果不是启发式的,那学习起来就不那么自然了。比如,高中数学用导数判断函数单调性,在不学习高等数学的基础上,是很难理解导数为何有效的;比如,高中物理中力的分解;再比如,高中数学中引入的虚数的概念。
所以,heuristic approach,应该是一类,根据人以往的经验便可总结出的解决方案的approach。
而我上边举的那些所谓un-heuristic approach,并不是真的un-heuristic的,则是,跨了一大步,即高中生的知识体系无法理解所学习的工具的合理性,对他们而言,做到会模仿使用这些工具即可。之所以说他们不是真的un-heuristic的,因为这些工具都是有严格的理论基础的,并不是凭空得来的。说它们是un-heuristic,仅仅是因为,它们对于高中生来说难以真正理解罢了。
题外话,我们学了那么多知识,我们真正透彻理解了的知识又能有几成呢?

写了这么多,我好像对heuristic approach有一点感觉了,就是,凡是可以通过理论证明的有效的方法,都可以称为是启发式的方法,即heuristic approach。
但是启发函数与启发式方法不同,启发函数是模仿人类的思维过程,人类做判断需要一定的依据,因此,算法进行决策的依据就称为启发函数。
但是,使用启发函数的算法,又往往被称为启发式算法,我个人认为这是一种术语的滥用,这造成了理解上的困难。


本博客发完之后,CSDN给我推了几篇博文,对heuristic做了很好的描述,想到开头自己说网上没有对heuristic有很好的描述,真是啪啪啪打脸

文章列表:

  • article link
  • article link
  • article link
  • article link

谈 heuristic相关推荐

  1. 小谈Online-game服务器端设计(3)

    下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题.首先,我们需要知道什么是NPC,NPC需要做什么.NPC的全称是(Non-Player Character),很显然,他是一 ...

  2. 浅谈APO PPDS 与传统MRP的区别(二)

    上回讲到APO PPDS的功能已经逐步融合进SAP S/4 HANA,未来必将替换掉我们熟悉的MRP工具.陆续接到一些做S/4项目的顾问私信问我PPDS的资料等,这背后是越来越多的客户希望了解或使用P ...

  3. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  4. 【大话设计模式】——浅谈设计模式基础

    初学设计模式给我最大的感受是:人类真是伟大啊!单单是设计模式的基础课程就让我感受到了强烈的生活气息. 个人感觉<大话设计模式>这本书写的真好.让貌似非常晦涩难懂的设计模式变的生活化.趣味化 ...

  5. 谈 三层结构与MVC模式的区别

    谈 三层结构与MVC模式的区别 在CSDN和园子里有朋友谈到三层与MVC的区别,以前也有人抛出这个问题,本人对来公司面试的朋友也偶乐会提这方面的问题.     那么我也来讲讲我对这两者的理解吧.    ...

  6. 学校计算机机房好处,浅谈学校计算机机房维护

    浅谈学校计算机机房维护    现在的学校机房都配置了数量较多的计算机,而且机房的使用非常频繁.对于怎样维护好计算机,特别是计算机软件系统,对广大计算机教师来说是一个很重要且非常现实的问题.下面就本人在 ...

  7. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  8. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  9. 浅谈GCC预编译头技术

    浅谈GCC预编译头技术 文/jorge --谨以此文,悼念我等待MinGW编译时逝去的那些时间. 其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA.后来 ...

  10. 【笔记】震惊!世上最接地气的字符串浅谈(HASH+KMP)

    震惊!世上最接地气的字符串浅谈(HASH+KMP) 笔者过于垃圾,肯定会有些错的地方,欢迎各位巨佬指正,感激不尽! 引用:LYD的蓝书,一本通,DFC的讲稿,网上各路巨佬 Luguo id: 章鱼那个 ...

最新文章

  1. 《深入理解Java虚拟机》笔记3
  2. (转载)Android进阶2之Activity之间数据交流(onActivityResult的用法)
  3. Linux 查看电脑基本配置
  4. c语言windows api编程,windows API编程学习
  5. thinkphp5.0l路由冲突原因及解决方法
  6. 卸任后的马云“忙”坏了,健美大赛、蹦迪、修空调、种蘑菇,真相看懵了
  7. 梯度消失和梯度爆炸_梯度消失梯度爆炸-Gradient Clip
  8. 栈(后缀表达式的理想数据结构)
  9. mysql自增主键 php_MySQL的自增ID(主键) 用完了的解决方法
  10. Teigha 4.0 Net 开发记录
  11. springboot 动态指定日志路径(logback) 自动跟随项目路径
  12. 2017年个人目标及计划
  13. 论文好词好句开源共享@GitHub
  14. Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之Gavin大咖免费公益课程Rasa Paper论文解析核心版
  15. docker: Error response from daemon: Unknown runtime specified nvidia. 解决方法
  16. 基于ssm+maven+idea的滴滴网络租车系统设计与实现
  17. SecureCRT使用方法+下载链接
  18. “大象”对战“蚂蚁”!物联网的“BAT”将是怎样的?
  19. 音乐节为什么需要网络覆盖?如何搭建临时稳定WiFi?
  20. ajax绑值,AJAX请求,返回json进行页面绑值

热门文章

  1. 苏格拉底的最后日子――柏拉图对话集
  2. nvidia windows linux,NVIDIA首发OpenGL 3.1驱动 全面支持Windows/Linux
  3. 重启计算机之前无法刷新,更新完补丁不断提示是否重启电脑的解决方法
  4. c 实现走迷宫流程图_C语言走迷宫游戏流程图和代码框架
  5. Gossip in Cassandra
  6. 信号完整性之铜皮粗糙度
  7. document.writeln
  8. 超强媒体阵容护航,第一届区块链技术及应用峰会(BTA)·中国引爆开年狂潮
  9. IT行业岗位薪资大调查:收入最高的职位是什么?
  10. js 数字不足位数补0