OpenPisco.Optim.Problems.OptimProblemBase module#
This module is dedicated to the definition of a class for generic optimization problems
- class OpenPisco.Optim.Problems.OptimProblemBase.OptimProblemBase(other: Optional[any] = None, dataDeepCopy: bool = True)[source]#
Bases:
ABCBase 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