| 查看: 254 | 回复: 1 | ||
[求助]
大家帮我看看这段程序,解释一下
|
|
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,麻烦指点一下,谢谢。 |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有11人回复
救命帖
已经有5人回复
限项规定
已经有5人回复
为什么nbs上溴 没有产物点出现呢
已经有9人回复
招博士
已经有3人回复
存款400万可以在学校里躺平吗
已经有35人回复
最失望的一年
已经有18人回复
求推荐博导
已经有4人回复
求推荐英文EI期刊
已经有5人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
这段并行程序有问题,不知道错在什么地方请大家看看!
已经有6人回复
帮忙看一段程序
已经有3人回复
【求助】50金币求大家帮忙改一段程序
已经有13人回复
【求助】导师这样给我回信,不知道是什么意思,请大家帮帮忙解释一下
已经有21人回复
【求助】大家帮忙看看数组存值和引用
已经有5人回复
求助大家帮忙看看写的有没有错误,这段话?谢谢
已经有1人回复
【求助】大家帮我看看我的循环伏安曲线,给个解释呗
已经有8人回复
【求助】请大家帮我解释一下这个荧光蓝移的原因
已经有8人回复
【求助】熟悉matlab ga 工具箱的虫子进来一下
已经有11人回复
2楼2011-06-21 14:56:17













;
回复此楼