量子进化算法求解函数优化问题 非常实用的程序.doc
% min fitness(1,i)=100*(x1^2-x2)^2+(1-x1)^2; -2.048<= x1&x2<=2.048;
%function [trace1]=main主程序:
clc
clear
tt0=cputime;%记记记记
format long
maxgeneration=400; %最大迭代次数
popsize=20;%记群大小
chromlength=60;%量子染色体度记记
gen=1; %记记置迭代次数1
[p_lead]=initpop(popsize,chromlength);%记群初始化[chromsome0]=observe(p_lead);%记记
[objvalue,x1,x2]=calobjvalue1(chromsome0);%记记记记记算目函数[m,n]=min((objvalue));trace1=zeros(1,maxgeneration);%最小记记记
best_f=m;
%%%%%%%记记记记记最个体%%%%%%%%%%%%%%%%%%%%%%%
%best_chromsome=chromsome0(n,:);
p_best(1,:)=p_lead(2*n-1,:);p_best(2,:)=p_lead(2*n,:);while gen<=maxgeneration
[chromsome0]=observe(p_lead);%记记
[objvalue,x1,x2]=calobjvalue1(chromsome0);%记记记记记算目函数
[m,n]=min(abs(objvalue));
if m=p_lead(i,j)^2
chromsome0(k,j)=1;
else
chromsome0(k,j)=0;
end
end
k=k+1;
end
function [objvalue,x1,x2]=calobjvalue1(chromsome0)
%记记记记记算目函数
[n,t1]=size(chromsome0);
param=zeros(n,2);
for i=1:n
for j=1:30
param(i,1)=param(i,1)+chromsome0(i,j)*pow2(j-1);
end
for j=31:60
param(i,2)=param(i,2)+chromsome0(i,j)*pow2(j-31);
end
m=pow2(30)-1;
x1(1,i)=-2.048+param(i,1)/m*4.096;
x2(1,i)=-2.048+param(i,2)/m*4.096;
objvalue(1,i)=100*(x1(1,i)^2-x2(1,i))^2+(1-x1(1,i))^2;
end
function [p]=upgate(p_lead,p_best,gen,maxgeneration)
%量子更新记记记
k=10*exp((-1)*gen/maxgeneration);%k=0.0015*pi;
[n,m]=size(p_lead);
for i=1:2:n
for j=1:m
d1=p_best(1,j)*p_best(2,j);
pt(1,1)=p_lead(i,j);
pt(2,1)=p_lead(i+1,j);
d2=pt(1,1)*pt(2,1);
a1=abs(atan(p_best(2,j)/p_best(1,j)));%最佳解的角度
a2=abs(atan(p_lead(i+1,j)/p_lead(i,j)));%当前个体的角度
d3=a1-a2;
d0=d1*d2*d3;
if d0>=0
d0=+1;
else
d0=-1;
end
%k=0.5*pi*abs(abs(p_best(1,j))-abs(p_lead(i,j)));
d=k*d0;
G=[cos(d) -sin(d);sin(d) cos(d)];
pt=G*pt;
p_lead(i,j)=pt(1,1);
p_lead(i+1,j)=pt(2,1);
end
end
p=p_lead;
本文档为【量子进化算法求解函数优化问题 非常实用的程序.doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。