Exemplo n.º 1
0
        /// <summary>
        /// Construct the object.
        /// </summary>
        /// <param name="dimensionality">Dimensionality of the problem.</param>
        /// <param name="lowerBound">Lower boundary for entire search-space.</param>
        /// <param name="upperBound">Upper boundary for entire search-space.</param>
        /// <param name="lowerInit">Lower boundary for initialization.</param>
        /// <param name="upperInit">Upper boundary for initialization.</param>
        /// <param name="displaceValue">Displace optimum by this amount.</param>
        /// <param name="displaceOptimum">Use optimum displacement?</param>
        /// <param name="runCondition">
        /// Determines for how long to continue optimization.
        /// </param>
        public Benchmark(
            int dimensionality,
            double lowerBound,
            double upperBound,
            double lowerInit,
            double upperInit,
            double displaceValue,
            bool displaceOptimum,
            IRunCondition runCondition)
            : base(runCondition)
        {
            _dimensionality = dimensionality;
            DisplaceOptimum = displaceOptimum;
            DisplaceValue = displaceValue;

            _lowerBound = new double[Dimensionality];
            _upperBound = new double[Dimensionality];

            _lowerInit = new double[Dimensionality];
            _upperInit = new double[Dimensionality];

            for (int i = 0; i < Dimensionality; i++)
            {
                _lowerBound[i] = lowerBound;
                _upperBound[i] = upperBound;

                _lowerInit[i] = lowerInit;
                _upperInit[i] = upperInit;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create a new instance of a benchmark problem.
        /// </summary>
        /// <param name="id">Benchmark problem ID.</param>
        /// <param name="dimensionality">Dimensionality of problem.</param>
        /// <param name="displaceOptimum">Displace optimum?</param>
        /// <returns></returns>
        public static Benchmark CreateInstance(this ID id, int dimensionality, bool displaceOptimum, IRunCondition runCondition)
        {
            Benchmark benchmark;

            switch (id)
            {
                case ID.Ackley:
                    benchmark = new Ackley(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Griewank:
                    benchmark = new Griewank(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Penalized1:
                    benchmark = new Penalized1(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Penalized2:
                    benchmark = new Penalized2(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.QuarticNoise:
                    benchmark = new QuarticNoise(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Rastrigin:
                    benchmark = new Rastrigin(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Rosenbrock:
                    benchmark = new Rosenbrock(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Schwefel12:
                    benchmark = new Schwefel12(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Schwefel221:
                    benchmark = new Schwefel221(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Schwefel222:
                    benchmark = new Schwefel222(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Sphere:
                    benchmark = new Sphere(dimensionality, displaceOptimum, runCondition);
                    break;

                case ID.Step:
                    benchmark = new Step(dimensionality, displaceOptimum, runCondition);
                    break;

                default:
                    throw new ArgumentException();
            }

            return benchmark;
        }
Exemplo n.º 3
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Schwefel221(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -100, 100, 50, 100, -25, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 4
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Rastrigin(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -5.12, 5.12, 2.56, 5.12, 1.28, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 5
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Step(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -100, 100, 50, 100, 25, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 6
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="problem">Problem to optimize.</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Optimizer(Problem problem, IRunCondition runCondition)
     : base(runCondition)
 {
     Problem = problem;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Ackley(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -30, 30, 15, 30, -7.5, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 8
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 /// <remarks>
 /// Optimum displacement disabled for this problem because
 /// of the penalty function.
 /// </remarks>
 public Penalized2(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -50, 50, -5, 50, 0, false, runCondition)
 {
 }
Exemplo n.º 9
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Rosenbrock(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -100, 100, 15, 30, 25, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 10
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public QuarticNoise(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -1.28, 1.28, 0.64, 1.28, -0.32, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 11
0
 /// <summary>
 /// Construct the object.
 /// </summary>
 /// <param name="dimensionality">Dimensionality of the problem (e.g. 20)</param>
 /// <param name="displaceOptimum">Displace optimum?</param>
 public Griewank(int dimensionality, bool displaceOptimum, IRunCondition runCondition)
     : base(dimensionality, -600, 600, 300, 600, -150, displaceOptimum, runCondition)
 {
 }
Exemplo n.º 12
0
 /// <summary>
 /// Create the object.
 /// </summary>
 /// <param name="runCondition">
 /// Determines for how long to continue optimization.
 /// </param>
 public Problem(IRunCondition runCondition)
 {
     RunCondition = runCondition;
 }