void Initialize() { for (int i = 0; i < population_size; i++) { //Initializing each member of the population Chromosome* dna = new Chromosome(); dna->num_genes = 18; dna->Initialize(); dna->SetTarget(target); population.push_back(dna); } }
Chromosome* crossover(Chromosome *partner) { Chromosome *child = new Chromosome(); child->num_genes = this->num_genes; child->Initialize(); child->SetTarget(this->target); int midpoint = int(RandomInt(0, num_genes)); for (int i = 0; i < num_genes; i++) { if (i > midpoint) child->genes[i] = genes[i]; else { if (partner != 0) child->genes[i] = partner->genes[i]; } } return child; }