solve_pareto_front_representation_general

desdeo_mcdm.utilities.solve_pareto_front_representation_general(objective_evaluator, n_of_objectives, variable_bounds, step=0.1, eps=1e-06, ideal=None, nadir=None, constraint_evaluator=None, solver_method='scipy_de')[source]

Computes a representation of a Pareto efficient front from a multiobjective minimizatino problem. Does so by generating an evenly spaced set of reference points (in the objective space), in the space spanned by the supplied ideal and nadir points. The generated reference points are then used to formulate achievement scalaraization problems, which when solved, yield a representation of a Pareto efficient solution. The result is guaranteed to contain only non-dominated solutions.

Parameters
  • objective_evaluator (Callable[[np.ndarray], np.ndarray]) – A vector valued function returning objective values given an array of decision variables.

  • n_of_objectives (int) – Numbr of objectives returned by objective_evaluator.

  • variable_bounds (np.ndarray) – The upper and lower bounds of the decision variables. Bound for each variable should be on the rows, with the first column containing lower bounds, and the second column upper bounds. Use np.inf to indicate no bounds.

  • step (Optional[Union[np.ndarray, float]], optional) – Etiher an float or an array of floats. If a single float is given, generates reference points with the objectives having values a step apart between the ideal and nadir points. If an array of floats is given, use the steps defined in the array for each objective’s values. Default to 0.1.

  • eps (Optional[float], optional) – An offset to be added to the nadir value to keep the nadir inside the range when generating reference points. Defaults to 1e-6.

  • ideal (Optional[np.ndarray], optional) – The ideal point of the problem being solved. Defaults to None.

  • nadir (Optional[np.ndarray], optional) – The nadir point of the problem being solved. Defaults to None.

  • constraint_evaluator (Optional[Callable[[np.ndarray], np.ndarray]], optional) – An evaluator returning values for the constraints defined for the problem. A negative value for a constraint indicates a breach of that constraint. Defaults to None.

  • solver_method (Optional[Union[ScalarMethod, str]], optional) – The method used to minimize the achievement scalarization problems arising when calculating Pareto efficient solutions. Defaults to “scipy_de”.

Raises
  • MCDMUtilityException – Mismatching sizes of the supplied ideal and

  • nadir points between the step, when step is an array. Or the type of

  • step is something else than np.ndarray of float.

Returns

A tuple containing representationns of the Pareto optimal variable values, and the corresponsing objective values.

Return type

Tuple[np.ndarray, np.ndarray]

Note

The objective evaluator should be defined such that minimization is expected in each of the objectives.