一、概念

模拟退火算法(SA) 来源于固体退火原理,是一种基于概率的算法。
模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。

模拟退火算法包含两个部分即Metropolis算法和退火过程,,分别对应内循环和外循环。
退火过程是外循环,将固体达到较高的温度(初始温度T(0)),然后按照降温系数alpha使温度按照一定的比例下降,当达到终止温度Tf时,冷却结束,即退火过程结束。
Metropolis算法是内循环,即在每次温度下,迭代L次,寻找在该温度下能量的最小值(即最优解)。在该温度下,整个迭代过程中温度不发生变化,能量发生变化,当前一个状态x(n)的能量大于后一个状态x(n+1)的能量时,则接受状态x(n+1)。但是如果下一状态的能量比前一个状态的能量高时,设置一个接受概率p,即如果下一状态的能量比前一个状态的能量高,则接受下一状态的概率为P。

二、接受概率 p

为了避免局部最优,当f(xj)≤f(xi)时不是直接拒绝f(xj),而是以一定概率p∈[0,1]接受新解,且f(xj)与f(xi)越相近,p值越大:

又需要满足p∈[0,1],最终定义为:

特点:

1、接受新解的概率p越大,解空间搜索范围越小
2、搜索范围前期大,后期小。前期避免陷入局部最优,后期注重局部搜索。
3、随机接受新解的概率p∈[0,1],若为0,类似于爬山法,若为1,类似于蒙特卡洛

一般来说,p的取值还和时间t有关,因此定义pt

Ct可以看作是时间的函数,于是接受新解的概率p就可以随时间变化:随着时间增加,Ct变大
由于搜索前期,我们希望范围较大,更倾向于接受新解,p则需要变大,而P和Ct成负相关,所以Ct较小。反之随着时间增长,Ct变大

三、启发式搜索过程

假设求最大值问题:
(1)随机生成一个解A,计算解A对应的目标函数值f(A)
(2)在A附近随机生成一个解B,计算解B对应的目标函数f(B)
(3)如果f(B)>f(A),那么将解B赋值给A,然后重复上述步骤(爬山法);如果f(B)≤f(A),那么我们计算接受B的概率pt,然后生成一个[0,1]的随机数r,如果r<pt,我们将解B赋值给解A,然后重复上面步骤;否则返回(2),在原来的A附近重新生成一个解B,然后继续。

  • 注:生成随机数是在区间【0,1】产生一个均匀分布的随机数ϵ

问题:

1、优化问题有约束条件怎么办?
  1. 在(2)中直接判断新解B是否满足约束条件,不满足可以直接构造新解。
  2. 在原来目标函数值的基础,加入罚函数。效果是如果不满足约束,这个值要么很大要么很小。用这样的方法转换成无约束问题。
2、Ct如何设置
  1. 定义初始温度T0,温度下降公式为 Tt+1=αTt,α常取0.95。Ct取倒数是为了保证Ct关于t递增

  1. 所以接受新解的概率 pt 定义为:

① 当温度一定时, Δf 越小,p越大。
② Δf 一定时,温度越高,p越大。

3、迭代终止条件
  1. 给定迭代次数
  2. 达到一定温度
  3. 找到的最优解连续M次无变化
4、如何在A附近生成一个新解B

具体问题具体分析
如:matlab中内置函数产生新解的方式
随机产生一组随机数(y1,y2,y3…,yn),其中yi服从N(0,1)
计算(z1,z2,z3…,zn),其中zi=((y12+y22+y32+...+yn2)(\sqrt(y_1^2+y_2^2+y_3^2+...+y_n^2)((​y12​+y22​+y32​+...+yn2​)
xn=xi+T∗zix_n=x_i+T*z_ixn​=xi​+T∗zi​

四、实例应用

模拟退火算法详细讲解(含实例python代码)

参考文献

1、 数学建模清风第二次直播:模拟退火算法
2、 模拟退火算法详细讲解(含实例python代码)

经典算法:模拟退火(SA)算法相关推荐

  1. 关于模拟退火函数算法(Simulated Annealing Algorithm)的理解(文献阅读笔记)

    摘要:深度学习(DL)是机器学习研究的一个新领域,它的目的是让我们更接近人工智能的目标.虽然DL对于各种任务都很有用,但是很难训练.在深度学习的发展过程中,一些使深度学习在训练中达到优异性能的算法被提 ...

  2. [算法学习]模拟退火算法(SA)、遗传算法(GA)、布谷鸟算法(CS)、人工蜂群算法(ABC)学习笔记---附MATLAB注释代码

    目录 1.模拟退火算法(Simulated Annealing,SA) 1.1 本质: 1.2 算法思想 1.3 SA流程图 1.4 模拟退火过程 1.5 SA解决TSP问题 1.6 SA改进方向 1 ...

  3. 机器学习(MACHINE LEARNING)MATLAB模拟退火算法【SA】

    文章目录 1 什么是智能优化算法 2 常用的智能优化算法 3 智能优化算法的特点 4 模拟退火算法 4.1 简介 4.1 工具箱(SA) 1 什么是智能优化算法 智能优化算法又称现代启发式算法,是一种 ...

  4. 模拟退火(Simulated Annealing, SA)算法简介与MATLAB实现

    目录 模拟退火算法概述 算法步骤 算法特点 模拟退火算法MATLAB实现 [例1]一元/多元函数优化 [例2]TSP问题 模拟退火算法概述 模拟退火算法(Simulated Annealing,简称S ...

  5. 模拟退火(SA, Simulated Annealing)算法解决旅行商TSP问题

    01 什么是旅行商问题(TSP)? TSP问题(Traveling Salesman Problem,旅行商问题),由威廉哈密顿爵士和英国数学家克克曼T.P.Kirkman于19世纪初提出.问题描述如 ...

  6. 爬山算法 ( Hill Climbing )/模拟退火(SA,Simulated Annealing)

    一. 爬山算法 ( Hill Climbing ) 爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解.爬山算法实现很简单,其主要缺点是 ...

  7. 【机器学习基础】(一) 爬山算法 ( Hill Climbing )与模拟退火(SA,Simulated Annealing)

    一.爬山算法 ( Hill Climbing ) 爬山算法属于人工智能算法的一种. 这种算法基于贪心算法的思想,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解.爬山算 ...

  8. 模拟退火算法(SA, Simulated Annealing)

    [注]朋友们,这是个人笔记,有点乱,其实差不多算是全抄了,仅作学习沟通,原内容请见<多目标智能优化算法及其应用>(雷德明等著,2009) [什么是模拟退火算法] 优化算法的一种,是一种启发 ...

  9. 随机化算法-----模拟退火

    一 概念 模拟退火(Simulated Annealing,简称SA)是一种通用概率算法(随机化算法),用来在一个大的搜寻空间内找寻命题的最优解. 随机化算法是这样一种算法,在算法中使用了随机函数,且 ...

最新文章

  1. Python3破冰人工智能,你需要掌握一些数学方法
  2. 为IP签发SSL证书
  3. 面试宝典:深入理解这110道python面试题,AI和大数据向你招手
  4. django数据模型字段和通用参数说明
  5. Burt’s Bees 小蜜蜂纯天然杏仁牛奶蜂蜡护手霜,56g*2罐,$13.92
  6. android 布局权重问题(最近布局经常坑爹)
  7. ndarray的数据类型
  8. NYOJ 143 第几是谁?
  9. 在每个运行中运行多个查询_Spring Data JPA的运行原理及几种查询方式
  10. linux-headers,如何升级linux-headers-generic?
  11. java中加号和append,请详细说一下java中append()的方法.
  12. 嵌入式岗位Makefile常见面试题(1)
  13. 计算机 无法进入睡眠模式,win7电脑无法正常进入睡眠模式怎么办
  14. win10停止更新_烦人的Windows10更新,教你如何有效的关闭。
  15. Java Algorithm 简单算法
  16. php齐博cms,齐博CMS splitword.php后门解密
  17. 百度大脑UNIT升级,五步完成对话模型私有化部署
  18. python 小说 小说_如何使用python上小说网爬网络小说?
  19. 实现.KML和.KMZ 文件的下载
  20. web自动化验证码处理

热门文章

  1. 小天才电话手表 Z3工作原理
  2. 身份证信息泄露的危险,你知道吗?简单一招就能查询
  3. Werkzeug学习笔记
  4. 中国JAVA第一人张立猛,《我的世界》建造中国地图第一人。
  5. 称霸全球云服务的他怎么了
  6. Android My12306项目(二)
  7. Freelancer使用攻略
  8. 认识浏览器请求头User-Agent
  9. python qq空间登录_模拟登录QQ空间
  10. iphone手机名称是android,外媒确认下一代iPhone名为iPhone12S,将有小升级