Multi-objective Tools

chocolate.mo.argsortNondominated(losses, k, first_front_only=False)[source]

Sort input in Pareto-equal groups.

Sort the first k losses into different nondomination levels using the “Fast Nondominated Sorting Approach” proposed by Deb et al., see [Deb2002]. This algorithm has a time complexity of \(O(MN^2)\), where \(M\) is the number of objectives and \(N\) the number of losses.

Parameters:
  • losses – A list of losses to select from.
  • k – The number of elements to select.
  • first_front_only – If True sort only the first front and exit.
Returns:

A list of Pareto fronts (lists) containing the losses index.

[Deb2002]Deb, Pratab, Agarwal, and Meyarivan, “A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II”, 2002.
chocolate.mo.hypervolume_indicator(front, **kargs)[source]

Indicator function using the hypervolume value.

Computes the contribution of each of the front candidates to the front hypervolume. The hypervolume indicator assumes minimization.

Parameters:
  • front – A list of Pareto equal candidate solutions.
  • ref – The origin from which to compute the hypervolume (optional). If not given, ref is set to the maximum value in each dimension + 1.
Returns:

The index of the least contributing candidate.

chocolate.mo.hypervolume(pointset, ref)[source]

Computes the hypervolume of a point set.

Parameters:
  • pointset – A list of points.
  • ref – The origin from which to comute the hypervolume. This value should be larger than all values in the point set.
Returns:

The hypervolume of this point set.