模拟退火算法1——简介

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。

SA在某一初温下,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解。

模拟退火算法是利用问题的求解过程与熔化物体退火过程的相似性,采用随机模拟物体退火过程来完成问题的求解,也就是在控制参数(温度)的作用下对参数的值进行调整,直到所选取的参数值最终使能量函数达到全局极小值。

模拟退火算法目的

  1. 许多实际优化问题的目标函数都是非凸的, 存在许多局部最优解, 但是, 有效地求出一般非凸目标函数的全局最优解至今仍是一个难题。特别是随着优化问题规模的增大, 局部最优解的数目将会迅速增加.
  2. 模拟退火算法是利用问题的求解过程与熔化物体退火过程的相似性,采用随机模拟物体退火过程来完成问题的求解,也就是在控制参数(温度)的作用下对参数的值进行调整,直到所选取的参数值最终使能量函数达到全局极小值。

模拟退火算法流程

  1. 初始化:针对问题选定合适的目标函数f作为能量函数E;决定初始参数:起始温度T 、终止温度、冷却率α(α∈[0,1])、单一温度迭代次数k。
  2. 设定起始迭代次数t=0,产生初始状态X0,计算其能量E0。
  3. 以目前解为中心由状态产生函数产生新的邻近解X1,计算其能量E1。
  4. 采用Metropolis接受法则比较两状态的能量,判决是否接受X1 , 若接受, 则令当前状态等于X1 , 若不接受,则令当前状态等于X0;
  5. 更新迭代次数,判断是否达到设定的阈值k,若是则进行降温T=T*α,且令t=0。
  6. 判断温度是否达到终止温度,若是则顺序执行step 7;若否则转至step 3重复执行

当前解作为最优解输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Xiaoxll12

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

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

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

打赏作者

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

抵扣说明:

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

余额充值