模拟退火算法(SA)的基本思想
问题描述
SA是一种启发式的随机寻优算法,模拟了物理退火过程从给定的一个初始高温开始,利用具有突跳特性的Metropolis抽样策略在解空间随机搜索,伴随稳定的不断下降重复抽样的过程。
基本步骤:
给定初温t=t_0,随机产生初始状态s=s_0,令k=0;
Repeat
Repeat
产生新的状态S_j=Gnente(s);
if min{1,exp[-(C(s_j)-C(s))/t_k]}>=random[0,1]
s=s_j;
Until 抽样稳定准则满足
退温t_{k+1}=update(t_k)并令k=k+1;
Until 算法终止准则满足
输出算法搜索结果
可以看出,影响SA优化结果的主要因素就是:三函数两原则以及初始温度
SA算法的基本要求与要素
基本要求:
- 1、初始温度足够高
- 2、降温过程足够慢
- 3、终止温度足够低
算法要素:
- 1、状态表达
- 2、领域的定义与移动
- 3、热平衡达到
- 4、降温函数:常用的降温函数有:
a:Tk+1=Tk∗r,其中r∈(0.95,0.99)
b:Tk+1=Tk−ΔT,ΔT是每一步下降的长度
SA的计算步骤
- 1、初始化,任选初始解,i,给定初始温度T_0,终止温度T_f,令迭代指标k=0,T_k=T_0。
- 要注意:选择T_0时,要足够高,使
Ei/Tk→0
- 2、随机产生一个邻域解,计算目标值增量
j∈N(i),(N(i)表示i的邻域)
Δf=f(j)=f(i)
- 3、若
Δf<0令i=j转步骤4(j比i好,就进行无条件转移);否则产生
ξ∈U(0,1)若
exp(−Δf/Tk)>ξ则令i=j(j比i好,有条件转移)
- 注意:T_k高时,广域搜索;T_k低时,局域搜索
- 4、若达到热平衡(内循环的次数大于n(T_k))转步骤5,否则转步骤2
- 5、k=k+1 降低T_k,若T_k<T_f停止,否则转步骤2
- 注意:降低T_k的方法有以下两种
a:Tk+1=Tk∗r,其中r∈(0.95,0.99)
b:Tk+1=Tk−ΔT,ΔT是每一步下降的长度
SA算法的流程框图