阅读资料来源:
《智能优化算法以及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):
当状态转移之后,如果能量减小了,那么这种转移就被接受了(以概率 1 发生)。如果能量增大了,就说明系统偏离全局最优位置(能量最低点,模拟退火算法所要寻找的就是密度最高能量最低的位置)更远了,此时算法不会立即将其抛弃,而是进行概率判断:首先在区间 [0,1][0,1] 产生一个均匀分布的随机数 εε(np.random.rand()),如果 ε<pε<p(pp 是前面定义的接受概率),这种转移也将被接受,否则拒绝转移,进入下一步,如此循环。
这正是 Metropolis 算法,其核心思想是当能量增加时以一定概率接收,而不是一味的拒绝;
分析T参数的对概率p的影响:
(1)之前处在一个运动比较剧烈的,温度T比较大,这个时候P会比较小,可以接受相对对不好的解
(2)T逐渐的减小,只能接受较好的解
(3)最后T趋近于0的时候,P就接近于1,就不在接受任何的解
算法的特点: