LocalSolver logo
is now
Hexaly logo

We're excited to share that we are moving forward. We're leaving behind the LocalSolver brand and transitioning to our new identity: Hexaly. This represents a leap forward in our mission to enable every organization to make better decisions faster when faced with operational and strategic challenges.

This page is for an old version of Hexaly Optimizer. We recommend that you update your version and read the documentation for the latest stable release.

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

Functions
call Creates a call expression.
createNativeFunction Creates a native function.
createEvaluationPoint Creates an evaluation point.
boolVar Creates a boolean decision.
intVar Creates an integer decision.
floatVar Creates a float decision.
addObjective Sets the given expression to be the current objective to optimize.
close Closes the model.
isClosed Returns true if the model is closed, false otherwise.

Functions

LSBBExpression call()

Creates a call expression.

LSBBExpression createNativeFunction(LSBBNativeFunction *func)

Creates a native function.

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 O_Call. The first operand must be your native function. The other operands must be LSBBExpressions. Their value will be made accessible to your native function through the native context.

Note 1: Most of the time your native function will be called when the solver is in state S_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().

Note 2: LocalSolverBlackBox does not manage memory of objects created outside of its environment. Thus, you have to explicitly delete your LSBBNativeFunction at the end of the search.

Return:The expression associated to the function.
See:O_NativeFunction
Parameters:func - Native function to call.

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 S_Stopped.

Return:An evaluation point associated with the function.
See:O_NativeFunction
See:LSBBEvaluationPoint::addArgumentDouble()
See:LSBBEvaluationPoint::addArgumentInt()
See:LSBBEvaluationPoint::setReturnedValue()
Parameters:expr - Expression of type O_NativeFunction.

LSBBExpression boolVar()

Creates a boolean decision.

Binary decision variable with domain [0.1].

See:O_Bool

LSBBExpression intVar(lsint minValue, lsint maxValue)

Creates an integer decision.

Decision variable with domain [min,max].

See:O_Int

LSBBExpression floatVar(lsdouble minValue, lsdouble maxValue)

Creates a float decision.

Decision variable with domain [min,max].

See:O_Float

void addObjective(LSBBExpression expr, LSBBObjectiveDirection dir)

Sets the given expression to be the current objective to optimize.

Only allowed in state S_Modeling.

Parameters:
  • expr - Expression of type O_Call.
  • dir - Optimization direction of this objective.

void close()

Closes the model.

Only allowed in state S_Modeling. Once the model is closed, no expression, constraints or objectives can be added. The model must be closed before starting its resolution.

bool isClosed() const

Returns true if the model is closed, false otherwise.

Return:True if the model is closed.