DTLZ Benchmarks¶
The DTLZ (Deb, Thiele, Laumanns, Zitzler) benchmark collection contains all functions from the DTLZ benchmark suite. Python implementation of the original C++ code is derived from the optproblems python library.
Sources:
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
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
Available Problems¶
bocode.Synthetics.DTLZ.DTLZ1bocode.Synthetics.DTLZ.DTLZ2bocode.Synthetics.DTLZ.DTLZ3bocode.Synthetics.DTLZ.DTLZ4bocode.Synthetics.DTLZ.DTLZ5bocode.Synthetics.DTLZ.DTLZ6bocode.Synthetics.DTLZ.DTLZ7
Example Usage¶
import bocode
import torch
# Retrieve available dimensions for instantiation
available_dimensions = bocode.Synthetics.DTLZ.DTLZ1.available_dimensions
# Create a DTLZ benchmark problem
problem = bocode.Synthetics.DTLZ.DTLZ1(dim=10)
# Get problem information
bounds = problem.bounds
# Evaluate at a point
x = torch.Tensor([[0.5] * problem.dim])
values, constraints = problem.evaluate(x)
print(f"First DTLZ function values at [0.5]*dim: {values[0]}")
Output:
First DTLZ function values at [0.5]*dim: tensor([0.2500, 0.2500])