timefold-solver
timefold-solver copied to clipboard
The open source Solver AI for Java, Python and Kotlin to optimize scheduling and routing. Solve the vehicle routing problem, employee rostering, task assignment, maintenance scheduling and other plann...
To reproduce: - run score analysis on a load balancing use case and serialize to JSON (through a rest endpoint) - with python Error: ``` Unable to serialize unknown type:...
This pull request introduces a stuck monitor mechanism for the LS phase and a restart process. 1. There is one stuck mechanism based on the unimproved move count of the...
Make it stick out like a soar thumb
SolverConfigOverride should support setting the time spend directly (similar to SolverConfig itself)
Before ``` solverFactory.buildSolver(new SolverConfigOverride() .withTerminationConfig(new TerminationConfig().withSpentLimit(...)); ``` After ``` solverFactory.buildSolver(new SolverConfigOverride() .withTerminationSpentLimit(...))); ``` Same for unimproved time
Consider the following constraint: ```java constraintFactory.forEach(Rule.class) .join(Shift.class, Joiners.equal(Shift::getRuleProperty, Rule::getProperty)) .penalize(HardSoftScore.ONE_HARD) .asConstraint("Rule violated"); ``` Assume `Shift::getRuleProperty` is an expensive method to evaluate. If a problem has no `Rule` instances, this constraint...
**Describe the bug** For our Quarkus integration, we have some dependencies on Jandex methods. However, some of the methods we use are relatively new. This means that if people migrate...
Bumps `version.io.quarkus` from 3.28.4 to 3.29.2. Updates `io.quarkus:quarkus-bom` from 3.28.4 to 3.29.2 Release notes Sourced from io.quarkus:quarkus-bom's releases. 3.29.2 Complete changelog #50658 - Bump org.eclipse.microprofile.openapi:microprofile-openapi-api from 4.1 to 4.1.1 #50688...
Refactors indexing in Constraint Streams so that the index supports random access to elements. This will be necessary for Neighborhoods. While here, I also noticed that the constructors of streams...
This PR enables sorting the value ranges at the `ValueRangeManager` level. The sorting feature is likely useful during the CH phase, and the new approach can address the sorting requirement...
Previously, Neighborhoods depended on joins on the left-hand side - these joins are, however, possibly massive. With large datasets, joining 100k entities with themselves would result in billions of entries...