TimefoldAI / TimefoldAI/timefold-solver
Recommendations 2.0
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.8k
- Forks
- 228
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 46
Description
Is your feature request related to a problem? Please describe.
The current way to do recommendations (recommended fit) is based on CH. We are seeing that this is often not sufficient and users are often deciding to implement their own Recommendation API.
It's also doesn't support "reverse recommendations", where we do not only recommend A->B but also B->A.
eg. vehicle routing, we currently recommend Vehicles for Visits, but we might want to also recommend Visits for Vehicles.
Describe the solution you'd like
We could implement a more generic approach where we are provided with a plan, a list of potential values (or a filter on the already provided plan) and then something which needs recommending. This could support Recommendations and Reverse Recommendations.
In an initial version, this could just be a Brute Force function, where:
- we loop over all the options
- run score analysis for each of them
- return the best X results.
Most of the time, recommendations are only used with a nearly completed plan anyway, so the list of options is already minimal, but the filter could help to programmatically limit it further. We can look later to improve this.
Describe alternatives you've considered
The current CH approach doesn't do much better with this single assignment.
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
Start by reading the current CH-based recommendation approach and the score analysis flow mentioned in the issue. Define the scope of the generic and reverse recommendation API, including plan inputs, candidate filtering, brute-force evaluation, and the number of results to return; the issue does not name files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100