data; /*Shifts*/ set S := N E D L ; /*NightShifts*/ param isNightS := N 1 E 0 D 0 L 0 ; /*Contracts*/ set C := C0 C1 C2 C3 ; param nWE := C3 4 C2 4 C1 4 C0 4 ; /*Nurses*/ set N := N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 ; /*NurseShiftCompatibility*/ set NS[N3] := L D E N ; set NS[N2] := L D E N ; set NS[N1] := L D E N ; set NS[N0] := L D E N ; set NS[N7] := L D E N ; set NS[N6] := L D E N ; set NS[N5] := L D E N ; set NS[N4] := L D E N ; set NS[N9] := L D E N ; set NS[N8] := L D E N ; /*DayOffRequests*/ param nx := [N3,L,14] 1 [N3,D,14] 1 [N3,E,14] 1 [N3,N,14] 1 [N3,L,21] 1 [N3,D,21] 1 [N3,E,21] 1 [N3,N,21] 1 [N3,L,17] 1 [N3,D,17] 1 [N3,E,17] 1 [N3,N,17] 1 [N3,L,20] 1 [N3,D,20] 1 [N3,E,20] 1 [N3,N,20] 1 [N3,L,16] 1 [N3,D,16] 1 [N3,E,16] 1 [N3,N,16] 1 [N3,L,25] 1 [N3,D,25] 1 [N3,E,25] 1 [N3,N,25] 1 [N3,L,10] 1 [N3,D,10] 1 [N3,E,10] 2 [N3,N,10] 1 [N3,L,13] 1 [N3,D,13] 1 [N3,E,13] 2 [N3,N,13] 1 [N3,L,9] 1 [N3,D,9] 1 [N3,E,9] 1 [N3,N,9] 1 [N3,L,18] 1 [N3,D,18] 1 [N3,E,18] 1 [N3,N,18] 1 [N2,L,8] 1 [N2,D,8] 1 [N2,E,8] 1 [N2,N,8] 1 [N2,L,1] 1 [N2,D,1] 1 [N2,E,1] 1 [N2,N,1] 1 [N2,L,21] 1 [N2,D,21] 1 [N2,E,21] 1 [N2,N,21] 1 [N2,L,16] 1 [N2,D,16] 1 [N2,E,16] 1 [N2,N,16] 1 [N2,L,4] 1 [N2,D,4] 1 [N2,E,4] 1 [N2,N,4] 1 [N2,L,22] 1 [N2,D,22] 1 [N2,E,22] 1 [N2,N,22] 1 [N2,L,14] 1 [N2,D,14] 1 [N2,E,14] 1 [N2,N,14] 1 [N2,L,9] 1 [N2,D,9] 1 [N2,E,9] 1 [N2,N,9] 2 [N2,L,17] 2 [N2,D,17] 1 [N2,E,17] 1 [N2,N,17] 1 [N2,L,20] 1 [N2,D,20] 1 [N2,E,20] 1 [N2,N,20] 1 [N1,L,20] 1 [N1,D,20] 1 [N1,E,20] 1 [N1,N,20] 1 [N1,L,15] 1 [N1,D,15] 1 [N1,E,15] 1 [N1,N,15] 1 [N1,L,18] 1 [N1,D,18] 1 [N1,E,18] 1 [N1,N,18] 2 [N1,L,11] 1 [N1,D,11] 1 [N1,E,11] 1 [N1,N,11] 1 [N1,L,17] 1 [N1,D,17] 1 [N1,E,17] 1 [N1,N,17] 1 [N1,L,4] 1 [N1,D,4] 1 [N1,E,4] 1 [N1,N,4] 1 [N1,L,8] 2 [N1,D,8] 1 [N1,E,8] 1 [N1,N,8] 1 [N1,L,7] 1 [N1,D,7] 1 [N1,E,7] 1 [N1,N,7] 1 [N1,L,23] 1 [N1,D,23] 1 [N1,E,23] 1 [N1,N,23] 1 [N1,L,6] 1 [N1,D,6] 1 [N1,E,6] 1 [N1,N,6] 1 [N0,L,2] 1 [N0,D,2] 2 [N0,E,2] 1 [N0,N,2] 1 [N0,L,8] 1 [N0,D,8] 1 [N0,E,8] 1 [N0,N,8] 1 [N0,L,7] 1 [N0,D,7] 1 [N0,E,7] 1 [N0,N,7] 1 [N0,L,5] 1 [N0,D,5] 1 [N0,E,5] 1 [N0,N,5] 1 [N0,L,15] 1 [N0,D,15] 1 [N0,E,15] 1 [N0,N,15] 1 [N0,L,4] 2 [N0,D,4] 1 [N0,E,4] 1 [N0,N,4] 1 [N0,L,25] 1 [N0,D,25] 1 [N0,E,25] 1 [N0,N,25] 1 [N0,L,16] 1 [N0,D,16] 1 [N0,E,16] 1 [N0,N,16] 1 [N0,L,1] 1 [N0,D,1] 1 [N0,E,1] 1 [N0,N,1] 1 [N0,L,27] 1 [N0,D,27] 1 [N0,E,27] 1 [N0,N,27] 1 [N7,L,27] 1 [N7,D,27] 1 [N7,E,27] 1 [N7,N,27] 1 [N7,L,2] 1 [N7,D,2] 1 [N7,E,2] 1 [N7,N,2] 1 [N7,L,7] 2 [N7,D,7] 1 [N7,E,7] 1 [N7,N,7] 1 [N7,L,25] 1 [N7,D,25] 1 [N7,E,25] 1 [N7,N,25] 1 [N7,L,19] 1 [N7,D,19] 1 [N7,E,19] 1 [N7,N,19] 1 [N7,L,18] 2 [N7,D,18] 1 [N7,E,18] 1 [N7,N,18] 2 [N7,L,14] 1 [N7,D,14] 1 [N7,E,14] 1 [N7,N,14] 1 [N7,L,12] 1 [N7,D,12] 1 [N7,E,12] 1 [N7,N,12] 1 [N7,L,16] 1 [N7,D,16] 1 [N7,E,16] 1 [N7,N,16] 1 [N7,L,22] 1 [N7,D,22] 1 [N7,E,22] 1 [N7,N,22] 1 [N6,L,17] 1 [N6,D,17] 1 [N6,E,17] 1 [N6,N,17] 1 [N6,L,10] 1 [N6,D,10] 1 [N6,E,10] 1 [N6,N,10] 1 [N6,L,27] 1 [N6,D,27] 1 [N6,E,27] 2 [N6,N,27] 1 [N6,L,7] 1 [N6,D,7] 1 [N6,E,7] 1 [N6,N,7] 1 [N6,L,15] 2 [N6,D,15] 1 [N6,E,15] 1 [N6,N,15] 1 [N6,L,19] 1 [N6,D,19] 1 [N6,E,19] 1 [N6,N,19] 1 [N6,L,20] 1 [N6,D,20] 1 [N6,E,20] 1 [N6,N,20] 1 [N6,L,18] 1 [N6,D,18] 1 [N6,E,18] 2 [N6,N,18] 1 [N6,L,3] 1 [N6,D,3] 2 [N6,E,3] 1 [N6,N,3] 1 [N6,L,28] 1 [N6,D,28] 1 [N6,E,28] 1 [N6,N,28] 1 [N5,L,4] 1 [N5,D,4] 1 [N5,E,4] 2 [N5,N,4] 1 [N5,L,22] 1 [N5,D,22] 1 [N5,E,22] 1 [N5,N,22] 1 [N5,L,14] 1 [N5,D,14] 1 [N5,E,14] 1 [N5,N,14] 1 [N5,L,7] 1 [N5,D,7] 1 [N5,E,7] 1 [N5,N,7] 1 [N5,L,27] 1 [N5,D,27] 1 [N5,E,27] 1 [N5,N,27] 1 [N5,L,25] 1 [N5,D,25] 1 [N5,E,25] 1 [N5,N,25] 1 [N5,L,17] 1 [N5,D,17] 1 [N5,E,17] 1 [N5,N,17] 1 [N5,L,20] 2 [N5,D,20] 1 [N5,E,20] 1 [N5,N,20] 1 [N5,L,9] 1 [N5,D,9] 1 [N5,E,9] 1 [N5,N,9] 1 [N5,L,23] 1 [N5,D,23] 1 [N5,E,23] 1 [N5,N,23] 1 [N4,L,18] 1 [N4,D,18] 1 [N4,E,18] 1 [N4,N,18] 1 [N4,L,7] 1 [N4,D,7] 1 [N4,E,7] 1 [N4,N,7] 1 [N4,L,2] 1 [N4,D,2] 1 [N4,E,2] 1 [N4,N,2] 1 [N4,L,28] 1 [N4,D,28] 1 [N4,E,28] 1 [N4,N,28] 1 [N4,L,17] 1 [N4,D,17] 2 [N4,E,17] 1 [N4,N,17] 1 [N4,L,21] 1 [N4,D,21] 1 [N4,E,21] 2 [N4,N,21] 1 [N4,L,24] 1 [N4,D,24] 1 [N4,E,24] 1 [N4,N,24] 1 [N4,L,6] 1 [N4,D,6] 1 [N4,E,6] 1 [N4,N,6] 1 [N4,L,4] 1 [N4,D,4] 1 [N4,E,4] 1 [N4,N,4] 1 [N4,L,10] 1 [N4,D,10] 1 [N4,E,10] 1 [N4,N,10] 1 [N9,L,6] 1 [N9,D,6] 1 [N9,E,6] 1 [N9,N,6] 1 [N9,L,22] 1 [N9,D,22] 1 [N9,E,22] 1 [N9,N,22] 1 [N9,L,19] 1 [N9,D,19] 1 [N9,E,19] 1 [N9,N,19] 1 [N9,L,21] 2 [N9,D,21] 1 [N9,E,21] 1 [N9,N,21] 2 [N9,L,2] 1 [N9,D,2] 1 [N9,E,2] 1 [N9,N,2] 1 [N9,L,27] 1 [N9,D,27] 1 [N9,E,27] 1 [N9,N,27] 1 [N9,L,24] 1 [N9,D,24] 1 [N9,E,24] 1 [N9,N,24] 1 [N9,L,17] 1 [N9,D,17] 1 [N9,E,17] 1 [N9,N,17] 1 [N9,L,16] 1 [N9,D,16] 1 [N9,E,16] 1 [N9,N,16] 1 [N9,L,4] 1 [N9,D,4] 1 [N9,E,4] 1 [N9,N,4] 1 [N8,L,7] 1 [N8,D,7] 1 [N8,E,7] 1 [N8,N,7] 1 [N8,L,5] 1 [N8,D,5] 1 [N8,E,5] 1 [N8,N,5] 1 [N8,L,15] 1 [N8,D,15] 1 [N8,E,15] 1 [N8,N,15] 1 [N8,L,10] 1 [N8,D,10] 1 [N8,E,10] 1 [N8,N,10] 1 [N8,L,8] 1 [N8,D,8] 1 [N8,E,8] 1 [N8,N,8] 1 [N8,L,4] 1 [N8,D,4] 1 [N8,E,4] 1 [N8,N,4] 1 [N8,L,26] 1 [N8,D,26] 1 [N8,E,26] 1 [N8,N,26] 1 [N8,L,9] 1 [N8,D,9] 1 [N8,E,9] 1 [N8,N,9] 1 [N8,L,14] 1 [N8,D,14] 1 [N8,E,14] 1 [N8,N,14] 1 [N8,L,22] 1 [N8,D,22] 1 [N8,E,22] 1 [N8,N,22] 1 [N3,E,11] 1 [N3,D,19] 1 [N3,E,1] 1 [N2,L,27] 1 [N2,L,24] 1 [N2,D,11] 1 [N1,N,9] 1 [N1,L,27] 1 [N1,N,19] 1 [N0,E,3] 1 [N0,L,13] 1 [N0,N,12] 1 [N7,L,10] 1 [N7,D,13] 1 [N6,D,14] 1 [N5,E,5] 1 [N5,L,13] 1 [N5,D,5] 1 [N4,E,1] 1 [N4,E,25] 1 [N4,E,22] 1 [N9,N,1] 1 [N9,N,10] 1 [N9,L,25] 1 [N8,E,17] 1 [N8,N,12] 1 [N8,N,28] 1 [N8,E,23] 1 [N8,E,27] 1 ; /*Days*/ set D := 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ; /*WeekendDays*/ set WE[C3, 1] := 02 03 ; set WE[C3, 2] := 09 10 ; set WE[C3, 3] := 16 17 ; set WE[C3, 4] := 23 24 ; set WE[C2, 1] := 02 03 ; set WE[C2, 2] := 09 10 ; set WE[C2, 3] := 16 17 ; set WE[C2, 4] := 23 24 ; set WE[C1, 1] := 02 03 ; set WE[C1, 2] := 09 10 ; set WE[C1, 3] := 16 17 ; set WE[C1, 4] := 23 24 ; set WE[C0, 1] := 02 03 ; set WE[C0, 2] := 09 10 ; set WE[C0, 3] := 16 17 ; set WE[C0, 4] := 23 24 ; /*NursesDemand*/ param r : L D E N := 1 2 1 2 1 /* 01/01/2010 - */ 2 1 1 1 1 /* 02/01/2010 - */ 3 1 1 1 1 /* 03/01/2010 - */ 4 2 1 2 1 /* 04/01/2010 - Monday*/ 5 2 1 2 1 /* 05/01/2010 - */ 6 2 1 2 1 /* 06/01/2010 - */ 7 2 1 2 1 /* 07/01/2010 - */ 8 2 1 2 1 /* 08/01/2010 - */ 9 1 1 1 1 /* 09/01/2010 - */ 10 1 1 1 1 /* 10/01/2010 - */ 11 2 1 2 1 /* 11/01/2010 - Monday*/ 12 2 1 2 1 /* 12/01/2010 - */ 13 2 1 2 1 /* 13/01/2010 - */ 14 2 1 2 1 /* 14/01/2010 - */ 15 2 1 2 1 /* 15/01/2010 - */ 16 1 1 1 1 /* 16/01/2010 - */ 17 1 1 1 1 /* 17/01/2010 - */ 18 2 1 2 1 /* 18/01/2010 - Monday*/ 19 2 1 2 1 /* 19/01/2010 - */ 20 2 1 2 1 /* 20/01/2010 - */ 21 2 1 2 1 /* 21/01/2010 - */ 22 2 1 2 1 /* 22/01/2010 - */ 23 1 1 1 1 /* 23/01/2010 - */ 24 1 1 1 1 /* 24/01/2010 - */ 25 2 1 2 1 /* 25/01/2010 - Monday*/ 26 2 1 2 1 /* 26/01/2010 - */ 27 2 1 2 1 /* 27/01/2010 - */ 28 2 1 2 1 /* 28/01/2010 - */ ; /*NurseContract*/ param cn := N3 C0 N2 C0 N1 C0 N0 C0 N7 C2 N6 C2 N5 C1 N4 C1 N9 C3 N8 C3 ; /*MaxNumAssignments*/ param na_Max := C0 16 C1 12 C2 9 C3 8 ; /*WeightMaxNumAssignments*/ param wna_Max := C0 1 C1 1 C2 1 C3 1 ; /*MinNumAssignments*/ param na_Min := C0 9 C1 6 C2 4 C3 8 ; /*WeightMinNumAssignments*/ param wna_Min := C0 1 C1 1 C2 1 C3 1 ; /*MaxConsecutiveWorkingDays*/ param nw_Max := C0 8 C1 5 C2 4 C3 2 ; /*WeightMaxConsecutiveWorkingDays*/ param wnw_Max := C0 1 C1 1 C2 1 C3 1 ; /*MinConsecutiveWorkingDays*/ param nw_Min := C0 2 C1 2 C2 2 C3 1 ; /*WeightMinConsecutiveWorkingDays*/ param wnw_Min := C0 1 C1 1 C2 1 C3 1 ; /*MaxConsecutiveFreeDays*/ param nf_Max := C0 7 C1 5 C2 7 C3 20 ; /*WeightMaxConsecutiveFreeDays*/ param wnf_Max := C0 1 C1 1 C2 1 C3 1 ; /*MinConsecutiveFreeDays*/ param nf_Min := C0 1 C1 1 C2 1 C3 3 ; /*WeightMinConsecutiveFreeDays*/ param wnf_Min := C0 1 C1 1 C2 1 C3 1 ; /*MaxConsecutiveWorkingWeekends*/ param nwec_Max := C0 0 C1 0 C2 0 C3 0 ; /*WeightMaxConsecutiveWorkingWeekends*/ param wnwec_Max := C0 0 C1 0 C2 0 C3 0 ; /*MinConsecutiveWorkingWeekends*/ param nwec_Min := C0 0 C1 0 C2 0 C3 0 ; /*WeightMinConsecutiveWorkingWeekends*/ param wnwec_Min := C0 0 C1 0 C2 0 C3 0 ; /*MaxWorkingWeekendsInFourWeeks*/ param nw4_Max := C0 0 C1 0 C2 0 C3 0 ; /*WeightMaxWorkingWeekendsInFourWeeks*/ param wnw4_Max := C0 0 C1 0 C2 0 C3 0 ; /*CompleteWeekends*/ param fw := C0 1 C1 1 C2 1 C3 1 ; /*WeightIdent.ShiftTypesDuringWeekend*/ param wfw := C0 1 C1 1 C2 1 C3 1 ; /*Ident.ShiftTypesDuringWeekend*/ param ssw := C0 1 C1 1 C2 1 C3 1 ; /*WeightIdent.ShiftTypesDuringWeekend*/ param wssw := C0 1 C1 1 C2 1 C3 1 ; /* NoNightShiftBeforeFreeWeekend */ param nnsbw := C0 0 C1 0 C2 0 C3 0 ; /*WeightNoNightShiftBeforeFreeWeekend*/ param wnnsbw := C0 0 C1 0 C2 0 C3 0 ; /*TwoFreeDaysAfterNightShifts*/ param nO := C0 0 C1 0 C2 0 C3 0 ; /* AlternativeSkillCategory */ param wAltS := C0 0 C1 0 C2 0 C3 0 ; param npit := C0 2 C1 2 C2 2 C3 2 ; param tpit := C0 1 2 C0 2 3 C1 1 2 C1 2 3 C2 1 2 C2 2 3 C3 1 2 C3 2 3 ; param cpit := C0 1 1 L C0 1 2 D C0 2 1 D C0 2 2 E C0 2 3 D C1 1 1 L C1 1 2 D C1 2 1 D C1 2 2 E C1 2 3 D C2 1 1 L C2 1 2 D C2 2 1 D C2 2 2 E C2 2 3 D C3 1 1 L C3 1 2 D C3 2 1 D C3 2 2 E C3 2 3 D ; param wpit := C0 1 1 C0 2 1 C1 1 1 C1 2 1 C2 1 1 C2 2 1 C3 1 1 C3 2 1 ; param npid := C0 12 C1 12 C2 12 C3 12 ; param tpid := C0 1 3 C0 2 3 C0 3 3 C0 4 3 C0 5 3 C0 6 3 C0 7 3 C0 8 3 C0 9 3 C0 10 3 C0 11 3 C0 12 3 C1 1 3 C1 2 3 C1 3 3 C1 4 3 C1 5 3 C1 6 3 C1 7 3 C1 8 3 C1 9 3 C1 10 3 C1 11 3 C1 12 3 C2 1 3 C2 2 3 C2 3 3 C2 4 3 C2 5 3 C2 6 3 C2 7 3 C2 8 3 C2 9 3 C2 10 3 C2 11 3 C2 12 3 C3 1 3 C3 2 3 C3 3 3 C3 4 3 C3 5 3 C3 6 3 C3 7 3 C3 8 3 C3 9 3 C3 10 3 C3 11 3 C3 12 3 ; param cpid := C0 1 1 -1 C0 1 2 2 C0 1 3 3 C0 2 1 -1 C0 2 2 -2 C0 2 3 3 C0 3 1 -1 C0 3 2 2 C0 3 3 -3 C0 4 1 -8 C0 4 2 9 C0 4 3 10 C0 5 1 -8 C0 5 2 -9 C0 5 3 10 C0 6 1 -8 C0 6 2 9 C0 6 3 -10 C0 7 1 -15 C0 7 2 16 C0 7 3 17 C0 8 1 -15 C0 8 2 -16 C0 8 3 17 C0 9 1 -15 C0 9 2 16 C0 9 3 -17 C0 10 1 -22 C0 10 2 23 C0 10 3 24 C0 11 1 -22 C0 11 2 -23 C0 11 3 24 C0 12 1 -22 C0 12 2 23 C0 12 3 -24 C1 1 1 -1 C1 1 2 2 C1 1 3 3 C1 2 1 -1 C1 2 2 -2 C1 2 3 3 C1 3 1 -1 C1 3 2 2 C1 3 3 -3 C1 4 1 -8 C1 4 2 9 C1 4 3 10 C1 5 1 -8 C1 5 2 -9 C1 5 3 10 C1 6 1 -8 C1 6 2 9 C1 6 3 -10 C1 7 1 -15 C1 7 2 16 C1 7 3 17 C1 8 1 -15 C1 8 2 -16 C1 8 3 17 C1 9 1 -15 C1 9 2 16 C1 9 3 -17 C1 10 1 -22 C1 10 2 23 C1 10 3 24 C1 11 1 -22 C1 11 2 -23 C1 11 3 24 C1 12 1 -22 C1 12 2 23 C1 12 3 -24 C2 1 1 -1 C2 1 2 2 C2 1 3 3 C2 2 1 -1 C2 2 2 -2 C2 2 3 3 C2 3 1 -1 C2 3 2 2 C2 3 3 -3 C2 4 1 -8 C2 4 2 9 C2 4 3 10 C2 5 1 -8 C2 5 2 -9 C2 5 3 10 C2 6 1 -8 C2 6 2 9 C2 6 3 -10 C2 7 1 -15 C2 7 2 16 C2 7 3 17 C2 8 1 -15 C2 8 2 -16 C2 8 3 17 C2 9 1 -15 C2 9 2 16 C2 9 3 -17 C2 10 1 -22 C2 10 2 23 C2 10 3 24 C2 11 1 -22 C2 11 2 -23 C2 11 3 24 C2 12 1 -22 C2 12 2 23 C2 12 3 -24 C3 1 1 -1 C3 1 2 2 C3 1 3 3 C3 2 1 -1 C3 2 2 -2 C3 2 3 3 C3 3 1 -1 C3 3 2 2 C3 3 3 -3 C3 4 1 -8 C3 4 2 9 C3 4 3 10 C3 5 1 -8 C3 5 2 -9 C3 5 3 10 C3 6 1 -8 C3 6 2 9 C3 6 3 -10 C3 7 1 -15 C3 7 2 16 C3 7 3 17 C3 8 1 -15 C3 8 2 -16 C3 8 3 17 C3 9 1 -15 C3 9 2 16 C3 9 3 -17 C3 10 1 -22 C3 10 2 23 C3 10 3 24 C3 11 1 -22 C3 11 2 -23 C3 11 3 24 C3 12 1 -22 C3 12 2 23 C3 12 3 -24 ; param wpid := C0 1 1 C0 2 1 C0 3 1 C0 4 1 C0 5 1 C0 6 1 C0 7 1 C0 8 1 C0 9 1 C0 10 1 C0 11 1 C0 12 1 C1 1 1 C1 2 1 C1 3 1 C1 4 1 C1 5 1 C1 6 1 C1 7 1 C1 8 1 C1 9 1 C1 10 1 C1 11 1 C1 12 1 C2 1 1 C2 2 1 C2 3 1 C2 4 1 C2 5 1 C2 6 1 C2 7 1 C2 8 1 C2 9 1 C2 10 1 C2 11 1 C2 12 1 C3 1 1 C3 2 1 C3 3 1 C3 4 1 C3 5 1 C3 6 1 C3 7 1 C3 8 1 C3 9 1 C3 10 1 C3 11 1 C3 12 1 ; end;