Timefold Solver 1.0.0 update: redesigned benchmarks, Constraint Streams enhancements, performance boosts, and bug fixes. Get a sneak peek before July release.
The solver benchmark report has been completely redesigned and modernized. It now fits nicely on all kinds of screens, from mobile phones to desktops.
Importantly, every chart in the report is now interactive, allowing you to filter the data points to only show those you want to see.
Static pictures don’t do it justice, you need to see it to believe it. Did you know you can build the solver locally to get access to the latest developments before they’re generally available?
Constraint Streams are a powerful way to express constraints in a declarative way. In Timefold Solver 1.0.0, they will become even more powerful by introducing the expand()building block. Consider the following constraint:
Note that the method missingSpeakerRequiredRoomTagCount() is called twice; once to filter Talk instances and the second time to penalize every one of them. This is not ideal, and it becomes even worse when you realize that under the hood, this method does some heavy lifting to compute the missing tags. The end result is that this constraint is not very efficient. With the new expand() building block, we can rewrite it as follows:
Notice that the expand() building block caches the computation and propagate it downstream.
We use the not-so-well-known indictWith() building block, which allows us to indicate which facts are responsible for the constraint violation. Since missingTagCountis a plain integer without any semantics, it doesn’t help us to explain the score and therefore it is removed.
Behind the scenes, we continue to work tirelessly to improve the performance of our solution. With Timefold Solver 1.0.0, users of Constraint Streams will see performance improvements of up to 15% in some cases. And that is on top of the significant speedup that Timefold already brings over OptaPlanner!
Timefold moves ahead at an ever increasing pace. Migrate to Timefold today, and enjoy the benefits of a modern, fast and powerful constraint solver.
Continue reading
Blog
Why PlanningAI encompasses scheduling, routing, and strategic decision-making
PlanningAI intentionally captures scheduling, routing, and strategy because businesses naturally function across multiple timeframes and complexities. Find out more about the etymology of PlanningAI in this blog post.
Blog
Different problems, different solutions: PlanningAI and GenAI compared
Generative AI might be grabbing the headlines, but on the opposite end of the AI spectrum there’s a complex subset that’s been driving solutions long before the buzz began: PlanningAI. In this blog post, we’ll explain how PlanningAI en GenAI are fundamentally different, despite being both AI.
Blog
LLMs can’t optimize schedules, but AI can
LLMs have come a long way in recently, but they still struggle with complex planning, however, there’s an older form of AI that handles complex planning…