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); }