About

Page created using API Version: 3.3.5.0

1 2 3 4 5
2009 December01020304050607080910111213141516171819202122232425262728293031
TWTFSSMTWTFSSMTWTFSSMTWTFSSMTWT

P

V

OP1  

A

 

A

H

 

D

 

N

       

M

 

M

 

M

H

 

A

 

A

A

A

   

N

 

N

  3 0
OP2

M

M

M

M

   

A

A

A

A

A

H

 

N

 

N

 

N

   

M

M

M

M

M

H

 

A

A

A

A

6 0
OP3

M

M

M

M

H

 

A

A

A

A

A

H

 

D

 

N

 

N

   

M

M

M

M

M

   

A

A

A

A

3 0
OP4  

N

 

N

   

M

M

M

M

M

 

H

   

A

 

A

H

 

N

 

D

 

N

   

M

M

M

M

3 0
OP5

A

 

A

A

 

H

 

N

 

N

     

M

H

                                10 0
OP6  

N

       

M

M

M

M

M

H

 

A

 

A

A

A

H

 

N

 

N

       

M

M

 

M

6 0
OP7

N

 

N

   

H

 

M

 

M

M

   

A

 

A

A

A

H

 

D

 

N

 

N

   

M

M

M

M

3 0
OP8

A

A

A

A

   

N

 

D

 

N

 

H

   

M

M

M

   

A

A

 

A

A

 

H

 

N

 

N

3 0
OP9

M

M

M

M

   

A

A

A

A

A

H

 

N

   

N

     

M

M

M

M

M

H

 

A

A

A

A

6 0
OP10                              

M

M

   

H

 

A

A

A

A

 

H

 

N

 

N

6 0
OP11

D

 

N

 

H

 

M

 

M

 

M

   

A

   

A

A

 

H

 

N

 

N

         

M

M

0 0
OP12

A

A

A

A

H

 

N

 

N

 

N

   

M

H

 

M

M

   

A

A

A

A

A

   

D

 

N

  3 0
OP13

N

   

N

   

M

M

M

M

     

A

 

A

A

   

H

 

N

 

N

 

H

 

M

M

M

D

0 0
OP14

M

M

M

M

   

A

A

A

A

A

 

H

 

H

 

N

     

M

M

M

M

M

   

A

A

A

A

6 0
OP15                                                               30 0
OP16

A

A

A

   

H

 

N

 

N

     

M

 

M

M

M

   

A

A

A

   

H

 

N

 

D

  3 0
Temp1  

D

 

D

                       

D

             

D

 

H

        10 0
Temp2          

H

     

D

         

D

         

D

                  8 0
Temp3    

D

       

D

   

D

     

H

       

H

     

D

   

H

        14 0
Temp4                        

H

       

D

                   

D

    6 0
Employees' penalty (soft constraints) 129

Violations

Shift Cover (Skill=All. Max=Soft constraint [weight=1000, function=Linear]. )
M Max - - - - 0 0 - - - - - 0 0 - 0 - - - 0 0 - - - - - 0 0 - - - -   
M Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=All. Min=Soft constraint [weight=1000, function=Linear]. )
M Min - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - -   
M Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=All. Max=Soft constraint [weight=1000, function=Linear]. )
D Max 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1   
D Assigned 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 00
Shift Cover (Skill=All. Min=Soft constraint [weight=1000, function=Linear]. )
D Min 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1   
D Assigned 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 00
Shift Cover (Skill=All. Max=Soft constraint [weight=1000, function=Linear]. )
H Max 0 0 0 0 4 4 0 0 0 0 0 4 4 0 4 0 0 0 4 4 0 0 0 0 0 4 4 0 0 0 0   
H Assigned 0 0 0 0 4 4 0 0 0 0 0 4 4 0 4 0 0 0 4 4 0 0 0 0 0 4 4 0 0 0 0 00
Shift Cover (Skill=All. Min=Soft constraint [weight=1000, function=Linear]. )
H Min 0 0 0 0 4 4 0 0 0 0 0 4 4 0 4 0 0 0 4 4 0 0 0 0 0 4 4 0 0 0 0   
H Assigned 0 0 0 0 4 4 0 0 0 0 0 4 4 0 4 0 0 0 4 4 0 0 0 0 0 4 4 0 0 0 0 00
Shift Cover (Skill=All. Max=Soft constraint [weight=1000, function=Linear]. )
A Max - - - - 0 0 - - - - - 0 0 - 0 - - - 0 0 - - - - - 0 0 - - - -   
A Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=All. Min=Soft constraint [weight=1000, function=Linear]. )
A Min - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - -   
A Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=All. Max=Soft constraint [weight=1000, function=Linear]. )
N Max - - - - 0 0 - - - - - 0 0 - 0 - - - 0 0 - - - - - 0 0 - - - -   
N Assigned 2 2 2 2 0 0 2 2 2 2 2 0 0 2 0 2 2 2 0 0 2 2 2 2 2 0 0 2 2 2 2 00
Shift Cover (Skill=All. Min=Soft constraint [weight=1000, function=Linear]. )
N Min - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - -   
N Assigned 2 2 2 2 0 0 2 2 2 2 2 0 0 2 0 2 2 2 0 0 2 2 2 2 2 0 0 2 2 2 2 00
Shift Cover (Skill=Permanent staff member. Min=Soft constraint [weight=1000, function=Linear]. )
M Min 4 4 4 4 - - 4 4 4 4 4 - - 4 0 4 4 4 - - 4 4 4 4 4 - - 4 4 4 4   
M Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=Permanent staff member. Max=Soft constraint [weight=1000, function=Linear]. )
M Max 4 4 4 4 - - 4 4 4 4 4 - - 4 0 4 4 4 - - 4 4 4 4 4 - - 4 4 4 4   
M Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=Permanent staff member. Min=Soft constraint [weight=1000, function=Linear]. )
H Min - - - - 2 2 - - - - - 2 2 - 2 - - - 2 2 - - - - - 2 2 - - - -   
H Assigned 0 0 0 0 4 3 0 0 0 0 0 4 3 0 3 0 0 0 4 3 0 0 0 0 0 4 2 0 0 0 0 00
Shift Cover (Skill=Permanent staff member. Min=Soft constraint [weight=1000, function=Linear]. )
A Min 4 4 4 4 - - 4 4 4 4 4 - - 4 0 4 4 4 - - 4 4 4 4 4 - - 4 4 4 4   
A Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=Permanent staff member. Max=Soft constraint [weight=1000, function=Linear]. )
A Max 4 4 4 4 - - 4 4 4 4 4 - - 4 0 4 4 4 - - 4 4 4 4 4 - - 4 4 4 4   
A Assigned 4 4 4 4 0 0 4 4 4 4 4 0 0 4 0 4 4 4 0 0 4 4 4 4 4 0 0 4 4 4 4 00
Shift Cover (Skill=Permanent staff member. Min=Soft constraint [weight=1000, function=Linear]. )
N Min 2 2 2 2 - - 2 2 2 2 2 - - 2 0 2 2 2 - - 2 2 2 2 2 - - 2 2 2 2   
N Assigned 2 2 2 2 0 0 2 2 2 2 2 0 0 2 0 2 2 2 0 0 2 2 2 2 2 0 0 2 2 2 2 00
Shift Cover (Skill=Permanent staff member. Max=Soft constraint [weight=1000, function=Linear]. )
N Max 2 2 2 2 - - 2 2 2 2 2 - - 2 0 2 2 2 - - 2 2 2 2 2 - - 2 2 2 2   
N Assigned 2 2 2 2 0 0 2 2 2 2 2 0 0 2 0 2 2 2 0 0 2 2 2 2 2 0 0 2 2 2 2 00
Total penalty (soft constraints)129
Total violations (hard constraints)0
Workload Resource Matrix
M TimeUnits 7777777777777777777777777777777
D TimeUnits 24242424242424242424242424242424242424242424242424242424242424
H TimeUnits 24242424242424242424242424242424242424242424242424242424242424
A TimeUnits 7777777777777777777777777777777
N TimeUnits 10101010101010101010101010101010101010101010101010101010101010

Shifts   Description

M

08:00:00-15:00:00 Morning.

D

08:00:00-07:59:00 Stand by.

H

10:00:00-09:59:00 Holiday.

A

15:00:00-22:00:00 Afternoon.

N

22:00:00-08:00:00 Night.
 

Computation
Found by   Solos, Ioannis P., Ioannis X. Tassopoulos and Grigorios N. Beligiannis
Algorithm A Generic Two-Phase Stochastic Variable Neighborhood Approach for Effectively Solving the Nurse Rostering Problem. Algorithms, 2013. 6: p. 278-308.
Computation time 29.1 secs
Date 2013
System Windows 7
CPU Intel Core 2 Duo CPU E7500 2.93 GHz

 

KEY
 Assignment frozen
 Day off request
 Day on request
 Shift off request
 Shift on request

 

 

Employees

OP1
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=True].
AllM  3
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=True].
AllA  2
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=True].
AllA  4
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=True].
AllN  1
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=True].
AllN  2
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  3
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  6
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  3
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = True
Mwk4 = False
Mwk5 = False
Awk1 = True
Awk2 = False
Awk3 = False
Awk4 = True
Awk5 = False
Nwk1 = False
Nwk2 = True
Nwk3 = False
Nwk4 = False
Nwk5 = True
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP2
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=True].
AllM  4
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=True].
AllM  5
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=True].
AllA  5
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=True].
AllA  4
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=True].
AllN  3
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  9
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  9
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  3
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = True
Mwk2 = False
Mwk3 = False
Mwk4 = True
Mwk5 = False
Awk1 = False
Awk2 = True
Awk3 = False
Awk4 = False
Awk5 = True
Nwk1 = False
Nwk2 = False
Nwk3 = True
Nwk4 = False
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP3
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=True].
AllM  4
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=True].
AllM  5
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=True].
AllA  5
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=True].
AllA  4
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=True].
AllN  2
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  9
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  9
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  2
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = True
Mwk2 = False
Mwk3 = False
Mwk4 = True
Mwk5 = False
Awk1 = False
Awk2 = True
Awk3 = False
Awk4 = False
Awk5 = True
Nwk1 = False
Nwk2 = False
Nwk3 = True
Nwk4 = False
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP4
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=True].
AllM  5
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=True].
AllM  4
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=True].
AllA  2
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=True].
AllN  2
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=True].
AllN  2
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  9
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  2
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  4
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = True
Mwk3 = False
Mwk4 = False
Mwk5 = True
Awk1 = False
Awk2 = False
Awk3 = True
Awk4 = False
Awk5 = False
Nwk1 = True
Nwk2 = False
Nwk3 = False
Nwk4 = True
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP5
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=True].
AllM  1
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=True].
AllA  3
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=True].
AllN  2
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  1
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  3
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  2
Conditionals 0 4
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = True
Mwk4 = False
Mwk5 = False
Awk1 = True
Awk2 = False
Awk3 = False
Awk4 = False
Awk5 = False
Nwk1 = False
Nwk2 = True
Nwk3 = False
Nwk4 = False
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
xShifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP6
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=True].
AllM  5
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=True].
AllM  3
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=True].
AllA  4
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=True].
AllN  1
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=True].
AllN  2
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  8
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  4
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  3
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = True
Mwk3 = False
Mwk4 = False
Mwk5 = True
Awk1 = False
Awk2 = False
Awk3 = True
Awk4 = False
Awk5 = False
Nwk1 = True
Nwk2 = False
Nwk3 = False
Nwk4 = True
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP7
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=True].
AllM  3
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=True].
AllM  4
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=True].
AllA  4
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=True].
AllN  2
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=True].
AllN  2
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  7
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  4
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  4
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = True
Mwk3 = False
Mwk4 = False
Mwk5 = True
Awk1 = False
Awk2 = False
Awk3 = True
Awk4 = False
Awk5 = False
Nwk1 = True
Nwk2 = False
Nwk3 = False
Nwk4 = True
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP8
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=True].
AllM  3
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=True].
AllA  4
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=True].
AllA  4
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=True].
AllN  2
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=True].
AllN  2
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  3
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  8
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  4
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = True
Mwk4 = False
Mwk5 = False
Awk1 = True
Awk2 = False
Awk3 = False
Awk4 = True
Awk5 = False
Nwk1 = False
Nwk2 = True
Nwk3 = False
Nwk4 = False
Nwk5 = True
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP9
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=True].
AllM  4
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=True].
AllM  5
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=True].
AllA  5
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=True].
AllA  4
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=True].
AllN  2
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  9
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  9
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  2
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = True
Mwk2 = False
Mwk3 = False
Mwk4 = True
Mwk5 = False
Awk1 = False
Awk2 = True
Awk3 = False
Awk4 = False
Awk5 = True
Nwk1 = False
Nwk2 = False
Nwk3 = True
Nwk4 = False
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP10
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=True].
AllM  2
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=True].
AllA  4
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=True].
AllN  2
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  2
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  4
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  2
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = True
Mwk4 = False
Mwk5 = False
Awk1 = False
Awk2 = False
Awk3 = False
Awk4 = True
Awk5 = False
Nwk1 = False
Nwk2 = False
Nwk3 = False
Nwk4 = False
Nwk5 = True
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP11
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 0
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=True].
AllM  3
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=True].
AllM  2
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=True].
AllA  3
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=True].
AllN  1
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=True].
AllN  2
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  5
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  3
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  3
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = True
Mwk3 = False
Mwk4 = False
Mwk5 = True
Awk1 = False
Awk2 = False
Awk3 = True
Awk4 = False
Awk5 = False
Nwk1 = True
Nwk2 = False
Nwk3 = False
Nwk4 = True
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP12
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=True].
AllM  3
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=True].
AllA  4
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=True].
AllA  5
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=True].
AllN  3
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=True].
AllN  1
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  3
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  9
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  4
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = True
Mwk4 = False
Mwk5 = False
Awk1 = True
Awk2 = False
Awk3 = False
Awk4 = True
Awk5 = False
Nwk1 = False
Nwk2 = True
Nwk3 = False
Nwk4 = False
Nwk5 = True
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP13
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 0
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=True].
AllM  4
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=True].
AllM  3
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=True].
AllA  3
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=True].
AllN  2
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=True].
AllN  2
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  7
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  3
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  4
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = True
Mwk3 = False
Mwk4 = False
Mwk5 = True
Awk1 = False
Awk2 = False
Awk3 = True
Awk4 = False
Awk5 = False
Nwk1 = True
Nwk2 = False
Nwk3 = False
Nwk4 = True
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP14
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=True].
AllM  4
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=True].
AllM  5
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=True].
AllA  5
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=True].
AllA  4
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=True].
AllN  1
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  9
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  9
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  1
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = True
Mwk2 = False
Mwk3 = False
Mwk4 = True
Mwk5 = False
Awk1 = False
Awk2 = True
Awk3 = False
Awk4 = False
Awk5 = True
Nwk1 = False
Nwk2 = False
Nwk3 = True
Nwk4 = False
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP15
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 30
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  0
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
Prefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 0
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=False].
AllM  0
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=False].
AllA  0
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=False].
AllA  0
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=False].
AllN  0
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=False].
AllN  0
xAt least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  0
xAt least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  0
xAt least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  0
xAt least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  0
xAt least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  0
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = False
Mwk4 = False
Mwk5 = False
Awk1 = False
Awk2 = False
Awk3 = False
Awk4 = False
Awk5 = False
Nwk1 = False
Nwk2 = False
Nwk3 = False
Nwk4 = False
Nwk5 = False
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
OP16
Skills: Permanent staff member
Contract: OP
Constraint Violations Penalty Details
Patterns 0 3
SatisfiedPattern matchesPatternsMatched
Start day123
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On 0
Max 1 D shift
Max 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
Max 2 H shifts (and equal numbers of Sat and Sun work)
Max 2 matches between days 0-30 of pattern:
[Soft constraint, weight=8, function=Linear].
AllH  2
D shifts should be attached to N shifts (D-Off-N)
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=10, function=Linear].
AllDOffNot N0
xPrefer M before D shifts
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=3, function=Linear].
AllNot MD 1
At least one M in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Mwk1, Value=False].
AllM  0
At least one M in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Mwk2, Value=False].
AllM  0
At least one M in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Mwk3, Value=True].
AllM  4
At least one M in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Mwk4, Value=False].
AllM  0
At least one M in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Mwk5, Value=False].
AllM  0
At least one A in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Awk1, Value=True].
AllA  3
At least one A in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Awk2, Value=False].
AllA  0
At least one A in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Awk3, Value=False].
AllA  0
At least one A in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Awk4, Value=True].
AllA  3
At least one A in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Awk5, Value=False].
AllA  0
At least one N in week 1
Min 1 match between days 0-3 of pattern:
[Variable, ID=Nwk1, Value=False].
AllN  0
At least one N in week 2
Min 1 match between days 6-10 of pattern:
[Variable, ID=Nwk2, Value=True].
AllN  2
At least one N in week 3
Min 1 match between days 13-17 of pattern:
[Variable, ID=Nwk3, Value=False].
AllN  0
At least one N in week 4
Min 1 match between days 20-24 of pattern:
[Variable, ID=Nwk4, Value=False].
AllN  0
At least one N in week 5
Min 1 match between days 27-30 of pattern:
[Variable, ID=Nwk5, Value=True].
AllN  1
At least one M
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllM  4
At least one D
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllD  1
At least one H
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllH  2
At least one A
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllA  6
At least one N
Min 1 match between days 0-30 of pattern:
[Soft constraint, weight=6, function=Linear].
AllN  3
Conditionals 0 0
SatisfiedConditionalVars
Shifts should rotate between weeks from M->A->N
IF Mwk1 THEN Awk2
[Soft constraint, weight=4].
Mwk1 = False
Mwk2 = False
Mwk3 = True
Mwk4 = False
Mwk5 = False
Awk1 = True
Awk2 = False
Awk3 = False
Awk4 = True
Awk5 = False
Nwk1 = False
Nwk2 = True
Nwk3 = False
Nwk4 = False
Nwk5 = True
Shifts should rotate between weeks from M->A->N
IF Awk1 THEN Nwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk1 THEN Mwk2
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk2 THEN Awk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk2 THEN Nwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk2 THEN Mwk3
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk3 THEN Awk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk3 THEN Nwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk3 THEN Mwk4
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Mwk4 THEN Awk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Awk4 THEN Nwk5
[Soft constraint, weight=4].
Shifts should rotate between weeks from M->A->N
IF Nwk4 THEN Mwk5
[Soft constraint, weight=4].
 
Temp1
Contract: Temp
Constraint Violations Penalty Details
Patterns 0 10
SatisfiedPattern matchesPatternsMatched
Start day12
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On0
H and D shifts only
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=9, function=Linear].
AllM or
A or
N
 0
xAssign as few shifts to Temp staff as possible
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=2, function=Linear].
AllOn 5
 
Temp2
Contract: Temp
Constraint Violations Penalty Details
Patterns 0 8
SatisfiedPattern matchesPatternsMatched
Start day12
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On0
H and D shifts only
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=9, function=Linear].
AllM or
A or
N
 0
xAssign as few shifts to Temp staff as possible
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=2, function=Linear].
AllOn 4
 
Temp3
Contract: Temp
Constraint Violations Penalty Details
Patterns 0 14
SatisfiedPattern matchesPatternsMatched
Start day12
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On0
H and D shifts only
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=9, function=Linear].
AllM or
A or
N
 0
xAssign as few shifts to Temp staff as possible
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=2, function=Linear].
AllOn 7
 
Temp4
Contract: Temp
Constraint Violations Penalty Details
Patterns 0 6
SatisfiedPattern matchesPatternsMatched
Start day12
Day off after N, D or H
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=1000, function=Linear].
AllD or
H or
N
On0
H and D shifts only
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=9, function=Linear].
AllM or
A or
N
 0
xAssign as few shifts to Temp staff as possible
Max 0 matches between days 0-30 of pattern:
[Soft constraint, weight=2, function=Linear].
AllOn 3
 

Total employees' penalty (soft constraints)

Constraint Penalty
1. Patterns 125
2. Conditionals 4
Total 129