I have a task allocation problem that I am finding difficult.
- Suppose we have a group of individuals who each have different skills
- Each group member can allocate 10 hours to each of Building and Crafting
- A person's skill effects how well they can Build or Craft, i.e. a person with a Build skill of 0.5 can create 0.5 Build output with 1 hours' work
- The group must satisfy the condition that Building output >= 10, and Crafting output >= 5
How can the group maximise “free time” (i.e. number of total hours spent unallocated) while still satisfying the minimum output conditions)?
Example:
Person Building Skill Crafting Skill
Alice 0.8 0.4
Bob 0.3 0.7
Cob 0.6 0.6
If each person had identical skills, no matter how the hours were allocated (as long as the conditions were satisfied) free time would have to be the same. But when each person has different skills, an “efficient” allocation of hours could vastly increase the amount of free time.
Would anyone know of any solutions that exist to this problem, and ones that work quickly even with a large amount of people and many more types of skills?
OR alternatively some a heuristical approach that can maximise free time to a decent enough extent (even if it's not perfect)