文章目录模拟退火算法简介
思想
算法步骤初始化参数
产生新解
判断新解是否接受
循环
降温
找到最优解
算法实现流程图
实例及代码
模拟退火
算法简介
模拟退火算法是一种基于蒙特卡洛思想设计的近似求解最优化问题的方法。
它是一种适合解大规模组合优化问题的通用有效近似算法,是局部搜索算法的扩展,从理论上来说它是一个能求得全局最优化结果的算法,它是一种启发式算法,源于对固体退火的研究。它是利用问题的求解过程与融化物体退火过程的相似性,采用随机模拟物体退火过程来完成问题的求解,也就是在控制温度的作用下对参数的值进行调整,知道所选取的参数值最终使能量函数(目标函数)达到全局最小值。
思想
既然模拟退火算法思想源于固体退火,那我们简单了解一下固体退火。退火:退火是指将固体加热到非常高的温度之后,让其中的分子成随机排列状态,然后以一定的速率逐步降温,其中在降温的过程中每个状态下分子都会随机运动,因此在这个过程中会出现很多种不同的排列状态,当固体缓慢冷却之后分子往往能以低能状态排列,使得固体内部达到内能最小的稳定状态。
因此类别固体退火,模拟退火就是指从某一初始温度开始,让温度以某一适宜速率缓慢下降,同时结合概率突跳特性在目标函数的解空间内随机寻找全局最优解。
模拟退火算法和其它的搜索算法相比有一些特点:1.以一定的概率接受恶化解。
我们知道,一些传统的随机搜索算法往往在搜索过程中只接受是目标函数解**变“好”**的解,这样在很多情况下总会不可避免的陷入局部最优解