目录

  • 一.模型背景
    • 1.什么是退火
    • 2.物理退火过程
    • 3.热力学中的退火现象
  • 二.模拟退火算法思想
  • 三、算法简介
    • 1.背景
    • 2.模拟退火算法的模拟要求
    • 3.模拟退火算法的计算步骤
  • 模拟退火算法对TSP问题的求解
  • 部分代码展示
  • 完整代码获取方式

一.模型背景

1.什么是退火

退火是指将固体加热到足够高的温度,使分子呈随机排列状态,然后逐步降温使之冷却,最后分子以低能状态排列,固体达到某种稳定状态。

2.物理退火过程

加温过程——增强粒子的热运动,消除系统原先可能存在的非均匀态;等温过程——对于与环境换热而温度不变的封闭系统,系统状态的自发变化总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡态;冷却过程——使粒子热运动减弱并渐趋有序,系统能量逐渐下降,从而得到低能的晶体结构。

3.热力学中的退火现象

热力学中的退火现象指物体逐渐降温时发生的物理现象。

温度越低,物体的能量状态越低,到达足够的低点时,液体开始冷凝与结晶,在结晶状态时,系统的能量状态最低。缓慢降温时,可达到最低能量状态;但如果快速降温,会导致不是最低能态的非晶形。大自然知道慢工出细活:缓缓降温,使得物体分子在每一温度时,能够有足够时间找到安顿位置,则逐渐地,到最后可得到最低能态,系统最稳定。

二.模拟退火算法思想

模仿自然界退火现象而得,利用了物理中固体物质的退火过程与一般优化问题的相似性从某一初始温度开始,伴随温度的不断下降,结合概率突跳特性在解空间中随机寻找全局最优解

组合优化问题 金属物体
粒子状态
最优解 能量最低的状态
设定初温 熔解过程
Metropolis抽样过程 等温过程
控制参数的下降 冷却
目标函数 能量

三、算法简介


1.背景

2.模拟退火算法的模拟要求

1 初始温度足够高

2 降温过程足够慢

3 终止温度足够低

3.模拟退火算法的计算步骤


模拟退火算法对TSP问题的求解

旅行商问题,即 T S P TSP TSP问题( T r a v e l l i n g S a l e s m a n P r o b l e m Travelling Salesman Problem TravellingSalesmanProblem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访 n n n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。迄今为止,这类问题中没有一个找到有效算法。倾向于接受NP完全问题( N P − C o m p l e t NP-Complet NP−Complet或 N P C NPC NPC)和NP难题( N P − H a r d NP-Hard NP−Hard或 N P H NPH NPH)不存在有效算法这一猜想,认为这类问题的大型实例不能用精确算法求解,必须寻求这类问题的有效的近似算法。

城市 X坐标 Y坐标 城市 X坐标 Y坐标
1 0.6683 0.2536 6 0.2293 0.7610
2 0.6195 0.2634 7 0.5171 0.9414
3 0.4000 0.4439 8 0.8732 0.6536
4 0.2439 0.1463 9 0.6878 0.5219
5 0.1707 0.2293 10 0.8488 0.3609

部分代码展示

clear
clc
close all
%% 程 序 参 数 设 定
load data
Coord = data';% 城 市 的 坐 标 Coordinates
t0 = 1 ; % 初 温 t0
iLk = 20 ; % 内 循 环 最 大 迭 代 次 数 iLk
oLk = 50 ; % 外 循 环 最 大 迭 代 次 数 oLk
lam = 0.95 ; % λ lambda
istd = 0.001 ; % 若 内 循 环 函 数 值 方 差 小 于 istd 则 停 止
ostd = 0.001 ; % 若 外 循 环 函 数 值 方 差 小 于 ostd 则 停 止
ilen = 5 ; % 内 循 环 保 存 的 目 标 函 数 值 个 数
olen = 5 ; % 外 循 环 保 存 的 目 标 函 数 值 个 数
%% 程 序 主 体
m = length( Coord ) ; % 城 市 的 个 数 m
fare = distance( Coord ) ; % 路 径 费 用 fare
path = 1 : m ; % 初 始 路 径 path
pathfar = pathfare( fare , path ) ; % 路 径 费 用 path fare
ores = zeros( 1 , olen ) ; % 外 循 环 保 存 的 目 标 函 数 值
e0 = pathfar ; % 能 量 初 值 e0
t = t0 ; % 温 度 t
for out = 1 : oLk % 外 循 环 模 拟 退 火 过 程ires = zeros( 1 , ilen ) ; % 内 循 环 保 存 的 目 标 函 数 值for in = 1 : iLk % 内 循 环 模 拟 热 平 衡 过 程[ newpath , v ] = swap( path , 1 ) ; % 产 生 新 状 态e1 = pathfare( fare , newpath ) ; % 新 状 态 能 量% Metropolis 抽 样 稳 定 准 则r = min( 1 , exp( - ( e1 - e0 ) / t ) ) ;if rand < rpath = newpath ; % 更 新 最 佳 状 态e0 = e1 ;endires = [ ires( 2 : end ) e0 ] ; % 保 存 新 状 态 能 量% 内 循 环 终 止 准 则 :连 续 ilen 个 状 态 能 量 波 动 小 于 istdif std( ires , 1 ) < istdbreak ;endendores = [ ores( 2 : end ) e0 ] ; % 保 存 新 状 态 能 量% 外 循 环 终 止 准 则 :连 续 olen 个 状 态 能 量 波 动 小 于 ostdif std( ores , 1 ) < ostdbreak ;endt = lam * t ;
end
pathfar = e0 ;
%% 输 入 结 果
fprintf( '近似最优路径为:\n ' )
%disp( char( [ path , path(1) ] + 64 ) ) ;
disp(path)
fprintf( '近似最优路径路程\tpathfare=' ) ;
disp( pathfar ) ;
myplot( path , Coord , pathfar ) ;

完整代码获取方式


请点击以下链接进行获取:https://download.csdn.net/download/m0_54688810/20252132?spm=1001.2014.3001.5501

模拟退火模型(matlab实现)相关推荐

  1. 用matlab做单摆,单摆模型MATLAB程序

    <单摆模型MATLAB程序>由会员分享,可在线阅读,更多相关<单摆模型MATLAB程序(2页珍藏版)>请在人人文库网上搜索. 1.Simple pendulum model%A ...

  2. 数学建模——智能优化之模拟退火模型详解Python代码

    数学建模--智能优化之模拟退火模型详解Python代码 #本功能实现最小值的求解#from matplotlib import pyplot as plt import numpy as np imp ...

  3. pm模型matlab算法,18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码...

    基于遗传算法(粒子群算法.人工鱼群算法等)的投影寻踪模型 MATLAB源代码 投影寻踪是一种处理多因素复杂问题的统计方法,其基本思路是将高维数据向低维空间进行投影,通过低维投影数据的散布结构来研究高维 ...

  4. 负荷需求响应模型matlab 通过分时电价方式下的负荷需求响应模型得到负荷响应前后变化情况,可以看到明显呈现削峰填谷的作用

    负荷需求响应模型matlab 通过分时电价方式下的负荷需求响应模型得到负荷响应前后变化情况,可以看到明显呈现削峰填谷的作用 YID:6148641310561088爱熬夜的程序猿

  5. SIR传染模型Matlab代码,sir传染病模型 MATLAB代码运行不了,

    问题描述: sir传染病模型 MATLAB代码运行不了, function y=ill(t,x) a=1;b=0.3; y=[a*x(1)*x(2)-b*x(1),-a*x(1)*x(2)]'; ts ...

  6. 双通道连续波多普勒雷达测速模型 - Matlab仿真

    双通道连续波多普勒雷达测速模型 - Matlab仿真 双通道连续波多普勒雷达是一种用于测量目标速度的传感器,具有较高的精度和可靠性,广泛应用于军事.民用等领域.本文将介绍如何通过Matlab来实现双通 ...

  7. 古诺双寡头模型MATLAB求解(博弈论)

    古诺双寡头模型MATLAB求解(博弈论) 基本概念 古诺竞争模型(也称古诺模型)是早期的寡头垄断模型.它是法国经济学家古诺于1838年提出的. 古诺模型的假定是:市场上有A.B两个厂商生产和销售相同的 ...

  8. 光伏发电并网模型MATLAB SIMULINK Boost+三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法)

    光伏发电并网模型MATLAB SIMULINK Boost+三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法) dq解耦控制 电流内环电压外环的并网控制策略 ID:7324687883 ...

  9. 有源电力滤波器(APF)模型 Matlab/simulink

    有源电力滤波器(APF)模型 Matlab/simulink 可用于治理不控整流和不平衡负载带来的电能质量问题:仿真总时长0.3s,0.1s时接入APF, 0.1-0.2s治理不控整流带来的谐波电流, ...

  10. 辛苦整理SBM模型Matlab工具包资料

    数据集名称:辛苦整理SBM模型Matlab工具包资料 数据截图: 下载链接:SBM模型Matlab工具包.rar-数据集文档类资源-CSDN下载

最新文章

  1. C语言中within函数,vfprintf() - C语言库函数
  2. 2019世界机器人大赛总决赛在河北保定开赛
  3. JS百度地图高德地图API的接入与使用
  4. 抢疯了~调研了数10+大厂的AI人才需求的公开课,现在免费学
  5. nodeJS下利用mongdb进行数据库操作
  6. Spring Data REST API集成Springfox、Swagger
  7. devops 文化_谁在DevOps中推动文化发展?
  8. adk linux 64 下载,Homekit HomeKit开源ADK是HomeKit配件开发包的一个开源版本 - 下载 - 搜珍网...
  9. java 控制路由器_停用角度路由器链路
  10. 中国数控攻牙机市场趋势报告、技术动态创新及市场预测
  11. 使用CrossFTP跨越不同站点复制/移动数据
  12. react-navigation之动态修改title的内容
  13. 2018计算机核心期刊,2018中国科技核心期刊目录!!!!
  14. 刷单之骗人先交钱QQ,如何从qq,找到他的ip
  15. 换个角度理解正则表达式
  16. 老范的Bug跟踪管理系统0.1 Alpha——介绍篇
  17. window10 重装后“未安装任何音频输出设备”
  18. 微信 服务器参数错误 请重新填写,微信上登录验证出现参数错误怎么解决
  19. PHP-FPM(PHP进程管理器)
  20. SAP PS常用事务代码T-CODE

热门文章

  1. 深度优先搜索(DFS)和广度优先搜索(BFS)两种算法c++
  2. RAMDISK 内存盘工具推荐
  3. html+css 安利案例
  4. 使用SQL4Automation让CodeSYS连接数据库
  5. thinksnsv4.6运行php,开源微博系统ThinkSNS电脑版
  6. 学校留言板网页html和css,html,css,js,简单的网页留言板
  7. APP Inventor中如何利用GPS经纬度计算GPS距离、速度、方向
  8. 毕业设计-基于Unity的餐厅经营游戏的设计与开发(附源码、开题报告、论文、答辩PPT、演示视频,带数据库)
  9. 2017-秋招:机器学习/算法工程师(含大量面经)
  10. java模拟post请求上传图片