Python API ReferenceΒΆ
Object-oriented APIs are provided for Python 2.7, 3.2 or 3.4, allowing a full integration of LocalSolver in your Python business applications. LocalSolver’s APIs are lightweight, with only a few classes to manipulate. Remind that LocalSolver is a black-box 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 LocalSolver
environment. It is the
main class of the LocalSolver library. Then, use the methods of the class
LSModel
to build your model with expressions. Expressions are
a particularly important concept in LocalSolver. In fact, every aspect of a
model is an expression: variables, objectives and even constraints are
LSExpression
. There are 3 different ways to create these
LSExpressions with the class LSModel:
- You can use the available shortcut methods like
LSModel.sum()
,LSModel.eq()
,LSModel.bool()
orLSModel.sqrt()
. - You can also use the more generic version of these functions with the
method
LSModel.create_expression()
. It takes the type of the expression to add as first argument, then the list of the operands of the expression. It is also possible to add operands one-by-one with the methodLSExpression.add_operand()
. SeeLSOperator
for the complete list of available operators. - Finally, you can use the overloaded operators for common operations:
+, -, *, /, <=, >=, ==, !=, >, <, **, [], &, ^, |
.
Solve your model
Once you have created your model, you have to close it with
LSModel.close()
and call LocalSolver.solve()
to launch
the resolution. By default, the search will continue until an optimal
solution is found. To set a time limit or an iteration limit, create
a LSPhase
, with create_phase()
, then
set the according attributes.
Retrieve the solution
The solution is available throw the attribute
LocalSolver.solution
and carries the values of all expressions
in the model and the status of the solution. There are 4 diffent statuses:
INCONSISTENT
: The solver was able to prove that the model admits no feasible solution.INFEASIBLE
: The solution is infeasible. Some constraints or expressions are violated.FEASIBLE
: The solution is feasible but the optimality was not proven.OPTIMAL
: The solution is optimal. All objective bounds are reached.
You can also directly use the value
attribute
available on LSExpression
to get the value of the expression
in the solution.
Consult statistics
You can retrieve statistics of the search (number of iterations, % of
feasible moves, ...) with the LSStatistics
object. Statistics
are provided for the global search or for each phase.
Error handling
All classes and methods of the LocalSolver API can throw exceptions.
The exception type related to LocalSolver errors is LSError
.