timefold-solver
timefold-solver copied to clipboard
Feat: Support incremental operations with Declarative Shadow Variable
For groups, we typically have to do things like Collections.max(). This requires us first to build a collection, and then to iterate over the collection to provide a result. Also, this happens for every variable individually, as opposed to once per group. The new design should:
- Introduce an API similar to constraint collectors, which can perform arbitrary operations incrementally.
- Introduce implementations of that API for common use cases, such as min/max.
- Introduce some sort of a caching mechanism, so that each member of the group can get the precomputed result, as opposed to each computing it all over again.