模拟退火算法优点
1、以一定的概率接受恶化解
模拟退火算法(SA)在搜索策略上与传统的随机搜索方法不同,它不仅引入了适当的随机因素,而且还引入了物理系统退火过程的自然机理。这种自然机理的引入使模拟退火算法在迭代过程中不仅接受使目标函数变“好”的试探点,而且还能以一定的概率接受使目标函数值变“差”的试探点,迭代中出现的状态是随机产生的,并不强求后一状态一定优于前一状态,接受概率随着温度的下降而逐渐增大。
2、引进算法控制参数T
将优化过程分成各个阶段,并决定各个阶段下随机状态的取舍标准,接受函数由Metropolis算法给出一个简单的数学模型。
模拟退火算法的两个重要步骤是:一是在每个控制参数T下,由前迭代点出发,产生邻近的随机状态,由T确定的接受准则决定此新状态的取舍;二是缓慢降低控制参数T,提高接收准则,直至T->0,状态链稳定于优化问题的最优状态,提高模拟退火算法全局最优解的可靠性。
3、使用对象函数值进行搜索
传统搜索算法不仅需要利用目标函数值,而且往往需要目标函数的导数值等其它一些辅助信息,能确定搜索方向,当这些信息不存在时,算法就失效了。而模拟退火算法仅使用由目标函数变换来的适应度函数值,就可确定进一步的搜索方向和搜索范围,无需其它的辅助信息。
4、搜索复杂区域
模拟退火算法最善于搜索复杂地区,从中找出期望值高的区域,在求解简单问题上效率并不高。
模拟退火算法缺点
1、求解时间太长。
在变量多、目标函数复杂时,为了得到一个好的近似解, 控制参数T需要从一个较大的值开始, 并在每一个温度值T下执行多次Metropolis 算法, 因此迭代运算速度慢。
2、算法性能与初始值有关及参数敏感。
温度T的初值和减小步长较难确定。如果T的初值选择较大, 减小步长太小, 虽然最终能得到较好的解, 但算法收敛速度太慢;如果T 的初值选择较小,减小步长过大, 很可能得不到全局最优解。
3、搜索过程中由于执行概率接受环节而遗失当前遇到的最优解。
爬山算法与模拟退火算法比较
- 爬山算法:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。
- 模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。模拟退火算法在搜索到局部最优解A后,会以一定的概率接受到E的移动。也许经过几次这样的不是局部最优的移动后会到达D点,于是就跳出了局部最大值A。