TimefoldAI / TimefoldAI/timefold-solver
Feat: Unimproved score calculation count termination
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.8k
- Forks
- 228
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 46
Description
Is there a reason why this has not been implemented yet? As far as I am aware, the following terminations are available:
| Total | Unimproved | Unimproved with score difference threshold | |
|---|---|---|---|
| Time | Yes | Yes | Yes |
| Step count | Yes | Yes | No |
| Score calculation count | Yes | No | No |
For optimization to be as fast as possible without sacrificing final solution quality, our product relies crucially on unimproved time spent terminations. We use a sequence of short solver phases with very different configurations. If one of the earlier phases terminates too early, the final solution quality degrades severely.
Unfortunately, time based limits cause the solving process to be very dependent on hardware, resource availability, use of multi-threading and node sharing, JVM tweaks, etc. Unimproved score calculation count termination would offer much more reliability.
Since this feature would be so useful to us, I could make a case for implementing it myself. Let me know if you are interested. (I will only be able to respond after next week, though.)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not name files or tests. Start by tracing the existing time-based, step-count, and score-calculation termination implementations, then identify how an unimproved score-calculation count would fit the solver phases. Done means the requested termination is supported and covered by relevant tests, including the stated distinction from score-difference thresholds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- ai
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100