Imagine you are a manager and you have a number of staff members that work shifts. You need to produce a roster for your business. Your industry could be health care, logistics, retail or hospitality. There are many industries where the staff are scheduled using shifts. Now, your challenge is to give every staff member an equal amount of work.
You may first reach for the pen and paper to try and write down a roster. Depending on the number of staff that you must consider, this could become overwhelmingly difficult very quickly. The reason why it becomes so difficult is the topic of this blog.
Considerations for staff rostering
Tackling this challenge is called the task of staff rostering. At first thought, giving every staff member equal work does not seem too difficult. However, it becomes difficult once you start to dig into the details. Some of these details include
- the days of availability are different for each staff member,
- different jobs may require specialist skills,
- there may be different rates of pay and you may have a budget,
- the minimum number of staff required changes throughout the day,
These details can make the task of staff rostering very difficult, even for a small number of staff members. Each of these conditions are restrictions on the problem, like those highlighted on www.optimisationintherealworld.co.uk for a variety of other problems. These restrictions are termed constraints on the problem.
Staff rostering in practice
Mentioned above, staff rostering is used in many different industries. Many of these are covered on the Wikipedia page on shift work.
Of particular interest to me is nurse rostering. This problem is very difficult due to the large number of staff members that must be considered in the development of a roster. Also, within a hospital there are many jobs that require specialist skills, which means there could be a limited supply of appropriately trained staff members. There are also very strict rules on the length of a shift, the number of consecutive shifts and the rest time between shifts that must be adhered to. These rules are necessary for maintaining good working conditions for the staff.
Another industry where the staff rostering is a very challenging task is the airline industry. Similar to nurse rostering, one of the biggest challenges arises from the complex rules related to the working conditions. These rules include: a minimum connection time between consecutive flights, a maximum number of flying hours in a shift, a maximum and minimum rest time between shifts and a maximum length of time away from the home base. In addition to these rules, the airline crew rostering problem also has the complication of the fact that the crew must be assigned to a number of flights to be operated during a day, week or month.
Solving the staff rostering problem
Performing the task in practice, even for a small business owner is a very time consuming task. Creating a nurse roster for a hospital by hand is almost impossible. If it is not impossible, it is very likely that there are many inefficiencies in the developed roster.
This is where optimisation comes in. Whether it is solved exactly or heuristically, the use of a custom built software package makes the task of finding a good rostering solution a relatively simple task.
My experience with staff rostering
My parents are both teachers and a task they they both have to complete is developing a roster for staff members to supervise the playground during break times. The problem that must be solved by my parents is relatively small, in the order of 20 to 25 staff members. However, at this problem size, performing this task by hand to achieve an equitable schedule is still a difficult process. To me this looked like a very good case for using optimisation.
In this problem, we have the following inputs:
- 5 days in the week,
- 17 supervision tasks to be performed each day,
- 25 staff members (some staff members only work part of the week).
The constraints on this problem are:
- each task must be performed by exactly one staff member,
- each staff member can only perform each task once in the week (there is a sub group of staff members who can violate this rule if necessary),
- one task can only be performed by sub group of the staff members.
Since I was building this for my parents to use, my approach was to use OpenSolver within Excel. This model was able to find an equitable solution give the constraints, but it was still slow to solve in some cases. This showed to me that even small rostering problems can be difficult.