public void EvolveCurrentGeneration() { EvaluateFitness(); BestIndividual = population.GetBestIndividual(); HandlerInvoke(CurrentGenerationInfo); if (termination.IsFulfilled(this)) { HandlerInvoke(TerminationReached); terminationConditionReached = true; } population = EvolvedOneGeneration(population); }
/// <summary> /// Evolve one generation. /// </summary> public void EvolveCurrentGeneration() { EvaluateFitness(); BestIndividual = Population.GetBestIndividual(); HandlerInvoke(CurrentGenerationInfo); if (termination.IsFulfilled(this)) { HandlerInvoke(TerminationReached); terminationConditionReached = true; } var parents = SelectParents(); var offspring = Cross(parents); Mutate(offspring); offspring = SelectElite(offspring, parents); Population.Individuals = offspring; CurrentGenerationsNumber++; }