Exemple #1
0
        public void EndGeneration()
        {
            var nextGeneration = Reinsertion.Select(Population, _selected, _offspring);
            var best           = Population.FindFittest();

            if (FittestChromosome == null || best.Fitness > FittestChromosome.Fitness)
            {
                FittestChromosome = best;
            }

            Population.Reset(nextGeneration);
        }
        /// <summary>
        /// Reinsert the specified offspring and parents.
        /// </summary>
        /// <param name="offspring">The offspring chromosomes.</param>
        /// <param name="parents">The parents chromosomes.</param>
        /// <returns>
        /// The reinserted chromosomes.
        /// </returns>
        private IList <IChromosome> Reinsert(IList <IChromosome> offspring, IList <IChromosome> parents)
        {
            try{
                while (offspring.Count < Population.MinSize)
                {
                    offspring.Add(parents [RandomizationProvider.Current.GetInt(0, parents.Count - 1)]);
//				if(offspring.Count == 0)
//					offspring.Add(parents.First().CreateNew());
//				else
//					offspring.Add(offspring.First().CreateNew());
                }

                if (parents == null)
                {
                    parents = new List <IChromosome>();
                }

                return(Reinsertion.SelectChromosomes(Population, offspring, parents));
            }
            catch {
                Console.WriteLine("GET ON THE GROUND FUCKO THIS IS A BP");
                return(null);
            }
        }
 /// <summary>
 /// Reinsert the specified offspring and parents.
 /// </summary>
 /// <param name="offspring">The offspring chromosomes.</param>
 /// <param name="parents">The parents chromosomes.</param>
 /// <returns>
 /// The reinserted chromosomes.
 /// </returns>
 private IList <IChromosome> Reinsert(IList <IChromosome> offspring, IList <IChromosome> parents)
 {
     return(Reinsertion.SelectChromosomes(Population, offspring, parents));
 }
 public override IEntityList InsertMigrants(IPopulation population, IEntityList travelers)
 {
     Reinsertion.Replace(population, travelers, null, population);
     return(population);
 }