trieste.acquisition.multi_objective.partition#

This module contains functions of different methods for partitioning the dominated/non-dominated region in multi-objective optimization problems.

Module Contents#

prepare_default_non_dominated_partition_bounds(reference: trieste.types.TensorType, observations: trieste.types.TensorType | None = None, anti_reference: trieste.types.TensorType | None = None) tuple[trieste.types.TensorType, trieste.types.TensorType][source]#

Prepare the default non-dominated partition boundary for acquisition function usage. This functionality will trigger different partition according to objective numbers, if objective number is 2, an ExactPartition2dNonDominated will be used. If the objective number is larger than 2, a DividedAndConquerNonDominated will be used.

Parameters:
  • observations – The observations for all objectives, with shape [N, D], if not specified or is an empty Tensor, a single non-dominated partition bounds constructed by reference and anti_reference point will be returned.

  • anti_reference – a worst point to use with shape [D]. Defines the lower bound of the hypercell. If not specified, will use a default value: -[1e10] * D.

  • reference – a reference point to use, with shape [D]. Defines the upper bound of the hypervolume. Should be equal to or bigger than the anti-ideal point of the Pareto set. For comparing results across runs, the same reference point must be used.

Returns:

lower, upper bounds of the partitioned cell, each with shape [N, D]

Raises:
  • ValueError (or tf.errors.InvalidArgumentError) – If reference has an invalid shape.

  • ValueError (or tf.errors.InvalidArgumentError) – If anti_reference has an invalid shape.

class _BoundIndexPartition[source]#

A collection of partition strategies that are based on storing the index of pareto fronts & other auxiliary points

partition_bounds(anti_reference: trieste.types.TensorType, reference: trieste.types.TensorType) tuple[trieste.types.TensorType, trieste.types.TensorType][source]#

Get the partitioned hypercell’s lower and upper bounds.

Parameters:
  • anti_reference – a worst point to use with shape [D]. Defines the lower bound of the hypercell

  • reference – a reference point to use, with shape [D]. Defines the upper bound of the hypervolume. Should be equal to or bigger than the anti-ideal point of the Pareto set. For comparing results across runs, the same reference point must be used.

Returns:

lower, upper bounds of the partitioned cell, each with shape [N, D]

Raises:

ValueError (or tf.errors.InvalidArgumentError) – If reference has an invalid shape.

class ExactPartition2dNonDominated(front: trieste.types.TensorType)[source]#

Bases: _BoundIndexPartition

Exact partition of non-dominated space, used as a default option when the objective number equals 2.

Parameters:

front – non-dominated pareto front.

class DividedAndConquerNonDominated(front: trieste.types.TensorType, threshold: trieste.types.TensorType | float = 0)[source]#

Bases: _BoundIndexPartition

branch and bound procedure algorithm. a divide and conquer method introduced in [CDD12].

Parameters:
  • front – non-dominated pareto front.

  • threshold – a threshold used to screen out cells in partition : when its volume is below this threshold, its rejected directly in order to be more computationally efficient, if setting above 0, this partition strategy tends to return an approximated partition.