OptimizationProblem

class OptimizationProblem(*args)

Base class to define an optimization problem.

This represents a general optimization problem:

\min_{x\in B} f(x) \\
g(x) = 0 \\
h(x) \ge 0

where B is problem’s bounds, f is the objective function, g are equality constraints, and h are inequality constraints.

Available constructors:

OptimizationProblem(objective)

OptimizationProblem(objective, equality, inequality, bounds)

Parameters
objectiveFunction

Objective function. Additional constraints and bounds must always be consistent with the objective input dimension.

equalityFunction

Equality constraints.

inequalityFunction

Inequality constraints.

boundsInterval

Bounds.

levelFunction

Level function.

valuefloat

Level value.

Examples

Define an optimization problem to find the minimum of the Rosenbrock function:

>>> import openturns as ot
>>> rosenbrock = ot.SymbolicFunction(['x1', 'x2'], ['(1-x1)^2+100*(x2-x1^2)^2'])
>>> problem = ot.OptimizationProblem(rosenbrock)

Define an optimization problem to find the point with minimum norm which satisfies x1+2*x2-3*x3+4*x4=3.

>>> import openturns as ot
>>> levelFunction = ot.SymbolicFunction(
...     ['x1', 'x2', 'x3', 'x4'], ['x1+2*x2-3*x3+4*x4'])
>>> problem = ot.NearestPointProblem(levelFunction, 3.0)

Methods

getBounds(self)

Accessor to bounds.

getClassName(self)

Accessor to the object’s name.

getDimension(self)

Accessor to input dimension.

getEqualityConstraint(self)

Accessor to equality constraints.

getId(self)

Accessor to the object’s id.

getImplementation(self)

Accessor to the underlying implementation.

getInequalityConstraint(self)

Accessor to inequality constraints.

getLevelFunction(self)

Accessor to level function.

getLevelValue(self)

Accessor to level value.

getName(self)

Accessor to the object’s name.

getObjective(self)

Accessor to objective function.

getResidualFunction(self)

Accessor to the residual function.

getVariablesType(self)

Accessor to the variables type.

hasBounds(self)

Test whether bounds had been specified.

hasEqualityConstraint(self)

Test whether equality constraints had been specified.

hasInequalityConstraint(self)

Test whether inequality constraints had been specified.

hasLevelFunction(self)

Test whether level function had been specified.

hasMultipleObjective(self)

Test whether objective function is a scalar or vector function.

hasResidualFunction(self)

Test whether a least-square problem is defined.

isContinuous(self)

Check if the problem is continuous.

isMinimization(self)

Test whether this is a minimization or maximization problem.

setBounds(self, bounds)

Accessor to bounds.

setEqualityConstraint(self, equalityConstraint)

Accessor to equality constraints.

setInequalityConstraint(self, …)

Accessor to inequality constraints.

setLevelFunction(self, levelFunction)

Accessor to level function.

setLevelValue(self, levelValue)

Accessor to level value.

setMinimization(self, minimization)

Tell whether this is a minimization or maximization problem.

setName(self, name)

Accessor to the object’s name.

setObjective(self, objective)

Accessor to objective function.

setResidualFunction(self, residualFunction)

Accessor to the residual function.

setVariablesType(self, variableType)

Accessor to the variables type.

__init__(self, \*args)

Initialize self. See help(type(self)) for accurate signature.

getBounds(self)

Accessor to bounds.

Returns
boundsInterval

Problem bounds.

getClassName(self)

Accessor to the object’s name.

Returns
class_namestr

The object class name (object.__class__.__name__).

getDimension(self)

Accessor to input dimension.

Returns
dimensionint

Input dimension of objective function.

getEqualityConstraint(self)

Accessor to equality constraints.

Returns
equalityFunction

Describe equality constraints.

getId(self)

Accessor to the object’s id.

Returns
idint

Internal unique identifier.

getImplementation(self)

Accessor to the underlying implementation.

Returns
implImplementation

The implementation class.

getInequalityConstraint(self)

Accessor to inequality constraints.

Returns
inequalityFunction

Describe inequality constraints.

getLevelFunction(self)

Accessor to level function.

Returns
levelFunction

Level function.

getLevelValue(self)

Accessor to level value.

Returns
valuefloat

Level value.

getName(self)

Accessor to the object’s name.

Returns
namestr

The name of the object.

getObjective(self)

Accessor to objective function.

Returns
objectiveFunction

Objective function.

getResidualFunction(self)

Accessor to the residual function.

Returns
residualFunctionFunction

Residual function.

getVariablesType(self)

Accessor to the variables type.

Returns
variablesTypeIndices

Types of the variables.

Notes

Possible values for each variable are ot.OptimizationProblemImplementation.CONTINUOUS, ot.OptimizationProblemImplementation.INTEGER and ot.OptimizationProblemImplementation.`BINARY`.

hasBounds(self)

Test whether bounds had been specified.

Returns
valuebool

True if bounds had been set for this problem, False otherwise.

hasEqualityConstraint(self)

Test whether equality constraints had been specified.

Returns
valuebool

True if equality constraints had been set for this problem, False otherwise.

hasInequalityConstraint(self)

Test whether inequality constraints had been specified.

Returns
valuebool

True if inequality constraints had been set for this problem, False otherwise.

hasLevelFunction(self)

Test whether level function had been specified.

Returns
valuebool

True if level function had been set for this problem, False otherwise.

hasMultipleObjective(self)

Test whether objective function is a scalar or vector function.

Returns
valuebool

False if objective function is scalar, True otherwise.

hasResidualFunction(self)

Test whether a least-square problem is defined.

Returns
valuebool

True if this is a least-squares problem, False otherwise.

isContinuous(self)

Check if the problem is continuous.

Returns
isContinuousbool

Returns True if all variables are continuous.

isMinimization(self)

Test whether this is a minimization or maximization problem.

Returns
valuebool

True if this is a minimization problem (default), False otherwise.

setBounds(self, bounds)

Accessor to bounds.

Parameters
boundsInterval

Problem bounds.

setEqualityConstraint(self, equalityConstraint)

Accessor to equality constraints.

Parameters
equalityConstraintFunction

Equality constraints.

setInequalityConstraint(self, inequalityConstraint)

Accessor to inequality constraints.

Parameters
inequalityConstraintFunction

Inequality constraints.

setLevelFunction(self, levelFunction)

Accessor to level function.

Parameters
levelFunctionFunction

Level function.

setLevelValue(self, levelValue)

Accessor to level value.

Parameters
levelValuefloat

Level value.

setMinimization(self, minimization)

Tell whether this is a minimization or maximization problem.

Parameters
minimizationbool

True if this is a minimization problem, False otherwise.

setName(self, name)

Accessor to the object’s name.

Parameters
namestr

The name of the object.

setObjective(self, objective)

Accessor to objective function.

Parameters
objectiveFunctionFunction

Objective function.

Notes

Constraints and bounds are cleared if the objective has a different input dimension in order to keep the problem valid at all time.

setResidualFunction(self, residualFunction)

Accessor to the residual function.

Parameters
residualFunctionFunction

Residual function.

setVariablesType(self, variableType)

Accessor to the variables type.

Parameters
variablesTypeIndices

Types of the variables.

Notes

Possible values for each variable are ot.OptimizationProblemImplementation.CONTINUOUS, ot.OptimizationProblemImplementation.INTEGER and ot.OptimizationProblemImplementation.BINARY.