trieste.objectives.multi_objectives#

This module contains synthetic multi-objective functions, useful for experimentation.

Module Contents#

class GenParetoOptimalPoints[source]#

Bases: typing_extensions.Protocol

A Protocol representing a function that generates Pareto optimal points.

__call__(n: int, seed: int | None = None) trieste.types.TensorType[source]#

Generate n Pareto optimal points.

Parameters:
  • n – The number of pareto optimal points to be generated.

  • seed – An integer used to create a random seed for distributions that used to generate pareto optimal points.

Returns:

The Pareto optimal points

class MultiObjectiveTestProblem[source]#

Bases: trieste.objectives.single_objectives.ObjectiveTestProblem[trieste.space.SearchSpaceType]

Convenience container class for synthetic multi-objective test functions, containing a generator for the pareto optimal points, which can be used as a reference of performance measure of certain multi-objective optimization algorithms.

gen_pareto_optimal_points: GenParetoOptimalPoints[source]#

Function to generate Pareto optimal points, given the number of points and an optional random number seed.

vlmop2(x: trieste.types.TensorType, d: int) trieste.types.TensorType[source]#

The VLMOP2 synthetic function.

Parameters:
  • x – The points at which to evaluate the function, with shape […, d].

  • d – The dimensionality of the synthetic function.

Returns:

The function values at x, with shape […, 2].

Raises:

ValueError (or InvalidArgumentError) – If x has an invalid shape.

VLMOP2(input_dim: int) MultiObjectiveTestProblem[trieste.space.Box][source]#

The VLMOP2 problem, typically evaluated over \([-2, 2]^d\). The idea pareto fronts lies on -1/sqrt(d) - 1/sqrt(d) and x1=…=xdim.

See [VVL99] and [FF95] (the latter for discussion of pareto front property) for details.

Parameters:

input_dim – The input dimensionality of the synthetic function.

Returns:

The problem specification.

dtlz_mkd(input_dim: int, num_objective: int) tuple[int, int, int][source]#

Return m/k/d values for dtlz synthetic functions.

dtlz1(x: trieste.types.TensorType, m: int, k: int, d: int) trieste.types.TensorType[source]#

The DTLZ1 synthetic function.

Parameters:
  • x – The points at which to evaluate the function, with shape […, d].

  • m – The objective numbers.

  • k – The input dimensionality for g.

  • d – The dimensionality of the synthetic function.

Returns:

The function values at x, with shape […, m].

Raises:

ValueError (or InvalidArgumentError) – If x has an invalid shape.

DTLZ1(input_dim: int, num_objective: int) MultiObjectiveTestProblem[trieste.space.Box][source]#

The DTLZ1 problem, the idea pareto fronts lie on a linear hyper-plane. See [DTLZ02] for details.

Parameters:
  • input_dim – The input dimensionality of the synthetic function.

  • num_objective – The number of objectives.

Returns:

The problem specification.

dtlz2(x: trieste.types.TensorType, m: int, d: int) trieste.types.TensorType[source]#

The DTLZ2 synthetic function.

Parameters:
  • x – The points at which to evaluate the function, with shape […, d].

  • m – The objective numbers.

  • d – The dimensionality of the synthetic function.

Returns:

The function values at x, with shape […, m].

Raises:

ValueError (or InvalidArgumentError) – If x has an invalid shape.

DTLZ2(input_dim: int, num_objective: int) MultiObjectiveTestProblem[trieste.space.Box][source]#

The DTLZ2 problem, the idea pareto fronts lie on (part of) a unit hyper sphere. See [DTLZ02] for details.

Parameters:
  • input_dim – The input dimensionality of the synthetic function.

  • num_objective – The number of objectives.

Returns:

The problem specification.