LSBBModel Class¶
-
class
localsolverblackbox.
LSBBModel
¶ Mathematical optimization model. A model is composed of a native function (the blackbox), a number of decisions and a function call that associates the decisions and the function. Once your optimization model is created and closed, the solver can be launched to resolve it. Note that you cannot modify a model which has been closed.
See: LSBBExpression See: LSBBOperator
Summary¶
GetLocalSolverBlackBox |
Returns the LocalSolverBlackBox object associated to this model. |
Call |
Creates a call expression. |
CreateNativeFunction |
Creates a native function. |
CreateEvaluationPoint |
Creates an evaluation point. |
Bool |
Creates a boolean decision. |
Int |
Creates an integer decision. |
Float |
Creates a float decision. |
AddObjective |
Setss the given expression to be the list of objectives to optimize. |
Close |
Closes the model. |
IsClosed |
Returns true if the model is closed, false otherwise. |
Instance methods¶
-
LocalSolverBlackBox
GetLocalSolverBlackBox
()¶ Returns the LocalSolverBlackBox object associated to this model.
Returns: LocalSolverBlackBox object Return type: LocalSolverBlackBox
-
LBBExpression
Call
()¶ Creates a call expression. First operand must be an LSBBExpression of type
LSBBOperator.NativeFunction
. The other operands must be booleans, integers or doubles decisions.Returns: Expression of type LSBBOperator.Call
Return type: LSBBExpression
-
LSBBExpression
CreateNativeFunction
(LSBBNativeFunction function)¶ Creates a native function. The provided function must take the native context (
LSBBNativeContext
) associated to the function as single argument and must return a double value.Once you have instantiated it, you have to pass arguments to your function and call it. For that, you have to create expressions of type
LSBBOperator.Call
. The first operand must be your native function. The other operands must be LSBBExpressions. Their value will be made accessible to your function through the native context.Note 1: Most of the time your native function will be called when the solver is in state
LSBBState.Running
. Do not attempt to call any method of the solver (to retrieve statistics, values of LSBBExpressions or whatever) in that state or an exception will be thrown. The only accessible function is :LocalSolverBlackBox.Stop().Arguments: function (LSBBNativerFunction) – Function to call. Returns: Expression of type LSBBOperator.NativeFunction
.Return type: LSBBExpression
-
LSBBEvaluationPoint
CreateEvaluationPoint
(LSBBExpression expr)¶ Creates an evaluation point. Once it is instantiated, you have to set the values for the function’s arguments and the value returned by the function at this point. Only allowed in state
LSBBState.Stopped
.Arguments: expr (LSBBExpression) – Expression of type LSBBOperator.NativeFunction
.Returns: An evaluation point associated with the function. Return type: LSBBEvaluationPoint
-
LBBExpression
Bool
()¶ Creates a boolean decision. Binary decision variable with domain [0.1].
Returns: Expression of type LSBBOperator.Bool
Return type: LSBBExpression
-
LBBExpression
Int
(long min, long max)¶ Creates an integer decision. Decision variable with domain
[min,max]
. Bounds of the variable must be booleans or integers.Returns: Expression of type LSBBOperator.Int
Return type: LSBBExpression
-
LBBExpression
Float
(double min, double max)¶ Creates a float decision. Decision variable with domain
[min,max]
. Bounds of the variable must be booleans, integers or doubles.Returns: Expression of type LSBBOperator.Float
Return type: LSBBExpression
-
void
AddObjective
(LSBBExpression expr, LSBBObjectiveDirection direction)¶ Setss the given expression to be the list of objectives to optimize. A same expression can be added more than once. Only allowed in state
LSState.Modeling
.Arguments: - expr (LSBBExpression) – Expression of type
LSBBOperator.Call
- direction (LSBBObjectiveDirection) – Optimization direction of this objective
- expr (LSBBExpression) – Expression of type
-
void
Close
()¶ Closes the model. Only allowed in state
LSBBState.Modeling
. Once the model is closed, no expression, constraints or objectives can be added. The model must be closed before starting its resolution. When the model is closed, the state of the LocalSolver changed fromLSBBState.Modeling
toLSBBState.Stopped
.
-
bool
IsClosed
()¶ Returns true if the model is closed, false otherwise.
Returns: True if the model is closed. Return type: bool