desdeo_mcdm.approximation.PAINT
Module Contents
Classes
PAINT method implementation. PAINT: Pareto front interpolation for nonlinear |
Attributes
- 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.