TimefoldAI / TimefoldAI/timefold-solver

Feat: Unimproved score calculation count termination

Open
#995 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

process/needs triage
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.