simulated.m
来自「模拟退火matlab源码」· M 代码 · 共 31 行
M
31 行
function [x0,y0,k]=simulated(x0,y0)
aim0=forward(x0,y0);
T0=10;
K=4000;
k=0;
esp=forward(3,0);
while k<=K&aim0>esp
l=0;
while l<10
x1=12*(rand(1)-0.5);
y1=12*(rand(1)-0.5);
aim0=forward(x0,y0);
aim1=forward(x1,y1);
delta_aim=aim1-aim0;
p_delta_aim=exp(-delta_aim/T0);
if(delta_aim<0)
x0=x1;
y0=y1;
elseif p_delta_aim>rand
x0=x1;
y0=y1;
end
l=l+1;
aim0=aim1;
end
T0=T0*0.99;
if(abs(aim0-esp)<=10^(-4))
break;
end
k=k+1;
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?