include facility management centers, telephone call centers, tollbooths, bus drivers, etc ..... S6. S1. W11. S2. S3. S4. S5. S6. Fig. 8. Transforming a 6-day cycle into ..... Handling Language CHIPâ, Proceedings of International Conference on Fifth.
Lecture Notes in Computer Science
1
CYCLICAL STAFF SCHEDULING USING CONSTRAINT LOGIC PROGRAMMING Peter Chan 1 and Georges Weil 2 * 1
COSYTEC S.A., 4 Rue Jean Rostand, Parc Club Orsay-Université, F-91893 Orsay-Cedex, France 2 Laboratory TIMC-IMAG, Université J.Fourier, Faculté de Médecine de Grenoble, F-38700 Grenoble, France
Abstract. In organizations where duty is around the clock, 7 days a week and every week of the year, timetabling is a very difficult task, juggling between the workload and the constraints to be respected. Our work concerns cyclical timetabling. This is not just duplicating a fixed sequence of assignments, but has to consider fixed annual leave, and various regulations on assignments on successive days. In some cases, the cycle sequence has to be relaxed and cycle length shortened or extended. In other cases, a small change in leave dates is allowed, except in summer. This paper describes the context and the use of work cycles in the real world, proposes an abstract model to take into account the various constraints, and finally show how to implement an effective solution using Constraint Logic Programming (in particular, CHIP V5) to produce timetables of up to 150 people over a yearly horizon.
1 Introduction Employee timetabling addresses the management problem of scheduling human resources every day to meet estimated requirements such that goals and constraints of the management, labor union and personnel are satisfied. In establishments who operate around the clock and all around the year, this is a very highly combinatorial task. Hospitals have an additional dimension of qualification or grade (full diploma nurses, health workers, etc.). In most other cases, the staff is polyvalent and there is no distinction on qualification: police, prison guards, firemen, postal centers or public utility servicemen in the public sector. Private establishments include facility management centers, telephone call centers, tollbooths, bus drivers, etc.
*
Both authors are currently at EQUITIME S.A., Le Grand Sablon, 4 Ave. de l’Obiou, F-38700 La Tronche, FRANCE. Addresses are {pchan|gweil}@equitime.com. http:://www.equitime.com Paper presented at Third International Conf. on the Practice and Theory of Automated Timetabling. (Eds. E. Burke and W. Erben). Also in Lecture Notes in Computer Science 2079, Pg. 159-175, 2000.
Lecture Notes in Computer Science
2
1.1 Motivation Timetables can either be cyclic or not. Cyclic timetables tend to follow a predefined work cycle designed to give ideal balance between daily work and rest. Non-cyclic timetables are created to meet daily requirements while satisfying management goals and worker preferences Work Cycles are used to assure both equality among workers and the best service quality. When the same assignments are made in turn, everybody share both popular and unpopular work equally. Not being specialized in some of the activities of the establishment, the workers become globally competent and offer good service. The work reported in this paper is aimed at producing timetables for groups of some 150 people over one year, based on the choice of a work cycle and usual annual leave patterns. This simulation allows workers to choose their work cycle, after studying in detail resulting timetables, instead of some “theoretical” cycle properties, which may be meaningless to workers. The simulator had to produce timetables that satisfy management requirements. This work follows earlier work of the authors (cf. [2] and [8]) in non-cyclical timetables. A comparison between the two types of timetables will be given at the end of the paper.
1.2 Contribution The contribution of this paper is to (a) describe the constraints applicable in timetables based on work cycles, (b) propose a model to unify daily and weekly cycles and (c) demonstrate the application of Constraint Programming techniques (using Second Generation tools like CHIP V5) to solve practical instances of the timetable problem. Contrary to popular believe (cf. [3]), work cycles are not simply duplicated identically over the time horizon. In addition to meeting requirements, they have to be adapted around fixed annual leave patterns, extended or shortened to allow day off while ensuring rest after night duty. Similar to many practical applications, the real challenge is to introduce relaxation in an acceptable way. This is why Constraint Programming was used. The paper continues with details of the cyclic timetable problem in § 2. Our approach is given in § 3, followed by a comparison and conclusion in § 4. As an anecdote, in one particular institution where a 12-week cycle was proposed, a 4month timetable for 15 persons (with some leave periods) was produced manually. It was found that the cycle was broken for at least two persons every week, not to mention the severe headache it gave to the planning staff. Today, our application can generate annual timetables without breaking the cycle and in less than 20 seconds on Intel ® Pentium 200 MHz. In this paper, a resource can either be an individual worker or a team of workers who share the same timetable (we will not discuss here the situations where the individual timetable differs from the team timetable in some 20% of the days). The code examples use the Prolog syntax of CHIP. For more details, see [1].
Lecture Notes in Computer Science
3
2 Problem Definition Our work is applied to the case where the workers are flexible to work any shift. The problem is to schedule resources optimally to meet requirements while respecting different constraints which will be recalled in § 2.1. The institution is split into several groups, each having the same kind of work. For each group, we have requirements (numbers of workers) over each period of the given horizon and we propose a work organization using a given work cycle.
2.1 Organization with Work Cycles This paragraph describes the various constraints of the problem. The last two constraints §2.1.5 and §2.1.6 are specific to the institution. Cycle Constraint. We will discuss simultaneously both daily cycles (where the period size is one day) and weekly cycles (a period of one week), where N denotes the number of periods in the cycle. Figure 1 shows a 5-day and a 4-week cycle. Each column in these figures represents one day, where Si are work shifts, taken to be a set of legal working hours per day. For practical purposes, we do not have to know what Si represents (e.g. S1=morning, S2=afternoon, S3=night, S4=rest, and S5=off) only that the weekly day off is incorporated in the cycle.
D1 D2 D3 D4 D5
S1 S2 S3 S4 S5
W1 W2 W3 W4
M S1 S5 S3 S5
T S1 S5 S3 S5
W S5 S1 S5 S3
T S5 S1 S5 S3
F S3 S5 S1 S5
S S3 S5 S1 S5
S S3 S5 S1 S5
Fig. 1. Definition of 5-day and 4-week cycles
The simple application of these cycles over 10 days and 8 weeks is shown below for N resources (R1 to RN), without taking leave into account. Real timetables are shown in figure 3.
R1 R2 R3 R4 R5
1 D5 D4 D3 D2 D1
2 D1 D5 D4 D3 D2
3 D2 D1 D5 D4 D3
4 D3 D2 D1 D5 D4
5 D4 D3 D2 D1 D5
6 D5 D4 D3 D2 D1
7 D1 D5 D4 D3 D2
8 D2 D1 D5 D4 D3
9 D3 D2 D1 D5 D4
10 D4 D3 D2 D1 D5
1 W4 W3 W2 W1
2 W1 W4 W3 W2
3 W2 W1 W4 W3
4 W3 W2 W1 W4
5 W4 W3 W2 W1
6 W1 W4 W3 W2
7 W2 W1 W4 W3
8 W3 W2 W1 W4
Fig. 2. Simple application of highlighted cycles over N resources (N=4, N=5)
The daily work cycle is defined by a sequence of N work codes, where N is not a multiple of 7. A code Di is a daily shift composed of a given set of working hours. Any one resource, say Rj , is assigned to code Di on one day then to Di+1 the following day and back to D1 at the end
Lecture Notes in Computer Science
4
of the cycle. On any one day, there is at least one resource assigned to each code. We do not assume that the shifts do not overlap. The weekly work cycle is defined by a sequence of N work codes, each W i being a weekly shift defining the sequence of shifts for each day of the week. The cycle is represented by a matrix of N rows and 7 columns. Any one resource, say Rj , is assigned to shifts on W i then to W i+1 the following week, and back to W1 at the end of the cycle. On any one week, there is at least one resource assigned to each code or row of the matrix. CYCLE CONSTRAINT : Each resource is assigned successively to codes Xi then Xi+1, and XN to X1, where Xi is a day code Di, in the case of daily cycles and Wi in weekly cycles. In both cases, N is the number of codes in the cycle. Requirement Constraint. Taking into account the operating mode of work cycles, each code of the cycle is assigned to a resource at every period. I.e. during each period, the sum of the codes of the cycle must be sufficient to cover estimated needs. For daily cycles, the sum of all shifts must cover the needs of the day. For weekly cycles, the sum of weekly shifts cover the needs over the week, i.e. for each day of the week, the sum of shifts for each day cover the needs of that day. REQUIREMENT CONSTRAINT : At each period of the horizon, each cycle code is assigned to at least 1 resource. If two resources are assigned to the same code, then there is surplus. Leave Constraint. Annual leave is considered fixed because it is planned over several years to allow workers to have summer leave in August. Many workers take leave starting on Monday and benefit from the preceding weekend. The equivalent rule in continuous work organizations is day off before leave. The complementary rule is that the day following leave must not be off. LEAVE CONSTRAINT : The day preceding annual leave must be off (i.e. the weekly day-off) and the day following leave must not be off. This constraint requires that specific shifts must precede (in our example S5) or follow leave (S1 or S2). Interpreted in weekly cycles, those weekly shifts with off on weekend must precede leave. The weeks with worked weekend can follow leave. In our example, S5 being off at the end of W 2 and W 4, only the even-numbered codes can precede leave.
R1 R2 R3 R4 R5
1 Sp S5 S4 S3 S2
2 AL S1 S5 S4 S3
3 AL S2 S1 S5 S4
4 AL S3 S2 S1 S5
5 AL S4 S3 S2 S1
6 AL S5 S4 S3 S2
7 AL S1 S5 S4 S3
8 AL S2 S1 S5 S4
9 AL S3 S2 S1 S5
10 AL S4 S3 S2 S1
11 AL S5 S4 S3 S2
12 S1 AL S5 S4 S3
13 S2 AL S1 S5 S4
14 S3 AL S2 S1 S5
15 S4 AL S3 S2 S1
16 S5 AL S4 S3 S2
17 S1 AL S5 S4 S3
18 S2 AL S1 S5 S4
19 S3 AL S2 S1 S5
20 S4 AL S3 S2 S1
21 S5 AL S4 S3 S2
Lecture Notes in Computer Science
R1 R2 R3 R4 R5
1 Sp W1 W2 W3 W4
2 AL W2 W3 W4 W1
3 AL W3 W4 W1 W2
4 AL W4 W1 W2 W3
5 W1 AL W2 W3 W4
6 W2 AL W3 W4 W1
7 W3 AL W4 W1 W2
8 W4 W1 AL W2 W3
9 W1 W2 AL W3 W4
10 W2 W3 AL W4 W1
11 W3 W4 W1 AL W2
12 W4 W1 W2 AL W3
13 W1 W2 W3 AL W4
14 W2 W3 W4 W1 AL
15 W3 W4 W1 W2 AL
5
16 W4 W1 W2 W3 AL
Fig. 3. (a) Application of 5-day cycle over 21 days with 10-day leave (AL) (b) Application of 4-week cycle over 16 weeks with 3-week leave
Figure 3 does not show complications when the leave is a multiple of N in daily cycles, or when the leave is even in weekly cycles. More details on the problem and the relaxation methods used to solve it are proposed in § 2.3. Three copies of the weeks 2-16 would create a timetable over 45 weeks, but 9 weeks of leave exceeds the legal entitlement. In general, simple duplication of a work cycle would break some specific constraint described in the following paragraphs. Daily Rest Constraint. Workers must have sufficient rest after each workday. E.g. after a night shift, workers must be given a rest day (in our example, S4 must follow S3). DAILY REST CONSTRAINT : Some shifts must follow specific shifts to allow sufficient rest. In the case of weekly cycles, this constraint can be translated by considering the last day of the preceding weekly shift with the first day of the following weekly shift. Constraints for specific periods : To avoid excess capacity, different cycles (or variants of a same cycle) must be adopted during specific times of the year. In one institution, these times are defined to be when no resource is on leave over at least 1 week in a row. N-day cycles are extended to N+1 days, so that the extra time is redistributed equally to all workers (whatever the assignment may be). In groups where weekly cycles are used, one resource is assigned to “Spare”. Spare Team Constraint: In some institutions, to design some flexibility into the work cycle, an additional team is added to the group. Hence one team is cyclically assigned “Spare” in a block and typically precedes or follows leave. In addition to handling unforeseen situations, these workers may be used to reinforce the other teams.
R1 R2 R3 R4 R5 R6
1 AL W2 W3 W4 W1 Sp
2 AL W3 W4 W1 W2 Sp
3 AL W4 W1 W2 W3 Sp
4 Sp AL W2 W3 W4 W1
5 Sp AL W3 W4 W1 W2
6 Sp AL W4 W1 W2 W3
7 W1 Sp AL W2 W3 W4
8 W2 Sp AL W3 W4 W1
9 W3 Sp AL W4 W1 W2
10 W4 W1 Sp AL W2 W3
11 W1 W2 Sp AL W3 W4
12 W2 W3 Sp AL W4 W1
13 W3 W4 W1 Sp AL W2
14 W4 W1 W2 Sp AL W3
15 W1 W2 W3 Sp AL W4
16 W2 W3 W4 W1 Sp AL
17 W3 W4 W1 W2 Sp AL
18 W4 W1 W2 W3 Sp AL
Lecture Notes in Computer Science
Ri Sp
Sp Sp
Sp
S1
S2
S3
AL AL AL …
AL AL
S1
S2
S3
S4
6
S5
Fig. 4. (a) Example of Spare (Sp) team in a 4-week cycle (b) Example of “core period” (in bold) in a 5-day cycle
When the Spare assignment is used before leave in a daily cycle, a “core period” such as S1S2-S3, must be inserted between the Spare assignment and Leave, as shown in Figure 4b. 2.2 Other Constraints We present some other hard constraints that must be respected before a work cycle can be used. They are solved at the design level and are invisible to the solver. This paper shall not develop these constraints further. Total annual leave . The real physical problem in organizing leave is the number of days and weeks in a year and the legal leave entitlement of each worker. In institutions where service is continuous all year round, public holidays and annual leave are confounded, and accumulated to a total annual leave for each resource. Currently this is 51 days or 7 weeks (remaining days are taken on individual request). We have to ensure that everybody can take his/her leave entitlement. The number of resources at most on leave at any moment (CA) is a key parameter. When CA=1, N can be 5 (resp. 6), giving a total of 6 (resp. 7) teams. N cannot be 8 because 8*50 = 400 days of leave cannot be found in one year (unless 2 teams go on leave simultaneously). When CA=2, N can be 10, 12 or 14. Leave configurations: Historically, daily cycles have been used because of its flexibility since they can be locally extended or shortened in length. However they give very few weekend off for the workers. Weekly cycles were created, based on a development of one daily cycle over N weeks, and adapted to supply the daily requirements while giving for example one weekend off per fortnight (see the sample 4-week cycle). In this situation, our experience shows that: N is forcibly even and we can use an abstraction whereby there are only two work codes Odd (denoted O) and Even (denoted E). Assuming that the even week codes have weekend off, it can precede leave and odd codes can follow leave. Figure 5 is such an abstract timetable for an even number of weeks on leave. We assume that the leave is arranged in a chronological order for each team (otherwise, the lines are rearranged). It shows when all resources are on leave continuously, on weeks preceding leave all resources are assigned to only even weeks, i.e. no odd weeks at all, and the requirements cannot be satisfied. By inserting weeks where no resource is on leave (gaps), equal numbers of odd and even work codes per week can be achieved. Each solution at the odd/even level of abstraction represents N/2 solutions where all work codes are enumerated.
Lecture Notes in Computer Science R1 E R2 E
AL AL O
O
E
O
E
O
E
O
E
AL AL O
O
E
AL AL O
E
E
O
E
O
E
O
E
O
E
R3 E R4 E
O
E
O
E
AL AL O
E
O
E
O
O
E
O
E
O
E
O
E
AL AL O
E
O
O
E
R5 E
O
E
O
E
O
E
O
AL AL O
S p
O
E
E
7
O
E
O
E
O
E
O
E
O
E
O
E
O
E
E
O
AL AL S p E O E
AL AL O
E
O
E
O
O
E
O
E
O
E
O
E
E
O
E
O
E
O
AL AL S p E O E
AL AL
Fig. 5. Odd/even Timetable Representation for 2-week annual leave (AL) (a) Insufficient numbers of odd and even codes per period (b) Timetable with gaps (Sp=Spare), giving 2 odd and 2 even codes
2.3 Relaxation In order to supply solutions even when the constraints described above are conflicting, we need to apply constraint relaxation in the following situations: In daily cycles, so as to allow resources to take leave after a day-off, the cyclical succession of codes may be relaxed locally giving cycles that are lengthened or shortened. In Figure 3a, there was a problem on day 22 when R2 normally gets S1 on returning from leave. However R1 also gets S1 due to the cycle. Figure 6 shows the solution by relaxing the cycle constraint, giving two local adaptations of the 5-day cycle. S1-S2-S3-S5 and S1-S2-S3-S4-S4-S5, used on days 15 and 16.
R1 R2 R3 R4 R5 R6
1 Sp S5 S4 S3 S2 S1
2 AL S1 S5 S4 S3 S2
3 AL S2 S1 S5 S4 S3
4 AL S3 S2 S1 S5 S4
5 AL S4 S3 S2 S1 S5
6 AL S5 S4 S3 S2 S1
7 AL S1 S5 S4 S3 S2
8 AL S2 S1 S5 S4 S3
9 AL S3 S2 S1 S5 S4
10 AL S4 S3 S2 S1 S5
11 AL S5 S4 S3 S2 S1
12 S1 AL S5 S4 S3 S2
13 S2 AL S1 S5 S4 S3
14 S3 AL S2 S1 S5 S4
15 S4 AL S3 S2 S1 S5
16 S4 AL S5 S3 S2 S1
17 S5 AL S1 S4 S3 S2
18 S1 AL S2 S5 S4 S3
19 S2 AL S3 S1 S5 S4
20 S3 AL S4 S2 S1 S5
21 S4 AL S5 S3 S2 S1
22 S5 S1 AL S4 S3 S2
Fig. 6. Application of 5-day cycle over 22 days with 10-day leave
In weekly cycles, leave constraints give similar problems when leave is 2 weeks. It was not possible to relax cycle constraints (which give 1 weekend off per fortnight). The solution is to advance or delay leave 1 or 2 weeks (excepted for summer leave).
Lecture Notes in Computer Science
8
3 Solution using Constraint Programming
3.1 Constraint Programming Constraint Programming (CP) is a technique arising from the Artificial Intelligence domain, where numerous problems have no known algorithms that can solve within polynomial time. Timetabling is no exception. To obtain reasonable computation times, the CP approach incrementally constructs solutions by assigning possible values to variables. To reduce the search space, consistency checking methods such as forward checking and look-ahead are applied (Mackworth, 1977). CHIP, created at ECRC (cf. [4]), has been one of the earliest tools to extend the declarative aspects of Logic Programming with the efficiency of CP. Since 1991, the original CHIP team has created COSYTEC to commercialize and market CHIP V5. Since then, COSYTEC has announced Second Generation CP tools through the concept of global constraints. In timetabling problems, to model and solve numerous work laws and regulations, the sequence and among constraints allow building suitable models for constraining patterns of values among consecutive variables. These constraints have already been used to produce non-cyclical scheduling (e.g. [2]). We recall here the semantics of the sequence and among constraints applied on the variables Vi,j which represent the shift to be assigned on period j to resource i, using the Prolog syntax of the CHIP language. 1.
For each period j, R being the total number of resources:
among([N1,…, NN],[V1,j, …, VR,j],ZerosR,[[S1],…,[SN]], all) The variables V represent the assignments of the period j to the resources 1 to R. The constraint states that Nk (k = 1,…, N) is the exact number of occurrences of the value Sk among the variables V. ZerosR is a list of R zeros, indicating that we do not want any constant displacement to the value of variables V. 2.
For each resource i, T being the total number of periods:
sequence([0,0,T],[Vi,1, …, Vi,T], ZerosT, Pats, all) The variables V represent the assignments of resource i during the periods 1 to T. The use ZerosT has the same signification as above. Pats is the list of valid patterns on the variables V and the first argument expresses that there are exactly 0 instance of these patterns over the T variables. For example, in two successive variables of V, to constrain that the value X may be followed by any of the values in the list AllowedCodes, the pattern is the list of 2 constraints [[sum,1,#=,[X]],[sum,1,#\=,AllowedCodes]]. The first constraint states that the sum of 1 variable is equal to the value X and the second constraint that the sum of 1 following variable is not equal to the given codes.
Lecture Notes in Computer Science
9
No instance of disequality patterns is equivalent to equality patterns posted over successive variables. Examples are given in §3.2.
3.2 Model and Implementation We first present the model unifying daily and weekly cycles, after which we deal only weekly cycles. Then we show how to translate the various problem constraints into transition constraints, written as X à Y. They state that the value Y can follow the value X in consecutive variables Vi,j and Vi,j+1 corresponding to shift assignments for resource i on periods j and j+1. Lastly, we show how to implement these transitions using the sequence constraint. The weekly code Wi is encoded by the value i+1. W0 denotes leave whose value is 0 and the “Spare” assignment or W SP has the value 1. Construction of Weekly Cycles. Our system uses the same solver for both daily and weekly cycles. We outline here a method for aggregating daily into “weekly” cycles whose period size is not always 7 days in length. Consider the 5-day cycle presented in Figure 1. To build a 4-day weekly cycle, we use the shifts S1, S2, S3 and S4 for each day on row 1. If the assignment on the last day is Sk on row i, then on row i+1, the first assignment will be Sk+1 (or S1, if k = N). Figure 7 shows the resulting weekly cycle where the 5-day cycle is used exactly 4 times. The method can also generate other 5-week cycles of 3, 5 or 6 days, etc. For simplicity of explanation, we use only the 4-day week in this paper.
W1 W2 W3 W4 W5
1 S1 S5 S4 S3 S2
2 S2 S1 S5 S4 S3
3 S3 S2 S1 S5 S4
4 S4 S3 S2 S1 S5
Fig. 7. Transforming the 5-day cycle into a weekly cycle of 4 days
To use this aggregation method, we need to break up the given computation interval of Ntotal days into a number of periods of the correct size. Since the cycle construction method ignores leave during the week, all intervals (including leave) have to fall into a number of periods of different lengths. Taking NP to be the number of periods of length P, the condition is Ntotal = NN-1 * (N-1) + NN+1 * (N+1) + NN+2 * (N+2) Implementation of Cycle Constraints. Cycle constraints at the weekly level (based on weekly codes such as Wi) are created by verifying the daily succession for the last day of previous week and first day of the next week. The days within the cycle are assumed to respect daily succession constraints.
Lecture Notes in Computer Science
10
In the 4-day week of Figure 7, the cycle constraints are W 1 à W 2, W 2 à W 3, W 3 à W 4, W 4 à W 5 and W 5 à W 1. The construction method allow the following patterns to be used in the sequence constraint: Pats = [ [sum,1,#=,[2]],[sum,1,#\=,[3]], [sum,1,#=,[3]],[sum,1,#\=,[4]], [sum,1,#=,[4]],[sum,1,#\=,[5]], [sum,1,#=,[5]],[sum,1,#\=,[6]], [sum,1,#=,[6]],[sum,1,#\=,[2]]
% % % % %
W1 W2 W3 W4 W5
à à à à à
W2 W3 W4 W5 W1
] Listing 1. Patterns for Cycle Constraint in a 5-period cycle Implementation of Requirement Constraints. The among constraint is used directly for every period j for the resources 1 to R: among([N1,…,NN], [V1,j, …,VR,j], ZerosR,[[S1],…,[SN]], all) Listing 2. Requirement Constraint Implementation of Leave Constraints. In the 4-day week of Figure 7, if S5 is the day-off then the daily transition S5 à 0 is translated into the weekly transition W 5 à W 0 since S5 occurs at the end of W 5. If S4 à 0 is allowed, the transition W 1 à W 0 is also allowed. The first day after leave cannot be off. This means that the transition W0 à W 5 is not allowed. Disallowed transitions are implicit since only allowed transitions are given. On the contrary, after leave certain daily shifts are highly favorable, such as S1. We deduce W 0 à W 1 since W 1 starts with S1 in the example. The patterns become: Pats = [ [sum,1,#=,[0]],[sum,1,#\=,[0,2]], % W0 à W0 and W1 [sum,1,#=,[2]],[sum,1,#\=,[3]], % W1 à W2 [sum,1,#=,[3]],[sum,1,#\=,[4]], % W2 à W3 [sum,1,#=,[4]],[sum,1,#\=,[5]], % W3 à W4 [sum,1,#=,[5]],[sum,1,#\=,[6]], % W4 à W5 [sum,1,#=,[6]],[sum,1,#\=,[0,2]] % W5 à W0 and W1 ] Listing 3. Patterns for Cycle and Leave Constraints Daily Rest Constraint. In our example, S3 (night) must be followed by S4 (rest); i.e. W 2 à W 3. We must not forget this transition in cases where additional cycles are used, such as that arising from Constraints for specific periods. I.e. we get W8 à W 9, W2 à W 9 and W 8 à W 3. See Listing 4. Constraints for specific periods . In the case of daily cycles, an N-day cycle becomes a (N+1) day cycle during periods when no resource is on leave. By convention the extra shift is encoded N+1, i.e. S6 in our example. We compute the variants of this extended cycle for different “week” lengths, in the same fashion as an N-day cycle.
Lecture Notes in Computer Science
W6 W7 W8 W9 W 10 W 11
1 S1 S6 S5 S4 S3 S2
2 S2 S1 S6 S5 S4 S3
3 S3 S2 S1 S6 S5 S4
4 S4 S3 S2 S1 S6 S5
11
5 S5 S4 S3 S2 S1 S6
Fig. 8. Transforming a 6-day cycle into 6-week (W6- W11) cycle of 5 days
In the above example, the cyclic constraints are W6 à W 7,…, W11 à W 6. To allow the use of N-day cycle followed by the (N+1)-day cycle in successive variables, we have to compare the ending codes of the first weekly cycle and the first codes of the second weekly cycle. For example from the transition S4 à S5, to allow the N-day cycle to precede the (N+1) day cycle, we deduce W 1 à W 8, W2 à W 9, W3 à W 10, W 4 à W 11, W 5 à W 7, and W 0 à W 6. Inversely, we have W 6 à W 1, W7 à W 2, W8 à W 3, W9 à W 4, W 10 à W 5, and W 11 à W 0. The equivalent patterns are summarized in Listing 4. This method can also be used to generate allowed transitions across different work cycles applicable in summer and winter. In the case of weekly cycles, since all periods are 1 week in length, we do not have to create new cycles. We need to add the “Spare” value in the domain of the variables V and introduce extra patterns (since all weekly codes can follow Spare and vice-versa). Pats = %WEEKLY CYCLES [[sum,1,#=,[0]], [sum, 1, #\=,[0,1,6]], [Sum,1,#=,[1]], [sum, 1, #\=,[0,1,2, …,6]],%SPARE ... %see Listing 3 ] Pats = [ %DAILY CYCLES [sum,1,#=,[0]], [sum, 1, #\=,[0,1,7]], %W0 àW0,WSP,W6 [sum,1,#=,[1]],[sum,1,#\=,[0,1,2, …, 12]], %SPARE follows all %N-day cycle [sum,1,#=,[2]], [sum,1,#\=,[1,3,9]], %W1 à WSP,W2,W8 [sum,1,#=,[3]], [sum,1,#\=,[1,4,10]], %W2 à WSP,W3,W9 [sum,1,#=,[4]], [sum,1,#\=,[1,5,11]], %W3 à WSP,W4,W10 [sum,1,#=,[5]], [sum,1,#\=,[1,6,12]], %W4 à WSP,W5,W11 [sum,1,#=,[6]], [sum,1,#\=,[0,1,2,8]] %W5 à W0,WSP,W1,W7 %(N+1)-day cycle [sum,1,#=,[7]], [sum,1,#\=,[1,2,8]], [sum,1,#=,[8]], [sum,1,#\=,[1,3,9]], [sum,1,#=,[9]], [sum,1,#\=,[1,4,10]], [sum,1,#=,[10]],[sum,1,#\=,[1,5,11]], [sum,1,#=,[11]],[sum,1,#\=,[1,6,12]], [sum,1,#=,[12]],[sum,1,#\=,[0,1,7]]
%W6 à WSP,W1,W7 %W7 à WSP,W2,W8 %W8 à WSP,W3,W9 %W9 à WSP,W4,W10 %W10 à WSP,W5,W11 %W11 à W0,WSP,W1
Lecture Notes in Computer Science
12
] Listing 4. Patterns for Spare assignment and (N+1)-day cycle Spare Team Constraint. In weekly cycles, “Spare” may be assigned before or after leave (according to specification). They are asserted without choice (i.e. not labeled). In daily cycles with Spare assignment before leave, it was required that a specified part (3day) of the daily cycle should appear, so that the resource achieves the core of the cycle. It was necessary to create a 3-day period before leave and use a weekly cycle of 3 days. In our example, the core part is S1-S2-S3.
W 12 W 13 W 14 W 15 W 16
1 S1 S4 S2 S5 S3
2 S2 S5 S3 S1 S4
3 S3 S1 S4 S2 S5
Fig. 9. Weekly cycle over 3 days, deduced from 5-day cycle
These new shift values (W 12 etc.) will have to be connected to all the other shifts according the allowed daily shifts. E.g. W 12 à W 0, W 1 à W 13 (since S4 à S5), W 2 à W 14, etc. Relaxation of Daily Cycle Constraints. To make a slight deformation to the daily cycle, it suffices to add extra daily transition constraints from the same weekly shift, which both shorten and to lengthen the cycle. Let us consider the allowed daily transition S3 à S5. At the weekly level, in addition to W2 à W 3, we allow W2 à W 2 and W 2 à W 8. The system will backtrack over all allowed transitions to find the set of values that satisfy these constraints. The corresponding pattern in Pats is [[sum,1,#=,[3]], [sum,1,#\=,[1,3,4,9]]]. In the same way, to lengthen the cycle, we may allow S4 à S4, from which weekly assignments can be deduced. Hence deformation of the cycle occurs only between two periods. The more there are periods, the more “flexible” the system gets, and inversely. If a scheduling interval is split into periods of 1 day, there is the maximum flexibility, but the results may be very bad (i.e. the cycle is not recognizable anymore). Similarly allowing Si à Si over 2 variables may result in a long series of Si. In such cases, we disallow S4 à S4 à S4 by having no instance of the pattern [[sum,1,#=,[5]], [sum,1,#=,[5]], [sum,1,#=,[5]]], defined over 3 consecutive variables V. Relaxation of Leave dates. In the case of weekly cycles, when a resource i is definitely assigned to leave on week j, variable Vi, j is assigned to the value 0. When a leave can be assigned to week j, and possibly advanced / delayed by 1 period, then the domain of three weeks j-1, j, j+1 are allotted the value 0, in addition to the other possible shift values.
Lecture Notes in Computer Science
13
The following constraint is needed in order to assign the correct number of leave weeks say Nb=1; it states that the number of value 0 among the given variables is exactly Nb: among([Nb], [Vi,j-1, Vi,j, Vi,j+1], Zeros3, [[0]], all) Listing 5. Total leave constraint When the leave is 3 weeks (on j, j+1 and j+2) and possibly advanced/delayed by 1 period, the period j is definitely on leave. Unfortunately, in the case of daily cycles since the periods before leave may not be the same size as the periods after leave, this relaxation method cannot be used per se. It suffice to impose periods of the same size (e.g. 3 days).
3.4 Search Heuristic In the Constraint Programming paradigm, in addition to the constraint models, we need to define a search heuristic to arrive at coherent solutions rapidly. Labeling. A very straightforward period-by-period labeling mechanism is sufficient to allow the global constraints to propagate deductions. For each period j, variables corresponding to all resources are labeled, to satisfy the requirements of that period for the various weekly or daily codes. The other constraints will be awakened when necessary and their coherence verified. During each period, variables are selected by the most-constrained heuristic, and values given in increasing order. Backtracking over periods would occur to satisfy the cyclic constraint. In the case of a complex cycle (N=12, CA=2) for 14 teams and where only two resourceweeks are “Spare”, this heuristic found solutions by propagation after enumerating the first 5 periods. Conflicts. Like all applications, the system has to propose a solution even when the leave dates conflict with the application of work cycles. In the situation of § 2.2 Leave Configurations, the requirement constraint is not posted and all resources are labeled “Spare”. Such weeks always occur singly because there are no cycle constraints on the Spare assignment. Resources are heuristically assigned in two steps. At the week level, during the Spare weeks, a special rule-based system is used to specify the days each resource must work, considering the previous and next weekend assignments. The idea is to try to maintain a weekend off every fortnight. If this is not possible, then assign more day off during the week. At the day level, the system applies the working codes of the cycle for the day to resources in an increasing order. Remaining required codes are assigned to resources initially assigned off. This 2-step procedure produces results similar to hand scheduling, where the cycle is adapted locally to one or two weeks that cannot be solved otherwise. In the rest of the year, the cycle is applied without fail.
Lecture Notes in Computer Science
14
4 COMPARISONS, RESULTS and CONCLUSION
4.1 Comparisons in cyclical and non-cyclical timetables Flexibility. Non-cyclical timetables have the advantage of flexibility in meeting both unforeseen events and individual wishes (Chan et al. 1998). Due to lack of regularity in the timetable, workers have to consult the system for every day of month; they cannot plan their private activities ahead of time. On the other hand, timetables produced using work cycles are largely invariant (especially weekly cycles). It can be argued that work cycles are quite too rigid to meet unforeseen requirements, largely dependent on cycle designers’ ability to incorporate flexibility into the organization. However, work cycles offer an ideal balance between work and rest for each person and encourage equal work. Cost Optimization. The major interest of Linear Programming methods (see [5]) in Staff Scheduling is the possibility of optimizing the total cost of the schedule, given as the sum of individual costs of assigning each shift. The organization pays better unpopular shifts (night hours and weekends). This approach leads to a breed of reward-seeking employees, specialized in these shifts and indifferent to service quality. It must be realized that night work is unpopular because biorhythms are adversely affected. The cyclical approach allows peers to share all activities organized in shifts and work stretches equally for all concerned. The organization stands to gain by not offering bonus for unpopular work and to encourage all workers to be equally competent in all its activities. We expect the workers to suffer less when the cycle is well balanced. Other Non-CLP systems . Current work [5], [6], [7] have concentrated on designing work cycles. In particular [7] reports that it is more an art than science to produce workable rotating schedules, after 25 years of experience on the ground. Our work highlighted the practical problems arising from the unraveling of work cycles over a yearly horizon. The essential feature is that the cycle has to be distorted locally to fit forecasted events such as annual leave, yet remaining sufficiently typical of the cycle. Users can specify acceptable ‘relaxations’ in our method, which based on a tree-search mechanism, can provide solutions.
4.2 Results The concepts of cyclical staff scheduling using work cycles were built into an application, complete with modules for the capture of various parameters as well as work cycles, for the solver, and finally for displaying the obtained schedule and statistics for each resource over the annual time horizon. The solver module is built using CHIP V5. The among and sequence global constraints were used to implement the requirement and weekly succession constraints and to introduce the necessary constraint relaxation methods.
Lecture Notes in Computer Science
15
The application is used in several regional sites in France since early 1999, to produce annual timetables for some 150 agents per group. It was implemented with 14 daily and weekly cycles of different types, where each cycle can be used differently (Spare teams, leave taken by whole teams or individually, etc.). The aggregation method discussed in § 3.2 reduced the total number of periods to be handled. Together with the constraints implementing a global reasoning, the system was able to build annual timetables for complex cycles. A typical example is a 12-week cycle applied over 14 agents (maximum of 2 on leave on any week). Search was limited to the first few days and the problem was solved by deduction in 10-20 seconds, without cycle disruptions Detailed results of our case study are currently confidential, but discussions are welcome. In all, the system can achieve good results for weekly cycles, i.e. producing very regular working timetables while respecting user constraints. Weekly cycles are very important since cycle designers can introduce work weeks that are well balanced. In the case of daily cycles, the system is less successful, since cycle disruptions are introduced whenever local situations make it necessary. More work is deemed unjustified since daily cycles are considered very demanding on the family life of the workers and are being phased out. The major advantage of such a tool in work-force organization is the possibility of using work cycles that give a good balance between work and rest, and creating several work groups to provide work availability that matches with requirements. Workers can examine the timetable and vote for it, and managers can evaluate the cost of each solution.
4.3 Conclusion and Future Work We have shown that the application of given work cycles to a given situation incur complexity due to annual leave and other organization rules. It is necessary to relax various constraints, including that of the cycles themselves, to obtain feasible timetables. We propose a unified model, it is possible to process both daily and weekly work cycles, by translating daily succession constraints into weekly ones. This method also reduces the complexity of daily scheduling by increasing the time granularity. We have shown how to allow to apply the method involving several different work cycles over different seasons, to the same resources. We can thus modulate the supply of manpower during high and low seasons. Further work would extend into the process of creation of new weekly cycles to meet given workload, while respecting the various hard constraints discussed in § 2.2. The system would then propose complete (unraveled) timetables using both current cycles and the new cycles. Since the method has the inherent capacity to handle horizons of up to 3 years, we expect to handle new issues in human resource allocation: skill management and training. Work cycles do represent a socially advantageous way of organizing work which encourages team spirit (by encouraging equal work for all, i.e. sharing unpopular shifts) and give workers more control over their work life through regular work patterns.
Lecture Notes in Computer Science
16
References 1. 2. 3. 4.
5. 6. 7. 8.
Beldiceanu N. and Contejean E., “Introducing Global Constraints in CHIP”, Journal of Mathematical and Computer Modelling, Vol. 20, No. 12, pp. 97-123, 1994. Chan P., Kamel H. and Weil G., “Nurse Scheduling with Global Constraints in CHIP : GYMNASTE”, Practical Applications of Constraint Technology, 1998. Darwin S. and Sabah U.R., “Nurse Scheduling Models: A State-of-the-art Review”, Journal of the Society for Health Systems, Vol. 2, No.1, pp. 62-72, 1990. Dincbas M., Van Hentenryck P., Simonis H., Aggoun A., Graf T., and Berthier F., “The Constraint Handling Language CHIP”, Proceedings of International Conference on Fifth Generation Computer Systems FGC’88, pp. 693-702, Tokyo, 1988.
Hung R., “Multiple-shift workforce scheduling under the 3-4 workweek with different weekday and weekend labor requirements”, Managemt. Sci., Vol. 40, pp.280-284, 1994 Jarrah A.I.Z., Jonathan F.B. and Anura H.S., “Solving Large-scale Tour Scheduling Problems”, Management Science, Vol. 40, No. 9, pp. 1124-1144, 1994. G. Laporte, “The art and science of designing rotating schedules”, Journal of the Operational Research Society, Vol.50, pp 1011-1017, 1999. Weil G., Heus K., Puget F. and M.Poujade, “Solving the Nurse Scheduling Problem using Constraint Programming”, IEEE Engineering in Medicine and Biology, July-August 1995.