combinatoricsoptaplannerrostering

Personnel Scheduling Benchmark Instances


Personnel scheduling is a major topic in combinatorial optimisation research, but for some reason almost all of that research (decades of it) is focused on nurse rostering. Consequently, very few available benchmark problem instances are for topics other than nurse rostering.

Nurse rostering is a very specific formulation of the problem obsessed with things like shift patterns. Furthermore, there are many complex constraints that exist in the real world and don't exist in nursing operations. Hotel rostering, for instance, includes split shifts and rostering multi-skilled employees across multiple departments and job types and yet, this problem doesn't get a mention in the academic literature. There is pretty much nothing there at all for the entire hospitality industry, in fact.

I just had to ask, first, what is the reason for this? And second, can somebody, anybody, please point me to a benchmark problem instance relating to something other than nursing?

Please note, I am aware of the toy multi-activity instances available here, but task scheduling is not of interest.


Solution

  • For what it's worth (as this is an open question, so I expect the SO community will close it):

    (Through Red Hat consulting) I have been involved in cases where they used OptaPlanner for Guard shift Scheduling, electronics store shift scheduling, retirement home shifts, etc besides nurse or doctor scheduling. I've heard of OptaPlanner being used for hotel beds in community, but not yet for hotel shifts.

    But yes, split shifts are difficult because they affect the model: we have a case like that and OptaPlanner works for it, but modeling it efficiently was challenging. OptaPlanner really should have an example with split shifts, but due to lack indeed of a (preferably academic) public case definition with public data and lack of time, we haven't added it yet. Going further, it gets even more challenging and muddy where split shifts decompose to multiple tasks with some tasks requiring multiple people at the same time. From our experience there, I added the auto-delay design patterns in the OptaPlanner docs.

    Multi skilled across multi departments and multi job types is pretty straightforward because they hardly change the model (don't affect planning variables), they just add to the model.