vector<FitnessValueType> calculateGenerationFitness(
Generation<_Chromosome> generation) {
vector<FitnessValueType> generationFitness;
+ unsigned int generationSize = generation.size();
- for (unsigned int i = 0; i < generation.size(); i++) {
+ for (unsigned int i = 0; i < generationSize; i++) {
generationFitness.push_back(this->checkChromosomeFitness(generation[i]));
}
FitnessValueType max;
FitnessValueType offset;
+ unsigned int fitnessSize = generationFitness.size();
+
/* we use multimap because it stores multiple values with the
* same key
*/
min = max = generationFitness[0];
offset = 0;
- for (unsigned int i = 0; i < generationFitness.size(); i++) {
+ for (unsigned int i = 0; i < fitnessSize; i++) {
if(generationFitness[i] < min) {
min = generationFitness[i];
}
offset = (max - min) / (chromosomeSize - 1) - min;
- for (unsigned int i = 0; i < generationFitness.size(); i++) {
+ for (unsigned int i = 0; i < fitnessSize; i++) {
normalizedFitness.insert(std::make_pair(generationFitness[i] + offset, this->generation[i]));
}