statistics.m

来自「免疫遗传算法用于搜索全局最优解,经验证具有很好的效率和收敛性」· M 代码 · 共 39 行

M
39
字号
% 函数-统计种群的适应度
function [sumfitness,bestfit] = statistics(pop,bestfit,gen,outfp)

popsize = length(pop);
lchrom = length(pop(1).chrom);

min = pop(1).fitness;
max = pop(1).fitness;
sumfitness = 0;

for j = 1:popsize
    sumfitness = sumfitness + pop(j).fitness;
    if(pop(j).fitness > max)
        max = pop(j).fitness;
    end
    if(pop(j).fitness < min) 
        min = pop(j).fitness;
    end
    % 如果是最佳个体,保留入 bestfit
    if(pop(j).fitness > bestfit.fitness)
        bestfit.chrom = pop(j).chrom;
        bestfit.fitness = pop(j).fitness;
        bestfit.generation = gen;
    end 
end

avg = sumfitness/popsize;     % 种群的平均适应度

% 输出种群统计值
fprintf(outfp,'   种群的平均适应度为:   %8.2f\n',avg);
fprintf(outfp,'   最大适应度为:         %8.2f\n',max);
fprintf(outfp,'   最小适应度为:         %8.2f\n',min);
fprintf(outfp,'   最佳个体编码为: ');
for i = 1:lchrom    
    fprintf(outfp,'%3.0f',bestfit.chrom(i));
end
fprintf(outfp,'\n   最佳个体的适应度为:   %8.2f\n',bestfit.fitness);
fprintf(outfp,'   最佳个体染色体代数为: %8.0f\n',bestfit.generation);

⌨️ 快捷键说明

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