该代码采用python编写模拟退火算法,整个过程中可以根据更改代码求解最大值与最小值。
1. 模拟退火算法的原理:
输入:温度T、退火控制参数k、初始点x0
输出:最优的自变量值、最大/最小值
(1)给定初始值温度T,退火控制参数k,初始点x0(该点为随机选择点),并计算f(x0)
(2)随机产生扰动r=(2*rand-1)*delt;新店x1=x0+r,同时计算f(x1)、f(x1)-f(x0)
(3) Metropolis准则,若f(x1)-f(x0)>0,接受该点(更新x0),且接受概率为p=exp(-(f(x1)-f0)/T),若p>r(r为0-1上的随机数),接受该点(更新x0),否则放弃该点
(4)执行降温操作:T=T*k;返回(2)继续
(5)执行上述步骤,结束