资 源 简 介
matlab 程序实现 模拟退火算法程序 函数求极值(引用后修改,感谢 ARMYLAU)
使用模拟退火法求函数f(x,y) = 3*cos(xy) + x + y2的最小值
解:根据题意,我们设计冷却表进度表为:
即初始温度为30
衰减参数为0.95
马可夫链长度为10000
Metropolis的步长为0.02
结束条件为根据上一个最优解与最新的一个最优解的之差小于某个容差。
使用METROPOLIS接受准则进行模拟, 程序如下
* 日期:2012-11-29
* 作者:steven
* EMAIL:hxs2004@126.com
* 结束条件为两次最优解之差小于某小量
function [BestX,BestY]=SimulateAnnealing1
clear;
clc;
// 要求最优值的目标函数,搜索的最大区间