paref.pareto_reflections.restrict_by_point#

Classes

RestrictByPoint(nadir, restricting_point)

Restrict the Pareto points in the target space by demanding each component to be lower than some value

class paref.pareto_reflections.restrict_by_point.RestrictByPoint(nadir: ndarray, restricting_point: ndarray)[source]#

Bases: ParetoReflection

Restrict the Pareto points in the target space by demanding each component to be lower than some value

When to use#

This Pareto reflection should be used if Pareto points are desired which dominate a certain point, i.e. when every component of a found Pareto points \(x\) must satisfy \(x_i\le r_i\) for some \(r_i \in \mathbb{R}\).

What it does#

The Pareto points of this map are all the Pareto points which dominate that point.

Mathematical formula#

Denote by d the point which should be dominated and n some nadir (i.e. n dominated by all points). Then,

\[p(x) = x\]

if x dominates or is equal to d and

\[p(x) = n\]

else.

Examples

Define the nadir and the point which should be dominated

>>> import numpy as np
>>> nadir, restricting_point = np.array([3,7]),np.zeros(2)

Initialize the Restricting

>>> pareto_reflection = RestrictByPoint(nadir=nadir,restricting_point=restricting_point)

Calling it to (1,1), i.e. calculating

\[p(1,1)=(3,7)\]

yields:

>>> pareto_reflection(np.ones(2))
array([3, 7])

Specify the nadir and the to be dominated point

param nadir:

param np.ndarray:

nadir (dominated by all points) stored in 1 dimensional array of length n

param restricting_point:

param np.ndarray:

point to be dominated stored in 1 dimensional array of length n

__call__(x: ndarray) ndarray[source]#

Calculate the RestrictByPoint function

Parameters:
  • x

  • np.ndarray – input vector stored in 1 dimensional array of length n

Returns:

value of the restricting function

Return type:

float

property dimension_codomain: int#
property dimension_domain: int#