dtlz — DTLZ Problem Collection

This module contains the DTLZ problem collection.

Note that this collection is defined differently in two papers. The technical report [Deb2001] contains nine problems, while [Deb2002] contains only seven. Additionally, the numbering differs from the fifth problem on. Here, the first seven problems from [Deb2001] are implemented, just as in the PISA library.

Class name Name in [Deb2001] Name in [Deb2002]
optproblems.dtlz.DTLZ1 DTLZ1 DTLZ1
optproblems.dtlz.DTLZ2 DTLZ2 DTLZ2
optproblems.dtlz.DTLZ3 DTLZ3 DTLZ3
optproblems.dtlz.DTLZ4 DTLZ4 DTLZ4
optproblems.dtlz.DTLZ5 DTLZ5 missing
optproblems.dtlz.DTLZ6 DTLZ6 DTLZ5
optproblems.dtlz.DTLZ7 DTLZ7 DTLZ6
missing DTLZ8 DTLZ7
missing DTLZ9 missing

References

[Deb2001](1, 2, 3) Deb, K.; Thiele, L.; Laumanns, M.; Zitzler, E. (2001). Scalable Test Problems for Evolutionary Multi-Objective Optimization, Technical Report, Computer Engineering and Networks Laboratory (TIK), Swiss Federal Institute of Technology (ETH). https://dx.doi.org/10.3929/ethz-a-004284199
[Deb2002](1, 2) Deb, K.; Thiele, L.; Laumanns, M.; Zitzler, E. (2002). Scalable multi-objective optimization test problems, Proceedings of the IEEE Congress on Evolutionary Computation, pp. 825-830
class optproblems.dtlz.DTLZ(num_objectives, num_variables, **kwargs)

The test problem collection DTLZ.

This class inherits from list and fills itself with seven DTLZ problems with the chosen configuration. The arguments to the constructor are passed through to the problem classes.

__init__(num_objectives, num_variables, **kwargs)

Constructor.

Parameters:
  • num_objectives (int) – The number of objectives for the optimization problems.
  • num_variables (int) – The number of decision variables of the problems.
  • kwargs – Arbitrary keyword arguments, passed through to the constructors of the single DTLZ problems.
class optproblems.dtlz.DTLZBaseProblem(objective_function, num_objectives, num_variables, phenome_preprocessor=None, **kwargs)

The base class for DTLZ problems.

class optproblems.dtlz.DTLZ1(num_objectives, num_variables, **kwargs)

The DTLZ1 problem.

g(phenome)

The g function of DTLZ1.

class optproblems.dtlz.DTLZ2(num_objectives, num_variables, **kwargs)

DTLZ2 is a special case of DTLZ4 with alpha = 1.

class optproblems.dtlz.DTLZ3(num_objectives, num_variables, **kwargs)

The DTLZ3 problem.

g(phenome)

The g function of DTLZ3.

class optproblems.dtlz.DTLZ4(num_objectives, num_variables, **kwargs)

The DTLZ4 problem.

g(phenome)

The g function of DTLZ4.

class optproblems.dtlz.DTLZ5(num_objectives, num_variables, **kwargs)

The DTLZ5 problem.

compute_theta(phenome, g_value)

Transform decision variables.

g(phenome)

The g function of DTLZ5.

class optproblems.dtlz.DTLZ6(num_objectives, num_variables, **kwargs)

DTLZ6 only differs from DTLZ5 in the g function.

g(phenome)

The g function of DTLZ6.

class optproblems.dtlz.DTLZ7(num_objectives, num_variables, **kwargs)

The DTLZ7 problem.

g(phenome)

The g function of DTLZ7.

Components

class optproblems.dtlz.DTLZ234_f(num_objectives, g, alpha)

The objective function of DTLZ2, 3, and 4.

__call__(phenome)

Evaluate phenome.