《模拟退火算法工具箱及应用精选文档.ppt》由会员分享,可在线阅读,更多相关《模拟退火算法工具箱及应用精选文档.ppt(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、模拟退火算法工具箱及应用本讲稿第一页,共十四页1.理论基础1.1模拟退火算法工具箱(simulatedannealingtoolbox,SAT)在R2009a版本中,MATLAB自带的遗传算法与直接搜索工具箱集成了模拟退火算法。基本原理:模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。2023/4/72023/4/72本讲稿第二页,共十四页SA算法结构示意图simulannealbndsimulannealsimulannealcommon.
2、msaenginesolverData.running=ture?sacheckexit.msanewpoint.msaupdates.mgadsplot.m得到最优解得到最优解NY2023/4/72023/4/73本讲稿第三页,共十四页SAT的使用只需要调用主函数simulannealbnd即可,函数simulannealbnd则调用函数simulanneal对模拟退火问题进行求解。函数simulanneal依次调用函数simulannealcommon和函数saengine,并最终得到最优解。在函数saengine中,SA进行迭代搜索,直到满足一定的条件才退出。在迭代过程中,函数sanew
3、point和函数saupdates是关键函数。2023/4/72023/4/74本讲稿第四页,共十四页1.2模拟退火的一些基本概念l目标函数(objective function):即待优化的函数。在调用函数simulannealbnd运行模拟退火算法时,需要编写该目标函数的M文件。SAT是对目标函数取最小值进行优化的,对于最大值的优化问题,只需要将目标函数乘以-1即可化为最小值优化问题。l温度(temperature):是一个重要的参数,他随着算法的迭代逐步下降,以模拟固体退火过程中的降温过程。一方面,温度用于限制SA产生的新解与当前解之间的距离,即SA的搜索范围;另一方面,温度决定了SA以
4、多大的概率接受目标函数值比当前解的目标函数值差的新解。2023/4/72023/4/75本讲稿第五页,共十四页l退火进度表(annealingschedule):是指温度随算法迭代的下降速度。退火过程越缓慢,SA找到全局最优解的机会就越大。退火进度表包括初始温度(initialtemperature)及温度更新函数(temperatureupdatefunction)的参数。lMeteopolis准则:是指SA接受新解的概率,对于目标函数取最小值的问题,SA接受新解的概率为:2023/4/72023/4/76本讲稿第六页,共十四页案例分析求解Rastrigin函数的最小值。如何绘制?2023/
5、4/72023/4/77本讲稿第七页,共十四页程序:x1=-5:0.01:5;x2=-5:0.01:5;x1,x2=meshgrid(x1,x2);x3=20+x12+x22-10*(cos(2*pi*x1)+cos(2*pi*x2);surfc(x1,x2,x3)colormaphsv2023/4/72023/4/78本讲稿第八页,共十四页解题步骤:lStartToolboxesGlobaloptimizationOptimizationtoolloptimtool(simulannealbnd)2023/4/72023/4/79本讲稿第九页,共十四页命令行方式使用SAT:x,fval=simulannealbnd(fun,x0,lb,ub,options)options=saoptimset(Param1,value1,Param2,value2,);2023/4/72023/4/710本讲稿第十页,共十四页2023/4/72023/4/711本讲稿第十一页,共十四页2023/4/72023/4/712本讲稿第十二页,共十四页rmsep=0.48222023/4/72023/4/713本讲稿第十三页,共十四页rmsep=0.48082023/4/72023/4/714本讲稿第十四页,共十四页
限制150内