コード例 #1
0
        public void TwoDim_EvaluatesCorrectValues(double[] values)
        {
            var evaluator = new Schwefel(2);
            var ds        = evaluator.GetGlobalOptimum().GetDecisionSpace();
            var result    = evaluator.Evaluate(DecisionVector.CreateFromArray(ds, new[] { values[0], values[1] }));

            Assert.True(Math.Abs(values[2] - result.ElementAt(0)) < 0.001);
        }
コード例 #2
0
        public void TwoDim_CorrectlyIdentifiesLegalSolution()
        {
            var evaluator = new Schwefel(2);
            var ds        = evaluator.GetGlobalOptimum().GetDecisionSpace();
            var legal     = evaluator.GetLegality(DecisionVector.CreateFromArray(ds, new[] { 1.0, 1.0 }));

            Assert.True(legal);
        }
コード例 #3
0
        public void TwoDim_CorrectlyIdentifiesIllegalSolution()
        {
            var evaluator = new Schwefel(2);
            var ds        = DecisionSpace.CreateForUniformDoubleArray(2, double.MinValue, double.MaxValue);
            var legal     = evaluator.GetLegality(DecisionVector.CreateFromArray(ds, new[] { -501.0, 210.0 }));

            Assert.False(legal);
            var legal2 = evaluator.GetLegality(DecisionVector.CreateFromArray(ds, new[] { -250.0, 620.0 }));

            Assert.False(legal2);
        }
コード例 #4
0
        public static void ObliczIndiwFitness(Particle ind)
        {
            switch (FunctionName.type)
            {
            case FunctionName.Type.Schwefel:
                Schwefel.setFitness(ind);
                break;

            case FunctionName.Type.DeJong1:
                DeJong1.setFitness(ind);
                break;

            case FunctionName.Type.Rastrigin:
                Rastrigin.setFitness(ind);
                break;

            case FunctionName.Type.Rosenbrock:
                Rosenbrock.setFitness(ind);
                break;
            }
        }
コード例 #5
0
        internal void ObliczPopulFitness(FunctionName.Type type)
        {
            for (int j = 0; j < population.Count; j++)
            {
                switch (type)
                {
                case FunctionName.Type.DeJong1:
                    DeJong1.setFitness(population[j]);
                    break;

                case FunctionName.Type.Schwefel:
                    Schwefel.setFitness(population[j]);
                    break;

                case FunctionName.Type.Rastrigin:
                    Rastrigin.setFitness(population[j]);
                    break;

                case FunctionName.Type.Rosenbrock:
                    Rosenbrock.setFitness(population[j]);
                    break;
                }
            }
        }