gemseo_pymoo / algos

Show inherited members

opt_result_mo module

Multi-objective optimization result.

class gemseo_pymoo.algos.opt_result_mo.MultiObjectiveOptimizationResult(x_0=None, x_0_as_dict=<factory>, x_opt=None, x_opt_as_dict=<factory>, f_opt=None, objective_name='', status=None, optimizer_name=None, message=None, n_obj_call=None, n_grad_call=None, n_constr_call=None, is_feasible=False, optimum_index=None, constraint_values=None, constraints_grad=None, pareto=None)[source]

Bases: OptimizationResult

The result of a multi-objective optimization.

Parameters:
  • x_0 (ndarray | None) –

  • x_0_as_dict (dict[str, ndarray]) –

    By default it is set to <factory>.

  • x_opt (ndarray | None) –

  • x_opt_as_dict (dict[str, ndarray]) –

    By default it is set to <factory>.

  • f_opt (ndarray | None) –

  • objective_name (str) –

    By default it is set to “”.

  • status (int | None) –

  • optimizer_name (str | None) –

  • message (str | None) –

  • n_obj_call (int | None) –

  • n_grad_call (int | None) –

  • n_constr_call (int | None) –

  • is_feasible (bool) –

    By default it is set to False.

  • optimum_index (int | None) –

  • constraint_values (Mapping[str, ndarray] | None) –

  • constraints_grad (Mapping[str, ndarray] | None) –

  • pareto (Pareto | None) –

get_data_dict_repr()

Convert the multi-objective optimization result to a dictionary.

The keys are the names of the optimization result fields, except for the constraint values, gradients and the pareto. The key "constr:y" maps to result.constraint_values["y"], "constr_grad:y" maps to result.constraints_grad["y"] and "pareto:y" maps to result.pareto.y.

Returns:

A dictionary representation of the optimization result.

Return type:

dict[str, Union[str, int, bool, numpy.ndarray]]

to_dict()[source]

Convert the multi-objective optimization result to a dictionary.

The keys are the names of the optimization result fields, except for the constraint values, gradients and the pareto. The key "constr:y" maps to result.constraint_values["y"], "constr_grad:y" maps to result.constraints_grad["y"] and "pareto:y" maps to result.pareto.y.

Returns:

A dictionary representation of the optimization result.

Return type:

dict[str, Union[str, int, bool, numpy.ndarray]]

pareto: Pareto | None = None

The pareto efficient solutions.

x_0_as_dict: dict[str, ndarray]

The design variable names bound to the initial design values.

x_opt_as_dict: dict[str, ndarray]

The design variable names bound to the optimal design values.

class gemseo_pymoo.algos.opt_result_mo.Pareto(problem)[source]

Bases: object

Hold data from multi-objective optimization problems.

Initialize an object containing pareto related data.

Parameters:

problem (OptimizationProblem) – The optimization problem.

static get_lowest_norm(pareto_front, pareto_set, reference=None, order=2)[source]

Get Pareto points with the lowest norm relative to a reference point.

Parameters:
  • pareto_front (ndarray) – The objectives’ value of all non-dominated points.

  • pareto_set (ndarray) – The design variables’ value of all non-dominated points.

  • reference (ndarray | None) – The reference point. If None, the origin (0, 0, …, 0) will be used.

  • order (int) –

    The order of the norm.

    By default it is set to 2.

Returns:

The objectives’ values of the point(s) with the lowest norm. The design variables’ values of the point(s) with the lowest norm. The lowest norm value.

Raises:

ValueError – If the reference point does not have the appropriate dimension.

Return type:

tuple[ndarray, ndarray, float]

static get_pareto(gemseo_problem)[source]

Get Pareto Front and Pareto Set from the database.

Parameters:

gemseo_problem (OptimizationProblem) – The optimization problem containing the results from an optimization run.

Returns:

The objectives’ value of all non-dominated points and the design variables’ value of all non-dominated points.

None if a single-objective OptimizationProblem is provided.

Raises:

RuntimeError – If the optimization problem is single-objective.

Return type:

tuple[None, None] | tuple[ndarray, ndarray]

static get_pareto_anchor(pareto_front, pareto_set)[source]

Get Pareto’s anchor points.

Parameters:
  • pareto_front (ndarray) – The objectives’ value of all non-dominated points.

  • pareto_set (ndarray) – The design variables’ value of all non-dominated points.

Returns:

The objectives’ values of all anchor points. The design variables’ values of all anchor points.

Return type:

tuple[numpy.ndarray, numpy.ndarray]

static get_pretty_table_from_df(df)[source]

Build a tabular view of the Pareto problem.

Parameters:

df (DataFrame) – The Pareto data.

Returns:

A PrettyTable

representing the dataframe.

Return type:

PrettyTable

property anchor_front: ndarray

The values of the objectives of all anchor points.

At those points, each objective is minimized one at a time.

property anchor_set: ndarray

The values of the design variables values of all anchor points.

At those points, each objective is minimized one at a time.

property anti_utopia: ndarray

The point where every objective reaches its maximum simultaneously.

property front: ndarray

The values of the objectives of all pareto efficient solutions.

property min_norm: float

The shortest distance (2-norm) from the pareto front to the utopia point.

property min_norm_f: ndarray

The objectives value of the closest point(s) to the utopia.

property min_norm_x: ndarray

The design variables value of the closest point(s) to the utopia.

property problem: OptimizationProblem

The optimization problem whose Pareto data is represented.

property set: ndarray

The values of the design variables of all pareto efficient solutions.

property utopia: ndarray

The ideal point where every objective reaches its minimum simultaneously.