24小时热门版块排行榜    

查看: 253  |  回复: 1

s20090281

银虫 (小有名气)

[求助] 大家帮我看看这段程序,解释一下

clear all;
close all;
%Parameters
Size=80;   
G=100;     
CodeL=10;
umax=2.048;
umin=-2.048;
E=round(rand(Size,2*CodeL));    %Initial Code
GG1=zeros(1,G);%用来保存适应值;
Y=zeros(2,G);%用来保存x值

%Main Program
for k=1:1:G
    time(k)=k;
    for s=1:1:Size
        m=E(s,;
        y1=0;y2=0;
        %Uncoding
        m1=m(1:1:CodeL);
        for i=1:1:CodeL
            y1=y1+m1(i)*2^(i-1);
        end
        x1=(umax-umin)*y1/1023+umin;
        Y(1,k)=x1;
        m2=m(CodeL+1:1:2*CodeL);
        for i=1:1:CodeL
            y2=y2+m2(i)*2^(i-1);
        end
        x2=(umax-umin)*y2/1023+umin;
        Y(2,k)=x2;
        %F(s)=100*(x1^2-x2)^2+(1-x1)^2;%这个就是所对应的适应值函数
        F(s)=10*sin(sqrt(x1.^2+x2.^2))./sqrt(1+x1.^2+x2.^2);
    end
    Ji=1./F;
    %****** Step 1 : Evaluate BestJ ******
     BestJ(k)=min(Ji);
     fi=F;                          %Fitness Function
     [Oderfi,Indexfi]=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 belong to max(fi)
      bfi(k)=Bestfi;
      GG1(k)=Bestfi;
     %****** 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
     kk=1;
     for i=1:1:Size
         for j=1:1:fi_S(i)        %Select and Reproduce
             TempE(kk,=E(Indexfi(i),;
              kk=kk+1;              %kk is used to reproduce
         end
     end   
前面都懂,就是不懂这的Select and Reproduct Operation,麻烦指点一下,谢谢。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

大家帮帮我吧,可以多送分
2楼2011-06-21 14:56:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 s20090281 的主题更新
信息提示
请填处理意见