Example #1
0
        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));
        }
Example #2
0
        public void Select_RequestOne_BestIsAlwaysIncluded_GetBest()
        {
            var selector = new ParentSelectionTournament(10, true);
            var parents  = selector.Select(testPop, 1);

            Assert.Equal(testPop.Best(), parents.ElementAt(0));
        }
Example #3
0
        public void Select_NumberToSelectGreaterThanPopulationSize_Throws()
        {
            var selector = new ParentSelectionTournament(10);

            Assert.Throws <ArgumentOutOfRangeException>(() =>
                                                        selector.Select(testPop, testPop.Count() + 1));
        }
Example #4
0
        public void Select_PopulationSmallerThanTournamentSize_Throws()
        {
            var selector = new ParentSelectionTournament(100);

            Assert.Throws <ArgumentOutOfRangeException>(() =>
                                                        selector.Select(testPop, 1));
        }
Example #5
0
        public void Select_RequestFive_BestIsAlwaysIncluded_GetFiveIncludingBest()
        {
            var selector = new ParentSelectionTournament(10, true);
            var parents  = selector.Select(testPop, 5);

            Assert.True(parents.Count() == 5);
            Assert.Contains(testPop.Best(), parents);
        }
Example #6
0
        public void Select_RequestOne_GetOne()
        {
            var selector = new ParentSelectionTournament(10, false);
            var parents  = selector.Select(testPop, 1);

            Assert.True(parents.Count() == 1);
            Assert.True(parents.ElementAt(0) != testPop.Worst());
        }