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

📄 popmerge41.asv

📁 用4个种群来优化函数
💻 ASV
字号:
function [individuals5,bestfitness,bestchrom] = PopMerge41(individuals1,individuals2,individuals3,individuals4,sizepop,lenchrom,fcode,bound,bestfitness,bestchrom)%从群体individual1,individual2,individual3,individual4中选出3个最佳个体构成数组individual4%%%编写时间 2008.4.5for 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);   %染色体的适应度endfor i = 1:3    [fitnessbest,pos] = min(individuals1.fitness);    individuals5.chrom(i,:) = individuals1.chrom(i,:);    individuals1.fitness(pos) = 10000;endfor 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);   %染色体的适应度endfor i = 4:6    [fitnessbest,pos] = min(individuals2.fitness);    individuals5.chrom(i,:) = individuals2.chrom(pos,:);    individuals2.fitness(pos) = 10000;endfor 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);   %染色体的适应度endfor i = 7:9    [fitnessbest,pos] = min(individuals3.fitness);    individuals5.chrom(i,:) = individuals3.chrom(pos,:);    individuals3.fitness(pos) = 10000;endfor 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);   %染色体的适应度endfor i = 10:12    [fitnessbest,pos] = min(individuals4.fitness);    individuals5.chrom(i,:) = individuals4.chrom(pos,:);    individuals4.fitness(pos) = 10000;end%计算individual5中的个体适应度for i = 1:sizepop    individuals5.chrom(i,:)=Code(lenchrom,fcode,bound);    %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)    x=Decode(lenchrom,bound,individuals5.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)    %计算适应度    %修改处    %individuals.fitness(i)=AimFunc(x,heli,id_data,0);    individuals5.fitness(i)=Aimfunc(x);   %染色体的适应度end  %找到最小和最大适应度的染色体及它们在种群中的位置    [newbestfitness,newbestindex]=min(individuals5.fitness);    [worestfitness,worestindex]=max(individuals5.fitness);    % 代替上一次进化中最好的染色体    if bestfitness>newbestfitness        bestfitness=newbestfitness;        bestchrom=individuals5.chrom(newbestindex,:);    end    individuals5.chrom(worestindex,:)=bestchrom;    individuals5.fitness(worestindex)=bestfitness;        avgfitness=sum(individuals5.fitness)/sizepop;    trace5=[avgfitness bestfitness]; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -