⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popmerge51.asv

📁 用4个种群来优化函数
💻 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 + -