A Constructive Shift Patterns Approach with Simulated Annealing for Nurse Rostering Problem Mohammed Hadwan
Masri Ayob
Faculty of Information Science and Technology Universiti Kebangsaan Malaysia 43600 Bangi, Selangor, Malaysia
[email protected]
Faculty of Information Science and Technology Universiti Kebangsaan Malaysia 43600 Bangi, Selangor, Malaysia
[email protected]
Abstract—Nurse Rostering problem (NRP) is an NP-Hard problem, which is difficult to solve for its optimality. This work aims to ensure the availability of enough nurses, by giving them fair consideration during the rostering period. In order to achieve this, we proposed a greedy constructive heuristic algorithm based on the idea of generating the most required shift patterns first to solve the nurses’ rostering problem at Universiti Kebangsaan Malaysia Medical Centre (UKMMC), Malaysia. That is, this approach attempts to reduce the complexity of the solution search space by generating all the allowed two-day and three-day shift patterns to build up the roster. We then use simulated annealing algorithm to improve the quality of the roster. The resulting roster demonstrates that our proposed approach generates a good quality roster in a reasonable time for our case study.
Keywords: timetabling.
workforce,
heuristic,
Meta-heuristic
and
I. INTRODUCTION Universiti Kebangsaan Malaysia Medical Centre (UKMMC) is an educational hospital that belongs to Universiti Kebangsaan Malaysia (UKM), Malaysia that continuously works around the clock to provide its services for the public. As in many hospitals, UKMMC still practises the construction of the two-week roster manually. Therefore, a lack of flexibility in dealing with roster changes and accommodating the nurses’ preferences are among the shortcomings that consume a lot of time and effort. The Nurse Rostering Problem (NRP) at UKMMC has many constraints to be taken under consideration in constructing the working roster. Those constraints can be divided into hard and soft constraints. Hard constraints must be satisfied whilst soft constraints should be satisfied as much as possible. For example, the required coverage demand must be satisfied at all times (hard constraint). The quality of a roster is measured by a penalty value that is calculated based on violating the soft constraints. A smaller value indicates higher quality roster. The aim of this paper is to present the modified version of constructive heuristic that is based on the idea of Brucker et al. [1] to solve our real world NRP. To solve the problem in hand, we generate a feasible shift sequences patterns to be used in the construction phase (i.e. input for constructive heuristic). We then improve the solution using simulated annealing algorithm. For the purpose of this study, we focus on UKMMC datasets only in applying this algorithm. Section 2 of this paper presents a background about NRP. Section 3 is devoted in presenting the rostering problem at UKMMC. In section 4, we introduce the proposed approach. Section 5 is
978-1-4244-6716-7/10/$26.00 ©2010 IEEE
devoted to show the experimental results. Finally, Section 6 concludes the paper with final remarks. II. RELATED WORK NRP is one of the NP-hard problems [2] due to the wide range of hard constraints that must be fulfilled and soft constraints that must be taken into consideration in constructing the roster. Some of the constraints are: management rules, government regulations, operational requirements and nurses’ preferences. Many approaches have been proposed to solve NRP that can be found in these survey papers [3-6]. For example, simple and efficient shift sequence based approach was proposed by Brucker et al. in [1] which proposed as a constructive heuristic to solve NRP. In addition, simulated annealing SA has been applied to solve NRP such as in [3, 7, 8]. They show promising results. Therefore, a modified version of a shift sequence pattern based approach followed by simulated annealing algorithm is proposed to solve our UKMMC case study. III. NURSE ROSTERING PROBLEM AT UKMMC In this work, we use a UKMMC NRP as a case study. The number of nurses in UKMMC are more than 1,400 [9]. These nurses are responsible for more than 900 beds that must be attended 24 hours a day and 7 days a week. One of the major complaints raised by the nurses is that the head nurses were not distributing workloads fairly. In addition, their requests preferences were often ignored [3]. We noticed that, the two weeks roster was still being constructed manually in UKMMC. The whole construction process usually takes between 4 days to 1 week –depending on the ward’s size. Before the rostering process begins, ‘Requests Book’ will be opened to allow nurses to place their preferences. The ‘Requests Book’ must be closed before the head nurse starts with the roster construction process. After this stage, it is very difficult to place any more requests. More details about the UKMMC NRP can be found in[9]. A. UKMMC Hard and Soft Constraints For the UKMMC NRP, we have identified the following hard constraints: (H1) All shifts must have at least the minimum requested number of nurses i.e. Coverage demand (See table 3). (H2) All nurses cannot work more than one shift per day. (H3) At least one senior nurse must be present for every shift.
(H4) No isolated working day are allowed. For example, XMX which is day-off, morning shift then day off. (H5) The maximum working days are 12 days for each fourteen days and the minimum is 10 days. (H6) The maximum consecutive working days is 4 days. (H7) For all night shifts, it must be in the form of four consecutive nights that must be followed by two days off. (H8) All nurses must have at least 2 days off per two-week (fortnight) roster. Based on the literature review, hard constraints (H1) and (H2) are among the most common constraints for NRP. The other constraints vary from one problem to another. The quality of the roster depends on how far we can satisfy the soft constraints. The soft constraints for the UKMMC NRP are: (S1) Attempt to give fair number of working days and days off to all nurses. (S2) Attempt to give each nurse at least one day off in the weekend during the allocated roster period. (S3) Attempt to give four consecutive morning shifts followed by one day off. (S4) Attempt to give four consecutive evening shifts followed by one day off. (S5) Attempt to give an evening shift after 2 days off that follows the night shift or day off. Normally, the higher weight is used to indicate the higher value and importance of the specific soft constraint to be satisfied. Based on discussion with the head nurses, we identify the importance of each soft constraint and assign an appropriate penalty (Weight) value for each violation of soft constraint (see table 1). These penalty values were recommended by the head nurses (and also from literature [10]). TABLE 1. THE WEIGHTS OF EACH SOFT CONSTRAINT Soft Constraints Weight of violation W1 Gives a fair number of working days and days off to all nurses. 100 W2 Gives each nurse at least one day off in the weekends. 100 W3 Gives four consecutive mornings shift followed by one day off. 10 W4 Gives four consecutive evenings shift followed by one day off 10 W5 Gives an evening shift after the day off that follows night shift 1 or day off.
For instance, if we have five (5) nurses with the following number of working days and days off as in table 2: Nurse N1 N2 N3 N4 N5
TABLE 2. EXAMPLE OF HOW TO CALCULATE THE WEIGHT Total Total Violation of S1 working days No. of days off 10 4 100 12 2 100 11 3 0 11 3 0 10 4 100 Total Penalty 300
Note: ideal case is 11 working days and 3 days off.
From the Table 2, by applying formula (S1), penalty value is calculated. N1 and N5 received a negative deviation (Penalty = 100 for each violation) and, N2 received a positive deviation.
Whilst, N3 and N4 got eleven (11) working days and three (3) days off which is the ideal situation, so they received no penalty. Then we use our objective function to calculate those violations and get the total sum, which is 300 for the total weight of violation in this situation. B. Coverage Demand The coverage demand is the most important constraint that must be satisfied (H1). These constraints indicate the minimum required number of nurses and the needed skills combinations for each shift and day. For example (see Table 3), in ward Sgy 5, there are 18 nurses. The ward needs 11 nurses to work during the weekdays and 8 nurses to work during the weekends. See Table 3 for more details about the minimum required number of nurses for each day and shift for different wards at UKMMC. It should be noted that each ward has different coverage demands. TABLE 3. THE MINIMUM COVERAGE DEMAND Weekdays (Mon-Friday) Weekend (Sat-Sun) Dataset Total Morning Evening Night Morning name nurses 7AM-2PM 2PM-9PM 9P-7AM 7AM-2PM CICU 11 3 3 2 2 Sgy5 18 4 4 3 4 MD1 19 4 4 3 4 NICU 49 10 10 10 8 N50 50 10 10 10 10 ED 57 13 13 10 11 GICU 73 16 16 15 15 ICU 79 17 17 16 16
Evening 2PM-9PM 2 4 4 8 10 11 15 16
Night 9PM-7AM 2 2 2 7 10 8 14 15
C. Shift Patterns There are many shift patterns, which are categories as: 1) prohibited patterns, whereby those patterns are not allowed to occur due to the hard constraints. 2) Undesirable patterns, where the shift pattern is allowed but not desirable to be assigned to nurses (violate soft constraint). 3) Desirable patterns, which are highly preferable by nurses (no violation to any constraint). The more desirable the pattern to be given to the nurses the more nurses’ preferences will be satisfied. See table 4 for more details about some examples of these shift patterns. TABLE 4. EXAMPLE OF DIFFERENT TYPE OF SHIFT PATTERNS Prohibited No Undesirable No Desirable patterns patterns patterns 1 2 3 4 5
NNNNM NNNNE MNX ENX XMX
6 7 8 9 10
MMEEXM NNNNXXN NNNNXXM MMMM MEME
11 12 13 14 15
XMMMMXX EEEEX NNNNXX NNNNXXE NNNNXXX
X= Day off, M= Morning, E= Evening, and N=Night
Referring to the examples in Table 4, for prohibited shift pattern, such as four consecutive nights followed by morning shift (NNNNM), this pattern will be prevented because of the imposition of the hard constraint (H6) and (H7). In considering the undesirable shift patterns, for example MMEEXM, which indicates the sequence pattern of consecutive Morning, Morning, Evening, Evening followed by a day off and followed by a Morning shift, is an allowed pattern but it violates the soft constraint S3 and S4. Referring to Table 4, for desirable shift patterns, for example, four consecutive
morning shifts followed by a day off (XMMMMXX) or four consecutive evening shifts followed by one day off (EEEEX). For the two-week roster period, the possible occurring night patterns are listed in table 5 for P10 and P11 the patterns will be fully constructed during the next schedule. TABLE 5. POSSIBLE NIGHT PATTERNS FOR TWO WEEKS ROSTER [9]. P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 Mon N N N Tue N N N Wed N N N Thu N N N Fri X X X N N N Sat X X X N N N Sun N N N Mon N N N Tue X X X N N N Wed X X X N N N Thu N N N Fri N N N Sat X X X N N Sun X X X N N N= Night shift, X = Day Off
IV. MATHEMATICAL MODEL In this section, we have presented our mathematical formulation for UKMMC nurse rostering problem. We use the notations that are in table 6. TABLE 6. USED NOTATIONS
I Is D G W S P d s w p R ds
dp Xids Ypi
is the set of available nurses during the scheduling period i=1...n; is set of senior nurses, Is I; is the set of days; is the set of grades; is the set of weights; is the set of shifts; is the set of possible night patterns; is the dth day where d ∈D; is the sth shift where s ∈S; is wth weight where w ∈ W; is pth possible pattern where p ∈ P; is the demand for day d on shift s is the starting date for pattern p. is a decision variable where Xids=1 if nurse i works on day d shift s; or 0 otherwise; is a decision variable where Ypi= 1 if pattern p is worked by nurse i; or 0 otherwise.
A. Goals: In order to incorporate the soft constraints in the rostering model, our goals are: Goal 1: Minimise the violation of (S1) Goal 2: Minimise the violation of (S2). Goal 3: Minimise the violation of (S3). Goal 4: Minimise the violation of (S4). Goal 5: Minimise the violation of (S5).
B. The model: As in [4], we use the weighted method approach, where the objective function in the problem concerns minimising the total penalty that occurs due to the violations of soft constraints. For this rostering problem, the possible shifts are: morning, evening, night and day off. These four shifts are respectively represented by the set S= {1,2,3,4} as the day off represented by shift number 4 in order to ease the modelling. As it is difficult to model H7 (NNNNXX), we deal with it as a definite shift pattern (See table 5). In this work, and due to our different set of soft constraints, we propose a new objective function that differs from other objectives in the literature. Our new objective function aims to minimise that total penalty that occurs from violating the soft constraints during constructing the roster. W 1¦ (d1 d1 ) W 2¦ d 2 i i i i I i I
min f
W 3¦ ¦ d3id W 4¦ ¦ d 4id W 5 ¦ d5p i I d D
i I d D
p P
The W1,W2,W3,W4 and W5 are respectively the weights associated with goal 1,2,3,4 and 5. Subject to
¦X
id (1)
t R d (1) , d D
(H1a)
¦X
id (2)
t R d (2) , d D
(H1b)
¦X
id (3)
t R d (3) , d D
(H1c)
i I
i I
i I
¦X
ids
¦X
ids
s S
i I s
(H2)
1 for i I , d D t 1 for d D , s
(H3)
1..3
X id (4) X i (d 1)(1) X i (d 1)(2) X i (d 1)(3) X i (d 2)(4) d 2 for i I , d
1..| D | 2
¦ ¦
X
ids
d 12 for i I
¦ ¦
X
ids
t 10 for i I
d D s S ^4`
d D s S ^4`
(H5a) (H5b)
X id 4 X i (d 1)4 X i (d 2)4 X i (d 3)4 X i (d 4)4 t 1 for i I , d
¦Y
pi
¦Y
pi
i I
p P
¦Y
pi
i I
X i I
pi
(H7a) (H7b)
d 1, i I id p (3)
i ( d p 4)( 4)
¦Y
(H6)
1... D 4
1, p P
(X
(H4)
X
X
i ( d p 1)(3)
i ( d p 5)( 4)
)
(X id p 3 X i (d p 1)3 )
X
i ( d p 2)(3)
6, p
2, p
X
i ( d p 3)(3)
(H7c)
1..9
10,11
(H7d)
¦X
d D
t 2 for i I
(H8)
X ids (d1i -d1i )= 11 i I
(S1)
id 4
¦ ¦
d D s S ^4`
X i (6)(4) X i (7)(4) X i (13)(4) X i (14)(4) X
id (1)
i (d 1)( 2)
i I ,d X
id ( 2)
X
i I
pi
i (d 1)(1)
i I
p
pi
u (X
u (X p
(d5 d5 )
(d4id d4id )
1... D 1 i (7)( 2)
(d5p d5p ) (¦ [Y
1
(S3)
1
(S4)
1... D 1
i I ,d (¦ [Y
(d3id d3id )
X
i (7)( 4)
)])
(S5a)
1 p {1,2,3}
i (11)( 2)
X
i (11)( 4)
)])
(S5b)
1 p {4,5,6}
The constraints (H1) to (H8) represent the hard constraints; Constraint (H1a, H1b and H1c) ensures that the demand is fulfilled at all times. While, constraint (H2) states that each nurse is working one shift a day at the most. In addition, constraints (H3) impose to have at least one senior nurse for each shift. Furthermore, constraint (H4) ensures not to give an isolated working day. Next, constraint (H5a) ensures that the maximum number of working days during the whole rostering period is 12 days. However, constraint (H5b) ensures that the minimum number of working days during the whole rostering period is not more than 10 days. Meanwhile, constraint (H6) ensures the maximum number of consecutives working days is 4 days. Then, (H7a, H7b, H7c and H7d) ensure that the patterns are covered exactly per one nurse for each. Constraint (H8) states that each nurse is subject to have at least two days off during the roster period, which is 14 days. Constraint (S1) is to give fair number of working days and days off to all of the nurses which is the average between the maximum and minimum working days 12+10 = 22/2=11 working days. Constraint (S2) ensures to give at least one day off in the weekend during the roster period. Constraints (S3) and (S4) attempt to give stable shifts, either consecutive morning or evening. Constraints (S5a and S5b) attempt to give either day off or an evening shift after the days off that followed the night shift. For more details about the shift patterns, see table 4. The constraints (S1) to (S5b) represent soft constraints; d1 (respectively d1 ) is the amount of negative (respectively positive) deviations from goal 1 for nurse i. both positive and negative deviations are penalised. d 2 (respectively d 2 ) is the amount of negative (respectively positive) deviations from goal 2 for nurse i. negative deviations are penalised. d3 (respectively d3 ) is the amount of negative (respectively positive) deviations from goal 3 for day d and nurse i. Negative deviations are penalised. d4 (revspectively d4 ) is the amount of negative (respectively positive) deviations from goal 4 for day d and nurse i. Negative
i
i
i
i
id
id
id
id
id
id
V. A CONSTRUCTIVE SHIFT PATTERNS APPROACH (S2)
(d2i d2i ) 1 , i I X
deviations is penalised. d5 (respectively d5 ) is the amount of negative (respectively positive) deviations from goal 5 for day d and nurse i. Positive deviations are penalised.
In this work we proposed modified approach as in [1] to solve our case study. Therefore, we have used a similar concept of generating the most required shift patterns first then allocate those patterns to the available nurses. But our work is different from the work in [1] in the way of selecting those valid patterns and the way of allocating those patterns to the nurses, for instance, they just chose the patterns with low penalty or the first 50 good patterns, where as in our work, we consider the whole valid shift sequence patterns list These steps of solving this problem are to: 1) Generate all valid 2-day and 3-day shift patterns. 2) Consider only 1 nurse with 7 days in the first phase. 3) Combine those generated shift patterns to form one-week pattern. Finally, in 4) apply simulated annealing algorithm to improve the constructed solution in the previous steps. Dividing the problem in hand into smaller problems helps in reducing its complexity and decreases the search space that helped us to minimise the construction process. By doing so, we were able to take care of each part of the problem and propose the suitable technique to solve it. Each steps of this algorithm are discussed in more details in the following sections: A.
Generate Shift Sequence Patterns In this Phase, the search space is reduced by taking into account the number of nurses to be considered in constructing the shift pattern as one nurse only in which case seven days were taken into consideration in order to generate a valid shift pattern to be used in the construction of the initial solution phase. To reduce the solution search space, we follow these steps: Step 1: Initialise the parameters: o Number of nurses = 1 nurse, o Number of days = 7 days, - Generate the restrictions list based on the hard constraints and soft constraints that affect only two or three days shift patterns for one nurse only. For example: Minimum/Maximum number of shifts per day. Minimum time between shifts. Valid patterns, such as 1 night must be followed by 1 day off (for a two days shift pattern) In addition to other relevant elements. - Then, generate all valid shift sequence patterns starting by generating all possible two and three days sequence patterns. Step 2: Filter all the produced shift sequence patterns using the restrictions list that was generated in step 1; then give an index to each sequence and save them in Valid_Shift_Sequence table. Then go to construction the initial solution phase.
See table 7 and 8 for all valid 2-day and 3-day pattern respectively. TABLE 7. ALL 2-DAY VALID PATTERNS. No. Pattern No. Pattern No. Pattern 1. XX 6. MM 11. EN 2. XM 7. ME 12. NX 3. XE 8. MN 13. NN 4. XN 9. EX 5. MX 10. EE X= Day off, M= Morning, E= Evening, and N=Night No. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
TABLE 8. ALL 3-DAY VALID PATTERNS. Pattern No. Pattern No. Pattern XXX 14. MEE 27. MNX XXM 15. EXX 28. MNN XMM 16. EXM 28. EXN MXX 17. EXE 30. EEN MXM 18. EEX 31. ENX MMX 19. EEE 32. ENN MMM 20. XXN 33. NXX XXE 21. XMN 34. NXM XME 22. XEN 35. NXE XEE 23. XNN 36. NXN MXE 24. MXN 37. NNX MME 25. MMN 38. NNN MEX 26. MEN X= Day off, M= Morning, E= Evening, and N=Night
B.
Construct the Initial Solution In this phase, we were only able to test the generated shift sequence patterns against the constraints that have one week long or fewer days and only require one nurse only, such as maximum/minimum shifts per day, maximum/minimum shifts per week, and undesirable patterns, which have a violation weight of value of more than 100. However, the coverage constraint, whole rostering period constraints i.e. equal number of working shifts and day off patterns will be dealt with in the latter steps of this phase.
Step 1: Determine the number of shift sequence patterns that are needed to form the whole rostering period. For example, if the roster period is one week, we will need one pattern constituting of a three-day shift sequence pattern + 2 patterns of a two-day shift sequence patterns. See figure 1 for more explanations and further understanding. NNN
NX
XX
NNNNXXX FIGURE1. EXAMPLE OF COMBINE 3 SHIFT PATTERNS TO FORM ONE WEEK SHIFT PATTERN.
Step 2: Construct the Initial solution space, by placing the required number of each shift sequence patterns starting by 3days valid sequence patterns for each nurse. Step 3: Use a brute force algorithm to make an exhaustive feasibility search constraints for the remains hard/soft constraints. Step 4: Use greedy iterative repair method to check the coverage constraints and skill constraints. Step 5: Save the Initial solution matrix.
Table 9 shows some examples pertaining to the one-week shift pattern after it is combined with 3-day shift pattern and two 2-day shift pattern. No. 1. 2. 3. 4. 5.
TABLE 9. EXAMPLE OF ONE-WEEK PATTERNS Pattern MMMMXXX EEEEXXX NNNNXXX XMMMMXX XXEEEEX
See figure 2 for more details about the construction procedure Construct_Initial_Solution_Procedure Based on the default problem size, define how many patterns needed to cover the whole rostering period. I. Generate a solution_state_table [Nurse, Number of patterns]. II. Construct the Initial solution Matrix, by placing the required number of each shift sequence patterns starting by 3-days valid sequence patterns for each nurse. III. Use a brute force algorithm to make an exhaustive feasibility search constraints for the remains hard/soft constraints. IV. Use greedy iterative repair algorithm to check the coverage constraints and skill constraints. V. Generate the initial_ solution_matrix: a. Row is marked as “Nurses” b. Column is marked as “Weeks” c. Fill up the shift patterns for all nurses and all weeks start by nurse 1 and week 1 then nurse 1 and week 2 until the end of the list. i. Repeat until the last nurse and last week. VI. Save Initial_Solution_Matrix. FIGURE 2. INITIAL SOLUTION CONSTRUCTION PROCEDURE
C. Simulated Annealing Optimiser Simulated Annealing (SA) is one of the temperatures based local search method inspired by the process to simulate the physical cooling process [11]. There must be an existing initial solution to apply SA. Hence, after constructing the initial roster in the second stage, SA is applied to improve this initial solution by moving from the current solution candidate to another neighbour candidate based on predefined moves. The aim is to improve the objective function value, which is to decrease the total penalty of the initial roster in our problem. At this stage, the optimal or near optimal solution is produced. The roster is then ready to be printed or saved when needed. See figure 3 for the simulated annealing procedure. Procedure SIMULATED_ANNEALING; determine initial candidate solution s set initial temperature T according to annealing schedule While termination condition not satisfied: probabilistically choose a neighbour s’ of s If s’ satisfies probabilistic acceptance criterion (depending on T ): s := s’ If s better than Best Solution BS BS:= s update T according to annealing schedule FIGURE 3. SIMULATED ANNEALING IN PSEUDO-CODE [6]
The procedure of simulated annealing is the standard simulated annealing as in [6] but we add best solution BS variable to save the best solution that we have got so far. VI. EXPERIMENTAL RESULT In this work, we use UKMMC as our case study. We choose eight datasets with different levels of complexity involving number of nurses, which is in the range of 11 to 79 for length of two weeks with different types of skills. Please refer to the discussion section for details discussion on our experimental results. We ran our experiments by the utilisation of an Intel laptop 1.73 GHz with 2 GB RAM and windows vista 32-bit operating system. The codes were implemented using Python 2.5. For each dataset, we ran our automated nurse roster tool for a number of 10 times and obtained the average result that is presented in Table 10. To be more precise with the run time, we obtained all the run times for each dataset from the clock function in Python 2.5. Table 10 indicates the experimental results on the case study dataset.
No.
Dataset Name
No. Of Nurses
No. Of Shifts
No. Of Days
No. Of Skills
Average of Min Penalty
Average of Construction Time in Sec
TABLE 10. EXPERMINTAL RESULT OF UKMMC DATASET
1
CICU
11
3
14
2
12.3
55
2 3 4 5 6 7
Sgy5 MD1 NICU N50 ED GICU
18 19 49 50 57 73
3 3 3 3 3 3
14 14 14 14 14 14
2 2 2 2 2 2
13 10.16 10.9 10 14 13.1
72 83 91 95 135 153
8
ICU
79
3
14
2
14.1
204
VII. DISCUSSION Table 10 shows the efficiency of our algorithm in terms of the average speed. In general, we can construct the roster between less than 1 minute and 3 minutes. The minimum penalty weight is 10, which demonstrates the quality of the solution. These experimental results show that our algorithm works well for UKMMC NRP with very good results in execution time, fairness and other performance considerations. VIII. CONCLUSION AND FUTURE WORK This study aims to contribute towards solving real world NRP that arises in Universiti Kebangsaan Malaysia Medical Centre (UKMMC), Malaysia. UKMMC was chosen as a case study to carry out the research and acquire a real world data set as this particular medical centre is affiliated to the university that the researchers are attached to. This study has shown that the current nurse roster at UKMMC is still being manually generated, which is time consuming. A mathematical model of UKMMC is also presented in this paper. In order to solve NRP at UKMMC, we have proposed modified shift patterns approach followed by simulated annealing algorithm to generate good quality roster. Generally, our approach is divided into three main stages, 1) Initialise the problem by reducing search space and
generating a valid shifts sequences patterns. 2) Construct feasible or near feasible initial solution, 3) Optimise the initial solution that were constructed in the previous two stages to get the optimal or near optimal solution. The results showed that our proposed approach is capable in accommodating all the hard and soft constraints experienced by the rostering system at UKMMC. Indeed, we produced a good quality roster in all the cases. Our future work will try to find any other ways of generating a better quality shift patterns and we will endeavour to apply other optimisation algorithms in order to compare computational time and the quality of the roster of the new proposed methods. In this study, we have achieved the goal of providing an automated nurses rosterer tool that is able to generate high quality roster for our case study. ACKNOWLEDGEMENT The authors wish to thank the nursing department at UKMMC for their help in gathering the real world datasets that were used in the experiments of this paper. We would also like to thank all of those concerned, who were involved in making this study a success. REFERENCES [1] P. Brucker, E. Burke, T. Curtois, R. Qu, and G. V. Berghe, "A shift sequence based approach for nurse scheduling and a new benchmark dataset," Journal of Heuristics, 2008. [2] T. Osogami and H. Imai, "Classification of Various Neighborhood Operations for the Nurse Scheduling Problem," Proceedings of the 11th International Conference on Algorithms and Computation, pp. 72-83, 2000. [3] E. K. Burke, P. D. Causmaecker, G. V. Berghe, and H. V. Landeghem, "The State of the Art of Nurse Rostering," J. of Scheduling, vol. 7, pp. 441-499, 2004. [4] B. Cheang., H. Li., A. Lim., and B. Rodrigues., "Nurse rostering problems--a bibliographic survey," European Journal of Operational Research, vol. 151, pp. 447-460, 2003. [5] D. Sitompul and S. Randhawa, "Nurse Scheduling Models: A State-ofthe-Art Review," Journal of the Society of Health Systems 2 pp. 62–72, 1990 [6] E. K. Burke and G. Kendall, Search Methodologies: Introductory Tutorials in Optimization and Decision Support Techniques: Springer, 2005. [7] D. Parr. and J. M. Thompson., "Solving the multi-objective nurse scheduling problem with a weighted cost function," Annals of Operations Research, vol. 155, pp. 279-288, 2007. [8] B. Bilgin, P. D. Causmaecker, and G. V. Berghe, "A Hyperheuristic Approach to Belgian Nurse Rostering Problems," in MISTA 2009, : Theory and Applications. vol. 4th Multidisciplinary International Scheduling Conference Dublin, Ireland, 2009. [9] M. Hadwan and M. B. Ayob, "An Exploration Study of Nurse Rostering Practice at Hospital Universiti Kebangsaan Malaysia," in 2nd Conference on Data Mining and Optimization, 2009. DMO '09. . vol. 2 Bangi, Selangor Malaysia: IEEE, 2009, pp. 100 - 107. [10] E. K. Burke, T. Curtois, G. Post, R. Qu, and B. Veltman, "A Hybrid Heuristic Ordering and Variable Neighbourhood Search for the Nurse Rostering Problem," European Journal of Operational Research, vol. 188, pp. 330-341, 2008. [11] S. Kirkpatrick, C. D. Gelatt, and M. P. Vecchi, "Optimization by Simulated Annealing," Science, vol. 220, pp. 671–680, 1983.