模拟退火(matlab数学建模求解案例)

09a109d638ee4612aab843ef4bc84d8f.jpg

 由于使用贪心算法容易陷入局部最优且依次遍历效率太低,这样的题目适合使用模拟退火算法

首先导入城市的经纬度,算出每两个城市之间的距离,放入一个矩阵d以便后续计算

ac5fd40947764cec8c3f417a013d9dd5.jpg

 在模拟退火算法求解之前先使用蒙特卡罗法求出一个较好的初始解

4c92b57da44144b38cb10ed49f20999f.jpg

 接着定义初始温度,结束条件(最小温度),降温系数,每一个while循环之后使用降温系数对T降温,在每个T固定时用for循环进行多次求解,若解更好直接采纳,若不是更优解,设置一个概率采纳,以防止陷入局部最优,这样就实现了模拟退火算法

b3f7860afe5b4153a130e4df13218abe.jpg

 以下为所有变量

eb1e988e4b074611aeafe78fa2af28f5.jpg

 最终求得最短的路线长度length为1395.1km   路径最优解path如下

431243cb133546f7acf4afd45206301c.jpg

 这样就完成了本题的模拟退火算法求解

 

 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

❆❁❅❃✽✺❉❂✸✻✹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值