Timefold Solver 1.19.0
Valentine's day is still a few days away, but we're giving Timefold Solver care and attention every day! This release is rich with bug fixes and performance improvements, but also a long-awaited feature:
Featured update: Diminished Returns termination
Users of Timefold Solver have surely noticed that the ways of automatically terminating the solver leave something to be desired - they are either too hardware-dependent, or too problem-specific. We are now addressing this with the Diminished Returns termination.
This new termination takes a look at how quickly the solver is improving, and only ends solving when the rate of improvement slows down to nearly nothing. This removes dependency on both hardware and problem sizes, and we recommend that you try it.
Changelog
🚀 Features
- Allow SolverManager and SolverJob to submit problem changes in batches
- Log a warning when CH terminated prematurely (#1362)
- Add Diminished Returns termination (#1313)
🐛 Fixes
- Only run local search when there is something to run
- Prevent possible concurrent modification of a collection (#1370)
- Do not crash dev mode on empty app
- Do not double count move evaluations
- Fix Python custom justifications with Decimal scores
- Use different SolverScope in the RuinRecreateMove nested phase
🔄️ Changes
- Remove certain polymorphic call sites (#1341)
- Improve performance of Bavet indexing (#1324)
- Improve tuple store performance (#1329)
📝 Documentation
- Add diagrams for consecutive and connected collectors
Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (@Christopher-Chianelli)
- Tom Cools (@TomCools)
- Frederico Gonçalves (@zepfred)
- Lukáš Petrovický (@triceo)
- Geoffrey De Smet (@ge0ffrey)
- Radovan Synek (@rsynek)
Timefold Solver Community Edition is an open source project, and you are more than welcome to contribute as well! For more, see Contributing.
Should your business need to scale to truly massive data sets or require enterprise-grade support, check out Timefold Solver Enterprise Edition.
How to use Timefold Solver
To see Timefold Solver in action, check out the quickstarts.
With Maven or Gradle, add the ai.timefold.solver : timefold-solver-core : 1.19.0 dependency in your pom.xml to get started.
You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.19.0)
to avoid duplicating version numbers when adding other Timefold Solver dependencies later on.
Additional notes
The changelog and the list of contributors above are automatically generated. It excludes contributions to certain areas of the repository, such as CI and build automation. This is done for the sake of brevity and to make the user-facing changes stand out more.