智能优化算法——模拟退火算法小实践

实验二 模拟退火算法
一、实验目的与要求
目的:通过本次实验,学生可以掌握模拟退火搜索算法基本原理、基本模拟退火算法流程和关键参数的设置。。
要求:上机仿真,调试通过。
二、 实验设备:
计算机、Python语言软件
三、实验内容:
旅行商问题(TSP)。假设有一个旅行商人要游览全国31个省会城市,他需要选择所要走过的路径,路径的限制是每个城市只能游览一次,而且最后要回到原来出发的城市。路径的选择要求是:所选择路径的路程为所有路径之中的最小值。
全国31个省会城市的坐标为【1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196 1004;4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;1332 695;3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2367;3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975】
四、实验原理:
(1)模拟退火算法原理
模拟退火算法以一定的概率来接受一个比当前解,因此有可能会跳出这个局部最优解,达到全局最优解。模拟退火算法在搜索到局部最优解后,会以一定的概率接受移动。也许经过几次这样的不是局部最优的移动后会到达某点,于是就跳出了局部最大值。
(1)模拟退火算法流程或步骤
在这里插入图片描述
五、实验结果(含和禁忌算法的比较)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

两种算法的比较:模拟退火的解不再像禁忌算法那样最后的结果依赖初始点。它引入了一个接受概率p。也就是说,模拟退火没有像禁忌搜索那样每次都寻找比现在好的点,目标函数差一点的点在这里插入图片描述也有可能接受进来。随着算法的执行,系统温度T逐渐降低,最后终止于某个低温, 在该温度下,系统不再接受变化。所以在性能和实验结果上比禁忌算法略优。在运行时间上禁忌算法不到2s,而模拟退火用时长出数倍,时间复杂度较高。
六、思考算法关键参数设置对算法结果的影响
退火结束准则一般有:设置终止温度;设置迭代次数;搜索到的最优值连续多次保持不变;检验系统熵是否稳定。本次实验选择终止温度<1时结束迭代。
1.初始温度
初始温度过高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索的性能可能会受到影响。针对此次实验,初始温度选取为100。下图为初始温度选择800,3100时的图像对比,可见,初温较高可以搜索到更优解,同时温度较高者初始迭代较慢,在400代时近似收敛,而温度较低者迭代速度快且在280代左右近似收敛。
在这里插入图片描述

在这里插入图片描述2.温度衰减系数
衰减系数用于控制温度的退火温度,数值越趋向于1,每次衰减的就越少,获得全局最优解的概率就越大,但是时间消耗也会越大,通常设置在0.95-0.99左右。此次实验在衰减参数取值0.99和0.96时,通过对实验结果的比较,发现衰减参数越接近1,则越能得到好的解(也就是说退火之后能量较低),通过不同衰减参数下对迭代次数的打印发现,取值0.96时温度下降次数为113,也就是说虽然马尔科夫链长度为1000,但是衰减过快,提前到达此参数下的最低温。 同时衰减系数取值越接近1,运行时间越长。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.马尔科夫链长度
通常的原则是:在衰减参数T的衰减函数已经选定的情况下,L的选取应遵循在控制参数的每一个取值上都能恢复准平衡的原则,且马尔科夫链长度也是影响时间的主要因素。针对本次实验,为了达到恢复平衡的原则,选为1000。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值