- 1、本文档共147页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
MATLAB基础及应用;第6章进化算法;第6章进化算法;第6章进化算法;6.1模拟退火法;6.1模拟退火法;6.1.1经典Metropolis退火法;6.1.1经典Metropolis退火法;6.1.1经典Metropolis退火法;function[glx,gly,k]=MinSimulatedAnnealing(f,x,sigma)
%使用模拟退火法求函数最小值
%f 目标函数(句柄)
%x 迭代初值
%sigma扰动系数
%glx 历史最优解
%gly 最优解的函数值
%k 迭代次数
if(nargin3),sigma=1;end
h=@(delta,T)1/(1+exp(delta/T)); %接受新解的概率密度函数
y=f(x);
glx=x;
gly=y;
N=0;
k=1;
T0=100; %初始温度
T=T0;;while(N=10)
x1=x+1/(N+1)*sigma^2*randn(size(x));%产生新解
y1=f(x1); %计算新解的函数值
delta=y1-y;
if(delta0)%如果新解更优,则接受新解为当前解
x=x1;
y=y1;
N=0;
if(glyy) %历史最优保存策略
glx=x;
gly=y;
end
else
if(randh(delta,T))%以一定概率接受新解
x=x1;
y=y1;
end
N=N+1;%计算连续没有找到更好的解的次数
end
k=k+1;
T=T0/log(k); %降温
end
end;6.1.1经典Metropolis退火法;6.1.1经典Metropolis退火法;6.1.2快速退火法;function[glx,gly,k]=MinFastSimulatedAnnealing(f,x,sigma)
......
x1=x+1/(N+1)*sigma^2*tan(-pi/2+pi*rand(size(x))); %产生新解
......
T=T0/k; %降温
......;6.1.2快速退火法;6.1.3极快速退火法;6.1.3极快速退火法;function[glx,gly,k]=MinVeryFastSimulatedAnnealing(f,x,a,b,c)
%使用极快速模拟退火法求函数最小值
%f 目标函数(句柄)
%x 迭代初值
%[a,b] 变量取值范围,若f是多元函数,则a和b都是向量
%c 衰减因子
%glx 历史最优解
%gly 最优解的函数值
%k 迭代次数
if(nargin5),c=0.7;end
n=size(x,2);
h=1/2;
H=@(delta,T)(1-(1-h)*delta./T).^(1/(1-h));%接受新解的概率密度函数
y=f(x);
glx=x;gly=y;
N=0;k=1;
T0=100;T=T0; %初始温度
while(N=10)
upsilon=2*rand()-1;
u=rand(size(x));
zeta=sign(upsilon)*T*((1+1/T).^u-1);;x1=1/3*(x+zeta.*(b-a)+a+b);%产生新解
y1=f(x1); %计算新解的函数值
delta=y1-y;
if(delta0) %如果新解更优,则接受新解为当前解
x=x1;y=y1;
N=0;
if(glyy) %历史最优保存策略
glx=x;
gly=y;
end
else
if(randH(delta,T))%否则以一定概率接受新解
x=x1;y=y1;
end
N=N+1;%计算连续没有找到更好的解的次数
end
k=k+1;
T=T0*exp(-c*k^(1/n)); %降温
end
end;6.1.3极快速退火法;从图中可以看出,该函数存在非常多的极小值点,使用传统方法求解容易陷入局部极小值;6.2进化策略
文档评论(0)