模拟退火算法
模拟退火算法的引出
(一) 爬山法步骤
- 解空间中随机生成一个初始解
- 在初始解向左或右邻域走一步
- 比较不同走法下目标函数的大小下,并决定下一步往哪个方向走
- 不断重复直到,找到一个极大(小)值
(二)存在的问题
往往找到的是局部最优解
(三)解决方法
如果移动后,满足条件则接受新解,若不满足则按照概率选择是否接受新解。
再引入时间作控制参数做到(初期广撒网,后期精准打击)
模拟退火算法
(一)官方定义
模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。
(二)算法步骤
利用SA求解TSP问题MATLAB实现
TSP问题:不再赘述
tsp_main.m