Object-oriented APIs are provided for C#/.NET allowing a full integration of LocalSolverBlackBox in your C#/.NET business applications. LocalSolverBlackBox’s APIs are lightweight, with only a few classes to manipulate. Remind that LocalSolverBlackBox is a model & run math programming solver: having instantiated the model, no additional code has to be written in order to run the solver.

Build your model

First, you have to create a LocalSolverBlackBox environment. It is the main class of the LocalSolverBlackBox library. Then, use the methods of the class LSBBModel to build your model with expressions. Expressions are a particularly important concept in LocalSolverBlackBox. In fact, every aspect of a model is an expression: variables and objective are LSBBExpression. You can use the available shortcut methods like LSBBModel.Bool, LSBBModel.Call, LSBBModel.CreateNativeFunction to create LSBBExpressions. A LocalSolverBlackBox model is composed of a Call expression. The first argument of this expression is an expression of type NativeFunction and other arguments are decisions variables that will be passed as arguments to the native function.

Solve your model

Once you have created your model, you have to close it with LSBBModel.Close() and call LocalSolverBlackBox.Solve() to launch the resolution. By default, the search will continue until an optimal solution is found. To set a time limit or an evaluation limit gets an instance of LSBBParam with LocalSolverBlackBox.GetParam() then set the according attributes.

Retrieve the solution

The solution is available throw the method LocalSolverBlackBox.GetSolution() and carries the values of all expressions in the model.