文档详情

模拟退火算法详解.ppt

发布:2018-12-28约9.43千字共52页下载文档
文本预览下载声明
3.4 模拟退火算法的改进 现代优化计算 改进的可行方案 (1)设计合适的状态产生函数; (2)设计高效的退火历程; (3)避免状态的迂回搜索; (4)采用并行搜索结构; (5)避免陷入局部极小,改进对温度的控制方式; (6)选择合适的初始状态; (7)设计合适的算法终止准则。 3.4.2 改进内容 3.4 模拟退火算法的改进 现代优化计算 改进的方式 (1)增加升温或重升温过程,避免陷入局部极小; (2)增加记忆功能(记忆“Best so far”状态); (3)增加补充搜索过程(以最优结果为初始解); (4)对每一当前状态,采用多次搜索策略,以概率接受区域内的最优状态; (5)结合其它搜索机制的算法; (6)上述各方法的综合。 3.4.2 改进内容 3.4 模拟退火算法的改进 现代优化计算 改进的思路 (1)记录“Best so far”状态,并即时更新; (2)设置双阈值,使得在尽量保持最优性的前提下减少计算量,即在各温度下当前状态连续 m1 步保持不变则认为Metropolis抽样稳定,若连续 m2 次退温过程中所得最优解不变则认为算法收敛。 3.4.3 一种改进的模拟退火算法 3.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)判断pm2? 若是,则转第(6)步;否则,返回第(2)步; (6)以最优解s*作为最终解输出,停止算法。 3.4.3 一种改进的模拟退火算法 3.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,判断qm1? 若是,则转第(5)步;否则,返回第(2)步; (5)将当前最优解s*’和当前状态s’(k)返回改进退火过程。 3.4.3 一种改进的模拟退火算法 3.5 模拟退火算法的实现与应用 现代优化计算 3.5.1 30城市TSP问题(d*=423.741 by D B Fogel) TSP Benchmark 问题 41 94;37 84;54 67;25 62; 7 64;2 99;68 58;71 44;54 62;83 69;64 60;18 54;22 60;83 46;91 38;25 38;24 42;58 69;71 71;74 78;87 76;18 40;13 40;82 7;62 32; 58 35;45 21;41 26;44 35;4 50 3.5 模拟退火算法的实现与应用 现代优化计算 算法流程 3.5.1 30城市TSP问题(d*=423.741 by D B Fogel) 3.5 模拟退火算法的实现与应用 现代优化计算 初始温度的计算 for i=1:100 route=randperm(CityNum); fval0(i)=CalDist(dislist,route); end t0=-(max(fval0)-min(fval0))/log(0.9); 3.5.1 30城市TSP问题(d*=423.741 by D B Fogel) 3.5 模拟退火算法的实现与应用 现代优化计算 状态产生函数的设计 (1)互换操作,随机交换两个城市的顺序; (2)逆序操作,两个随机位置间的城市逆序;
显示全部
相似文档