模拟退火算法的原理
http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html#!comments这篇博文讲的蛮好的,在这就不再累述了,只对具体算法中的基本概念进行较详细的解释
基本概念
- 目标函数
目标函数即为待优化的函数,与固体退火过程中的内能类比。在调用函数simulannealbnd来使用现成的工具包时,需要将目标函数编写为M文件或inline函数
需要注意的是,SAT是以求最小值为目标进行优化的。如果要求最大值,乘个-1就好了 温度
当前解 x 类比固体退火过程中的温度T 。温度一方面决定SA以多大的概率接受新解,另一方面,它也限制SA产生新解与当前解之间的距离,也即SA的搜索范围
以多大概率接受新解在后面的Meteopolis准则中会有具体介绍,而限制SA的搜索范围这点可以这么理解:
模拟退火算法是模拟固体的退火过程,实际过程中温度越高,单位时间内内能下降的就越快,对应的温度变化也就越大,而温度越低,单位时间内内能下降的就越慢,对应的温度变化也就越大。所以温度限制了SA的搜索范围退火进度表
退火进度表是指温度随着算法迭代的下降速度,退火过程越缓慢,SA找到全局最优解的机会就越大,对应的运行时间也会增加。退货进度表包括初始温度和温度更新函数等参数Meteopolis准则
以 xi 和 xi+1 代表旧解和新解,则SA接受新解的概率为
P=⎧⎩⎨

本文介绍了模拟退火算法的基本概念,包括目标函数、温度、退火进度表和Meteopolis准则。讨论了算法如何以概率接受新解,以及温度如何影响搜索范围。详细阐述了算法流程,并提及了在实际应用中使用算法包时的注意事项,如最大迭代次数、初始温度和退火进度表的设置。
最低0.47元/天 解锁文章
7245

被折叠的 条评论
为什么被折叠?



