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

📄 popinit.asv

📁 用4个种群来优化函数
💻 ASV
字号:
function [individuals,avgfitness,bestfitness,bestchrom,trace] = PopInit(maxgen,sizepop,fselect,fcode,pcross,fcross,pmutation,fmutation,lenchrom,bound);%该函数用于实现算法的第一步和第二步,即随机生成三个种群个体数12的种群%对每个种群进行100次简单的遗传算法%每个参数的具体含义参看main文件%%%编写时间 2008.4.5 % 初始化种群for i=1:sizepop    %随机产生一个种群    individuals.chrom(i,:)=Code(lenchrom,fcode,bound);    %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)    x=Decode(lenchrom,bound,individuals.chrom(i,:),fcode);%解码(binary和grey的解码结果为一个二进制串,float的解码结果为一个实数向量)    %计算适应度    %修改处    %individuals.fitness(i)=AimFunc(x,heli,id_data,0);    individuals.fitness(i)=Aimfunc(x);   %染色体的适应度end%找最好的染色体[bestfitness bestindex]=min(individuals.fitness);bestchrom=individuals.chrom(bestindex,:);  %最好的染色体avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度% 记录每一代进化中最好的适应度和平均适应度trace=[avgfitness bestfitness]; % 进化开始for i=1:maxgen    % 选择    individuals=Select(individuals,sizepop,fselect);     avgfitness=sum(individuals.fitness)/sizepop;    %交叉    individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,fcross,[i maxgen],fcode,bound);    % 变异    individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,fmutation,[i maxgen],fcode,bound);        % 计算适应度     for j=1:sizepop        x=Decode(lenchrom,bound,individuals.chrom(j,:),fcode); %解码        % 修改处        %individuals.fitness(j)=AimFunc(x,heli,id_data,0);        individuals.fitness(j)=Aimfunc(x);       end      %找到最小和最大适应度的染色体及它们在种群中的位置    [newbestfitness,newbestindex]=min(individuals.fitness);    [worestfitness,worestindex]=max(individuals.fitness);    % 代替上一次进化中最好的染色体    if bestfitness>newbestfitness        bestfitness=newbestfitness;        bestchrom=individuals.chrom(newbestindex,:);    end    individuals.chrom(worestindex,:)=bestchrom;    individuals.fitness(worestindex)=bestfitness;        avgfitness=sum(individuals.fitness)/sizepop;        trace=[trace;avgfitness bestfitness]; %记录每一代进化中最好的适应度和平均适应度end%进化结束

⌨️ 快捷键说明

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