LocalSolver 11.0

Release notes

  • Performance improvements on routing, scheduling and planning models.

  • A new operator SORT has been added.

  • External functions can return multiple values as a one-dimensional array.

  • Blackbox functions have been merged with external functions.

  • Black box optimization can now accept black box constraints in addition to analytical constraints.

Sort operator

Sort operator takes a one-dimensional array of integers or doubles as input and returns an array sorted by ascending values. This operator is particularly useful to implement models involving medians or quantiles.

Black-box optimization

LocalSolver 11.0 introduces blackbox constraint management to complement the analytical constraints available since LocalSolver 10.0. Constraints can now be directly implemented in simulators or costly functions.

In addition, black-box functions have been merged with external functions. This change is the beginning of a long-term effort to provide a single interface for all kinds of blackbox and analytical optimization problems. As a result, all references to blackbox objects have been removed from our APIs. However, you still need to explicitly indicate if you want to enable surrogate modeling for a particular function by calling the new method LSExternalContext.enableSurrogateModeling().

External functions returning multiple values

External - and by extension blackbox functions (see previous point) - can now return multiple-values as one-dimensional array. This new feature is particularly useful for black-box optimization when a calculator or a simulator returns several values for the same calculation or for routing and scheduling problems when you have to return pairs of values (time windows for instance).

To create such functions, implement the new interfaces LSIntArrayExternalFunction or LSDoubleArrayExternalFunction. Then create your external function as usual. The individual values of your array are then easily accessible by combining the CALL operator with the AT operator.

API Changes





  • Added LSOperator.Sort operator.

  • Added LSModel.sort to create sort expressions.

  • Added LSExternalContext.enableSurrogateModeling to enable blackbox optimization on an external function.

  • Added LSModel.createIntArrayExternalFunction and LSModel.createDoubleArrayExternalFunction to create external functions that return multiple values as one-dimensional array.

  • Removed LSOperator.BlackBoxFunction operator.

  • Removed LSBlackBoxArgumentValues class.

  • Removed LSBlackBoxContext class replaced by LSSurrogateParameters

  • Rename LSBlackboxEvaluationPoint to LSEvaluationPoint.