Quick Start

After installing MOProblems.jl, load the package and construct a benchmark:

using MOProblems

prob = DTLZ2()

Every constructed benchmark exposes its effective dimensions and available variable bounds:

prob.nvar
prob.nobj
prob.bounds

Create a point and evaluate the objective vector and registered analytical Jacobian:

x = rand(prob.nvar)

values = eval_f(prob, x)
J = eval_jacobian(prob, x)

The result has length(values) == prob.nobj and size(J) == (prob.nobj, prob.nvar). Each Jacobian row is the gradient of one objective.

Use the catalog to discover another benchmark by the properties required by a workflow:

names = filter_problems(
    has_bounds = true,
    has_jacobian = true,
    max_objs = 3,
)

Continue with Evaluation and Derivatives for preallocation, numeric types, and derivative behavior, or Catalog and Metadata for dimensions and advanced queries. The Problem Families pages contain the implemented mathematical formulations and benchmark-specific details.