Пример #1
0
        public void EvolveCurrentGeneration()
        {
            EvaluateFitness();

            BestIndividual = population.GetBestIndividual();
            HandlerInvoke(CurrentGenerationInfo);

            if (termination.IsFulfilled(this))
            {
                HandlerInvoke(TerminationReached);
                terminationConditionReached = true;
            }

            population = EvolvedOneGeneration(population);
        }
Пример #2
0
        /// <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++;
        }