| 查看: 267 | 回复: 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,麻烦指点一下,谢谢。 |
» 猜你喜欢
材料专硕283求调剂
已经有7人回复
一志愿北京2,材料与化工308求调剂
已经有4人回复
求调剂
已经有5人回复
一志愿9材料学硕297已过六级求调剂推荐
已经有8人回复
278求调剂
已经有9人回复
285求调剂
已经有5人回复
一志愿武理材料工程302调剂环化或化工
已经有20人回复
348求调剂
已经有3人回复
本科211 分数293请求调剂
已经有3人回复
一志愿南农090401,268,求调剂
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
这段并行程序有问题,不知道错在什么地方请大家看看!
已经有6人回复
帮忙看一段程序
已经有3人回复
【求助】50金币求大家帮忙改一段程序
已经有13人回复
【求助】导师这样给我回信,不知道是什么意思,请大家帮帮忙解释一下
已经有21人回复
【求助】大家帮忙看看数组存值和引用
已经有5人回复
求助大家帮忙看看写的有没有错误,这段话?谢谢
已经有1人回复
【求助】大家帮我看看我的循环伏安曲线,给个解释呗
已经有8人回复
【求助】请大家帮我解释一下这个荧光蓝移的原因
已经有8人回复
【求助】熟悉matlab ga 工具箱的虫子进来一下
已经有11人回复
2楼2011-06-21 14:56:17














;
回复此楼