用MATLAB实现模拟退火算法PPT课件_第1页
用MATLAB实现模拟退火算法PPT课件_第2页
用MATLAB实现模拟退火算法PPT课件_第3页
用MATLAB实现模拟退火算法PPT课件_第4页
用MATLAB实现模拟退火算法PPT课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

.,1,模拟退火算法及其MATLAB实现,模拟退火,.,2,第6章模拟退火算法及其MATLAB实现,6.1算法基本理论,6.2算法的MATLAB实现,6.3应用实例,.,3,简单了解退火算法特点,介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。,.,4,简单了解退火算法特点,爬山算法如图所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。,模拟退火算法在搜索到局部最优解A后,会以一定的概率接受到E的移动。也许经过几次这样的不是局部最优的移动后会到达D点,于是就跳出了局部最大值A。,.,5,6.1算法基本理论,一、算法概述,工程中许多实际优化问题的目标函数都是非凸的,存在许多局部最优解。求解全局优化问题的方法可分为两类:确定性方法和随机性方法。确定性算法适用于求解具有一些特殊特征的问题,而梯度法和一般的随机搜索方法则沿着目标函数下降方向搜索,因此常常陷入局部而非全局最优解。,.,6,6.1算法基本理论,一、算法概述,模拟退火算法(SA)是一种通用概率算法。用来在一个大的搜索空间内寻找问题的最优解。1953年,Metropolis等提出了模拟退火的思想。1983年,Kirkpatrick等将SA引入组合优化领域。,.,7,6.1算法基本理论,二、基本思想,退火,俗称固体降温,先把固体加热至足够高温,使固体中所有粒子处于无序的状态,然后将温度缓慢下降,粒子渐渐有序,这样只要温度上升得足够高,冷却过程足够慢,则所有粒子最终会处于最低能态。,.,8,算法试图随着控制参数T的降低,使目标函数值f(内能E)也逐渐降低,直至趋于全局最小值(退火中低温时的最低能量状态),算法工作过程就像固体退火过程一样。,6.1算法基本理论,模拟退火算法的由来,.,9,6.1算法基本理论,Metropolis准则,以概率接受新状态,.,10,新状态的内能,当前状态的内能,温度,EjEi(更差的解)时,00.5,随机产生01的数,二变换法,三变换法,N,Y,.,21,6.2算法的MATLAB实现,一、算法设计步骤,.,22,6.2算法的MATLAB实现,一、算法设计步骤,.,23,6.2算法的MATLAB实现,一、算法设计步骤,whilet=tfforr=1:Markov_lengthif(rand0.5)%随机产生01的数,若小于0.5,则二变换ind1=0;ind2=0;while(ind1=ind2)ind1=ceil(rand.*amount);ind2=ceil(rand.*amount);endtmp1=sol_new(ind1);sol_new(ind1)=sol_new(ind2);sol_new(ind2)=tmp1;,else%否则,三变换ind1=0;ind2=0;ind3=0;while(ind1=ind2)|(ind1=ind3).|(ind2=ind3)|(abs(ind1-ind2)=1)ind1=ceil(rand.*amount);ind2=ceil(rand.*amount);ind3=ceil(rand.*amount);endtmp1=ind1;tmp2=ind2;tmp3=ind3;,.,24,6.2算法的MATLAB实现,一、算法设计步骤,if(ind1ind2)%u、v之间的城市移到w后面end,.,25,6.2算法的MATLAB实现,一、算法设计步骤,.,26,6.2算法的MATLAB实现,一、算法设计步骤,%计算目标函数即内能E_new=0;fori=1:(amount-1)E_new=E_new+.dist_matrix(sol_new(i),sol_new(i+1);end%从第一个城市到最后一个城市的距离E_new=E_new+.dist_matrix(sol_new(amount),sol_new(1);,.,27,6.2算法的MATLAB实现,一、算法设计步骤,.,28,6.2算法的MATLAB实现,一、算法设计步骤,ifE_newE_currentE_current=E_new;sol_current=sol_new;ifE_newE_best%冷却过程中最好的解保存下来E_best=E_new;sol_best=sol_new;endelse%若新解的目标函数大于当前解的,%则以一定的概率接受新解ifrandexp(-(E_new-E_current)./t)E_current=E_new;sol_current=sol_new;elsesol_new=sol_current;endend,.,29,6.3应用实例:背包问题的求解,一、0-1背包问题,例:假设有12件物品,质量分别为2磅、5磅、18磅、3磅、2磅、5磅、10

温馨提示

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

评论

0/150

提交评论