阅读资料来源:

《智能优化算法以及matlab实现》第七章

【图文】智能优化算法_数学建模_王成章_模拟退火法_2011_百度文库

https://wenku.baidu.com/view/335c56e94afe04a1b071de13.html

Metropolis 采样与蒙特卡洛算法 - CSDN博客

模拟退火的理论

模拟退火算法以优化问题求解过程与物理退火过程之间的相似性为基础,优化的目标函数相当于金属的内能,优化问题的自变量组合状态空间,相当于金属的内能状态空间,问题的求解过程就是一个找组合状态,使得目标函数值最小。利用Metopolis算法适当的控制温度的下降过程实现模拟退火,从而达到求解全局优化问题的目的。

物理退火的过程

(1)加温过程

目的是为了增加粒子的无序性,增强粒子的热运动,使得粒子偏离平衡的位置。

(2)等温过程

对于与周围环境交换热能而温度不变的封闭系统,系统状态的自发变化总是朝着自由能减小的方向发展,当自由能最小的时候系统达到平衡

(3)冷却过程

目的使粒子的热运动减弱并逐渐趋于有序,系统能量逐渐下降,达到最小晶体状态

模拟退火算法的基础:

模拟退火的主要思想就是:搜素空间随机游走(也就是随机选择点,有levy flight 以及布朗运动)再利用Metopolis算法抽样准则,使得随机游走逐渐收敛于局部最优解。在使用Metropolis算法中温度T,在不停的变化也就是温度T的大小控制了随机过程向局部或全局最优解移动的快慢(也就是步长的跨度)

Metopolis算法的思想:(声明原文链接:https://blog.csdn.net/lanchunhui/article/details/53100962)

Metropolis 是一种有效的重点抽样的方法。它是模拟退火算法的基础,在早期的科学计算中蒙特卡洛方法(Monte Carlo)是对大量原子在给定温度下的平衡态的随机模拟,当蒙特卡洛算法计算量偏大。

1953 年,Metropolis 提出重要性采样,即以概率来接受新状态,而不是使用完全确定的规则,称为 Metropolis 准则,可以显著减小计算量。

假设前一状态为 x(n)x(n),系统受到一定扰动,状态变为 x(n+1)x(n+1),相应地,系统能量由 E(n)E(n) 变为 E(n+1)E(n+1)。 定义系统由 x(n)x(n) 变为 x(n+1)x(n+1) 的接受概率为 pp(probability of acceptance):

p={1,exp(−E(n+1)−E(n)T),E(n+1)<E(n) 全然接受的状态E(n+1)≥E(n) 依照概率的大小接受或是拒绝p={1,E(n+1)<E(n)exp⁡(−E(n+1)−E(n)T),E(n+1)≥E(n)

当状态转移之后,如果能量减小了,那么这种转移就被接受了(以概率 1 发生)。如果能量增大了,就说明系统偏离全局最优位置(能量最低点,模拟退火算法所要寻找的就是密度最高能量最低的位置)更远了,此时算法不会立即将其抛弃,而是进行概率判断:首先在区间 [0,1][0,1] 产生一个均匀分布的随机数 εε(np.random.rand()),如果 ε<pε<p(pp 是前面定义的接受概率),这种转移也将被接受,否则拒绝转移,进入下一步,如此循环。

这正是 Metropolis 算法,其核心思想是当能量增加时以一定概率接收,而不是一味的拒绝;

分析T参数的对概率p的影响:

(1)之前处在一个运动比较剧烈的,温度T比较大,这个时候P会比较小,可以接受相对对不好的解

(2)T逐渐的减小,只能接受较好的解

(3)最后T趋近于0的时候,P就接近于1,就不在接受任何的解

算法的特点:

2018-4-8模拟退火算法相关推荐

  1. 2018华为软件精英挑战赛-模拟退火算法

    2018年的华为软件精英挑战赛题目简介:给出华为云虚拟机过去的租借数量历史数据,用以训练模型并预测下一个时间段里的虚拟机租借数量,然后把这些预测得到的虚拟机装填进一定规格的物理机中,即分为预测和装填两 ...

  2. Python数模笔记-模拟退火算法(3)整数规划问题

    1.整数规划问题 整数规划问题在工业.经济.国防.医疗等各行各业应用十分广泛,是指规划中的变量(全部或部分)限制为整数,属于离散优化问题(Discrete Optimization). 线性规划问题的 ...

  3. 模拟退huo算法的特点_兄弟,退火吗?—— 初窥模拟退火算法

    模拟退火算法(Simulated annealing, SA)是一种基于蒙特卡罗(Monte Carlo)思想设计的,常用于在较大的解空间中搜索近似全局最优解的优化算法.本文将从模拟退火算法的历史.形 ...

  4. HDU2899(二分查找+or+模拟退火算法)

    这道题其实是利用函数求导,判断求导后的函数是否大于零或者小于零,等于零情况,从而判断原函数的单调性,代入X求出函数的最小值. 模拟退火算法: 方法一:二分 #include<stdio.h> ...

  5. 【算法】模拟退火算法解决TSP问题的matlab实现

    [算法]模拟退火算法解决TSP问题的matlab实现 参考文章: (1)[算法]模拟退火算法解决TSP问题的matlab实现 (2)https://www.cnblogs.com/wenyehoush ...

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

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

  7. 大白话解析模拟退火算法

    一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法.爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解. ...

  8. 模拟退火算法解决TSP(python实现 110+行代码)【gif生成】

    简述 代码我是基于我之前写的两篇,一篇是遗传算法TSP的Python实现,一篇是模拟退火算法的解决TSP的C++实现. 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题 遗传算法解 ...

  9. 模拟退火算法理论+Python解决函数极值+C++实现解决TSP问题

    简述 算法设计课这周的作业: 赶紧写了先,不然搞不完了. 文章目录 简述 算法理论部分 变量简单分析 从状态转移概率到状态概率 推导 理解当温度收敛到接近0的时候,收敛到结果 理论部分的后记 pyth ...

最新文章

  1. starrocks问题小结
  2. doe全称是什么意思_BVV线和RVV都是护套线,二者有什么区别?【辽宁津达线缆】...
  3. JSP中四种传递参数的方法
  4. Axure中推动拉动元件不生效_单线图标元件库SVG矢量图标 纯净无干扰的Axure元件库...
  5. 建立能够持续请求的CS网络程序
  6. 【NLP】 聊聊NLP中的attention机制
  7. 3、MySQL 8.0.20在Linux(centos 8)上搭建主从复制
  8. Spark SQL之External DataSource外部数据源(二)源代码分析
  9. 为什么有些语言会比别的快?
  10. ssis 执行 依赖_从SSIS执行您自己的.NET控制台应用程序
  11. 进程的创建——fork函数
  12. android studio 融云,融云 SDK 集成详解 – Android Studio
  13. 时间序列分析的模型应用 – 股价预测
  14. Clang编译Objective-C
  15. Depends简介与使用说明
  16. JavaScript 每日一题---LeetCode 122. 买卖股票的最佳时机 II
  17. Python 实战之淘宝手机销售分析(数据清洗、可视化、数据建模、文本分析)
  18. 网页中插入视频播放代码全集
  19. 会议录音转文字(PC版)
  20. XUI 熟练使用之(三) -----------启动页( SimpleGuideBanner的使用)

热门文章

  1. Android-如何开发一个功能强大的图片选择器
  2. intent.putExtra()方法参数详解
  3. 利用MAC OS X 自带的磁盘工具提取光盘镜像ISO文件
  4. 使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .
  5. 转: Android ListView 滑动背景为黑色的解决办法
  6. 什么是USDT以及如何使用它?
  7. 聊天软交互原理_来自不同城市的人们如何在freeCodeCamp聊天室中进行交互
  8. 前端中的this,指的是什么?
  9. leetcode--盛最多水的容器--python
  10. animation与transition区别