什么是启发式?什么是产生式?

来源:人机与认知实验室

一般而言,机器常常被设定从已知推未知,而人们不时会从未知(假设)推未知,特殊情形下也有从未知推已知的,这些推导中常见的有产生式和启发式,那么究竟什么是产生式和启发式呢?!下面会进行简要地分析和说明。

启发式算法(heuristic algorithm)是相对于最优化算法提出的。一个问题的最优算法求得该问题每个实例的最优解。启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。

计算机科学的两大基础目标,就是发现可证明其执行效率良好且可得最佳解或次佳解的算法。而启发式算法则试图一次提供一或全部目标。 例如它常能发现很不错的解,但也没办法证明它不会得到较坏的解;它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。

有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差,然而造成那些特殊情况的数据组合,也许永远不会在现实世界出现。因此现实世界中启发式算法常用来解决问题。启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。

有一类的通用启发式策略称为元启发式算法(metaheuristic),通常使用乱数搜寻技巧。他们可以应用在非常广泛的问题上,但不能保证效率。

近年来随着智能计算领域的发展,出现了一类被称为超启发式算法(Hyper-Heuristic Algorithm)的新算法类型。最近几年,智能计算领域的著名国际会议(GECCO 2009, CEC 2010,PPSN 2010)分别举办了专门针对超启发式算法的workshop或session。从GECCO 2011开始,超启发式算法的相关研究正式成为该会议的一个领域(self* search-new frontier track)。国际智能计算领域的两大著名期刊Journal of Heuristics和Evolutionary Computation也在2010年和2012年分别安排了专刊,着重介绍与超启发式算法有关的研究进展。

最短路径

所谓的最短路径问题有很多种意思, 在这里启发式指的是一个在一个搜寻树的节点上定义的函数h(n),用于评估从此节点到目标节点最便宜的路径。启发式通常用于资讯充分的搜寻算法,例如最好优先贪婪算法与A*。最好优先贪婪算法会为启发式函数选择最低代价的节点;A*则会为g(n) + h(n)选择最低代价的节点,此g(n)是从起始节点到目前节点的路径的确实代价。如果h(n)是可接受的(admissible)意即h(n)未曾付出超过达到目标的代价,则A*一定会找出最佳解。

最能感受到启发式算法好处的经典问题是n-puzzle。此问题在计算错误的拼图图形,与计算任两块拼图的曼哈顿距离的总和以及它距离目的有多远时,使用了本算法。注意,上述两条件都必须在可接受的范围内。

运算效能

任何的搜寻问题中,每个节点都有b个选择以及到达目标的深度d,一个毫无技巧的算法通常都要搜寻bd个节点才能找到答案。启发式算法借由使用某种切割机制降低了分叉率(branching factor)以改进搜寻效率,由b降到较低的b'。分叉率可以用来定义启发式算法的偏序关系,例如:若在一个n节点的搜寻树上,h1(n)的分叉率较h2(n)低,则 h1(n) < h2(n)。启发式为每个要解决特定问题的搜寻树的每个节点提供了较低的分叉率,因此它们拥有较佳效率的计算能力。

新算法

如何找到一个分叉率较少又通用的合理启发式算法,已被人工智能社群深入探究过。 他们使用几种常见技术:

部分问题的解答的代价通常可以评估解决整个问题的代价,通常很合理。例如一个10-puzzle拼盘,解题的代价应该与将1到5的方块移回正确位置的代价差不多。通常解题者会先建立一个储存部份问题所需代价的模式数据库(pattern database)以评估问题。 解决较易的近似问题通常可以拿来合理评估原先问题。例如曼哈顿距离是一个简单版本的n-puzzle问题,因为我们假设可以独立移动一个方块到我们想要的位置,而暂不考虑会移到其他方块的问题。 给我们一群合理的启发式函式h1(n),h2(n),...,hi(n),而函式h(n) = max{h1(n),h2(n),...,hi(n)}则是个可预测这些函式的启发式函式。 一个在1993年由A.E. Prieditis写出的程式ABSOLVER就运用了这些技术,这程式可以自动为问题产生启发式算法。ABSOLVER为8-puzzle产生的启发式算法优于任何先前存在的!而且它也发现了第一个有用的解魔术方块的启发式程式。

产生式 由条件和动作组成的指令,即所谓的条件—活动规则,(condition—action 简称C-A规则)。

在计算机中指Tiger编译器将源程序经过词法分析(Lexical Analysis)和语法分析(Syntax Analysis)后得到的一系列符合文法规则(Backus-Naur Form,BNF)的语句,包含在由Andrew W.Appel在Modern Compiler Implementation(虎书)一书中首次提出的”Tiger编译程序“中。

产生式是表征程序性知识的最小单位,是指人脑中贮存的一系列如果—那么形式表示的规则。一个产生式是一个由条件和动作组成的指令,即所谓的条件—活动规则,(condition—action 简称C-A规则)。

在计算机中指Tiger编译器将源程序经过词法分析(Lexical Analysis)和语法分析(Syntax Analysis)后得到的一系列符合文法规则(Backus-Naur Form,BNF)的语句,包含在由Andrew W.Appel在Modern Compiler Implementation(虎书)一书中首次提出的”Tiger编译程序“中。

“产生式”这一术语是在1943年由美国数学家E.L.Post首先提出的,它根据串替代规则提出了一种称为Post机的计算模型,模型中的每一条规则称为产生式。

产生式通常用于表示具有因果关系的知识,其基本形式为:P→Q 或者 IF P THEN Q

人类的认知模式常常是启发式,机器的计算模式往往是产生式。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven项目错误解决小结

http://blog.csdn.net/typa01_kk/article/details/49185759 Maven项目错误解决小结 注&#xff1a;整理错误&#xff0c;不喜欢为了一个小问题&#xff0c;占篇幅&#xff0c;所以请CtrlF自己查看&#xff0c;定位问题&#xff0c;愿为解决. 注&#xff1a;网络上的错误解决经验…

python的pillow给图片加文字_Python-Pillow库给图片添加文字、水印

apt-get install -y python-PIL在图片右下角添加文字&#xff1a;Python# -*- coding: utf-8 -*-from PIL import Image, ImageDraw, ImageFont# 指定要使用的字体和大小&#xff1b;/Library/Fonts/是macOS字体目录&#xff1b;Linux的字体目录是/usr/share/fonts/font Image…

python交并补_python两个列表求交、并、差

在python中&#xff0c;如果有两个数组&#xff0c;分别要求交集&#xff0c;并集与差集&#xff0c;怎么实现比较方便呢&#xff1f; 当然最容易想到的是对两个数组做循环&#xff0c;即写两个for循环来实现。这种写法大部分同学应该都会&#xff0c;而且也没有太多的技术含量…

论如何快速完成文件汇总和统计任务

论如何快速完成文件汇总和统计任务 咱就是说&#xff0c;大学生和研究生当个班委&#xff0c;一天天杂事可真多&#xff0c;尤其收excel表以及统计人数等&#xff0c;费时费力。那么如何快速解决这些问题&#xff0c;就是我们今天这篇博文的主要目标。 拿我个人的任务来说&am…

可怕!贺建奎论文手稿意外曝光!基因编辑实验充满谎言

来源&#xff1a;学研加中国双胞胎的基因编辑可能已经失败&#xff0c;并产生了意想不到的突变。这是科学家们阅读了原南方科技大学副教授贺建奎论文手稿后&#xff0c;得出的结论。贺建奎基因编辑婴儿事件2018年11月26日&#xff0c;一则《世界首例免疫艾滋病的基因编辑婴儿在…

l360废墨收集垫清零_知识分享003:EPSON L360打印机出现故障-废墨计数清零

故障现象&#xff1a;客户的EPSON L360打印机出现故障&#xff0c;纸张和墨水报警灯交替闪烁。无法打印原因分析&#xff1a;确定纸张和墨水的是处于正常状态&#xff0c;上网查了&#xff0c;可能是废墨收集到达了上限。需要做清零处理。解决方法&#xff1a;根据这个型号EPSO…

R语言-处理异常值或报错的三个示例

R语言-处理异常值或报错的三个示例 之前用rvest帮人写了一个定期抓取amazon价格库存&#xff0c;并与之前价格比较的小程序&#xff0c;算是近期写过的第一个完整的程序了。里面涉及了一些报错的处理。 这里主要参考了stackoverflow上的以下问答&#xff1a; How to skip an er…

联想e580没有声音_现在你可以购买通过 Linux 认证的联想 ThinkPad 和 ThinkStation

曾经有一段时间&#xff0c;ThinkPad 是 Linux 用户的首选系统。但那是在 ThinkPad 还是 IBM 的产品的时候。来源&#xff1a;https://linux.cn/article-12283-1.html作者&#xff1a;Abhishek Prakash译者&#xff1a;Xingyu.Wang曾经有一段时间&#xff0c;ThinkPad 是 Linux…

UC伯克利教授Stuart Russell人工智能基础概念与34个误区

来源&#xff1a;数据简化DataSimp数据简化DataSimp导读&#xff1a;UC伯克利教授StuartRussell人工智能基础概念与34个误区&#xff0c;Russell是加州大学伯克利分校人工智能系统中心创始人兼计算机科学专业教授&#xff0c;同时还是人工智能领域里「标准教科书」《人工智能&a…

装入归档文件时出现了一个错误linux_静态链接与动态链接(Linux)

前言上一篇分享了静态链接与动态链接的实验(Windows下)。这一篇分享Linux下的笔记&#xff0c;同时对上一篇笔记做一个补充。首先&#xff0c;我们把静态链接与动态链接做一个这样子的比喻&#xff1a;把链接过程看做我们平时学习时做笔记的过程。我们平时学习时准备一本笔记本…

c++ object model

对一个结构体进行不断的封装后可以形成一个c类&#xff0c;为此需要添加很多函数成员之类的代码&#xff0c;为此显示c比c语言显得庞大并且迟缓&#xff0c;但是事实并不是这些 c在布局和时间上的额外承担主要是由virtual引起的 下面简述c对象模型 数据成员包括静态成员和非静态…

9008刷机怎么刷_OV快捷进入高通进9008或fastboot模式刷机解锁,和MTK关机解锁

不喜略过。高通进9008刷机解锁&#xff1a;关机状态下&#xff0c;同时按音量下键上键插线进9008 .(注意安装手机驱动)高通进fastboot模式解锁&#xff1a;旧机型(平台上选择不到机型的)进fast解锁&#xff0c;关机状态 音量下键开机键 MTK关机解锁:关机状态下按音量上键&#…

10年内,19个关键技术将改变世界

来源&#xff1a; 科技联盟技术中心据国外媒体报道&#xff0c;从无人驾驶汽车到机器人工人&#xff0c;在我们熟悉所有这一切之前&#xff0c;未来正迎面走来。根据世界经济论坛全球议程理事会关于《未来软件与社会》的一份报告&#xff0c;到2025年前&#xff0c;很多新兴技术…

scope参数错误或没有scope权限_SSM 单体框架 - 前端开发:用户和权限模块

用户管理分页 & 条件查询用户数据查询条件1. 用户手机号 2. 注册时间,包含开始日期和结束日期日期选择器组件在查询条件中使用了 Element UI 中的日期选择器&#xff1a;https://element.eleme.cn/#/zh-CN/component/date-picker#mo-ren-xian-shi-ri-qi在测试项目中创建一个…

武器化道路越走越远的无人机

来源&#xff1a;雷擎科技在数以千计的军用无人机中&#xff0c;绝大部分都用于监视。国防专家预测这种情况将会一直存在。Janes的分析师预计&#xff0c;在未来10年内&#xff0c;全球将购买超过80,000架监视无人机和近2,000架攻击无人机。武器化的无人机并不便宜。专家表示&a…

怎样查看cudnn版本_ubuntu16.04+Geforce GTX1060安装CUDA和cuDNN

DELL G7系列&#xff0c;ubuntu16.04&#xff0c;本机显卡型号: GeForce GTX 1060。主要步骤如下&#xff1a;一&#xff0c;安装NVIDIA驱动。1&#xff0c;本笔记本是F12进入BIOS&#xff0c;将secure boot设置为disable。2&#xff0c;通过下面命令确保电脑上之前的nvidia驱动…

Unity3DGUI:Window

#pragma strictvar winRect:RectRect(30,100,150,200);var windowShow:booleantrue;function OnGUI () { windowShowGUI.Toggle(Rect(10,10,100,20),windowShow,"窗口显示"); if(windowShow) //参数&#xff1a;windowID&#xff0c;位置&#xff0c;回调函数&#x…

android分享文件分享结果_干货分享丨DM删除归档日志文件的多种方法

上一期我们讲解了DM数据库归档日志的切换&#xff0c;本期我们讲解DM数据库归档日志文件的删除。本章内容已在如下环境上测试&#xff1a;①操作系统&#xff1a;中标麒麟7&#xff1b;②数据库版本&#xff1a;达梦8&#xff1b;相关关键字&#xff1a;DM数据库、归档日志文件…

三个维度看全球半导体格局变迁

来源&#xff1a;世纪证券费城半导体指数&#xff08;SOX&#xff09; 的发展阶段反应了全球半导体的走势与兴衰更替。费半指数涵盖全球半导体设计、设备、制造、 材料等方向&#xff0c; 其走势可以是衡量全球半导体行业景气程度的主要指标。费城半导体指数发行于在 1993 年12…

alot英文怎么读_很多的英文怎么说

你知道吗?一起来学习一下吧!很多的英文&#xff1a;可数&#xff1a;a lot of, lots of, many不可数&#xff1a;a good/great deal of , a good/ great amount of两者皆可&#xff1a;a large quantity of, quantities of同义词辨析&#xff1a;a lot of 和 lots of &#xf…