资源描述:
《人工免疫小生境聚类程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、clcclearallsaw=load('ywh.txt');saw0(:,1:2)=saw(:,3:4);k=3;[mn]=size(saw0);ma=max(saw0);mi=min(saw0);fori=1:msa(i,:)=(saw0(i,:)-mi)./(ma-mi);endSize=1000;% 初始代码容量FG=500;%样本集BG=50;%解集BT=100;%优秀SG=400;%子代se=0.01;CodeL=15;%二进制长度P=k*n;E=round(rand(Size,P*CodeL));%初始代码库count=0;fori=1:FGcn=fi
2、x(rand*Size);ifcn==0cn=cn+1;endfather(i,:)=E(cn,:);endfori=1:50[fag]=father2binfun(father,FG,P,CodeL);%转换成十进制解[bestan,best,bf,zbf]=computfun(sa,fag,FG,k,m,n);%最优解,最优指标,解集,指标值sl=0.2;[zbf]=xshfun(fag,zbf,sl,k,n);[father]=aiafun(fag,zbf,BG,FG,P,CodeL);%淘汰克隆转换成二进制,变异end[fag]=father2binfun(
3、father,FG,P,CodeL);;%转换成十进制[bestan,best,bf,zbf]=computfun(sa,fag,FG,k,m,n);%bestan,xk=bestan;lesa=zeros(k,m);fori=1:mdu=zeros(1,k);forj=1:kdup(j,:)=sa(i,:)-xk(j,:);du(1,j)=sum(dup(j,:).^2);enddmi=min(du);df=find(dmi==du);lesa(df,i)=i;endfunction[fag]=father2binfun(father,FG,P,CodeL)for
4、i=1:FGcnc=0;forj=1:Pcnc=(j-1)*CodeL+1;cnl=j*CodeL;temp=father(i,cnc:cnl);fag(i,j)=0;forjk=1:CodeLiftemp(1,jk)==1fag(i,j)=fag(i,j)+1/(2^(jk-1));endendiffag(i,j)>=1fag(i,j)=fag(i,j)-1;endendendfunction[bestan,best,bf,zbf]=computfun(sa,fag,FG,k,m,n)lesa=zeros(k,m);zbf=zeros(FG,1);fori=1:F
5、Gax=zeros(k,n);cnc=0;forjk=1:kcnc=(jk-1)*n+1;cnl=jk*n;ax(jk,:)=fag(i,cnc:cnl);endsup=zeros(1,m);forjm=1:mdop=zeros(1,k);forjk=1:kforjn=1:ndop(1,jk)=dop(1,jk)+(sa(jm,jn)-ax(jk,jn))^2;enddop(1,jk)=sqrt(dop(1,jk));endsup(1,jm)=min(dop);endmup=zeros(k-1,1);forik=1:k-1hk=ik;forio=(ik+1):kte
6、mp=0;forjn=1:ntemp=temp+(ax(hk,jn)-ax(io,jn))^2;endtemp=sqrt(temp);mup(hk,1)=mup(hk,1)+temp;endendfenz=sum(sup);fenm=sum(mup);zbf(i,1)=fenz/(1.0+fenm);endbf=min(zbf);bfm=find(bf==zbf);best=fag(bfm,:);%¶þ½øÖÆcm=size(bfm);zn=bfm(1);tax=zeros(k,n);cnc=0;forjk=1:kcnc=(jk-1)*n+1;cnl=jk*n;ta
7、x(jk,:)=fag(zn,cnc:cnl);endbestan=tax;function[zbf]=xshfun(fag,zbf,sl,k,n)[kmkn]=size(fag);fori=1:km-1fax=zeros(k,n);cnc=0;forik=1:kcnc=(ik-1)*n+1;cnl=ik*n;fax(ik,:)=fag(i,cnc:cnl);endforj=i+1:kmfab=zeros(k,n);cnc=0;forjk=1:kcnc=(jk-1)*n+1;cnl=jk*n;fab(jk,:)=fag(j,cnc:cnl);endus=(fax