投影寻踪 遗传算法MATLAB程序

投影寻踪 遗传算法MATLAB程序

ID:38782181

大小:38.00 KB

页数:5页

时间:2019-06-19

投影寻踪 遗传算法MATLAB程序_第1页
投影寻踪 遗传算法MATLAB程序_第2页
投影寻踪 遗传算法MATLAB程序_第3页
投影寻踪 遗传算法MATLAB程序_第4页
投影寻踪 遗传算法MATLAB程序_第5页
资源描述:

《投影寻踪 遗传算法MATLAB程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、clcclearcloseallAlpha=0.1;X=load('d:data.txt');fork=1:21eval(sprintf('symsa%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);fori=1:nx(i,:)=(X(i,:)-Xjmin)./(Xjmax-Xjmin);end%构造投影指标fori=1:nZ(i)=sum(a.*x(

2、i,:));end%计算投影指标函数meanZ=mean(Z);Sa=0;fork=1:nsa=(Z(i)-meanZ).^2;Sa=Sa+sa;Sa=sqrt(Sa/n);endR=Alpha*Sa;Da=0;fork=1:nrik=abs(Z(i)-Z(k));%ifR>rikDa=Da+rik;%endendQa=Sa*Da;%选择操作functionret=select(individuals,sizepop)individuals.fitness=1./(individuals.fitness);sumfitness=sum(individuals.fitness);sumf

3、=individuals./fitness;index=[];fori=1:sizepoppick=rand;whilepick==0pick=rand;endforj=1:sizepoppick=pick-sumf(j);ifpick<0index=[indexj];break;endendendindivlduals.chrom=indivuduals.chrom(index,:);individuals.fitness=individuals.fitness(index);ret=individuals;%交叉操作functionret=Cross(pcross,lenchrom

4、,chrom,sizepop,bound)fori=1:sizepoppick=rand(1,2);whileprod(pick)==0pick=rand(1,2);endindex=ceil(pick.*sizepop);pick=rand;whilepick==0pick=rand;endifpick>pcrosscontinue;endflag=0;whileflag==0pick=rand;whilepick==0pick=rand;endpos=ceil(pick.*sum(lenchrom));pick=rand;v1=chrom(index(1),pos);v2=chro

5、m(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);ifflag1*flag2==0flag=0;elseflag=1;endendendret=chrom;%变异操作functionret=Mutation(pmutation,lenchrom,

6、chrom,sizepoppop,bound)pick=rand;whilepick==0pick=rand;endindex=ceil(pick*sizepop);pick=rand;ifpick>pmutationcontinue;endflag=0;whileflag==0pick=rand;whilepick==0pick=rand;endpos=ceil(pick*sum(lenchrom));v=chrom(i,pos);v1=v-bound(pos,1);v2=bound(pos,2)-v;pick=rand;ifpick>0.5delta=v2*(1-pick^((1-

7、pop(1)/pop(2))^2));chrom(i,pos)=v+delta;elsedelta=v1*(1-pick^((1-pop(1)/pop(2))^2));chrom(i,pos)=v-delta;endflag=test(lenchrom,bound,chrom(1,:),fcode);endendendret=chrom;endend主函数clcclearmaxgen=200;sizepop=20;pcross=[0.6];pm

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。