Please let me know which algorithm is appropriate for the problem below:
We have a finite number of projects in a given 3 month period (typically < 50). Each project has a number of hours.
We have a finite number of resources (typically < 100) in the same 3 month period.
Each resource can consume a unique amount of hours per month (accounting for holidays, personal vacations, and such-- this number of hours per month is already pre-calculated for each resource and is available).
It is possible to allocate one resource to multiple projects.
This is like a bin packing problem turned on its head, I think, if we consider projects as bins, resources as objects, and hours as object volume. At least two things make it deviate from the formal bin packing problem:
- Resources are fluid objects which can drip a few hours in one bin and a few in another.
- Optimal solution is not to minimize number of bins (projects) used, but rather to minimize the number of times a resource has to split themselves between projects and ensure all projects are used.
I feel like I might be chasing geese with the bin packing angle. Is there an algorithm that is more appropriate for this?