2.1 非常快速模拟退火算法

更新于 2026年10月10日 版权声明
2.1 非常快速模拟退火算法

模拟退火算法自1983年Kirkpatrick等[15]提出以来,已成为一种重要的非线性优化问题的计算方法,其最大的优点是可以得到问题的全局最优解。常规的模拟退火法即Kirkpatric等提出的Metropolis算法,包括以下步骤:(1)给定模型每一参数变化范围,在这个范围内随机选择一个初始模型m0,并计算相应的目标函数值E(m0)。(2)对当前模型mo进行扰动产生一个新模型m,计算相应的目标函数值E(m),得到ΔE=E(m)-E(m0)。(3)若ΔE<0,则新模型m被接收;若ΔE>0,则新模型m按概率:P=exp(-ΔE/T)进行接收,T为温度。当模型被接收时,置m0=m,E(m0)=E(m)。(4)在温度T下,重复一定次数的扰动和接收过程,即重复(2)、(3)步骤。(5)缓慢地降低温度T。(6)重复(2)、(5)步骤,直至收敛条件满足为止。上述常规的模拟退火法包括两个步骤:对模型随机扰动并计算能量变化(即目标函数变化);模型按概率P进行接收。在温度很高时,使目标函数增大的差模型能被接收,因此它具有跳出局部极值的能力,而当温度较小时,只接收好模型。算法只要从足够高的温度开始并缓慢降温,则最终得到全局最优解。

Ingber在其提出的非常快速模拟算法[16]中,采用了依赖于温度似Cauchy分布产生新模型,即:

mi=m0i+yi(Bi-Ai),(https://www.daowen.com)

yi=Tsign(u-0.5)[(1+1/T)|2u-1|-1],

式中,m0i为当前模型的第i个变量,u为0~1之间均匀分布的随机数,[Ai,Bi]为mi的取值范围,且要求扰动后的mi∈[Ai,Bi],sign()为符号函数。采用依赖于温度似Cauchy分布产生新模型改进加快了模拟退火算法的收敛速度。在我们的反演中,模型参数为层速度,目标函数为τ-p域走时计算值与观测值的均方差。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)