trans_ndpt_pseudo_dist#

pybrops.core.util.trans.trans_ndpt_pseudo_dist(ndptmat, objfn_minmax, objfn_pseudoweight, **kwargs)[source]#

Transform a set of non-dominated points by calculating their distances to a vector.

Parameters:
  • ndptmat (numpy.ndarray) – A point coordinate array of shape (npt, nobj) where ‘npt’ is the number of points and ‘nobj’ is the number of objectives (dimensions). This array contains input points for calculating the distance between a point to a pseudoweight vector.

  • objfn_minmax (numpy.ndarray) – An objective function min/max sign indicator array of shape (nobj,). This array contains sign indicator variables for whather an objective is minimizing (-1.0) or maximizing (1.0).

  • objfn_pseudopreference (numpy.ndarray) – An objective function pseudoweight array of shape (nobj,)

  • kwargs (dict) – Additional keyword arguments. Not used by this function.

Returns:

out – An array of shape (npt,) containing the distance between each point to the vector.

Return type:

numpy.ndarray

Notes

How the transformation is done:

  1. Apply weights to each objective.

  2. Scale points for each objective to the range [0,1]

  3. For each scaled point, calculate a plane that is both perpendicular to the input vector and contains the point. Determine the point on the plane where the vector intersects the plane.

  4. Calculate the distance (norm) between the two points.