Example #1
0
 protected AbstractFitnessFunction(FunctionParameters functionParams)
 {
     Dimension    = functionParams.Dimension;
     Coefficients = new double[Dimension];
     functionParams.Coefficients.CopyTo(Coefficients, 0);
     _optimization    = PsoServiceLocator.Instance.GetService <IOptimization <double[]> >();
     EvaluationsCount = 0;
 }
Example #2
0
        public static IFitnessFunction <double[], double[]> GetFitnessFunction(FunctionParameters parameters)
        {
            if (functionCache.ContainsKey(parameters.FitnessFunctionType))
            {
                return(functionCache[parameters.FitnessFunctionType]);
            }
            if (parameters.FitnessFunctionType.Contains("bbob"))
            {
                var     functionId = parameters.FitnessFunctionType;
                Problem problem;
                /* Iterate over all problems in the suite */
                restartBbob(parameters.Dimension);
                while ((problem = benchmark.getNextProblem()) != null)
                {
                    if (problem.Id != functionId)
                    {
                        continue;
                    }
                    var upper  = problem.getLargestValuesOfInterest();
                    var bounds =
                        problem.getSmallestValuesOfInterest()
                        .Select((x, i) => new DimensionBound(x, upper[i]))
                        .ToArray();
                    parameters.SearchSpace = bounds;
                    var function = new FitnessFunction(problem.evaluateFunction);
                    return(function);
                }
            }
            switch (parameters.FitnessFunctionType)
            {
            case "quadratic":
                return(new QuadraticFunction(parameters));

            case "rastrigin":
                return(new RastriginFunction(parameters));

            case "rosenbrock":
                return(new RosenbrockFunction(parameters));

            default:
                throw new ArgumentException("Unknown function type.");
            }
        }
Example #3
0
 public RastriginFunction(FunctionParameters functionParams)
     : base(functionParams)
 {
 }
Example #4
0
 public QuadraticFunction(FunctionParameters functionParams)
     : base(functionParams)
 {
 }
 public RosenbrockFunction(FunctionParameters functionParams)
     : base(functionParams)
 {
 }