开发项目:模拟退火算法解决函数y=x*sin(10*x*pi)+2最优值问题
开发步骤:
输入:温度T、退火控制参数k、初始点x0
输出:最优的自变量值、最大/最小值
(1)给定初始值温度T,退火控制参数k=0.99,初始点x0(该点为随机选择点),并计算f(x0)
(2)随机产生扰动r=(2*rand-1)*delt;新点x1=x0+r,同时计算f(r)、f(r)-f0
(3)Metropolis准则,若f(r)-f0>0,接受该点(更新x0),且接受概率为p=exp(-(f(r)-f0)/T);
若p>r(r为0-1上的随机数),接受该点(更新x0),否则放弃该点
(4)执行降温操作:T=T*k;返回(2)继续
(5)执行上述步骤,结束