TimefoldAI / TimefoldAI/timefold-solver

Recommendations 2.0

Open
#1,763 0 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 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.