Global optimization bound constrained test problems (PyOPUS subsystem name: GLBC)
Implemented by Árpád Bűrmen and Jernej Olenšek.
All test functions in this module are maps from to .
Gradient is not implemented and is in some cases even impossible to implement (e.g. Quartic noisy function).
The functions can be wrapped into RandomDelay objects to introduce a random delay in function evaluation.
The Yao et. al. set and the Hedar set have some functions in common. The “Hump” function from the Hedar set is named “SixHump” here. Hedar’s version of the Rosenbrock problem is obtained by setting hedar to True.
The Yang set of test functions extends the Easom’s function to n dimensions. The Zakharov test function is extended beyond K=2. Yang’s version of problems is obtained by setting yang to True. Equality constrained function is omitted (nonlinear equality constraint). Both stochastic functions are also omitted.
The functions were taken from [yao], [hedar], and [yang].
This module is independent of PyOPUS, meaning that it can be taken as is and used as a module in some other package. It depends only on the cpi module.
[yao] | Yao X., Liu Y., Lin G.: Evolutionary programming made faster. IEEE Transactions on Evolutionary Computation, vol. 3, pp. 82-102, 1999. |
[hedar] | Hedar A.: Global optimization test problems. http://www-optima.amp.i.kyoto-u.ac.jp/member/student/hedar/Hedar_files/TestGO.htm |
[yang] | Yang X.-S.: Test Problems in Optimization. arXiv preprint at http://arxiv.org/abs/1008.0549, 2010. |
Base class for global optimization test functions
The full name of the problem is in the name member. The lower and the upper bounds are in the xl and xh member.
The position and the function value for the best known solution are given by xmin and fmin.
Objects of this class are callable. The calling convention is
object(x)
where x is the input values vector. The function value at x is returned.
Most functions are variably dimensional (n can be specified as an argument to the constructor).
Example: create an instance of the Schwefel C function with n=40 and evaluate it at the origin:
from pyopus.optimizer.glbc import SchwefelC
from numpy import zeros
sc=SchwefelC(n=40)
# Evaluate the function at the origin
f=sc(zeros(40))
Returns the common problem interface.
Initial point and gradient function are not available.
See the CPI class for more information.
A list holding references to all function classes in this module.
Quadratic function (n>=1).
See the GlobalProblem class for more information.
Schwefel 2.22 function (n>=1).
See the GlobalProblem class for more information.
Schwefel 1.2 function (n>=1).
See the GlobalProblem class for more information.
Schwefel 2.21 function (n>=1).
See the GlobalProblem class for more information.
Generalized Rosenbrock function (n>=2).
See the GlobalProblem class for more information.
Step function (n>=1).
See the GlobalProblem class for more information.
Quartic noisy function (n>=1).
See the GlobalProblem class for more information.
Schwefel 2.26 function (n>=1).
See the GlobalProblem class for more information.
Generalized Rastrigin function (n>=1).
See the GlobalProblem class for more information.
Ackley function (n>=1).
See the GlobalProblem class for more information.
Generalized Griewank function (n>=1).
See the GlobalProblem class for more information.
Generalized penalty function 1 (n>=1).
See the GlobalProblem class for more information.
Generalized penalty function 2 (n>=1).
See the GlobalProblem class for more information.
Shekel foxholes function (n=2).
See the GlobalProblem class for more information.
Kowalik function (n=4).
See the GlobalProblem class for more information.
Six-hump camel-back function (n=2).
This function is named “Hump” in Hedar’s set of test problems.
See the GlobalProblem class for more information.
Branin function (n=2).
See the GlobalProblem class for more information.
Goldstein-Price function (n=2).
See the GlobalProblem class for more information.
Hartman function (n=3 or n=6).
See the GlobalProblem class for more information.
Shekel function (n=4, m=5, 7, or 10).
See the GlobalProblem class for more information.
Beale function (n=2).
See the GlobalProblem class for more information.
Bohachevsky functions (n=2, j=1,2,3).
See the GlobalProblem class for more information.
Booth function (n=2).
See the GlobalProblem class for more information.
Colville function (n=4).
See the GlobalProblem class for more information.
Dixon and Price function (n>=2).
See the GlobalProblem class for more information.
Easom function (n=2). The generalization for n>2 was given by Yang. n>2 assumes Yang’s version is requested.
See the GlobalProblem class for more information.
Levy function (n>=2).
See the GlobalProblem class for more information.
Matyas function (n=2).
See the GlobalProblem class for more information.
Michalewicz function (n>=1).
See the GlobalProblem class for more information.
Perm function (n>=1).
See the GlobalProblem class for more information.
Perm function (n>=1).
See the GlobalProblem class for more information.
Powell function (n=4k, k>0).
See the GlobalProblem class for more information.
Power sum function (n>=1).
See the GlobalProblem class for more information.
Schwefel function (n>=1), slightly modified SchwefelD with a general global minimum valid for arbitrary n.
Yang’s version is obtained with yang set to True.
See the GlobalProblem class for more information.
Shubert function (n=2).
See the GlobalProblem class for more information.
Sphere function (n>=1). Also known as DeJong’s sphere function.
See the GlobalProblem class for more information.
Sphere function (n>=1). Also known as DeJong’s weighted sphere function.
See the GlobalProblem class for more information.
Trid function (n>=1).
See the GlobalProblem class for more information.
Zakharov function (n>=1).
See the GlobalProblem class for more information.
Sum of different powers function (n>=1).
See the GlobalProblem class for more information.
Yang2 function (n>=1). See (21) in the corresponding paper.
See the GlobalProblem class for more information.
Yang2 function (n>=1). See (21) in the corresponding paper.
See the GlobalProblem class for more information.
Yang2 function (n>=1). See (24) in the corresponding paper.
See the GlobalProblem class for more information.