异同点 模拟退火 遗传算法 邻域搜索_深度学习经典算法 | 模拟退火算法详解

本文详细介绍了模拟退火算法的基本思想、参数说明、基本步骤及Python实现,该算法来源于固体退火过程,用于组合最优化问题,通过控制参数T的调整在不同阶段进行广域和精细搜索,寻找全局最优解。
摘要由CSDN通过智能技术生成

点击上方“计算机视觉cv”即可“进入公众号”

重磅干货第一时间送达9c7266718c458768c4fc4af863d47d3a.png

模拟退火算法基本思想

现代的模拟退火算法形成于20世纪80年代初,其思想源于固体的退火过程,即将固体加热至足够高的温度,再缓慢冷却。升温时,固体内部粒子随温度升高变为无序状,内能增大,而缓慢冷却时粒子又逐渐趋于有序,从理论上讲,如果冷却过程足够缓慢,那么冷却中任一温度时固体都能达到热平衡,而冷却到低温时将达到这一低温下的内能最小状态。

在这一过程中, 任一恒定温度都能达到热平衡是个重要步骤, 这一点可以用MonteCarlo算法模拟,不过其需要大量采样,工作量很大。但因为物理系统总是趋向于能量最低,而分子热运动则趋向于破坏这种低能量的状态,故而只需着重取贡献比较大的状态即可达到比较好的效果, 因而1953年Metropolis提出了这样一个重要性采样的方法, 即设从当前状态i生成新状态j.若新状态的内能小于状态i的内能(即Ej接受状态j, 其中k为Boltzmann常数, 这就是通常所说的Metropolis准则。

1953年, Kirkpatrick把模拟退火思想与组合最优化的相似点进行类比, 将模拟退火应用到了组合最优化问题中,在把模拟退火算法应用于最优化问题时,一般可以将温度T当做控制参数,目标函数值f视为内能E,而固体在某温度T时的一个状态对应一个解。然后算法试图随着控制参数T的降低,使目标函数值f(内能E)也逐渐降低,直至趋于全局最小值(退火中低温时的最低能量状态),就像固体退火过程一样。

其他一些参数的说明

退火过程由一组初始参数, 即冷却进度表(cooling schedule) 控制, 它的核心是尽量使系统达到准平衡,以使算法在有限的时间内逼近最优解。冷却进度表包括:

  • ①控制参数的初值T。:冷却开始的温度。
  • ②控制参数T的衰减函数:因计算机能够处理的都是离散数据,因此需要把连续的降温过程离散化成降温过程中的一系列温度点,衰减函数即计算这一系列温度的表达式。
  • ③控制参数T的终值T,(停止准则)。
  • ④Markov链的长度L.:任一温度T的迭代次数。

算法基本步骤

①令T=T。,即开始退火的初始温度,随机生成一个初始解工,并计算相应的目标函数值E(x0)。

②令T等于冷却进度表中的下一个值Ti。

③根据当前,进行扰动(扰动方式可以参考后面的实例),产生一个新解、计算应的目标函数值E(),得到△E=E()一E()。

④若△E<0,则新解被接受,作为新的当前解;若△E>0,则新解,按概率exp(一△E/) 接受,为当前温度。

⑤在温度下,重复L,次的扰动和接受过程,即执行步骤③与④。

⑥判断T是否已到达,是,则终止算法;否,则转到步骤②继续执行。

算法实质分两层循环,在任一温度随机扰动产生新解,并计算目标函数值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值