public static OptimiserBuilder GetBuilder(DecisionSpace problemSpace) { var hyps = EvolutionaryAlgorithmHyperParameters.GetDefaultHyperParameters(); var population = new Population( 200); hyps.UpdateHyperParameterValue( EvolutionaryAlgorithmHyperParameters.Population_Size, 200); IParentSelectionOperator parentSelector = new ParentSelectionTournament( 20, false); IRecombinationOperator recombinationOperator = new CrossoverSimulatedBinary( 2);; hyps.UpdateHyperParameterValue( EvolutionaryAlgorithmHyperParameters.Number_Of_Parents, 2); IMutationOperator mutationOperator = new MutationAddRandomNumber( 0.1, 0.1, 1); IReinsertionOperator reinsertionOperator = new ReinsertionReplaceRandom(); return(new EvolutionaryAlgorithmBuilderContinuousMO(population, problemSpace, hyps, parentSelector, recombinationOperator, mutationOperator, reinsertionOperator)); }
public void ReInsert_BetterThanBest_Inserts() { var newInd = Helpers.CreateFitnessAssessedIndividualsFromArray( new double[][] { new[] { 1.0, 1.0 } }, new[] { testPop.Best().Fitness - 1 }) .First(); var reinserter = new ReinsertionReplaceRandom(); reinserter.ReInsert(new[] { newInd }, testPop); Assert.Contains(newInd, testPop); }
public void ReInsert_WorseThanWorst_DoesNotInsert() { var newInd = Helpers.CreateFitnessAssessedIndividualsFromArray( new double[][] { new[] { 1.0, 1.0 } }, new[] { testPop.Worst().Fitness + 1 }) .First(); var reinserter = new ReinsertionReplaceRandom(); reinserter.ReInsert(new[] { newInd }, testPop); Assert.DoesNotContain(newInd, testPop); }