欢迎来到天天文库
浏览记录
ID:52698238
大小:21.00 KB
页数:2页
时间:2020-03-29
《差分演化算法matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、functionDE(Gm,F0)%差分进化算法程序基本程序%F是变异率F0=0.6Gm=1000;%最大迭代次数Np=100;%种群规模CR=0.9;%杂交参数G=1;%初始化代数D=0;%所求问题的维数eps=1e-9;%精度ge=zeros(1,Np);%各代的最优值bestx=zeros(Np,D);%各代的最优解%产生初始种群%xmin=-10;xmax=100;%带负数的下界xmin=-5.12;xmax=5.12;%-----函数值计算-----------functionresult=DEMB(XX);sol=XX;result=0;
2、fori=1:Dresult=result+sol(i)^2;%y=sum(XX.^2-10.*cos(2.*pi.*XX)+10);endend%---------------------------X0=(xmax-xmin)*rand(Np,D)+xmin;X=X0;%%%%%%%%%%变异操作X1new=zeros(Np,D);%初始化X1_new=zeros(Np,D);%初始化X1=zeros(Np,D);%初始化value=zeros(1,Np);whileG<=Gmfori=1:Np%产生j,k,p三个不同的数a=1;b=Np;dx=
3、randperm(b-a+1)+a-1;j=dx(1);k=dx(2);p=dx(3);ifj==ij=dx(4);elseifk=ik=dx(4);elseifp==ip=dx(4);end%变异算子F=0.5;bon=X(p,:)+F*(X(j,:)-X(k,:));if(bon>xmin)&(bonCR%利用二项分布来交叉X1_
4、new(i,:)=X(i,:);elseX1_new(i,:)=X1new(i,:);endend%%%%%%%%%%%%%%%竞争操作fori=1:NpifDEMB(X1_new(i,:))5、,Np,Np);%plot(ii,ge)[gmin,n]=min(ge);value=gminsolution=bestx(n,:)%目标函数的倒数End
5、,Np,Np);%plot(ii,ge)[gmin,n]=min(ge);value=gminsolution=bestx(n,:)%目标函数的倒数End
此文档下载收益归作者所有