statistic.cpp

来自「一个遗传算法(GA)的实现。command line 的结构。输入输出格式请见命」· C++ 代码 · 共 47 行

CPP
47
字号
/*----------------------------------------------------------------------------*/
/* statistic.c - compute the fitness statistics 							  */
/*----------------------------------------------------------------------------*/

#include "statistic.h"

//#include "sga.h"
#include "external.h"
#include "app.h"

/* Calculate population statistics */
void statistics(individual *pop)
{
	int i, j;
	
	sumfitness = 0.0;
	min = pop[0].fitness;
	max = pop[0].fitness;

	// !!! Use the "Best of the final generation" instead of the "everbest"
	// bestfit.fitness = -1e10;
	
	/* Loop for max, min, sumfitness */
	for(j = 0; j < popsize; j++)
	{
		sumfitness = sumfitness + pop[j].fitness;				/* Accumulate */
		if(pop[j].fitness > max) max = pop[j].fitness;		   /* New maximum */
		if(pop[j].fitness < min) min = pop[j].fitness;		   /* New minimum */
		
		/* new global best-fit individual */
		if(pop[j].fitness > bestfit.fitness)
		{
			for(i = 0; i < chromsize; i++)
				bestfit.chrom[i] = pop[j].chrom[i];
			
			bestfit.fitness    = pop[j].fitness;
			bestfit.generation = gen;
		}
	}
	
	/* Calculate average */
	avg = sumfitness/popsize;
	
	/* get application dependent stats */
	app_stats(pop);
}

⌨️ 快捷键说明

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