I need to create something very similar to the Nursing Roster example in optaplanner.
The planning requirements are:
- Nurses have special skills.
- There are shifts throughout the day, and week, and weekend.
- New feature: Different tasks require different sets of skills.
- New feature: Staff are often scheduled to spend 2 hours in the morning on a special task, then the rest of their day on their main task.
I thought the best way of modeling this is that a shift has a List, and each task requires a set of skills, and each shift takes a list of tasks.
And then Optaplanner would not only allocate nurses to shifts, but also combine tasks and allocate them to shifts.
My questions then are:
Would a Task be a planning entity, planning variable, planning value?
Do I need to modify the solver factory? If yes, any tips on how best to do this?