syne_tune.optimizer.schedulers.multiobjective.utils module

syne_tune.optimizer.schedulers.multiobjective.utils.default_reference_point(results_array)[source]
Return type:

ndarray

syne_tune.optimizer.schedulers.multiobjective.utils.hypervolume(results_array, reference_point=None)[source]

Compute the hypervolume of all results based on reference points

Parameters:
  • results_array (ndarray) – Array with experiment results ordered by time with shape (npoints, ndimensions).

  • reference_point (Optional[ndarray]) – Reference points for hypervolume calculations. If None, the maximum values of each dimension of results_array is used.

Return type:

float

:return Hypervolume indicator

syne_tune.optimizer.schedulers.multiobjective.utils.linear_interpolate(hv_indicator, indices)[source]
syne_tune.optimizer.schedulers.multiobjective.utils.hypervolume_cumulative(results_array, reference_point=None, increment=1)[source]

Compute the cumulative hypervolume of all results based on reference points Returns an array with hypervolumes given by an increasing range of points. return_array[idx] = hypervolume(results_array[0 : (idx + 1)]).

The current implementation is very slow, since the hypervolume index is not computed incrementally. A solution for now is to use increment > 1, in which case the HV index is only computed every increment entry, and linearly interpolated in between.

Parameters:
  • results_array (ndarray) – Array with experiment results ordered by time with shape (npoints, ndimensions).

  • reference_point (Optional[ndarray]) – Reference points for hypervolume calculations. If None, the maximum values of each dimension of results_array is used.

Return type:

ndarray

Returns:

Cumulative hypervolume array, shape (npoints,)