📄 iterative.m
字号:
function [individuals,avgfitness,bestfitness,bestchrom] = iterative(individuals,maxgen,sizepop,fselect,fcode,pcross,fcross,pmutation,fmutation,lenchrom,bound,bestfitness,bestchrom)%对每个种群进行100次遗传算法操作%参数参看main函数%%%编写日期 2008.4.5% 进化开始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%进化结束trace=[avgfitness bestfitness];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -