trieste.acquisition.multi_objective.pareto
#
This module contains functions and classes for Pareto based multi-objective optimization.
Module Contents#
- class Pareto(observations: trieste.types.TensorType, already_non_dominated: bool = False)[source]#
A
Pareto
constructs a Pareto set. Stores a Pareto set and calculates hypervolume of the Pareto set given a specified reference point- Parameters:
observations – The observations for all objectives, with shape [N, D].
already_non_dominated – Whether the observations are already non dominated
- Raises:
ValueError (or InvalidArgumentError) – If
observations
has an invalid shape.
- hypervolume_indicator(reference: trieste.types.TensorType) trieste.types.TensorType [source]#
Calculate the hypervolume indicator based on self.front and a reference point The hypervolume indicator is the volume of the dominated region.
- Parameters:
reference – a reference point to use, with shape [D]. Defines the upper bound of the hypervolume. Should be equal or bigger than the anti-ideal point of the Pareto set. For comparing results across runs, the same reference point must be used.
- Returns:
hypervolume indicator, if reference point is less than all of the front in any dimension, the hypervolume indicator will be zero.
- Raises:
ValueError (or tf.errors.InvalidArgumentError) – If
reference
has an invalid shape.ValueError (or tf.errors.InvalidArgumentError) – If
self.front
is empty (which can happen if the concentration point is too strict so no frontier exists after the screening)
- sample_diverse_subset(sample_size: int, allow_repeats: bool = True, bounds_delta_scale_factor: float = 0.2, bounds_min_delta: float = 1e-09) tuple[trieste.types.TensorType, trieste.types.TensorType] [source]#
Sample a set of diverse points from the Pareto set using Hypervolume Sharpe-Ratio Indicator
- Parameters:
sample_size – The number of points to sample from the Pareto front
allow_repeats – Whether the sample may contain repeats
bounds_delta_scale_factor – The factor by which to grow the distance between extrema when calculating lower and upper bounds
bounds_min_delta – The minimum value of the distance between extrema
- Returns:
sample: Tensor of query points selected in the sample and sample_ids: Tensor of indices of points selected from the Pareto set
- get_reference_point(observations: trieste.types.TensorType) trieste.types.TensorType [source]#
Default reference point calculation method that calculates the reference point according to a Pareto front extracted from set of observations.
- Parameters:
observations – observations referred to calculate the reference point, with shape […, N, D]
- Returns:
a reference point to use, with shape […, D].
- Raises:
ValueError – If
observations
is empty