当前位置:文档之家› 模拟退火算法

模拟退火算法


算法的关键参数和操作的设定
状态接受函数:
原则:函数一般以概率的方式给出,不同接受函数的差别主要在 于接受概率的形式不同。设计状态接受概率,应该遵循以下原则:
(1)在固定温度下,接受使目标函数下降的候选解的概率要大 于使目标函数上升的候选解概率;
(2)随温度的下降,接受使目标函数上升的解的概率要逐渐减 小; (3)当温度趋于零时,只能接受目标函数下降的解。 方法:状态接受函数的引入是模拟退火算法实现全局搜索的最关 键的因素,模拟退火算法中通常采用 min[1,exp(-△C/t)] 作为状态 接受函数
模拟退火算法的应用
• 初始温度的计算
for i=1:100
route=randperm(CityNum);
fval0(i)=CalDist(dislist,route);
end
t0=-(max(fval0)-min(fval0))/log(0.9);
模拟退火算法的应用
• 状态产生函数的设计
(1)互换操作,随机交换两个城市的顺序;
加温过程——增强粒子的热运动,消除系统原先可能存在的非均匀态; 等温过程——对于与环境换热而温度不变的封闭系统,系统状态的自发变化 总是朝自由能减少的方向进行,当自由能达到最小时,系统达到平衡态; 冷却过程——使粒子热运动减弱并渐趋有序,系统能量逐渐下降,从而得到 低能的晶体结构。
退火的作用

影响优化结果的主要因素
给定初温t=t0,随机产生初始状态s=s0,令k=0;
Repeat Repeat 产生新状态sj=Genete(s); if min{1,exp[-(C(sj)-C(s))/tk]}>=randrom[0,1] s=sj; Until 抽样稳定准则满足; 退温tk+1=update(tk)并令k=k+1; Until 算法终止准则满足; 输出算法搜索结果。
基本步骤
给定初温t=t0,随机产生初始状态s=s0,令k=0;
Repeat
Repeat 产生新状态sj=Genete(s); if min{1,exp[-(C(sj)-C(s))/tk]}>=randrom[0,1] s=sj; Until 抽样稳定准则满足; 退温tk+1=update(tk)并令k=k+1; Until 算法终止准则满足; 输出算法搜索结果。
2 8 3 5 9 1 4 6 7 2 8 1 5 9 3 4 6 7
(2)逆序操作,两个随机位置间的城市逆序;
2 8 3 5 9 1 4 6 7 2 8 3 4 1 9 某随机位置。
2 8 3 5 9 1 4 6 7 2 3 5 9 8 1 4 6 7
模拟退火算法的应用
降温图像
离散函数图像
组合优化与物理退火的相似比较
• 从某一初始温度开始,伴随温度的不断下降,结合概率突跳特性在 解空间中随机寻找全局最优解
组合优化问题 解 最优解 设定初温 Metropolis抽样过程 控制参数的下降 目标函数 金属物体 粒子状态 能量最低的状态 熔解过程 等温过程 冷却 能量
模拟退火算法原理
模拟退火算法
LOREM IPSUM DOLOR
导论
• 模拟退火算法(Simulated Annealing,SA)是一种通用的优化算法。 目前,已在:生产调度、控制工程、计算机视觉、神经网络、图像 处理等工程领域中得到了广泛应用。
• 最早的思想是由N.Metropolis等人于1953年提出。1983年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。它是基于 Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物 理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟 退火算法从某一较高初温出发,伴随温度参数的不断下降 ,结合概率 突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最 优解能概率性地跳出并最终趋于全局最优。 • 模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突 跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结 构的优化算法。
模拟退火算法的思想
• 模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其 徐徐冷却;加温时,固体内部粒子随温升变为无序状,内能增大, 而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常 温时达到某种稳定状态,基态,内能减为最小。
缓慢下降
高温
高能状态
低温
低能状态
模拟退火算法的思想
物理退火过程
K
算法的关键参数和操作的设定
内循环终止准则:
常用的Metropolis抽样稳定准则: (1)检验目标函数的均值是否稳定;
(2)连续若干步的目标值变化较小;
(3)按一定的步数抽样。 外循环终止准则 (1)设置终止温度的阈值; (2)设置外循环迭代次数; (3)算法搜索到的最优值连续若干步保持不变; (4)概率分析方法。
模拟退火算法的优缺点
• 模拟退火算法的优点
(1)质量高;
(2)初值鲁棒性强;
(3)简单、通用、易实现。
• 模拟退火算法的缺点 由于要求较高的初始温度、较慢的降温速率、较低的 终止温度,以及各温度下足够多次的抽样,因此优化过 程较长。
模拟退火算法的应用
• 3.1 30城市TSP问题
• 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
• 参数设定
截止温度 tf=0.01;
退温系数 alpha=0.90;
内循环次数 L=200*CityNum;
模拟退火算法的应用
• 运行过程
Thank you!
模拟退火算法具体步骤
Step1 设定初始温度t = tmax, 任选初始解r = r0 1. 目标函数均值稳定 Step2 内循环 2. 连续若干步的目标 值变化较小 Step2.1 从r的邻域中随机选一个解 rt, 计算r和rt对应目标函 数值, 如 3. rt; 固定的抽样步数 rt对应目标函数值较小,则令r = 否则若 exp(-(E(rt)-E(r))/t)>random(0,1), 则令r=rt. 1. 达到终止温度 Step2.2 不满足内循环停止条件时,重复 Step2.1 2. 达到迭代次数 3. 最优值连续若干步 Step3 外循环 保持不变 Step3.1 降温t = decrease(t) Step3.2 如不满足外循环停止条件,则转Step2;否则算法结束
算法的关键参数和操作的设定
温度更新函数: 温度更新函数,即温度的下降方式,用于在外循环中修改温度值。 常用的算法温度下降函数: 1) t t , k 0, 0 1 :α越接近1温度下降越慢,且其大小 k 1 k 可以不断变化; 2) t K k t :其中t0为起始温度,K为算法温度下降的总次数 k 0
算法的关键参数和操作的设定
初始温度:
初始温度、温度更新函数、内循环终止准则和外循环终止准则通常被称为 退火历程。
原则:通过理论分析可以得到初温的解析式,但解决实际问题时难以得到 精确的参数;实际应用时往往要让初温充分大。实验表明:初温越大,获 得高质量解的机率越大,但花费较多的计算时间。 方法: 1)均匀抽样一组状态,以各状态目标值的方差为初温; 2)随机产生一组状态,确定两两状态间的最大目标值差,根据差值,利 用一定的函数确定初温,譬如 t 0 / ln pr ,其中 p r 为初始接受概率; 3)利用经验公式。
模拟退火算法的流程图
初使化设定 随机产生一个初始解 扰动产生一个新解 No 是否接受? Yes 修改目前解 Yes
降温
缩减温度 No 是否达到中止条件? Yes 最佳解 No
算法的关键参数和操作的设定
状态产生函数: 原则:设计状态产生函数(邻域函数)的出发点应该是 尽可能保证产生的候选解遍布全部的解空间。通常,状 态产生函数由两部分组成,即产生候选解的方式和候选 解产生的概率分布 方法:在当前状态的邻域结构内以一定概率方式(均匀 分布、正态分布、指数分布等)产生
(1) 降低硬度,改善切削加工性. (2)消除残余应力,稳定尺寸,减少变形与裂纹倾向; (3)细化晶粒,调整组织,消除组织缺陷。 (4)均匀材料组织和成分,改善材料性能或为以后热处理做组织准备。
模拟退火算法的设计与原理猜想
• 物质自动趋向的最低能态与函数最小值之间有相似性!!! • 我们能不能设计一种算法求函数最小值,就像物质”自动”地趋向 最低能态?
• 模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其 徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大, 而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常 温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时 趋于平衡的概率为exp(-Δ E/(kT)),其中E为温度T时的内能,Δ E 为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将 内能E 模拟为目标函数值 f ,温度T演化成控制参数 t ,即得到解组合 优化问题的模拟退火算法:由初始解 i和控制参数初值 t 开始,对当 前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,并 逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于 蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火过程由冷却 进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子 Δ t、每个t值时的迭代次数L和停止条件S。
相关主题