OpenPisco.Optim.Problems.OptimProblemBase module#

This module is dedicated to the definition of a class for generic optimization problems

OpenPisco.Optim.Problems.OptimProblemBase.CheckIntegrity()[source]#
class OpenPisco.Optim.Problems.OptimProblemBase.OptimProblemBase(other: Optional[any] = None, dataDeepCopy: bool = True)[source]#

Bases: ABC

Base class for all optimization problems

Advance(direction: np.ndarray, stepSize: float) bool[source]#
Parameters
  • direction (np.ndarray) – Vector-valued direction.

  • stepSize (float) – A multiplicative factor for direction.

Returns

Whether the advance succeeded

Return type

bool

GetActiveEqualityConstraintsSensitivityVals() List[np.ndarray][source]#

Retrieve active equalities sensitivity values

Returns

active equalities constraints sensitivity values

Return type

List[np.ndarray]

GetActiveEqualityConstraintsTargetValues() List[float][source]#

Retrieve active equalities constraints target values

Returns

active equalities constraints target values

Return type

List[float]

GetActiveEqualityConstraintsVals() List[float][source]#

Retrieve all active equalities constraints values

Returns

all active equality constraints values

Return type

List[float]

GetActiveInequalityConstraintsSensitivityVals() List[np.ndarray][source]#

Retrieve active inequalities sensitivity values

Returns

active inequalities constraints sensitivity values

Return type

List[np.ndarray]

GetActiveInequalityConstraintsUpperBound() List[float][source]#

Retrieve active inequalities constraints upperbound

Returns

active inequalities constraints upperbound

Return type

List[float]

GetActiveInequalityConstraintsVals() List[float][source]#

Retrieve all active inequalities constraints values

Returns

all active inequality constraints values

Return type

List[float]

GetCurrentPoint() any[source]#

Retrieve current point of the optimization problem

Returns

current point of the optimization problem

Return type

any

GetDirectionFromGradient(gradient: np.ndarray) np.ndarray[source]#

Compute the descent direction from the gradient

Parameters

gradient (np.ndarray) – gradient

Returns

direction, simply the opposite of the gradient in the default configuration

Return type

np.ndarray

GetEqualityConstraintName(i: int) str[source]#

Retrieve name of the i-th equality constraints

Parameters

i (int) – equality constraints id

Returns

name of the i-th equality constraints

Return type

str

GetEqualityConstraintVal(i: int) float[source]#

Retrieve name of the i-th equality constraints

Parameters

i (int) – equality constraints id

Returns

value of the i-th equality constraints

Return type

float

GetInequalityConstraintName(i: int) str[source]#

Retrieve name of the i-th inequality constraints

Parameters

i (int) – inequality constraints id

Returns

name of the i-th inequality constraints

Return type

str

GetInequalityConstraintSensitivityVal(i: int) np.ndarray[source]#

Retrieve sensitivity of the i-th inequality constraints

Parameters

i (int) – inequality constraints id

Returns

sensitivity of the i-th inequality constraints

Return type

float

GetInequalityConstraintStatus(i: int) bool[source]#

Retrieve inequality constraints status

Parameters

i (int) – inequality constraints id

Returns

inequality constraints status

Return type

float

GetInequalityConstraintUpperBound(i: int) float[source]#

Retrieve upper bound of the i-th inequality constraints

Parameters

i (int) – inequality constraints id

Returns

upper bound of the i-th inequality constraints

Return type

float

GetInequalityConstraintVal(i: int) float[source]#

Retrieve value of the i-th inequality constraints

Parameters

i (int) – inequality constraints id

Returns

value of the i-th inequality constraints

Return type

float

GetNumberOfActiveInequalityConstraints() int[source]#

Retrieve number of inequalities constraints

Returns

number of inequality constraints

Return type

int

GetNumberOfEqualityConstraints() int[source]#

Retrieve number of equality constraints

Returns

number of equality constraints

Return type

int

GetNumberOfInequalityConstraints() int[source]#

Retrieve number of inequality constraints

Returns

number of inequality constraints

Return type

int

GetNumberOfInternalVariables() int[source]#

Compute number of internal variables (namely objective+ number of constraints)

Returns

number of internal variables

Return type

int

GetObjectiveFunctionName() str[source]#

Retrieve problem objective function name

Returns

problem objective function name

Return type

str

GetObjectiveFunctionSensitivity() np.ndarray[source]#

Retrieve problem objective function sensitivity

Returns

problem objective function sensitivity

Return type

float

GetObjectiveFunctionVal() float[source]#

Retrieve problem objective function value

Returns

problem objective function value

Return type

float

GetVariableName(i: int) str[source]#

Retrieve i-th internal variable name

Parameters

i (int) – optimization problem internal variable id

Returns

i-th internal variable name

Return type

str

GetVariableValue(i: int) float[source]#

Retrieve i-th internal variable value

Parameters

i (int) – optimization problem internal variable id

Returns

i-th internal variable value

Return type

str

PreStartCheck() bool[source]#

Start check, if anything must be verified before running the optimization problem

Returns

The current default behviour is to simply return True

Return type

bool

PrintCurrentState(newPoint: OptimProblemBase) str[source]#

Print current and former state of the optimization problem. Allow to see whether there is an improvement between the current problem values and former problem value for any internal variable. If there is, the value appears in green. Else, it appears in red.

Parameters

newPoint (OptimProblemBase) – current problem

Returns

Colored internal values for current/former optimization problems

Return type

str

PrintHeader()[source]#

Print details about optimization problem constraints (inequality/equality, name, upperbound/target value)

PrintState() str[source]#

Retrieve proper format compatible with the number of internal variables (used for formatting current state of optimization problem)

Returns

formatted state

Return type

str

PrintStateHeader() str[source]#

Retrieve status of each internal variables (objective and constraints), meaning whether they are active or not for constraints, for formatting header (used for printing original state of optimization problem before run)

Returns

formatted header depending of internal variable status

Return type

str

SaveData(data: any, point: Optional[any] = None, gradient: Optional[np.ndarray] = None, direction: Optional[np.ndarray] = None)[source]#

Save data on disk, it is supposed to be called to track the history of the optimization problem

Parameters
  • data (data) – data

  • point (Optional[any], optional) – point, by default None

  • gradient (Optional[np.ndarray], optional) – gradient, by default None

  • direction (Optional[np.ndarray], optional) – direction, by default None

SetInequalityConstraintStatus(i: int, status: Union[Literal[0], Literal[1]])[source]#

Set inequality constraint status based on the upper bound value

Inactive = 0, Automatic = 1

Parameters
  • i (int) – inequality constraints id

  • status (Union[Literal[0], Literal[1]]) – either 0 or 1

TakeValuesFrom(other: OptimProblemBase)[source]#

Retrieve values from another optimization problem

Parameters

other (OptimProblemBase) – Another instance of OptimProblemBase

UpdateProblemWhenIterationAccepted()[source]#

Update optimization problem when iteration accepted (only required for very specific criteria)

UpdateValues()[source]#

Update the optimization problem, classically by updating each of its components