New release: LocalSolver 10.0

We are pleased to announce the release of LocalSolver 10.0, which comes with many new features and performance improvements. Our colleague Léa from R&D gives some details in the following video.

Here is the summary of the main novelties coming with LocalSolver 10.0.

Vehicle Routing Problems

Better solutions on several routing variants

  • Faster preprocessing of huge instances (> 10,000 customers).
  • Better solutions for problems with Time Windows: improvement on 60% of large instances (> 400 customers)
    and average improvement of 5% on Solomon (CVRPTW) and Li & Lim instances (PDPTW).
  • Better solutions for problems with nonhomogeneous fleets.

Lower bound computation for Vehicle Routing Problems

  • Average gap of 2.3% on TSP instances up to 1,000 cities.
  • Average gap of 2.6% on CVRP instances up to 100 customers.

Packing & Clustering Problems

Packing Problems

  • Better solutions for problems with nonhomogeneous containers.

Clustering Problems

  • Better solutions for geometric clustering problems like K-Means.
  • Scale up to 10,000 points.
  • Optimality gap <5% within 1 minute.

Black-Box Optimization

Better solutions for models with integer decisions

  • Improvement on 20% of our internal benchmark.
  • Reduction of the number of oracle calls by 33%.

Analytical constraints

  • Better solutions than state-of-the-art black-box solvers handling constraints.
  • Fewer calls to the oracle.
func_expr = model.create_double_blackbox_function(revenue_management.evaluate)
func_call =

for i in range(1, nb_periods):
    model.constraint(variables[i] <= variables[i-1])


Global optimization

Lexicographic multi-objective problems

  • Better solutions & bounds for nonlinear models.
  • Better cuts for linear models.
  • Positive impact on 15% of our internal benchmark.

Performance improvement on Sum-of-Square problems

  • Faster convergence on badly scaled problems.

LocalSolver Programming language (LSP)

Modeler API in Python, Java, C#, and C++ to put LSP models in production

from localsolver.modeler import *
modeler = LSPModeler()
main = modeler.load_module("optimal_bucket.lsp")

JSON parsing available in the standard LSP library

use json;

function input() {
    data = json.parse("./data.json");
    alpha = data["Alpha"];

We are at your disposal to accompany you in the discovery of LocalSolver 10.0. Just ask for your free trial license by registering here. In the meantime, don’t hesitate to contact us for any further information or support.