I would like to solve a scheduling problem where, I am able to maximize the number of consecutive shifts a employee may have, therefore minimizing the likelihood of them not showing up for a single, short shift on an odd day. However, I want to preferentially give shifts to better performers - where 'performance' is an arbitrary score. It is okay for some employees to get a low number of or 0 shifts.
The approach I believe I need to take is to tier each employee by to give them a maximum and minimum number of hours for the algorithm to try to achieve, however I would prefer to only have maximum hours and for the algorithm to always select a better performer over a worse performer.
Is anyone able to suggest an alternative approach?