优化设计方法:第五章 模拟退火算法_第1页
优化设计方法:第五章 模拟退火算法_第2页
优化设计方法:第五章 模拟退火算法_第3页
优化设计方法:第五章 模拟退火算法_第4页
优化设计方法:第五章 模拟退火算法_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.1模拟退火算法及模型

算法的提出

模拟退火算法最早的思想由Metropolis等(1953)提出,1983年Kirkpatrick等将其应用于组合优化。算法的目的解决NP复杂性问题;克服优化过程陷入局部极小;克服初值依赖性。

2.1.1物理退火过程2.1模拟退火算法及模型

正火:是将工件加热到适宜的温度后在空气中冷却,正火的效果同退火相似,只是得到的组织更细,常用于改善材料的切削性能,也有时用于对一些要求不高的零件作为最终热处理。淬火:是将工件加热保温后,在水、油或其它无机盐、有机水溶液等淬冷介质中快速冷却。淬火后钢件变硬,但同时变脆。回火:为了降低钢件的脆性,将淬火后的钢件在高于室温而低于710℃的某一适当温度进行长时间的保温,再进行冷却。

2.1.1物理退火过程2.1模拟退火算法及模型

退火:将金属缓慢加热到一定温度,保持足够时间,然后以适宜速度冷却(通常是缓慢冷却,有时是控制冷却)的一种金属热处理工艺。目的是使经过铸造、锻轧、焊接或切削加工的材料或工件软化,改善塑性和韧性,使化学成分均匀化,去除残余应力,或得到预期的物理性能。分类:重结晶退火、等温退火、均匀化退火、球化退火、去除应力退火、再结晶退火,以及稳定化退火、磁场退火

2.1.1物理退火过程2.1模拟退火算法及模型

退火的一个最主要工艺参数是最高加热温度(退火温度),大多数合金的退火加热温度的选择是以该合金系的相图为基础的,如碳素钢以铁碳平衡图为基础。各种钢(包括碳素钢及合金钢)的退火温度,视具体退火目的的不同而在各该钢种的Ac3以上、Ac1以上或以下的某一温度。各种非铁合金的退火温度则在各该合金的固相线温度以下、固溶度线温度以上或以下的某一温度。

2.1.1物理退火过程2.1模拟退火算法及模型

物理退火过程

什么是退火:退火是指将固体加热到足够高的温度,使分子呈随机排列状态,然后逐步降温使之冷却,最后分子以低能状态排列,固体达到某种稳定状态。

2.1.1物理退火过程2.1模拟退火算法及模型

物理退火过程

加温过程——增强粒子的热运动,消除系统原先可能存在的非均匀态;等温过程——对于与环境换热而温度不变的封闭系统,系统状态的自发变化总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡态;冷却过程——使粒子热运动减弱并渐趋有序,系统能量逐渐下降,从而得到低能的晶体结构。

2.1.1物理退火过程2.1模拟退火算法及模型

数学表述在同一个温度T,选定两个能量E1<E2,有在同一个温度,分子停留在能量小的状态的概率比停留在能量大的状态的概率要大。

2.1.1物理退火过程<1>02.1模拟退火算法及模型

Metropolis准则(1953)——以概率接受新状态

p=exp[-(Ej-Ei)/kBT]

在高温下,可接受与当前状态能量差较大的新状态;在低温下,只接受与当前状态能量差较小的新状态。

2.1.1物理退火过程2.1模拟退火算法及模型

组合优化问题金属物体解粒子状态最优解能量最低的状态设定初温熔解过程Metropolis抽样过程等温过程控制参数的下降冷却目标函数能量相似性比较

2.1.2组合优化与物理退火的相似性10

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e(-ΔE/(kT)),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法:由初始解i和控制参数初值t开始,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却进度表(CoolingSchedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。

2.1.3模拟退火算法的原理2.1模拟退火算法及模型

11模拟退火的模拟要求:初始温度足够高降温过程足够慢终止温度足够低

2.1.3模拟退火算法的基本思想和步骤2.1模拟退火算法及模型

2.1模拟退火算法及模型

基本步骤(1)初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点),每个T值的迭代次数L(2)对k=1,……,L做第(3)至第6步:(3)产生新解S′(4)计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数(5)若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的当前解.(6)如果满足终止条件则输出当前解作为最优解,结束程序。终止条件通常取为连续若干个新解都没有被接受时终止算法。(7)T逐渐减少,且T->0,然后转第2步。

2.1.3模拟退火算法的基本思想和步骤2.1模拟退火算法及模型

2.1.3模拟退火算法的基本思想和步骤2.1模拟退火算法及模型

s:=s0;e:=E(s)//设定目前状态为s0,其能量E(s0)

k:=0//评估次数k

whilek<kmaxande>emax//若还有时间(评估次数k还不

到kmax)且结果还不够好(能量e不够低)则:

sn:=neighbour(s)//随机选取一临近状态sn

en:=Esn)//sn的能量为E(sn)

if

random()<P(e,en,temp(k/kmax)) then//决定是否移至临近

状态sn

s:=sn;e:=en//移至临近状态sn

k:=k+1//评估完成,次数k加一

return

s//回转状态s

2.1.3模拟退火算法的伪代码2.1模拟退火算法及模型

第一步是由一个产生函数从当前解产生一个位于解空间的新解;为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。第二步是计算与新解所对应的目标函数差。因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算。事实表明,对大多数应用而言,这是计算目标函数差的最快方法。

2.1.3模拟退火算法的步骤2.1模拟退火算法及模型

第三步是判断新解是否被接受,判断的依据是一个接受准则,最常用的接受准则是Metropolis准则:若Δt′<0则接受S′作为新的当前解S,否则以概率exp(-Δt′/T)接受S′作为新的当前解S。第四步是当新解被确定接受时,用新解代替当前解,这只需将当前解中对应于产生新解时的变换部分予以实现,同时修正目标函数值即可。此时,当前解实现了一次迭代。可在此基础上开始下一轮试验。而当新解被判定为舍弃时,则在原当前解的基础上继续下一轮试验。模拟退火算法与初始值无关,算法求得的解与初始解状态S(是算法迭代的起点)无关;模拟退火算法具有渐近收敛性,已在理论上被证明是一种以概率l收敛于全局最优解的全局优化算法;模拟退火算法具有并行性。

2.1.3模拟退火算法的步骤模拟退火算法------参数的选择冷却进度表我们称调整模拟退火法的一系列重要参数为冷却进度表。它控制参数T的初值及其衰减函数,对应的MARKOV链长度和停止条件,非常重要。

一个冷却进度表应当规定下述参数:1.控制参数t的初值t0;

2.控制参数t的衰减函数;

3.马尔可夫链的长度Lk。(即每一次随机游走过程,要迭代多少次,才能趋于一个准平衡分布,即一个局部收敛解位置)

4.结束条件的选择

有效的冷却进度表判据:

一.算法的收敛:主要取决于衰减函数和马可夫链的长度及停止准则的选择

二.算法的实验性能:最终解的质量和CPU的时间2.2模拟退火算法的马氏链描述

模拟退火算法对应了一个马尔可夫链

模拟退火算法:新状态接受概率仅依赖于新状态和当前状态,并由温度加以控制。若固定每一温度,算法均计算马氏链的变化直至平稳分布,然后下降温度,则称为时齐算法;若无需各温度下算法均达到平稳分布,但温度需按一定速率下降,则称为非时齐算法。分析收敛性

2.2.2模拟退火算法与马尔科夫链2.3模拟退火算法关键参数和操作的设计原则

产生的候选解应遍布全部解空间方法

在当前状态的邻域结构内以一定概率方式(均匀分布、正态分布、指数分布等)产生

2.2.1状态产生函数2.3模拟退火算法关键参数和操作的设计原则

(1)在固定温度下,接受使目标函数下降的候选解的概率要大于使目标函数上升的候选解概率;

(2)随温度的下降,接受使目标函数上升的解的概率要逐渐减小;

(3)当温度趋于零时,只能接受目标函数下降的解。方法

具体形式对算法影响不大一般采用min[1,exp(-∆C/t)]

3.2.2状态接受函数2.3模拟退火算法关键参数和操作的设计收敛性分析

通过理论分析可以得到初温的解析式,但解决实际问题时难以得到精确的参数;初温应充分大;实验表明

初温越大,获得高质量解的机率越大,但花费较多的计算时间;

2.3.3初温2.3模拟退火算法关键参数和操作的设计方法

(1)均匀抽样一组状态,以各状态目标值得方差为初温;(2)随机产生一组状态,确定两两状态间的最大目标值差,根据差值,利用一定的函数确定初温;(3)利用经验公式。

2.3.3初温2.3模拟退火算法关键参数和操作的设计时齐算法的温度下降函数

(1),α越接近1温度下降越慢,且其大小可以不断变化;(2),其中t0为起始温度,K为算法温度下降的总次数。

2.2.4温度更新函数2.3模拟退火算法关键参数和操作的设计非时齐模拟退火算法

每个温度下只产生一个或少量候选解时齐算法——常用的Metropolis抽样稳定准则

(1)检验目标函数的均值是否稳定;(2)连续若干步的目标值变化较小;(3)按一定的步数抽样。

2.2.5内循环终止准则2.3模拟退火算法关键参数和操作的设计常用方法

(1)设置终止温度的阈值;(2)设置外循环迭代次数;(3)算法搜索到的最优值连续若干步保持不变;(4)概率分析方法。

2.3.6外循环终止准则2.4模拟退火算法的改进模拟退火算法的优点

质量高;初值鲁棒性强;简单、通用、易实现。模拟退火算法的缺点

由于要求较高的初始温度、较慢的降温速率、较低的终止温度,以及各温度下足够多次的抽样,因此优化过程较长。

2.4.1模拟退火算法的优缺点2.4模拟退火算法的改进改进的可行方案

(1)设计合适的状态产生函数;(2)设计高效的退火历程;(3)避免状态的迂回搜索;(4)采用并行搜索结构;(5)避免陷入局部极小,改进对温度的控制方式;(6)选择合适的初始状态;(7)设计合适的算法终止准则。

2.4.2改进内容2.4模拟退火算法的改进改进的方式

(1)增加升温或重升温过程,避免陷入局部极小;(2)增加记忆功能(记忆“Bestsofar”状态);(3)增加补充搜索过程(以最优结果为初始解);(4)对每一当前状态,采用多次搜索策略,以概率接受区域内的最优状态;(5)结合其它搜索机制的算法;(6)上述各方法的综合。

2.4.2改进内容2.4模拟退火算法的改进改进的思路

(1)记录“Bestsofar”状态,并即时更新;(2)设置双阈值,使得在尽量保持最优性的前提下减少计算量,即在各温度下当前状态连续m1步保持不变则认为Metropolis抽样稳定,若连续m2次退温过程中所得最优解不变则认为算法收敛。

2.4.3一种改进的模拟退火算法2.4模拟退火算法的改进改进的退火过程

(1)给定初温t0,随机产生初始状态s,令初始最优解s*=s,当前状态为s(0)=s,i=p=0;(2)令t=ti,以t,s*和s(i)调用改进的抽样过程,返回其所得最优解s*’和当前状态s’(k),令当前状态s(i)=s’(k);(3)判断C(s*)<C(s*’)?若是,则令p=p+1;否则,令s*=s*’,p=0;(4)退温ti+1=update(ti),令i=i+1;(5)判断p>m2?若是,则转第(6)步;否则,返回第(2)步;(6)以最优解s*作为最终解输出,停止算法。

2.4.3一种改进的模拟退火算法2.4模拟退火算法的改进改进的抽样过程

(1)令k=0时的初始当前状态为s’(0)=s(i),q=0;(2)由状态s通过状态产生函数产生新状态s’,计算增量∆C’=C(s’)-C(s);(3)若∆C’<0,则接受s’作为当前解,并判断C(s*’)>C(s’)?若是,则令s*’=s’,q=0;否则,令q=q+1。若∆C’>0,则以概率exp(-∆C’/t)接受s’作为下一当前状态;(4)令k=k+1,判断q>m1?若是,则转第(5)步;否则,返回第(2)步;(5)将当前最优解s*’和当前状态s’(k)返回改进退火过程。

2.4.3一种改进的模拟退火算法2.5模拟退火算法的实现与应用

2.5.130城市TSP问题(d*=423.741byDBFogel)

TSPBenchmark问题

4194;3784;5467;2562;764;299;6858;7144;5462;8369;6460;1854;2260;8346;9138;2538;2442;5869;7171;7478;8776;1840;1340;827;6232;5835;4521;4126;4435;450

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用算法流程

2.5模拟退火算法的实现与应用初始温度的计算

fori=1:100route=randperm(CityNum);fval0(i)=CalDist(dislist,route);endt0=-(max(fval0)-min(fval0))/log(0.9);

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用状态产生函数的设计(1)互换操作,随机交换两个城市的顺序;(2)逆序操作,两个随机位置间的城市逆序;(3)插入操作,随机选择某点插入某随机位置。

2.5.130城市TSP问题(d*=423.741byDBFogel)

2835914672835914672835914672815934672834195672359814672.5模拟退火算法的实现与应用参数设定

截止温度tf=0.01;

退温系数alpha=0.90;

内循环次数L=200*CityNum;

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用运行过程

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用运行过程

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用运行过程

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用运行过程

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用运行过程

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用运行结果

2.5.130城市TSP问题(d*=423.741byDBFogel)

2.5模拟退火算法的实现与应用换热器模型两级管壳式换热器组成的换热器系统,数学模型高度非线性,其目标函数通常是多峰(谷)的,具有很多局部最优解。

2.5.2模拟退火算法在管壳式换热器优化设计中的应用2.5模拟退火算法的实现与应用优化目标以换热器系统的总费用年值最小作为优化设计的目标。其中,f1(X)是两级换热器的初始投资,f2(X)是两级换热器年维护费(包括除垢、保养、维修等),f3(X)是冷却水资源费以及管程压降能耗费,f4(X)是壳程压降能耗费。

2.5.2模拟退火算法在管壳式换热器优化设计中的应用2.5模拟退火算法的实现与应用优化目标经过分析,优化问题的独立变量共12个,分别是一级换热器煤油出口温度t2、冷却水流量G1、两个换热器的管内径d1,d2和管间距S1,S2、折流板间距B1,B2、折流板开口角α1,α2、单管长度L1,L2。

2.5.2模拟退火算法在管壳式换热器优化设计中的应用2.5模拟退火算法的实现与应用应用模拟退火算法解决优化设计状态表示——12个变量的实数表示;初始温度——100;结束温度——0.001;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论