Skip to content

Timefold Solver 1.27.0

Choose a tag to compare

@timefold-release timefold-release released this 14 Oct 12:29

The October release of Timefold Solver is a quiet one, focusing on bug fixes, performance improvements and small tweaks.

Possible decrease in move speeds

With the improvements to value ranges in this release, we now eliminate some useless moves much earlier. This means move generation takes slightly longer, and the moves which actually get executed are more likely complex moves, as they are no longer crowded out by useless "short" moves.

As a consequence of this, you may see your move speed drop significantly, if you're using entity-based value ranges. But in this case, this is actually good news! We have seen that, even though the move speed drops, the step count increases. The solver is more likely to actually accept a move, because the generated moves are, on average, more useful now. And therefore the score is better in the same amount of time.

Changelog

🚀 Features

  • 649aba4 Add SolverConfigOverride support for setting the time spend directly (#1808)
  • 54bb2a9 Add ScoreAnalysis.summarize(int topLimit) method to customize constraint/matches display limit (#1807)
  • 36928b6 Add random seed setting to Quarkus and Spring Boot (#1816)

🐛 Fixes

  • c9a40d5 Process deep-cloned entities in a queue for GizmoSolutionCloner (#1849)
  • d30e910 Don't test the filtering joiner on insert if a tuple is already retracting
  • d7dc382 Don't test the filtering joiner if a tuple is already retracting (#1850)
  • 4a6b2f8 Fail fast when referenced entities are not included in ConstraintVerifier.given or updateShadowVariables (#1836)
  • df4a081 Enable ListIterator support on FilteringEntityByEntitySelector and FilteringEntityByValueSelector (#1821)
  • fa704e9 Avoid using stale references in entity value ranges filtering nodes (#1822)
  • dbb9b53 Avoid reusing configuration on move factories (#1814)

🔄️ Changes

  • efdcb79 Use a better data structure to minimize memory usage for edge counts (#1795)

🧰 Tasks

📝 Documentation

Contributors

We'd like to thank the following people for their contributions:

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.27.0 dependency in your pom.xml to get started.

You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.27.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.