启发式优化算法综述Word文件下载.docx
- 文档编号:15084224
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:9
- 大小:208.37KB
启发式优化算法综述Word文件下载.docx
《启发式优化算法综述Word文件下载.docx》由会员分享,可在线阅读,更多相关《启发式优化算法综述Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案,以随机或近似随机方法搜索非线性复杂空间中全局最优解的寻取。
启发式解决问题的方法是与算法相对立的。
算法是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大量的时间和精力才能求得答案。
启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问题的解决。
2、发展历史
启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,才能取得了巨大的成就。
纵观启发式算法的历史发展史:
40年代:
由于实际需要,提出了启发式算法(快速有效)。
50年代:
逐步繁荣,其中贪婪算法和局部搜索等到人们的关注。
60年代:
反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规模的问题仍然无能为力(收敛速度慢)。
70年代:
计算复杂性理论的提出,NP问题。
许多实际问题不可能在合理的时间范围内找到全局最优解。
发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。
由此必须引入新的搜索机制和策略。
Holland的遗传算法出现了(GeneticAlgorithm)再次引发了人们研究启发式算法的兴趣。
80年代以后:
模拟退火算法(SimulatedAnnealingAlgorithm),人工神经网络(ArtificialNeuralNetwork),禁忌搜索(TabuSearch)相继出现。
最近比较火热的:
演化算法(EvolutionaryAlgorithm),蚁群算法(AntAlgorithms),拟人拟物算法,量子算法等。
二、启发式算法类型
1、类型简介
大部分的算法都是仿生演变而来,如下:
仿动物类的算法:
粒子群优化,蚁群算法,鱼群算法,蜂群算法等;
仿植物类的算法:
向光性算法,杂草优化算法等;
仿人类的算法有:
遗传基因算法,和声搜索算法,神经网络;
以及其他的理论成熟并被广泛使用的算法如:
模拟退火算法、禁忌搜索等等
1、粒子群算法
粒子群优化算法的基本思想是通过群体中个体之间的协作和信息共享来寻找最优解.粒子群算法源于复杂适应系统(ComplexAdaptiveSystem,CAS)。
CAS理论于1994年正式提出,CAS中的成员称为主体。
比如研究鸟群系统,每个鸟在这个系统中就称为主体。
主体有适应性,它能够与环境及其他的主体进行交流,并且根据交流的过程“学习”或“积累经验”改变自身结构与行为。
整个系统的演变或进化包括:
新层次的产生(小鸟的出生);
分化和多样性的出现(鸟群中的鸟分成许多小的群);
新的主题的出现(鸟寻找食物过程中,不断发现新的食物)。
设想这样一个场景:
一群鸟在随机的搜索食物。
在这个区域里只有一块食物,所有的鸟都不知道食物在那。
但是它们知道自己当前的位置距离食物还有多远。
那么找到食物的最优策略是什么?
最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
2、蚁群算法
蚁群算法(antcolonyoptimization,ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。
它由MarcoDorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。
蚂蚁在运动过程中,会留下一种称为信息素的东西,并且会随着移动的距离,播散的信息素越来越少,所以往往在家或者食物的周围,信息素的浓度是最强的,而蚂蚁自身会根据信息素去选择方向,当然信息素越浓,被选择的概率也就越大,并且信息素本身具有一定的挥发作用。
蚂蚁的运动过程可以简单归纳如下:
1当周围没有信息素指引时,蚂蚁的运动具有一定的惯性,并有一定的概率选择其他方向;
2当周围有信息素的指引时,按照信息素的浓度强度概率性的选择运动方向;
3找食物时,蚂蚁留下家相关的A信息素,找家时,蚂蚁留下食物相关的B信息素,并随着移动距离的增加,洒播的信息素越来越少;
4随着时间推移,信息素会自行挥发;
由上面4点原则构成蚁群算法的核心规则。
3、遗传基因算法
遗传算法(GeneticAlgorithm)又叫基因进化算法,或进化算法。
生物只有经过许多世代的不断进化(evolution,演化),才能更好地完成生存与繁衍的任务。
遗传算法也遵循同样的方式,需要随着时间的推移不断成长、演化,最后才能收敛,得到针对某类特定问题的一个或多个解。
遗传算法是一种基于自然选择和群体遗传机理的捜索算法,它模拟了自然选择和自然遗传过程中的繁殖、杂交和突变现象。
标准的遗传算法包括四个组成部分:
1)编码(产生初始种群)。
在利用遗传算法求解问题时,首先要确定问题的目标函数和解变量,然后对解变量进行编码,遗传算法的所有操作都是基于这种实际变量的编码。
编码是遗传算法的一个重要环节。
它不仅决定了染色体的组织方式,还影响到交叉、变异算子的执行方式。
不同的编码策略对遗传算法的运行效率有较大的影响。
问题的编码一般应满足完备性、健全性和非冗长性H个原则,完备性是指问题空间中的所有点都能成为GA编码空间中点的表现型;
健全性是指GA编码空间中染色体必须对应问题空间中的某一潜在解;
非冗长性是指染色体和潜在解必须一一对应PS1。
对于一个特定的问题,如何设计出一种高效的编码方式是遗传算法所面临的难题之一,遗憾的是,研究者们至今也没能找到一种通用的编码策略。
目前,工程优化中多采用两种常用的编码方式,即二进制编码Psi和实数编码PD1。
二进制编码的染色体是由一个二值集合{0,1}所组成的二进制符号串。
作为GA算法的标准编码方式,该编码方式尤其适用于能用二值向量描述的优化问题,如化学反应P11、多用途过程规划P3和最优水流参数评估Psi等;
实数编码是指个体的每个基因值用某一范围的一个浮点数表示,个体的编码长度等于其决策变量(设计变量)的个数。
这种编码方式适用于精度要求较高的遗传算法中,便于较大空间的遗传搜索:
改善了遗传算法的计算复杂性,提高了运算效率;
便于遗传算法和经典优化算法的混合使用:
目前基于实数编码的遗传算法也被广泛用于优化问题中,如多目标优化IW,凸轮轮廓设汁等。
2)选择操作。
选择是指从群体中选择优良的个体并淘汰劣质个体的操作。
它建立在适应度评估的基础上,遼应度楚大的个体,被选择的可能性就越大,它的吁孙"在下一代的个数就越多。
选择出来的个体被放入配对库中。
目前常用的选择方法有轮盘赌方法、最佳个体保留法、期望值法和排序选择法等。
3)交叉操作。
交叉是指两个父代个体的部分结构加W替换重组而生成新个体的操作,目的是为了能够在下一代产生新的个体。
通过交叉操作,遗传算法的搜索能力得W提高。
交叉是遗传算法获取新优良个体最重要的手段,按照一定的交叉概率在配对库中随机地选取两个个体进行交叉,交叉的位置也是随机确定的。
4)变异。
变异就是很小的变异概率随机地改变群体中个体的某些基因的值。
变异操作中位置选取的基本过程如下:
产生一个在0~1之间的随机数,如果小于Pm则进行变异操作。
4、模拟退火
模拟退火算法来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
模拟退火算法新解的产生和接受可分为如下四个步骤:
第一步是由一个产生函数从当前解产生一个位于解空间的新解;
为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。
第二步是计算与新解所对应的目标函数差。
因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算。
事实表明,对大多数应用而言,这是计算目标函数差的最快方法。
第三步是判断新解是否被接受,判断的依据是一个接受准则,最常用的接受准则是Metropolis准则:
若ΔT<
0则接受S′作为新的当前解S,否则以概率exp(-ΔT/T)接受S′作为新的当前解S。
第四步是当新解被确定接受时,用新解代替当前解,这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可。
此时,当前解实现了一次迭代。
可在此基础上开始下一轮试验。
而当新解被判定为舍弃时,则在原当前解的基础上继续下一轮试验。
模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;
模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率l收敛于全局最优解的全局优化算法;
模拟退火算法具有并行性。
2、设计良好的启发式算法
上述的启发式算法都有一个共同的特点:
从随机的可行初始解出发,才用迭代改进的策略,去逼近问题的最优解。
他们的基本要素:
1)随机初始可行解;
2)给定一个评价函数(常常与目标函数值有关);
3)邻域,产生新的可行解;
4)选择和接受解得准则;
5)终止准则。
但在启发式算法中,局部最优值的陷入是无法避免。
启发式,本质上是一种贪心策略,这也在客观上决定了不符合贪心规则的更好(或者最优)解会错过。
那么如何避免陷入局部最优呢?
随机。
具体实现手段上,可以根据所采用的启发式框架来灵活地加入随机性。
比如遗传里面,可以在交叉变异时,可以在控制人口策略中,也可以在选择父本母本样本时;
禁忌里面,可以在禁忌表的长度上体现,也可以在解禁策略中使用,等等。
这些都要结合具体问题特定的算例集,需要反复尝试摸索才行。
参数的敏感性是一个问题,建议不要超过3个参数,参数越不敏感越好。
不同算例集用不同种子运行多次(100次左右才有统计意义),统计平均性能即可。
需注意全局的随机重启通常来说不是一个好办法,因为等于主动放弃之前搜索结果,万不得已不要用,或者就是不用。
三个原则应该把握:
越随机越好;
越不随机越好;
二者平衡最好。
越随机越好没有随机性,一定会陷入局部最优。
为了获得更大的找到最优解的期望,算法中一定要有足够的随机性。
具体体现为鲁棒性较好,搜索时多样性较好。
算法的每一步选择都可以考虑加入随机性,但要控制好概率。
比如,某个贪心策略下,是以概率1做某一动作,可以考虑将其改为以概率0.999做之前的操作,以剩余概率做其他操作。
具体参数设置需调试。
越不随机越好随机性往往是对问题内在规律的一种妥协。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 启发式 优化 算法 综述