ScalarMOProblem

class desdeo_problem.problem.ScalarMOProblem(objectives, variables, constraints, nadir=None, ideal=None)[source]

Bases: ProblemBase

A multiobjective optimization problem.

To be depreciated.

A multiobjective optimization problem with user defined objective functions, constraints and variables. The objectives each return a single scalar.

Parameters:
  • objectives (List[ScalarObjective]) – A list containing the objectives of the problem.

  • variables (List[Variable]) – A list containing the variables of the problem.

  • constraints (List[ScalarConstraint]) – A list containing the constraints of the problem. If no constraints exist, None may be supllied as the value.

  • nadir (Optional[np.ndarray]) – The nadir point of the problem.

  • ideal (Optional[np.ndarray]) – The ideal point of the problem.

__n_of_objectives

The number of objectives in the problem.

Type:

int

__n_of_variables

The number of variables in the problem.

Type:

int

__n_of_constraints

The number of constraints in the problem.

Type:

int

__nadir

The nadir point of the problem.

Type:

np.ndarray

__ideal

The ideal point of the problem.

Type:

np.ndarray

__objectives

A list containing the objectives of the problem.

Type:

List[ScalarObjective]

__constraints

A list conatining the constraints of the problem.

Type:

List[ScalarConstraint]

Raises:

ProblemError – Ill formed nadir and/or ideal vectors are supplied.

Attributes Summary

constraints

the list of constraints.

ideal

the ideal point of the problem.

n_of_constraints

the number of constraints.

n_of_objectives

the number of objectives.

n_of_variables

the number of variables.

nadir

the nadir point of the problem.

objectives

the list of objectives.

variables

the list of problem variables.

Methods Summary

evaluate(decision_vectors[, use_surrogate])

Evaluates the problem using an ensemble of input vectors.

evaluate_constraint_values()

Evaluate constraint values.

get_objective_names()

Get objective names.

get_uncertainty_names()

Return the names of the objectives present in the problem in the order they were added.

get_variable_bounds()

Get the variable bounds.

get_variable_lower_bounds()

Get variable lower bounds.

get_variable_names()

Get variable names.

get_variable_upper_bounds()

Get variable upper bounds.

Attributes Documentation

constraints

the list of constraints.

Returns:

the list of constraints

Return type:

List[_ScalarObjective]

Type:

Property

ideal: ndarray

the ideal point of the problem.

Returns:

the ideal point of the problem.

Return type:

np.ndarray

Type:

Property

n_of_constraints

the number of constraints.

Returns:

the number of constraints.

Return type:

int

Type:

Property

n_of_objectives

the number of objectives.

Returns:

the number of objectives.

Return type:

int

Type:

Property

n_of_variables

the number of variables.

Returns:

the number of variables.

Return type:

int

Type:

Property

nadir: ndarray

the nadir point of the problem.

Returns:

the nadir point of the problem.

Return type:

np.ndarray

Type:

Property

objectives

the list of objectives.

Returns:

the list of objectives

Return type:

List[ScalarObjective]

Type:

Property

variables

the list of problem variables.

Returns:

the list of problem variables

Return type:

List[_ScalarObjective]

Type:

Property

Methods Documentation

evaluate(decision_vectors, use_surrogate=False)[source]

Evaluates the problem using an ensemble of input vectors.

Parameters:

decision_vectors (np.ndarray) – An 2D array of decision variable input vectors. Each column represent the values of each decision variable.

Returns:

If constraint are

defined, returns the objective vector values and corresponding constraint values. Or, if no constraints are defined, returns just the objective vector values with None as the constraint values.

Return type:

Tuple[np.ndarray, Union[None, np.ndarray]]

Raises:

ProblemError – The decision_vectors have wrong dimensions.

evaluate_constraint_values()[source]

Evaluate constraint values.

Evaluate just the constraint function values using the attributes decision_vectors and objective_vectors

Raises:

NotImplementedError

Return type:

Optional[ndarray]

Note

Currently not supported by ScalarMOProblem

get_objective_names()[source]

Get objective names.

Return the names of the objectives present in the problem in the order they were added.

Returns:

Names of the objectives in the order they were added.

Return type:

List[str]

get_uncertainty_names()[source]

Return the names of the objectives present in the problem in the order they were added.

Returns:

Names of the objectives in the order they were added.

Return type:

List[str]

get_variable_bounds()[source]

Get the variable bounds.

Return the upper and lower bounds of each decision variable present in the problem as a 2D numpy array. The first column corresponds to the lower bounds of each variable, and the second column to the upper bound.

Returns:

Lower and upper bounds of each variable as a 2D numpy array. If undefined variables, return None instead.

Return type:

np.ndarray

get_variable_lower_bounds()[source]

Get variable lower bounds.

Return the lower bounds of each variable as a list. The order of the bounds follows the order the variables were added to the problem.

Returns:

An array with the lower bounds of the variables.

Return type:

np.ndarray

get_variable_names()[source]

Get variable names.

Return the variable names of the variables present in the problem in the order they were added.

Returns:

Names of the variables in the order they were added.

Return type:

List[str]

get_variable_upper_bounds()[source]

Get variable upper bounds.

Return the upper bounds of each variable as a list. The order of the bounds follows the order the variables were added to the problem. :returns: An array with the upper bounds of the variables. :rtype: np.ndarray