LocalSolver 8.5

Caution

This release introduces a number of breaking changes in the APIs.

Release notes

  • The bound calculations for models involving bool, int and float decisions have been improved.

  • This release also brings performance improvements for models involving set or list decisions.

  • A modeling guide for routing problems has been added to the advanced features.

  • The API for setting objective thresholds has been modified. They are no longer named bounds but thresholds and can be set via the solver parameters. See the API changes below for the specific instructions.

  • The objective bounds computed by the solver can now be obtained from the solution. See the API changes below for the specific instructions.

API Changes

LSP

  • Deprecated the global variable lsAnnealingLevel . It will be removed in a future release.

  • Removed the global method getObjectiveBound().

  • Deprecated the global method setObjectiveBound(). It will be removed in a future release.

  • Added the global variable lsObjectiveThreshold. It can either take a single value or a collection of values if your model has multiple objectives.

Python

C++

C#

Java

  • Deprecated the methods LSParam.getAnnealingLevel() and LSParam.setAnnealingLevel(). They will be removed in a future release.

  • Removed the following methods:

    • LSParam.getObjectiveBound()

    • LSParam.getIntObjectiveBound()

    • LSParam.getDoubleObjectiveBound()

    • LSParam.setObjectiveBound()

    • LSParam.setIntObjectiveBound()

    • LSParam.setDoubleObjectiveBound()

  • Added the following methods to replace the methods above:

    • LSParam.getObjectiveThreshold()

    • LSParam.getIntObjectiveThreshold()

    • LSParam.getDoubleObjectiveThreshold()

    • LSParam.setObjectiveThreshold()

    • LSParam.setIntObjectiveThreshold()

    • LSParam.setDoubleObjectiveThreshold()

  • Added the following methods to retrieve the objective bounds computed by the solver:

    • LSSolution.getObjectiveBound()

    • LSSolution.getIntObjectiveBound()

    • LSSolution.getDoubleObjectiveBound()