Exemplo n.º 1
0
        public void Reinsertion_FitnessAssessedIndividual_NotAllowed()
        {
            // TODO: Is this the desired behaviour?
            var newInd = ObjectCreators.GetIndividual(builder.StartingDecVec);

            ObjectCreators.EvaluateIndividualAndSetFitness(newInd);

            Assert.Throws <InvalidOperationException>(() => optimiserMock.ReInsert(new[] { newInd }));
        }
Exemplo n.º 2
0
        public void Centroid_DifferentLengthDecisionVectors_Throws()
        {
            var newInd = ObjectCreators.GetIndividual(Enumerable.Repeat <double>(1.2, bestDv.Length + 1));

            ObjectCreators.EvaluateIndividualAndSetFitness(newInd, BestFitness + FitnessDifference);

            var pop2 = ObjectCreators.GetEmptyPopulation(5, false);

            pop2.AddIndividual(singleObjectivePopulation.Best());
            pop2.AddIndividual(newInd);
            Assert.Throws <InvalidOperationException>(() => pop2.Centroid());
        }
Exemplo n.º 3
0
        public void VariableLengthDvPop_AddIndividualWithDifferentLengthDv_Succeeds()
        {
            var numDims = ind.DecisionVector.Count;
            var ind1    = ObjectCreators.GetIndividual(Enumerable.Range(0, numDims + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(ind1);

            popVarLenDv.AddIndividual(ind1);

            Assert.True(popVarLenDv.Count == 2);
            Assert.Equal(popVarLenDv[1], ind1);
        }
Exemplo n.º 4
0
        public void ConstantLengthDvPop_AddBetterIndividual_SortsCorrectly()
        {
            var ind1 = ObjectCreators.GetIndividual(
                ind.DecisionVector.Select(i => (double)i + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(ind1, ind.Fitness - 1);

            popConstLenDvInitInd.AddIndividual(ind1);

            Assert.Equal(ind1, popConstLenDvInitInd.Best());
            Assert.Equal(ind, popConstLenDvInitInd.Worst());
        }
Exemplo n.º 5
0
        public void ConstantLengthDvPop_GetDecisionVectors_ReturnsSortedList()
        {
            var ind1 = ObjectCreators.GetIndividual(
                ind.DecisionVector.Select(i => (double)i + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(ind1, ind.Fitness - 1);

            popConstLenDvInitInd.AddIndividual(ind1);

            var decisionVectors = popConstLenDvInitInd.GetMemberDecisionVectors();

            Assert.True(decisionVectors.Count() == 2);
            Assert.Equal(ind1.DecisionVector, decisionVectors.ElementAt(0));
        }
Exemplo n.º 6
0
        public PopulationExtensionsTests()
        {
            // Set up single-objective population for Convergence and Centroid tests
            bestDv  = new[] { 0.1, 0.5, 1.2 };
            worstDv = new[] { 0.1, bestDv[1] + DvDifference, 1.2 };

            var ind1 = ObjectCreators.GetIndividual(worstDv);
            var ind2 = ObjectCreators.GetIndividual(bestDv);

            ObjectCreators.EvaluateIndividualAndSetFitness(ind1, BestFitness + FitnessDifference);
            ObjectCreators.EvaluateIndividualAndSetFitness(ind2, BestFitness);

            singleObjectivePopulation = ObjectCreators.GetEmptyPopulation(140, true);
            singleObjectivePopulation.AddIndividual(ind1);
            singleObjectivePopulation.AddIndividual(ind2);
        }
Exemplo n.º 7
0
        public PopulationTests()
        {
            popConstLenDv = new Population(
                140, null, true);

            var testVector = new[] { 0.5, 1.5 };

            unevaluatedInd = ObjectCreators.GetIndividual(testVector);

            ind = ObjectCreators.GetIndividual(testVector);
            ObjectCreators.EvaluateIndividualAndSetFitness(ind);

            popConstLenDvInitInd = new Population(
                140, new[] { ind }, true);
            popVarLenDv = new Population(
                140, new[] { ind }, false);
        }
Exemplo n.º 8
0
        public void ConstantLengthDvPop_ReplaceIndividualWithIndex_PerformsCorrectly()
        {
            var bestInd = ObjectCreators.GetIndividual(
                ind.DecisionVector.Select(i => (double)i + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(bestInd, ind.Fitness - 1);

            popConstLenDvInitInd.AddIndividual(bestInd);

            var evenBetterInd = ObjectCreators.GetIndividual(
                ind.DecisionVector.Select(i => (double)i + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(evenBetterInd, ind.Fitness - 2);

            popConstLenDvInitInd.ReplaceIndividualAt(1, evenBetterInd);

            Assert.Equal(evenBetterInd, popConstLenDvInitInd.Best());
            Assert.True(popConstLenDvInitInd.Count == 2);
        }
Exemplo n.º 9
0
        public void GetParetoFront_OneDimension_ReturnsBest()
        {
            var bestInd = ObjectCreators.GetIndividual(
                ind.DecisionVector.Select(i => (double)i + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(bestInd, ind.Fitness - 1);

            popConstLenDvInitInd.AddIndividual(bestInd);

            var evenBetterInd = ObjectCreators.GetIndividual(
                ind.DecisionVector.Select(i => (double)i + 1).ToArray());

            ObjectCreators.EvaluateIndividualAndSetFitness(evenBetterInd, ind.Fitness - 2);

            popConstLenDvInitInd.AddIndividual(evenBetterInd);

            // TODO!
            //Assert.True(popConstLenDvInitInd.ParetoFront().Count() == 1);
            //Assert.Equal(popConstLenDvInitInd.Best(), popConstLenDvInitInd.ParetoFront().First());
        }