public void TestAddCandidate() { var candidateA = BreedingCandidateMocks.CreateMock(0.4); var candidateB = BreedingCandidateMocks.CreateMock(1.5); _population.Add(candidateA); _population.Add(candidateB); Assert.AreEqual(1.9, _population.TotalFitness); Assert.AreEqual(2, _population.Size); }
public virtual void AddEntitiesToPopulation(IPopulation population, IEntityList entities) { for (int i = 0; i < entities.Count; i++) { population.Add(entities[i]); } }
public override IEntityList Replace(IPopulation targetPopulation, IEntityList offspring, IEntityList parents, IPopulation sourcePopulation) { var inserted = new EntityList(1); var populationSize = Parameters.GetValue(Algorithm.ParameterNames.PopulationSize); //TODO: FitnessComparer.SelectWorst, SelectBest if (offspring.Count == 0) { return(inserted); } var entityToRemove = FitnessComparer.Dominates(parents[0].Fitness, parents[1].Fitness) ? parents[0] : parents[1]; var entityToAdd = (offspring.Count > 1 && FitnessComparer.Dominates(offspring[0].Fitness, offspring[1].Fitness)) ? offspring[1] : offspring[0]; if (FitnessComparer.Dominates(entityToRemove.Fitness, entityToAdd.Fitness)) { targetPopulation.Add(entityToAdd); inserted.Add(entityToAdd); if (sourcePopulation.Count > populationSize) { sourcePopulation.Remove(entityToRemove); } } return(inserted); }
public override IEntityList Replace(IPopulation population, IEntityList offspring, IEntityList parents, IPopulation sourcePopulation) { var inserted = new EntityList(offspring.Count); int tournamentSize = Parameters.GetInt(ParameterNames.TournamentSize); for (int i = 0; i < offspring.Count; i++) { var entityForRemove = SelectOne(population, tournamentSize); population.RemoveAt(entityForRemove); population.Add(offspring[i]); inserted.Add(offspring[i]); } return(inserted); }