desdeo_mcdm.approximation.PAINT

Module Contents

Classes

PAINT

PAINT method implementation. PAINT: Pareto front interpolation for nonlinear

Attributes

arr

exception desdeo_mcdm.approximation.PAINT.PAINTException[source]

Bases: Exception

Raised when an exception related to PAINT raises.

class desdeo_mcdm.approximation.PAINT.PAINT(po_outcomes: desdeo_tools.utilities.polytopes.np.ndarray)[source]

PAINT method implementation. PAINT: Pareto front interpolation for nonlinear multiobjective optimization. DOI 10.1007/s10589-011-9441-z

Parameters:

po_outcomes (np.ndarray) – Initial set of Pareto optimal outcomes which will be used to construct the approximation of the Pareto front.

Raises:

PAINTException – The count of supplied pareto optimal outcomes is not higher than the dimension of the objective spaces. This means that the Delaunay triangulation cannot be formed and therefore neither can the PAINT approximation.

sort_wrt_entries(arr: desdeo_tools.utilities.polytopes.np.ndarray) desdeo_tools.utilities.polytopes.np.ndarray[source]

Sort an array with regards to number of unique entries in a row in increasing order and if those match then by the smallest value in the row.

Parameters:

arr (np.ndarray) – Array to be sorted.

Returns

np.ndarray: The given array but sorted.

perturbate(epsilon: float | None = 1e-06)[source]

Perturbate pareto optimal outcomes by maximum of epsilon. This is only needed if the initial Pareto optimal outcomes are not in general position

Parameters:

epsilon (Optional[float], optional) – The maximum value each point can change to either direction

approximate(po_outcomes: desdeo_tools.utilities.polytopes.np.ndarray | None = None, epsilon: float | None = 1e-06, method: str | None = 'simplex', print_info: bool | None = False) desdeo_tools.utilities.polytopes.np.ndarray[source]

PAINT: Pareto front interpolation for nonlinear multiobjective optimization. Constructs a D-maximal inherently nondominated Pareto front approximation.

Parameters:
  • po_outcomes (Optional[np.ndarray], optional) – A set of pareto optimal outcomes

  • epsilon (Optional[float], optional) – The certainty value for the polytope_dominates function.

  • method (Optional[str], optional) – Algorithm used to solve the optimization problems. See scipy.optimize.linprog for further details. Defaults to ‘simplex’ which is used in the article. Other methods are faster and more accurate but give different results compared to the article.

  • print_info (Optional[bool], optional) – Should the method print information such as information about percentages of deleted polytopes

Returns:

An array of indices corresponding to the po_outcomes which represent

the polytopes that form the approximation. If a polytope has fewer outcomes than there are columns in the given array the first value of the row representing the polytope is repeated until the lengths match.

Return type:

np.ndarray

Raises:

PAINTException – Failed to construct the Delaunay Triangulation.

desdeo_mcdm.approximation.PAINT.arr[source]