原博客:模拟退火算法详解、误区及matlab实现_是好人的墨叔的博客-CSDN博客_模拟退火算法不收敛
补充初始温度和终止温度的选择,选择不当会导致优化效果不佳
1、初始温度的选择
最小优化的话,根据exp(-Δf/T)和运行10次左右的Δf选择,保证从初始温度下降到最终温度过程中,exp(-Δf/T)从0.8/0.6降到0。
2、终止温度的选择
终止温度选择为初始温度/10^m,通过取m=1,2,...,尝试,看多少步之后迭代趋于稳定,取此时的m
举个例子,Δf运行10次后80%是10^5,20%是10^3,那么取10^5
exp(-Δf/T)为0.8时,-10^5/log(0.8)为4.4814e+05,那么取初始温度T0=450000
exp(-Δf/T)为0.6时,-10^5/log(0.6)为1.9576e+05,那么取初始温度T0=200000
终止温度取m=3时,迭代基本趋于稳定,那么终止温度分别为
Tend=450000/10^3或者Tend=200000/10^3