moocore.igd_plus#

moocore.igd_plus(data, /, ref, *, maximise=False)[source]#

Modified IGD (IGD+).

IGD+ is a Pareto-compliant version of igd().

Parameters:
  • data (ArrayLike) – 2D matrix of numerical values, where each row gives the coordinates of a point in objective space. If the array is created from the read_datasets() function, remove the last (set) column.

  • ref (ArrayLike) – Reference point (1D vector). Must have same length as the number of column in data.

  • maximise (bool | list[bool], default: False) – Whether the objectives must be maximised instead of minimised. Either a single boolean value that applies to all objectives or a list of booleans, with one value per objective. Also accepts a 1D numpy array with value 0/1 for each objective.

Returns:

float – A single numerical value

Examples

>>> dat = np.array([[3.5, 5.5], [3.6, 4.1], [4.1, 3.2], [5.5, 1.5]])
>>> ref = np.array([[1, 6], [2, 5], [3, 4], [4, 3], [5, 2], [6, 1]])
>>> moocore.igd(dat, ref=ref)
1.0627908666722465
>>> moocore.igd_plus(dat, ref=ref)
0.9855036468106652
>>> moocore.avg_hausdorff_dist(dat, ref)
1.0627908666722465