6.1.5几点说明.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1.5几点说明.doc

第6章模拟退火算法及其MATLAB实现 模拟退火算法是所谓三大非经典算法之一,它脱胎于自然界的物理过程,与优化问题相结合。本章介绍了模拟退火算法的基本思想,给出了两个简单的例子,然后简介了改进的模拟火箭程序包ASA的情况。 6.1.1算法概述 工程中许多实际优化问题的目标函数都是非凸的,存在许多局部最优解,特别是随着优化问题规模的增大,局部最优解的数目将会迅速增加。因此,有效地求出一般非凸目标函数的全局最优解至今仍是一个难题。求解全局优化问题的方法可分为两类,一类是确定性方法,另一类是随机性方法。确定性算法适用于求解具有一些特殊特征的问题,而梯度法和一般的随机搜索方法则沿着目标函数下降方向搜索,因此常常陷入局部而非全局最优值。 模拟退火算法(simulated annealing,SA)是一种通用概率算法,用来在一个大的搜寻空间内寻找问题的最优解。早在1953年,Metropolis等就提出了模拟退火的思想,1983年Kirk—patrick等将SA引入组合优化领域,由于其具有能有效解决NP难问题、避免陷入局部最优、对初值没有依赖关系等特点,已经在VLS、生产调度、控制工程、机器学习、神经网络、图像处理等领域获得了广泛的应用。 6.1.2基本思想 现代的模拟退火算法形成于20世纪80年代初,其思想源于固体的退火过程,即将固体加热至足够高的温度,在缓慢冷却;升温时,固体内部粒子随温度升高变为无序状,内能增大,而缓慢冷却是粒子又逐渐趋于有序,从理论上讲,如果冷却过程足够缓慢,那么冷却中任一温度时固体都能达到热平衡,而冷却到低温时将达到这一低温下内能最小状态。 在这一过程中,任一恒定温度都能达到热平衡是个重要步骤,这一点可以用Monte Carlo算法模拟,不过其需要大量采样,工作量很大。但因为物理系统总是趋向于能量最低,而分子热运动则趋向于破坏这种低能量状态,故而只需着重取贡献比较大的状态即可达到比较好的效果,因而1953年Metropolis提出了这样一个重要性采样的方法,即设从当前状态i生成新状态j,若新状态i的能量(即),则接受新状态j作为新的当前状态;否则,以概率接受状态j,其中k为Boltzmann常数,这就是通常所说??Metropolis准则。 1953年,Kirkpatrick把模拟退火思想与组合最优的相似点进行类比,将模拟退火应用到了组合最优化问题中。在把模拟火箭退火算法应用于最优化问题时,一般可以将温度T当作控制参数,目标函数值f视为内能E,而固体在某温度T时的一个状态对应一个解。然后算法试图随着控制参数T的降低,使目标函数值f(内能E)也逐渐降低,直至趋于全局最小值(退火中低温时的最低能量状态),就像固体退火过程一样。 6.1.3其他一些参数说明 退火过程出一组初始参数,即冷却进度表(cooling schedule)控制,它的核心是尽量使系统达到平衡,以使算法在有限的时间内逼近最优解。冷却进度表包括: ⑴控制参数的初值:冷却开始的温度。 ⑵控制参数T的衰减函数:因计算机能够处理的都是离散数据,因此需要把连续的降温过程离散化成降温过程中的一系列温度点,衰减函数即计算机这一系列温度的表达式。 ⑶控制参数T的终值(停止准则)。 ⑷Markov链的长度:任一温度T的迭代次数。 6.1.4算法基本步骤 ⑴令,即开始退火的初始值,随机生成一个初始解,并计算相应的目标函数值。 ⑵令T等于冷却进度表中的一个值。 ⑶根据当前解进行扰动(扰动方式可以参考后面的实例),产生一个新解,计算相应的目标函数,得到。 若0(新比旧好),则新解被接受,作为新的当前解;若0,则新解按概率接受为当前温度。 (5)在温度下,重复次的扰动和接受过程,即执行步骤(3)与(4)。 (6)判断T是否达(终止温度)是,则终止算法;否,则转到步骤(2)继续执行。 算法是指分两层循环,在任意温度随即扰动产生新解,并计算目标函数变化,决定是否被接受。由于算法初始温度比较高,这样,使E增大的新解在初始时也可能被接受,因而能跳出局部最小值,然后通过缓慢地降低温度,算法就最终可能收敛到局部最优解。还有一点要说明得的是,虽然在降低温度时接受函数已经非常小了,但仍不排除又接受更差解的可能,因此一般都会把退火过程中碰到的最好的可行解(历史最优解也记录下来,与终止算法前最后一个被接受解一并输出)。 6.1.5几点说明 为了更好地实现模拟退火算法,在个人的经验之外,还需要注意以下一些方面。 状态表示 上文已经提到过,SA算法中优化问题的一个解模拟了(或说可以想象为)退火过程中固体内部的一种粒子分布情况。这里状态表达即指实际问题的解(及状态)如何以一种合适的数学形式表达出来,它应当适用于SA的求解,又能充分表达了实际问题,这需要仔细地设计。可以参考遗传算法和禁忌搜索中编码的相关

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档