当前位置: 首页 > 编程日记 > 正文

基于自然的灵感算法--元启发式

问题一:自然赋予的元启发式优化算法的分类

自然赋予的元启发式算法(模拟生物或者物理的现象去解决问题)有三大类也就是:基于进化,基于物理的,基于群体的

基于进化的主要是受达尔文的物种进化理论的启发,主要的算法有:GA(Genetic Algorithm),ES(Evolution Strategy)PBIL(Probability-Based Incremental Learning),GP(GeneticProgramming)

BBO(Biogeography-Basedoptimizer)

基于物理现象的算法:模拟自然界的物理规律比如典型的算法有:SA(Simulated Annealing),GSA(Gravitation Local Search)CSS(ChargedSystem Search)CFO(Central Force Optimization)

ACROA(ArtificialChemical Reaction Optimization Algorithm)BH(Black Hole) RO(RayOptimization)

SMOA(Small-WorldOptimization Algorithm)GbSA(Galaxy-based Search Algorithm)CSO(Curved SpaceOptimization)

基于群的优化算法:模拟群体动物的社交行为。比如PSO(Particle Swarm Optimization)受鸟群的启发。Ant Colony Optimization

问题二:元启发式算法是什么鬼?

就是受自然的启发,而产生的一种解决优化问题的算法

问题三:启发式与元启发式有什么区别?

启发式算法:启发式算法_百度百科

https://baike.baidu.com/item/%E5%90%AF%E5%8F%91%E5%BC%8F%E7%AE%97%E6%B3%95/938987?fr=aladdin

元启发式算法:元启发式算法_百度百科

https://baike.baidu.com/item/%E5%85%83%E5%90%AF%E5%8F%91%E5%BC%8F%E7%AE%97%E6%B3%95/335967

现代启发式算法在优化机制方面存在一定的差异,但在优化流程上却具有较大的相似性,均是一种邻域搜索结构。算法都是从一个(一组)初始解出发,在算法的关键参数的控制下通过邻域函数产生若干邻域解,按接受准则(确定性、概率性或混沌方式)更新当前状态,而后按关键参数修改准则调整关键参数。如此重复上述搜索步骤直到满足算法的收敛准则,最终得到问题的优化结果。

禁忌搜索算法

禁忌搜索(tabu search)算法是一种全局性邻域搜索算法,它模拟了人类具有记忆功能的特征。禁忌搜索算法最早是由Glover1986年提出的,随后很多学者对这个算法进行了完善,形成了一套完整的算法。

禁忌搜索算法主要针对一般的下降算法的缺点而提出来的,一般的下降算法在搜索到某个局部最优解时,算法很容易自动停止,而禁忌搜索算法采用禁忌策略尽量避免已搜索过的对象,从而保证了对不同的搜索路径的探索。(智能算法_百度百科

https://baike.baidu.com/item/%E6%99%BA%E8%83%BD%E7%AE%97%E6%B3%95/3387637?fr=aladdin

类似于在一个例子中的留下来一只兔子,让其在哪里坚守,告诉别人这里已经被搜索过了,然后还有线性的解也传给那只兔子)禁忌搜索算法不是搜索到局部最优解就停止搜索,而是引导算法跳出局部最优解,进而转向全局最优解。禁忌搜索算法是人工智能的一种体现,该算法最重要的思想是记住以往已搜索过的局部最优解,并在进一步迭代搜索中尽量避开这些局部最优解(而不是绝对禁止循环),进而使得搜索途径多样化,以此跳出局部最优解。

在禁忌搜索算法中会涉及到邻域、候选集、禁忌对象、禁忌表、禁忌表规模、评价函数等内容,禁忌表特别指禁忌对象及其被禁的长度;禁忌对象多选择造成解变换的状态;候选集中的元素依评价函数而确定,根据评价函数的优劣选择一个可能替代被禁对象的元素,是否替代取决于禁忌的规则和其他一些特殊规则,如特赦规则;计算中的一些信息,如被禁对象对应的评价值、被禁的频率等,将对禁忌的长度和停止规则提供帮助。[1] 

模拟退火算法

模拟退火(simulated annealing)算法属于一种通用的随机探索算法,最初是由Metropolis1953年提出的,其基本思想是把某类优化问题的求解过程与统计热力学中的热平衡问题进行对比,试图通过模拟高温物体退火过程来找到优化问题的全局最优解或者近似最优解。1983Kirkpartrick成功地将模拟退火算法应用在了组合优化问题。

模拟退火算法是受到了物体退火过程的启发。一个物体的退火过程大体如下:首先对该物体高温加热(融化),显然物体内原了处于高速运行的高能状态,然而作为一个实际的物理系统,原子的运动又总是趋于最低的能量状态。在退火的初始状态,温度较高,物体处于高能状态,随着温度的逐渐降低,物体内部原了的运动趋于低能状态,这种有高能向低能逐渐降温的过程称为退火。当温度降至结晶温度后,物体由原了运动变成围绕晶体格点的微小振动,液体凝固成固体,退火过程结束。在求解组合优化问题时,将物体的内能E模拟为目标函数值f,温度T看成控制参数,就得到了我们所说的模拟退火算法


相关文章:

三维地形制作软件 World Machine 基础入门学习教程

《World Machine课程》涵盖了你需要的一切,让你有一个坚实的基础来构建自己的高质量的电影或视频游戏地形。 你会学到什么 为渲染或游戏开发创建高分辨率、高细节的地形。 基于World Machine蒙版和着色设备的纹理地形。 获得哪个节点达到预期结果的信心。 组装宏以…

python编写脚本方法_【Python】教你一步步编写banner获取脚本

Hello 各位小伙伴们大家好,周末过的愉快吗? 刚好最近学习了使用python编写banner获取脚本,今天就跟大家一起一步一步再学习一遍吧。 Part.1 说明篇 什么是banner? banner可以理解为我们连上服务器后,服务器响应的第一条…

Linux内核分析——可执行程序的装载

链接的过程 首先运行C预处理器cpp,将C的源程序(a.c)翻译成ASCII码的中间文件(a.i)接着C编译器ccl,将a.i翻译成ASCII汇编语言文件a.s接着运行汇编器as,将a.s翻译成可重定位的目标文件a.o最终完全链接成可执行文件a.out目标文件 目标文件有三种…

c语言中external,static关键字用法

static用法: 在C中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。 1、定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点。 a.在全局区分配内存。 b.如…

男神女神配——alpha阶段总结

一、需求分析 虽然公共社交网络系统能够满足大多数高校校园用户在校园网络社交的需求,但是针对校园学习、工作和文化生活等方面的支持以及学校个性化需求方面却存在不足。利用电子校务平台的数据,设计了与真实校园环境和活动紧密结合,包含具有…

正向代理和反向代理??

(5 条消息)正向代理 反向代理 本质区别? - 知乎 https://www.zhihu.com/question/36412304/answer/76804314 正向代理,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代…

虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通

UE5 Niagara学习教程 课程获取:虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通-云桥网 你会学到什么 我将通过创建各种各样的实时效果来教你虚幻引擎中强大的粒子系统。 我们将从简单的基础知识开始,然后逐渐地,我们将…

share extension 不显示_你所不知道的网红小酒馆Helens

当夜幕降临后,Helens小酒馆显示出她真正的魅力约上你的好友,来Helens体验一次穿越异国的饮酒之旅吧由美、中、泰设计师倾力打造,有着浓郁的东南亚异域style。木质的桌椅、精美的木雕装饰,每个细节都可以感受到不同文化的碰撞。别样…

怎么将jenkins打包后的war自动部署到jetty上?

1,使用maven的cargo插件,实现远程部署 (官网描述地址:https://codehaus-cargo.github.io/cargo/JettyRemoteDeployer.html) Maven中添加配置文件: Type: 可选参数有remote(远程部署的模式&#…

自制青蛙跳台阶小游戏~

青蛙跳台阶小游戏 1、概念(concept)文档 楔子(Setting):千百年来,人们在贬低别人时,常用井底之蛙来描述那个人,但这却让青蛙不开心了,于是青蛙决定跳出井底,为自己讨一个公道。 玩法…

提高性能的Varnish缓存方案

转载http://www.s135.com/post/313/arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一&am…

Python学习小甲鱼视频003

变量 变量名就类似于我们现实社会的名字,发一个值赋值给一个名字的时候,它会存储在内存中,称之为变量(Variable) 但是Python并没有将值存储在变量中,而更像是把名字贴在值上。或者说Python只有名字而没有…

虚幻引擎的数学知识学习教程 Math for Unreal Engine (Early Preview)

通过做真实世界的 Unreal Engine项目来学习数学 你会学到什么 理解游戏开发对数学的基本需求 将数学直接应用到用例中,而不是钻研理论(用我们的示例项目进行实践) 正确编辑短视频,节省您的时间 本课程涵盖向量数学、基础三角、叉/点积和四元数旋转 要求…

2016.4.2 动态规划练习--讲课整理

1.codevs1742 爬楼梯 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description小明家外面有一个长长的楼梯,共N阶。小明的腿很长,一次能跨过一或两阶。有一天,他突发奇想,想求出从最低阶到最高阶共有几种爬楼梯…

matlab 通过矩阵变换使图像旋转平移_图像的几何变换

学习图像中的仿射变换(affine transform), 这是一种线性变换(涵盖旋转,平移,错切(shear), 缩放等线性变换),既然是线性变换则可以通过线性变换(矩阵)来获得。仿射变换矩阵M为2*3的矩阵。仿射变换…

用伪代码模拟洗衣机的运转流程

今天的软导课又学到了不少“骚操作”,其中就包括Pseudocode和Top-down design。 不如现在就借着介绍洗衣机的运转流程向大家介绍一下这两个简单的东西。 题目如下 仔细观察您洗衣机的运作过程,运用Top-down设计方法和Pseudocode 描述洗衣机控制程序。 假…

使用 PHP 在站点上构建类似 Twitter 的系统

2019独角兽企业重金招聘Python工程师标准>>> 如果您曾经留意过,就会知道 Twitter 是 Web 2.0 世界最大的轰动事件之一。简单来说,Twitter(Twitter.com 上提供的一个服务)是一个简单的微博客服务,用户可以发…

Python中的变量以及赋值语句

列表的拷贝区别。 就是在Python中的任何的变量只是一个单纯的名字。名字只是数据的一个贴纸,名字可以来回的变动 赋值语句: 变量就像临时的“存储器”(就像厨房中的锅碗瓢盆),它的强大之处就在于,我们在操…

UE4制作程序背景游戏 Make a game with Procedural Backgrounds in UE4

使用虚幻引擎4蓝图创建一个程序背景的游戏 你会学到什么 学习虚幻引擎4要领 使用程序切片创建标高 保存并加载某些游戏元素 创造一个无止境的跑步者角色 创建和完成游戏的良好习惯和实践 MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz 语言:英…

android pop3与imap方式接收邮件(javamail)

需要下载3个jar包&#xff1a;mail.jar/ activation.jar/ additionnal.jar 1.pop3/** * 以pop3方式读取邮件&#xff0c;此方法不能读取邮件是否为已读&#xff0c;已经通过测试 * */ private void getEmail() { List<Map<String, Object>> list new A…

什么是条件组合覆盖_物史政组合分析,新高考最终受益者丨选科17期

导读&#xff0c;规划物理历史政治是新高考33模式下存在的选科组合&#xff0c;为了给马上面临选科问题的高一、高二考生提供有效帮助&#xff0c;自主选拔在线选科模型解读第17期就来分析一下该组合的学科特性、适合人群、优势劣势、专业覆盖及往年选考情况。说明&#xff1a;…

进击时代!王雪红的谦卑与坚守

节前&#xff0c;HTC董事长王雪红发表了一封内部信&#xff0c;王雪红在心中表示&#xff0c;2015年&#xff0c;HTC不仅要在质量、创新能力与工作效率方面更进步&#xff0c;并表示&#xff0c;“我们未来企业成长的动能不仅包含智能手机&#xff0c;还会加入新的领域如RE、虚…

Python中的过滤器

寄语&#xff1a;新的有一天&#xff0c;开始了&#xff0c;让我们把内心的一些想法都放一放&#xff0c;努力去学习吧。 《Python基础教程&#xff08;第2版&#xff0c;修订版&#xff09;&#xff09;》 Assignment 赋值 Variable 变量 Nan是一种特殊的简写 not a numb…

UE4材质着色器全面学习教程

你会学到什么 通过所有着色器类型和设计的实际演示&#xff0c;学习创建材质 要求 对虚幻的基本理解会有所帮助 了解纹理的一般知识(不仅限于UE4)也很有用 描述 在这个系列中&#xff0c;我将带你设置大量不同的材料&#xff0c;教你如何以实用的方式使用虚幻4材料系统。我们…

codeforces #310 div1 C

操作无论是U还是L&#xff0c;都会使原图形分裂成两个图形&#xff0c;且两个图形的操作互不影响 我们又发现由于操作点只可能在下斜线上&#xff0c;如果将操作按x排序 那么无论是U还是L&#xff0c;都会将操作序列完整分割成两半&#xff0c;且两个操作序列互不影响 这样我们…

硬盘温度70度正常吗_70多岁老年人原来血压160,现在130正常吗?医生为你分析实情...

70多岁的老年人&#xff0c;原来有高血压&#xff0c;高压160左右&#xff0c;现在是130左右&#xff0c;正常吗&#xff1f;这个问题问的太过笼统&#xff0c;我们只好通过这个问题&#xff0c;来分享一些老年高血压患者血压控制的一些知识点&#xff0c;希望能够对老年人的高…

使用python愉快地做高数线代题目~

今天接触到了python&#xff0c;发现真是极易上手啊&#xff01;对比c语言是什么鬼东西 诶&#xff0c;等下&#xff0c;看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了&#xff0c;觉得c语言真的是废材! 不。。。不是的。。。python 基础库几乎都…

Docker总结

2019独角兽企业重金招聘Python工程师标准>>> 查看docker的子命令&#xff0c;直接敲docker或完整的docker help就可以了: bash-3.2$ docker Usage: docker [OPTIONS] COMMAND [arg...] A self-sufficient runtime for linux containers. Options:-D, --debugfalse …

Python中的对象,类,super()函数

对象&#xff1a;&#xff08;1&#xff09;外观的特征 &#xff08;2&#xff09;正在做的事情 比如&#xff1a;那个穿蓝色衣服的正在打球的帅哥 类&#xff1a;属性&#xff08;静态的变量&#xff09;方法&#xff08;函数&#xff09;是对对象的近似 类名约定是以大写字…