I have a list of tasks which have duration, profit for its completion and minimum/maximum frequency per week (for example, to read book X at least 3 times a week). If some tasks were completed more times than minimum frequency then their profit is multiplied by some factor (e.g. 1,5).

Every day of week has a capacity of hours which can be spent on these tasks (for example, Monday - 3 hours, Tuesday - 5 hours and so on).

I have the requirement to implement scheduling of tasks for days of weeks so that to reach the maximum profit and to satisfy all the given constraints.

I've been thinking about using some heuristic algorithms or the solution of multiple knapsack problem, but nothing seems really suitable here and I've completely run out of ideas.

Could you possibly advise me what algorithm/approach I can use here or maybe what resources I can read to understand the problem better and find a solution?

Thank you

1

There are 1 best solutions below

0
On

Given the situation you described, it think you should check if Weighted Job Scheduling Algorithm could be combined with the Knapsack Problem Algorithm.