首页 > 编程语言 >模拟退火算法(SA,Simulated Annealing)思想

模拟退火算法(SA,Simulated Annealing)思想

时间:2023-11-07 12:37:40浏览次数:37  
标签:迭代 算法 Annealing 模拟退火 Simulated 最优 优化 全局

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
模拟退火算法(Simulated Annealing,SA)最早由Kirkpatrick等应用于组合优化领域,它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。模拟退火算法是一种通用的优化算法,理论上算法具有概率的全局优化性能,目前已在工程中得到了广泛应用,诸如VLSI、生产调度、控制工程、机器学习、神经网络、信号处理等领域。

模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。

模拟退火算法的模型 模拟退火算法可以分解为解空间、目标函数和初始解三部分。
模拟退火的基本思想:
(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点), 每个T值的迭代次数L
(2) 对k=1,……,L做第(3)至第6步:
  (3) 产生新解S′
  (4) 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数
  (5) 若Δt′<0则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的当前解.
  (6) 如果满足终止条件则输出当前解作为最优解,结束程序。
        终止条件通常取为连续若干个新解都没有被接受时终止算法。
(7) T逐渐减少,且T->0,然后转第2步。

模拟退火算法流程图

 

模拟退火算法(SA,Simulated Annealing)思想_迭代

http://baike.baidu.com/view/18185.htm




标签:迭代,算法,Annealing,模拟退火,Simulated,最优,优化,全局
From: https://blog.51cto.com/emanlee/8229942

相关文章

  • 模拟退火(浅谈)
    写在前面放眼历史,喧嚣过后终归无声,热寂才是最终归宿。算法思想世界上的万事万物总是比较容易稳定在低能量的状态,当物体温度较高时,内能较大,固体内部粒子处于快速无规则运动,在固体温度慢慢降低的过程中,固体内能减小,粒子慢慢趋于有序。举个现实生活的小栗子:在冶金工业中,通常会把......
  • 算法笔记(3)模拟退火
    原发表于个人博客=模拟退火的引入假如我们有一个函数,要求它的极大值,怎么求呢?如果这个函数满足单调性,可以用二分的方法。如果这是一个单谷(或单峰)函数,可以用三分法。那要是多峰函数怎么半呢?这时就可以用随机化算法。一种朴素的方法是:每次在当前找到的最优方案\(x\)附近寻找一......
  • 【学习笔记】模拟退火
    快一年前写的东西了。从洛谷上搬过来滴。以下是正文。简介模拟退火SimulateAnneal是一种随机化算法。用于求解方案数量极大(甚至是无穷的)而且不是一个单峰函数的问题。模拟退火的出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法是一种通......
  • 专题3——模拟退火
    P1337模拟退火是一门玄学,我发现全看手气,因此,为了避免消耗手气,赛前我只练四道。本题精度要求较高,因此选取较低温度,较高delta,温度下限取到1e-14。P2503这道题目中,随机化才是神。连续分段问题可以dp,这道题目,我们选择random_shuffle后再dp,正确率是很高的,因为最终的答案中,每......
  • 模拟退火详解
    模拟退火学习(030920一上午成果)目录模拟退火学习(030920一上午成果)前言:1.爬山算法由来:2.模拟退火:算法流程:初学(我)的问题用题来进行理解:BZOJ1844RunAway(cqbz的oj上有)回顾上面的问题:对于Q1对于Q2:Q2的补充:对于Q3前言:emmmm。你还在考虑dp死活写不出来吗?你还在担忧贪心算法的正确......
  • 模拟退火
    模拟退火解决问题——数值计算一般解决步骤多元方程:\[\begin{cases} {f_{1L}}(x)={f_{1R}}(x)\\ {f_{2L}}(x)={f_{2R}}(x)\\ \\\\\\\\\dots\dots\\ {f_{nL}}(x)={f_{nR}}(x)\\\end{cases}\]评价函数:\[\Huge{\rm{A=}}\sum\limits_{i=1}^n{}\fr......
  • 「学习笔记」浅入模拟退火
    什么是退火?来自百度百科退火是一种金属热处理工艺,指的是将金属缓慢加热到一定温度,保持足够时间,然后以适宜速度冷却。目的是降低硬度,改善切削加工性;降低残余应力,稳定尺寸,减少变形与裂纹倾向;细化晶粒,调整组织,消除组织缺陷。准确的说,退火是一种对材料的热处理工艺,包括金属材料、非......
  • 模拟退火算法代码
    当参加数学建模竞赛时,模拟退火算法是一个常用的解题方法之一。以下是一个简单的模拟退火算法的代码示例,用于解决旅行商问题(TSP):点击查看代码importmathimportrandomdefdistance(point1,point2):#计算两个点之间的欧几里德距离returnmath.sqrt((point1[0]-poi......
  • 堆优化模拟退火(List-Based Simulated Annealing|List-Based SA|LBSA|模拟退火) 算法
    堆优化模拟退火(List-BasedSimulatedAnnealing)算法引入堆优化模拟退火(List-BasedSimulatedAnnealing,简称LBSA)是一种对模拟退火的优化算法。由Shi-huaZhan,[1],[2]JuanLin,[1:1]Ze-junZhang,[1:2]Yi-wenZhong[1:3],[2:1]提出。(以下我们以求最小值为例)解释我们......
  • 模拟退火
    模拟退火(SimulateAnneal)是一种用于解决问题方案数极大且非单峰函数的随机化算法,原理与金属退火类似。每次随机出一个新解,若新解更优则接受,否则以一个与温度和与最优解的差相关的概率接受它。降温模拟退火有三个参数:初始温度\(T_0\),降温系数\(\Delta\),终止温度\(T_k\).其中......