-
Notifications
You must be signed in to change notification settings - Fork 2
/
estatistica.cpp
36 lines (27 loc) · 1.13 KB
/
estatistica.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/******************************************************************************\
* Estatisticas *
\******************************************************************************/
#include "defTipo.hpp"
void estatistica( populacao *pop , int gen)
{
int j;
pop->somaFitness = pop->indiv[0].fitness; // soma do fitness da populacao
pop->maxFitness = pop->indiv[0].fitness; // maximo valor de fitness da populacao
pop->melhorIndividuo = 0; // melhor individuo da populacao
pop->melhorIndividuo2 = 0; // segundo melhor individuo da populacao
for(j = 1; j < tamPop; j++) {
pop->somaFitness = pop->somaFitness + pop->indiv[j].fitness;
if (pop->indiv[j].fitness >= pop->maxFitness ) {
pop->maxFitness = pop->indiv[j].fitness ;
pop->melhorIndividuo2 = pop->melhorIndividuo;
pop->melhorIndividuo = j;
}
}
pop->mediaFitness = pop->somaFitness / tamPop;
// Dados para serem salvos
arq_media_fitness[gen] = pop->mediaFitness;
arq_melhor_fitness[gen] = pop->maxFitness;
int n = pop->melhorIndividuo;
for(j = 0; j < lcrom; j++)
arq_melhor_individuo[gen][j] = pop->indiv[n].cromossomo[j];
}