Timefold Solver 1.22.0
We're even more excited than usual to bring you this release. Sure, it has the usual fixes and improvements, but it also brings... drumroll please...
Declarative shadow variables (Preview)
We've heard from so many of you over the years that variable listeners are too complex. We've also heard that it's too hard to enforce before-after relationships between entities, such as when a job needs to happen after another one, or together with some other. Well, not anymore!
With declarative shadow variables, you can now define methods to compute values for individual shadow variables, and let the solver figure out the dependencies between them, what to call first and how to propagate the changes throughout the planning solution.
We have been working on this for months and we have verified this feature on several of our own planning problems. But before we set the API in stone, we want to hear from you. That's why we're making declarative shadow variables available as a preview feature, and we may still tweak parts of it based on your feedback. Check out the documentation, try replacing your variable listeners, and come talk to us with results - we're looking forward to hearing from you.
Changelog
🐛 Fixes
- 5c48116 Use FIELD_OR_READ_METHOD member accessor type for declarative shadow variable calculator
- b86edcb Do not enumerate constraint matches which do not differ
- 4e192e5 Do not reset global terminations on phase level (#1509)
🧰 Tasks
- 7cdc739 Formalize solution inheritance rules (#1541)
- 90236a3 Formalize entity inheritance rules
- cf87aa7 Make init score inaccessible to users (#1501)
📝 Documentation
Contributors
We'd like to thank the following people for their contributions:
- Christopher Chianelli (@Christopher-Chianelli)
- Tom Cools (@TomCools)
- Lukas Downes (@LDWNS)
- Frederico Gonçalves (@zepfred)
- Maarten Mulders (@mthmulders)
- Lukáš Petrovický (@triceo)
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.22.0
dependency in your pom.xml
to get started.
You can also import the Timefold Solver Bom (ai.timefold.solver : timefold-solver-bom : 1.22.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.