資源簡(jiǎn)介
利用遺傳算法求Rosenbrock函數(shù)的極大值
代碼片段和文件信息
function?[?output_args?]?=?Untitled1(?input_args?)
%UNtitleD1?Summary?of?this?function?goes?here
%??Detailed?explanation?goes?here
clear?all;
close?all;
?Size=500;
?CodeL=2;
?
?MinX(1)=-2.048;
?MaxX(1)=2.048;
?MinX(2)=-2.048;
?MaxX(2)=2.048;
?
?E(:1)=MinX(1)+(MaxX(1)-MinX(1))*rand(Size1);
?E(:2)=MinX(2)+(MaxX(2)-MinX(2))*rand(Size1);
?
?G=200;
?BsJ=0;
?
?%---------------Start?Running--------------------------------------------%
?for?kg=1:G
?????time(kg)=kg;
?????
?????%----------------------step?1:?Evaluate?BestJ-----------------------%
?????for?i=1:Size;
?????????xi=E(i:);
?????????x1=xi(1);
?????????x2=xi(2);
?????????
?????????F(i)=100*(x1^2-x2)^2+(1-x1)^2;
?????????Ji=1./F;
?????????BsJi(i)=min(Ji);
?????end
?????[OderJiIndexJi]=sort(BsJi);
?????BestJ(kg)=OderJi(1);
?????BJ=BestJ(kg);
?????Ji=BsJi+eps;%Avoiding?deviding?zero
?????
?????fi=F;
?????[OderfiIndexfi]=sort(fi);?%Arranging?fi?small?to?bigger
?????Bestfi=Oderfi(Size);???????%Let?Bestfi=max(fi)
?????BestS=E(Indexfi(Size):);??%LEt?BestS=E(m)m?is?the?Indexfi?belongs?to?max(fi)
?????bfi(kg)=Bestfi;
?????
?????kg
?????BestS
?????%---------------------------Step?2:Select?and?Reproduct
?????%Operation---------%
?????fi_sum=sum(fi);
?????fi_Size=(Oderfi/fi_sum)*Size;
?????
?????fi_S=floor(fi_Size);???????????????????%Selecting?Bigger?fi?value
?????r=Size-sum(fi_S);
?????
?????Rest=fi_Size-fi_S;
??
評(píng)論
共有 條評(píng)論