欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    用MATLAB实现模拟退火算法-PPT.ppt

    • 资源ID:92789127       资源大小:885.50KB        全文页数:30页
    • 资源格式: PPT        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用MATLAB实现模拟退火算法-PPT.ppt

    用MATLAB 实现模拟退火算法第6章 模拟退火算法及其MATLAB实现6.1算法基本理论6.2算法的MATLAB实现6.3应用实例2简单了解退火算法特点介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。3简单了解退火算法特点爬山算法如图所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。模拟退火算法在搜索到局部最优解A后,会以一定的概率接受到E的移动。也许经过几次这样的不是局部最优的移动后会到达D点,于是就跳出了局部最大值A。46.1 算法基本理论一、算法概述工程中许多实际优化问题的目标函数都是非凸的,存在许多局部最优解。求解全局优化问题的方法可分为两类:确定性方法和随机性方法。确定性算法适用于求解具有一些特殊特征的问题,而梯度法和一般的随机搜索方法则沿着目标函数下降方向搜索,因此常常陷入局部而非全局最优解。56.1 算法基本理论一、算法概述模拟退火算法(SA)是一种通用概率算法。用来在一个大的搜索空间内寻找问题的最优解。1953年,Metropolis等提出了模拟退火的思想。1983年,Kirkpatrick等将SA引入组合优化领域。66.1 算法基本理论二、基本思想退火,俗称固体降温先把固体加热至足够高温,使固体中所有粒子处于无序的状态,然后将温度缓慢下降,粒子渐渐有序,这样只要温度上升得足够高,冷却过程足够慢,则所有粒子最终会处于最低能态。7大家有疑问的,可以询问和交流可以互相讨论下,但要小声点 可以互相讨论下,但要小声点8算法试图随着控制参数T的降低,使目标函数值f(内能E)也逐渐降低,直至趋于全局最小值(退火中低温时的最低能量状态),算法工作过程就像固体退火过程一样。6.1 算法基本理论模拟退火算法的由来96.1 算法基本理论 Metropolis准则以概率接受新状态10新状态的内能当前状态的内能温度EjEi(更差的解)时,0P1,P随着T的减小而减小;6.1 算法基本理论116.1 算法基本理论当初始温度足够高时,概率P接近于1,所以当前解经过扰动产生的新解,无论好坏,基本都可以被接受为当前解。即不受制于当前解,不会困在局部最优解中,可以遍及解空间的各个区域,当然也不会保持在最优解处。随着温度降低,概率降低,较差解被接受的次数减少,当前解逐渐停留到最优解周围。温度达到终止温度前,概率足够低,使得只有最优解被接受,较差解都不接受。最优解即为最后接受的当前解。算法总结在高温下,可接受与当前状态能量差较大的新状态;在低温下,只接受与当前状态能量差较小的新状态。126.1 算法基本理论三、算法其他参数的说明136.1 算法基本理论四、算法基本步骤14初始温度,随机产生初始解。接受新解作为当前解计算概率与0,1)随机数之间的差值差值大于0结束,输出当前解YNYNNYYN156.1 算法基本理论四、算法基本步骤算法实质分为两层循环,在任一温度下随机扰动产生新解,计算目标函数值的变化,决定是否接受。由于算法初始温度比较高,这样使E增大的新解在初始时也可能被接受,因此能跳出局部极小值,然后通过缓慢地降低温度,算法可能收敛到全局最优解。虽然在低温时接受函数已经非常小了,但仍不排除有接受更差解得可能,因此一般都会把退火过程中碰到的最好的可行解(历史最优解)也记录下来,与终止算法前最后被接受解一并输出。166.1 算法基本理论五、几点说明1、新解的产生要求尽可能地遍及解空间的各个区域,这样,在某一恒定温度下,不断产生新解时,就可能跳出局部最优解。2、收敛的一般条件:初始温度足够高;热平衡时间足够长;终止温度足够低;降温过程足够缓慢;176.1 算法基本理论五、几点说明186.1 算法基本理论六、算法优缺点优点:计算过程简单,通用,鲁棒性强,适用于并行处理,可用于求解复杂的非线性优化问题。缺点:收敛速度慢,执行时间长,算法性能与初始值有关及参数敏感等缺点。196.2 算法的MATLAB实现旅行商问题一名商人要到n个不同的城市去推销商品,每2个城市I 和j 之间的距离为d,如何选择一条路径使得商人每个城市走一遍后回到起点所走的路径最短。例:有52座城市,已知每座城市的坐标,求每个城市走一遍后回到起点,所走的路径最短。20初始温度(93),随机产生初始解(1到52的随机排列)。接受新解作为当前解计算概率与0,1)随机数之间的差值差值大于0扰动次数10000结束,输出当前解YNYNNYYN扰动:数0.5随机产生01的数二变换法 三变换法NY216.2 算法的MATLAB实现一、算法设计步骤226.2 算法的MATLAB实现一、算法设计步骤236.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;246.2 算法的MATLAB实现一、算法设计步骤if(ind1ind2)&(ind2ind3)elseif(ind1ind3)&(ind3ind2)ind2=tmp3;ind3=tmp2;elseif(ind2ind1)&(ind1ind3)ind1=tmp2;ind2=tmp1;elseif(ind2ind3)&(ind3ind1)ind1=tmp2;ind2=tmp3;ind3=tmp1;elseif(ind3ind1)&(ind1ind2)ind1=tmp3;ind2=tmp1;ind3=tmp2;elseif(ind3ind2)&(ind2ind1)ind1=tmp3;ind2=tmp2;ind3=tmp1;end%ind1ind2ind3tmplist1=sol_new(ind1+1):(ind2-1);%u、v之间的城市sol_new(ind1+1):(ind1+ind3-ind2+1)=.sol_new(ind2):(ind3);%将v到w的城市移到u后面sol_new(ind1+ind3-ind2+2):ind3)=.tmplist1;%u、v之间的城市移到w后面end256.2 算法的MATLAB实现一、算法设计步骤266.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);276.2 算法的MATLAB实现一、算法设计步骤286.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;endend296.3 应用实例:背包问题的求解一、0-1背包问题例:假设有12件物品,质量分别为2磅、5磅、18磅、3磅、2磅、5磅、10磅、4磅、11磅、7磅、14磅、6磅,价值分别为5元、10元、13元、4元、3元、11元、13元、10元、8元、16元、7元、4元,包的最大允许质量是46磅30

    注意事项

    本文(用MATLAB实现模拟退火算法-PPT.ppt)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开