cec2007
— CEC 2007 Problems¶
This set of test problems was compiled for the Special Session & Competition on Performance Assessment of Multi-Objective Optimization Algorithms at the Congress on Evolutionary Computation (CEC), Singapore, 25-28 September 2007. The mathematical definitions are given in [Huang2007]. Additionally, a C implementation was provided for the participants. When the problems were later reimplemented in Python, several bugs surfaced in the C implementation. The bugs were originally found in 2009 and documented in appendix B.2.4 of [Wessing2009], but the code was not published back then. In this implementation, it is possible to switch between the original/buggy and the fixed behavior.
References
[Huang2007] | (1, 2) V. L. Huang, A. K. Qin, K. Deb, E. Zitzler, P. N. Suganthan, J. J. Liang, M. Preuss and S. Huband (2007). Problem Definitions for Performance Assessment of Multi-objective Optimization Algorithms. Special Session on Constrained Real-Parameter Optimization, Technical Report, Nanyang Technological University, Singapore, 2007. http://web.mysites.ntu.edu.sg/epnsugan/PublicSite/Shared%20Documents/CEC-2007/CEC-07-TR-13-Feb.pdf |
[Wessing2009] | Simon Wessing. Towards Optimal Parameterizations of the S-Metric Selection Evolutionary Multi-Objective Algorithm. Diploma thesis, Algorithm Engineering Report TR09-2-006, Technische Universitaet Dortmund, 2009. https://ls11-www.cs.uni-dortmund.de/_media/techreports/tr09-06.pdf |
-
class
optproblems.cec2007.
CEC2007
(is_orig_behavior=False, **kwargs)¶ The CEC 2007 problem collection.
The collection was defined in [Huang2007]. This class inherits from
list
and fills itself with the following problems: OKA2, SYMPART, S_ZDT1, S_ZDT2, S_ZDT4, R_ZDT4, S_ZDT6, 3-D S_DTLZ2, 5-D S_DTLZ2, 3-D R_DTLZ2, 5-D R_DTLZ2, 3-D S_DTLZ3, 5-D S_DTLZ3, 3-D WFG1, 5-D WFG1, 3-D WFG8, 5-D WFG8, 3-D WFG9, 5-D WFG9.-
__init__
(is_orig_behavior=False, **kwargs)¶ Constructor.
Parameters: - is_orig_behavior (bool, optional) – A flag indicating if the behavior of the C implementation should be used. Default is False.
- kwargs – Arbitrary keyword arguments, passed through to the constructors of the single problems.
-
-
class
optproblems.cec2007.
ExtendedProblem
(objective_functions, num_objectives=None, max_evaluations=inf, worker_pool=None, mp_module=None, phenome_preprocessor=None, name=None)¶ Base class for all extended ZDT and DTLZ problems.
-
static
p_sum
(penalties, used_indices)¶ Calculate the penalty value for the used variables.
-
static
-
class
optproblems.cec2007.
ShiftedProblem
(objective_functions, num_objectives=None, max_evaluations=inf, worker_pool=None, mp_module=None, phenome_preprocessor=None, name=None)¶ Base class for all shifted ZDT and DTLZ problems.
Inherits from
ExtendedProblem
.-
calc_penalties
(z)¶ Calculate the penalties from the z values.
-
calc_z
(phenome)¶ Calculate the shifted values from the candidate solution.
-
calc_z_prime
(z)¶ Calculate the z’ values from the z values.
-
cut
(num_variables)¶ Truncate the problem’s various vectors to the needed dimension.
-
-
class
optproblems.cec2007.
RotatedProblem
(objective_functions, num_objectives=None, max_evaluations=inf, worker_pool=None, mp_module=None, phenome_preprocessor=None, name=None)¶ Base class for all rotated ZDT and DTLZ problems.
Inherits from
ExtendedProblem
.-
calc_z
(phenome)¶ Calculate the rotated values from the candidate solution.
-
-
class
optproblems.cec2007.
OKA2
(is_orig_behavior=False, phenome_preprocessor=None, **kwargs)¶ The OKA2 problem.
This problem was defined in [Okabe2004].
References
[Okabe2004] Tatsuya Okabe, Yaochu Jin, Markus Olhofer, Bernhard Sendhoff (2004). On Test Functions for Evolutionary Multi-objective Optimization. Parallel Problem Solving from Nature - PPSN VIII, LNCS Vol. 3242, pp 792-802, Springer. https://dx.doi.org/10.1007/978-3-540-30217-9_80 -
__init__
(is_orig_behavior=False, phenome_preprocessor=None, **kwargs)¶ Constructor.
Note that the C implementation of CEC 2007 contained a bug, using abs where fabs should be used.
Parameters: - is_orig_behavior (bool, optional) – A flag indicating if the behavior of the C implementation should be used.
- phenome_preprocessor (callable, optional) – A callable potentially applying transformations or checks to the phenome.
- kwargs – Arbitrary keyword arguments, passed through to the constructor of the base class.
-
-
class
optproblems.cec2007.
SYMPART
(num_variables=30, phenome_preprocessor=None, **kwargs)¶ The CEC 2007 SYMPART variant.
This SYMPART variant was modified to work on 30 decision variables. The original problem in [Rudolph2007] only had a two dimensional search space. It is unclear how this modified problem behaves compared to the original one with two decision variables.
References
[Rudolph2007] Guenter Rudolph, Boris Naujoks, Mike Preuss (2007). Capabilities of EMOA to Detect and Preserve Equivalent Pareto Subsets. In: Evolutionary Multi-Criterion Optimization, LNCS Vol. 4403, pp 36-50, Springer. https://dx.doi.org/10.17877/DE290R-590 -
get_optimal_solutions
(max_number)¶ Generate optimal solutions.
This method does not exploit any of the problem’s symmetry properties. The Pareto-set was only discovered empirically.
-
static
rotate
(phenome, angle_radians)¶ Rotate the candidate solution.
-
-
class
optproblems.cec2007.
S_ZDT1
(num_variables, is_orig_behavior=False, **kwargs)¶ A shifted ZDT1 problem.
-
class
optproblems.cec2007.
S_ZDT2
(num_variables, is_orig_behavior=False, **kwargs)¶ A shifted ZDT2 problem.
-
class
optproblems.cec2007.
S_ZDT4
(num_variables, is_orig_behavior=False, **kwargs)¶ A shifted ZDT4 problem.
-
calc_penalties
(z)¶ Calculate the penalties from the z values.
-
calc_z_prime
(z)¶ Calculate the z’ values from the z values.
-
-
class
optproblems.cec2007.
R_ZDT4
(num_variables, is_orig_behavior=False, phenome_preprocessor=None, **kwargs)¶ A rotated ZDT4 problem.
-
calc_penalties
(z)¶ Calculate the penalties from the z values.
-
calc_z_prime
(z)¶ Calculate the z’ values from the z values.
-
-
class
optproblems.cec2007.
S_ZDT6
(num_variables, is_orig_behavior=False, **kwargs)¶ A shifted ZDT6 problem.
-
class
optproblems.cec2007.
S_DTLZ2
(num_objectives, num_variables, **kwargs)¶ A shifted DTLZ2 problem.
-
class
optproblems.cec2007.
R_DTLZ2
(num_objectives, num_variables, is_orig_behavior=False, phenome_preprocessor=None, **kwargs)¶ A rotated DTLZ2 problem.
Note that this problem, as it was used in the CEC 2007 contest, was based on DTLZ3 and not DTLZ2. Thus, if you set is_orig_behavior to True, it uses DTLZ3, else DTLZ2.
-
calc_penalties
(z)¶ Calculate the penalties from the z values.
-
calc_z_prime
(z)¶ Calculate the z’ values from the z values.
-
-
class
optproblems.cec2007.
S_DTLZ3
(num_objectives, num_variables, **kwargs)¶ A shifted DTLZ3 problem.