|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 donlemon 于 2019-7-1 17:04 编辑
Hi therethis is matlab cod::
clear all
clc
tic
generation=randi([65,122],18,15);
goalstring='whereAreYou';
goal(1,1:11)=double(goalstring);
maxfit=0;
bestkoromozom(1,11)=0;
fitness(1:10,1)=0;
%% *evaluate fitness
for g=1:200
fitness(1:10,1)=0;
for k=1:10
for i=1:11
if goal(1,i)==generation(k,i)
fitness(k,1)=1+fitness(k,1);
end
end
if maxfit<fitness(k,1)
maxfit=fitness(k,1);
bestkoromozom(1,1:11)=generation(k,1:11);
stringbest=char(bestkoromozom);
end
end
%% *mutation pm=
for m=1:130
if rand<0.3
koromozomnom=floor(m/11)+1;
gennom=m-((koromozomnom-1)*11);
if gennom==0
koromozomnom=koromozomnom-1;
gennom=11;
end
if generation(koromozomnom,gennom)~=goal(1,gennom);
x=randi([97,122]);
generation(koromozomnom,gennom)=x;
end
end
end
disp(maxfit);
disp(bestkoromozom);
disp(stringbest);
end
toc
|
|