2 Literature Review
2.4 Personnel Rostering Methods
2.4.1 Mathematical Programming
Included in this section are publications which use linear programming and integer linear programming methods [43]. The most well known algorithm for linear programming problems is Dantzig’s simplex method [84]. If the linear program has too many variables to define explicitly then column generation may be used. If all the variables are required to be integers (integrality constraint) then the problem is known as an integer programming problem. If only some of the variables are required to be integer then the term mixed integer programming is used. If they must be 0 or 1 then the term 0-1 integer programming is employed. Integer programming problems are usually solved using branch and bound or branch and cut approaches. The design of the model or formulation and how to branch in the tree are often critical to success. For further reading on mathematical programming, one of the most frequently cited references is [194].
One of the first nurse rostering problems to be approached with an exact optimisation method was that presented by Warner and Prawda [243]. The authors formulate a staffing problem as a mixed integer quadratic programming problem. A solution to the problem represents a staffing pattern which specifies the number of nurses with specific skills to cover the shifts for six wards. The goal is to minimize shortage costs while satisfying constraints which cover the total number of skilled nurses in employment and shift coverage. The model allows for some substitution of tasks among skill classes.
Warner [242] later develops a mathematical programming approach for solving shift allocation problems at other U.S. hospitals. Solutions to this problem allocate preferable working patterns to wards of up to 47 nurses over planning periods of 4 or 6 weeks (the problem is decomposed into 14 day periods during solving though). The nurses are first asked to allocate all, or a portion, of a fixed number of points to a small set of schedule properties to describe their preferences for these different properties (the number of points a nurse has to allocate is related to the number of hours they work and points not used may be carried over to the next planning period). For example, a nurse may specify a stronger preference for non-isolated working days to a 7 day work stretch by allocating 10 points to the former and 5 points to the latter. These point allocations (and also day off requests) are then used to allocate a score for different working patterns for each nurse. The objective is to maximise the sum of the scores for each assigned pattern whilst meeting coverage demands and so increase the quality of the overall schedule. The number of possible working patterns is reduced by using fixed shift rotations. The overall system was welcomed by the nursing administration, especially the head nurses. The software later evolved into a system called ANSOS (Automated Nurse Scheduling Office System) which provided additional features such as staffing, management reporting and short term scheduling [244].
Miller et al. [182] use mathematical programming to define a nurse rostering problem but actually solve it using a cyclic descent (local search) algorithm. The solutions, although not guaranteed to be optimal, are found quickly and are close to the optimal solutions produced by a branch and bound method. The system
only takes one shift type into consideration and does not consider part time employees. However, feasible extensions are suggested which could allow the system to include shift rotations and other work contracts.
Hard constraints such as the maximum number of working days and the maximum and minimum numbers of consecutive working days are used to reduce the number of 14 day work patterns to examine during the search. However, these hard constraints can be overruled if they conflict with a requested day off. Soft constraints with weights or aversion coefficients are used along with desired staffing levels to formulate the objective function. The quality of a nurse’s previous schedules is also considered to try and maintain a level of fairness over longer time periods. The soft constraints that are employed include maximum weekends worked, split weekends and maximum consecutive free days.
Bailey and Field [23] propose an alternative to the traditional, fixed start time, 8- hour shifts for meeting personnel demands in any 24-hour work environment (not just hospitals). 6, 8 and 10-hour shifts are used with variable start times to define a problem which is then relaxed and solved using linear programming. If the solutions are non-integer then another algorithm is used to convert them into optimal integer solutions to the general problem. The authors found that their ‘flexshift’ model outperformed the fixed 8 hour shift model with a reduction in staff size, overstaffing and idle time. They also suggest that this model provides more choice to employees in their work patterns. A self-scheduling method for assigning the shifts is suggested but not implemented or tested.
In another paper, Bailey [22] presents an approach which combines the problem of shift planning (where hourly demand fluctuates) and the assignment of those
shifts to employees whilst considering some basic work pattern constraints. The objective is to minimise understaffing subject to a fixed workforce size and overtime restrictions. Linear programming is sufficient to identify the optimal shifts and on-off patterns. The shifts are then matched to the patterns heuristically, aiming to minimise the difference in a nurse’s shift start times over the period. Ozkarahan and Bailey [203] later extended this model using goal programming. The new approach allows users to set their own priorities for goals related to understaffing, overstaffing and total workforce utilisation.
Thornton and Sattar [232] use branch and bound integer programming to solve a nurse rostering problem in an Australian hospital. The model requires nurse to
feasible schedule assignments for full time employees and nurse to shift
assignments for part time employees. As part time employees have fewer and simpler constraints, they have too many feasible schedules to enumerate them all. The problem can be decomposed by not differentiating between late and early shift assignments until a final phase which is solved separately. The objective is to minimise undesirable consecutive day on/off stretches and optionally under/over coverage also.
Mason and Smith [169] describe column generation methods for efficiently solving a nurse rostering problem using linear and integer programming techniques. Columns are generated by solving dynamic programming shortest path problems concerning the nurse’s preferences for different shifts, consecutive on/off patterns and the transition between different work start times each consecutive day. The cover demands are fixed and the approach was able to
satisfactorily solve problems with 86 nurses, 7 skill types and 5 shift types over planning periods of 28 days.
Jaumard et al. [142] solve a nurse rostering problem with the objective of reducing salary costs, improving nurse preference satisfaction and improving the ratio of experienced to less experienced staff in teams. Again, column generation techniques are used with the columns corresponding to individual schedules for each nurse but this time they are generated by solving a resource constrained shortest path problem. The constraints for this auxillary problem are related to the individual nurse’s requirements. For example, the maximum and minimum hours worked per week, the number of consecutive weekends on and then off, shift rotation constraints, the minimum and maximum number of consecutive days worked and the ratios of shift types worked. Nodes in the branch and bound tree are linear relaxations of the master problem which are solved using the column generation (i.e. branch and price). Branching in the tree is performed by progressively fixing or not allowing shift assignments to nurses. Preliminary tests showed that good solutions could be found within acceptable time limits after partially completing the branch and bound.
Millar and Kiragu [181] model a cyclic and non-cyclic nurse rostering problem using networks. Instead of using single shift assignments for each day as nodes in the network, the nodes are actually short patterns of consecutive shifts or days off (called stints). The problem is decomposed by then allowing each node to be one of only seventeen unique stints. The number of stints can be reduced as there are only two, 12 hour shifts and the stints can be no longer than four days. Arcs
between these nodes are then assigned penalty costs to model certain soft constraints or the arcs may be removed if they violate hard constraints, e.g. a nurse requesting not to work on a specific day. The objective of the non-cyclic problem is to minimise the sum of the soft constraint related penalties and the imbalance of day and night shifts worked by each nurse. The network based formulation of the problem is solved using the CPLEX mixed integer solver (branch and bound). Although optimal solutions could not be found in a feasible time period, acceptable solutions could be produced quickly.
Eveborn and Rönnqvist [100] combine integer programming techniques (in the form of branch and price) with heuristics to solve non-cyclical tour scheduling problems. The algorithms are part of a commercial staff scheduling software package. The problem objective is to minimise schedule costs (a combination of total schedule hours and the violation of staff preferences) and the deficit or excess of staff covering each task. Particularly bad individual schedules can optionally be minimised too, to increase perceived overall fairness. The results of using the system to solve the scheduling needs of call centres and a zoo are provided.
Bard and Purnomo [26] combine heuristic and integer programming methods to solve a nurse rostering problem with up to 100 nurses and approximately 13 hard and soft constraints. The objective of the problem is to minimise the costs incurred through employing outside nurses and to maximise the satisfaction of nurses’ working preferences. High quality individual nurse schedules are created using a single or double shift swapping heuristic on a base schedule. These
columns are then used to form a set covering-type problem which is solved using branch and bound. The authors found that, for most of the instances the algorithm was tested on, the majority of the computation time was being spent on generating the columns (executing swaps, checking for constraint violations and duplicate schedules) rather than the branch and bound. The overall rosters produced were of high enough quality for the initiation of system deployment in a number of U.S. hospitals. The authors elaborate with methods and results for including downgrading in this model in [25]. More recently, Bard and Purnomo proposed a nurse rostering model which combines cyclic and preference scheduling. They solved it in [27] using (amongst other mathematical programming techniques) Lagrangian relaxation and branch and price in [210].
As can be seen from the publications discussed above, column generation is often and increasingly being used in mathematical programming approaches to nurse rostering. The columns in nurse rostering problems represent possible work patterns for individual nurses. Due to computational limitations, in the earlier publications, a restricted set of columns is predefined for assignment e.g. [242]. More recently, for example in [26], the columns are generated heuristically by modifying other columns via swapping assignments. The alternative approach is to generate columns using an exact approach, such as a shortest path algorithm, and incorporate the column generation in a more sophisticated method such as branch and price e.g. [142, 169, 210].