📄 popmerge51.asv
字号:
function [individualsA,bestfitness,bestchrom] = PopMerge41(individuals1,individuals2,individuals3,individuals4,sizepop,lenchrom,fcode,bound,bestfitness,bestchrom)
%从群体individual1,individual2,individual3,individual4中选出3个最佳个体构成数组individual4
%
%
%编写时间 2008.4.5
for i = 1
[fitnessbest,pos] = min(individuals1.fitness);
individualsA.chrom(i,:) = individuals1.chrom(pos,:);
individuals1.fitness(pos) = 10000;
end
for i = 1:sizepop
individuals1.chrom(i,:)=Code(lenchrom,fcode,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)
x=Decode(lenchrom,bound,individuals1.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)
%计算适应度
%修改处
%individuals.fitness(i)=AimFunc(x,heli,id_data,0);
individuals1.fitness(i)=Aimfunc(x); %染色体的适应度
end
for i = 2
[fitnessbest,pos] = min(individuals2.fitness);
individualsA.chrom(i,:) = individuals2.chrom(pos,:);
individuals2.fitness(pos) = 10000;
end
for i = 1:sizepop
individuals2.chrom(i,:)=Code(lenchrom,fcode,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)
x=Decode(lenchrom,bound,individuals2.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)
%计算适应度
%修改处
%individuals.fitness(i)=AimFunc(x,heli,id_data,0);
individuals2.fitness(i)=Aimfunc(x); %染色体的适应度
end
for i = 3
[fitnessbest,pos] = min(individuals3.fitness);
individualsA.chrom(i,:) = individuals3.chrom(pos,:);
individuals3.fitness(pos) = 10000;
end
for i = 1:sizepop
individuals3.chrom(i,:)=Code(lenchrom,fcode,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)
x=Decode(lenchrom,bound,individuals3.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)
%计算适应度
%修改处
%individuals.fitness(i)=AimFunc(x,heli,id_data,0);
individuals3.fitness(i)=Aimfunc(x); %染色体的适应度
end
for i = 4
[fitnessbest,pos] = min(individuals4.fitness);
individualsA.chrom(i,:) = individuals4.chrom(pos,:);
individuals4.fitness(pos) = 10000;
end
for i = 1:sizepop
individuals4.chrom(i,:)=Code(lenchrom,fcode,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)
x=Decode(lenchrom,bound,individuals4.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)
%计算适应度
%修改处
%individuals.fitness(i)=AimFunc(x,heli,id_data,0);
individuals4.fitness(i)=Aimfunc(x); %染色体的适应度
end
%计算individualA中的个体适应度
for i = 1:4
individualsA.chrom(i,:)=Code(lenchrom,fcode,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)
x=Decode(lenchrom,bound,individualsA.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)
%计算适应度
%修改处
%individuals.fitness(i)=AimFunc(x,heli,id_data,0);
individualsA.fitness(i)=Aimfunc(x); %染色体的适应度
end
%找到最小和最大适应度的染色体及它们在种群中的位置
[newbestfitness,newbestindex]=min(individualsA.fitness);
f bestfitness>newbestfitness
bestfitness=newbestfitness;
bestchrom=individuals5.chrom(newbestindex,:);
end
individuals5.chrom(worestindex,:)=bestchrom;
individuals5.fitness(worestindex)=bestfitness;
avgfitness=sum(individuals5.fitness)/sizepop;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -