#include "fitness/fitness.h"
#include "selection/selection.h"
-using namespace std;
-
namespace genetic {
// namespace selection {
/**
ChromosomeMap rankedGeneration;
unsigned int rank = generationSize;
- double denominator = generationSize * (generationSize - 1);
+ const double denominator = generationSize * (generationSize - 1);
for (ChromosomeMapIterator it = generationFitness.begin(); it != generationFitness.end(); it++) {
rankedGeneration.insert(std::make_pair(rank--/denominator, it->second));
ChromosomeMap probabilities = rankChromosomes();
unsigned int size = probabilities.size();
- unsigned int denominator = size * (size - 1);
+ const unsigned int denominator = size * (size - 1);
std::vector<_Chromosome> selected;
while (size > 0) {
bool found = false;
- random = (rand() % size) / (double)denominator;
+ random = (rand() % size) / (float)denominator;
for (ChromosomeMapIterator it = probabilities.begin(); it != probabilities.end(); it++) {
if (random < it->first) {
return Generation<_Chromosome>(selected);
}
public:
- LinearRankSelection(Generation<_Chromosome>& _generation, GeneticFitness& _fitness) :
+ LinearRankSelection(const Generation<_Chromosome>& _generation, GeneticFitness& _fitness) :
Selection<_Chromosome>(_generation, _fitness) {
}
};