投影寻踪 遗传算法MATLAB程序_第1页
投影寻踪 遗传算法MATLAB程序_第2页
投影寻踪 遗传算法MATLAB程序_第3页
投影寻踪 遗传算法MATLAB程序_第4页
投影寻踪 遗传算法MATLAB程序_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

clcclearclose allAlpha=0.1;X=load(d:data.txt);for k=1:21 eval(sprintf(syms a%d,k);enda=a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21;n,p=size(X);x=zeros(n,p);Xjmax=max(X);Xjmin=min(X);for i=1:n x(i,:)=(X(i,:)-Xjmin)./(Xjmax-Xjmin);end %构造投影指标for i=1:n Z(i)=sum(a.*x(i,:);end%计算投影指标函数meanZ=mean(Z);Sa=0;for k=1:n sa=(Z(i)-meanZ).2; Sa=Sa+sa; Sa=sqrt(Sa/n);endR=Alpha*Sa;Da=0;for k=1:n rik=abs(Z(i)-Z(k); %if Rrik Da=Da+rik; %endendQa=Sa*Da; %选择操作function ret =select(individuals,sizepop)individuals.fitness=1./(individuals.fitness);sumfitness=sum(individuals.fitness);sumf=individuals./fitness;index=;for i =1:sizepop pick=rand; while pick=0 pick=rand; end for j =1:sizepop pick =pick-sumf(j); if pickpcross continue; end flag=0; while flag=0 pick=rand; while pick=0 pick=rand; end pos=ceil(pick.*sum(lenchrom); pick=rand; v1=chrom(index(1),pos); v2=chrom(index(2),pos); chrom(index(1),pos)=pick*v2+(1-pick)*v1; chrom(index(2),pos)=pick*v1+(1-pick)*v2; flag1=test(lenchrom,bound,chrom(index(1),:),fcode); flag2=test(lenchrom,bound,chrom(index(2),:),fcode); if flag1*flag2=0 flag=0; else flag=1; end endendret= chrom; % 变异操作 function ret=Mutation(pmutation,lenchrom,chrom,sizepoppop,bound)pick=rand;while pick=0 pick=rand;endindex=ceil(pick*sizepop);pick=rand;if pickpmutation continue;endflag=0;while flag=0 pick =rand; while pick=0 pick=rand; end pos=ceil(pick*sum(lenchrom); v=chrom(i,pos); v1=v-bound(pos,1); v2=bound(pos,2)-v; pick=rand; if pick0.5 delta=v2*(1-pick(1-pop(1)/pop(2)2); chrom(i,pos)=v+delta; else delta=v1*(1-pick(1-pop(1)/pop(2)2); chrom(i,pos)=v-delta; end flag=test(lenchrom,bound,chrom(1,:),fcode);endendendret=chrom;endend主函数clcclear maxgen=200;sizepop=20;pcross=0.6;pmutation=0.01;lenchrom=1 1 1 1 1;bound=0 0.9*pi;0 0.9*pi;0 0.9*pi;0 0.9*pi;0 0.9*pi; individuals=struct(fitness,zeros(1,sizepop),chrom,);avgfitness=;bestfitness=;bestchrom=;for i =1:sizepop individuals.chrom(1,:)=code(lenchrom,bound); x=individuals.chrom(i,:); individuals,fitness(i)=fun(x);end bestfitness, bestindex=max(individuals.fitness);bestchrom=individuals.chrom(bestindex,:);avgfitness=sum(individuals.fitness)/sizepop;trace=; for i=1:maxgen individuals=Select(individuals,sizepop); avggitness=sum(individuals.fitness)/sizepop; individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound); individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,i maxgen,bound); if mod(i,10)=0 individuals.chrom=nonlinear(individuals.chrom,sizepop); end for j=1:sizepop x=individuals.chrom(j,:); individuals.fitness(j)=fun(x); end newbestfitness,newbestindex=max(individuals.fitness); if bestfitnessnewbestfitness; bestfitness=newbe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论