Add usage of operators in Generation and Chromosome.
[genetic.git] / src / mutation / mutation.h
index 7b626ba1e63c54e07db72e0b70552191e787c046..69c2326c33fd1632205cd48018858bb3a3aef1b4 100644 (file)
@@ -49,21 +49,18 @@ namespace genetic {
              * @return new Generation of Chromosome's that passed the mutation
              */
             Generation<_Chromosome> mutate(Generation<_Chromosome> _generation) {
-                const unsigned int generationSize = _generation.get().size();
-                const unsigned int chromosomeSize = _generation.get()[0].get().size();
+                const unsigned int generationSize = _generation.size();
+                const unsigned int chromosomeSize = _generation[0].size();
                 vector<_Chromosome> newGeneration;
 
                 for (unsigned int i = 0; i < generationSize; i++) {
                     MutationChanceType random = (rand() % 10000) / 10000.0;
 
-                    _Chromosome chromosome = _generation.get()[i];
+                    _Chromosome chromosome = _generation[i];
                     if (random < this->chance) {
                         unsigned int mutatedGene = (rand() % chromosomeSize);
-                        vector<GeneType> newChromosome = chromosome.get();
 
-                        newChromosome[mutatedGene] = GeneType(!newChromosome[mutatedGene].get());
-
-                        chromosome = _Chromosome(newChromosome);
+                        chromosome[mutatedGene] = GeneType(!chromosome[mutatedGene].get());
                     }
                     newGeneration.push_back(chromosome);
                 }