X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fmutation%2Fmutation.h;h=69c2326c33fd1632205cd48018858bb3a3aef1b4;hb=df033a74e9dae48ba6a9efe3b0a5ad03c5caa324;hp=7b626ba1e63c54e07db72e0b70552191e787c046;hpb=af69896de7f61e773e62dfdcfa75f7788dd0dd37;p=genetic.git diff --git a/src/mutation/mutation.h b/src/mutation/mutation.h index 7b626ba..69c2326 100644 --- a/src/mutation/mutation.h +++ b/src/mutation/mutation.h @@ -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 newChromosome = chromosome.get(); - newChromosome[mutatedGene] = GeneType(!newChromosome[mutatedGene].get()); - - chromosome = _Chromosome(newChromosome); + chromosome[mutatedGene] = GeneType(!chromosome[mutatedGene].get()); } newGeneration.push_back(chromosome); }