Employee Shift Scheduling Benchmark Data Sets



New solutions from Pieter Smet (Department of Computer Science, KU Leuven) using Integer Programming:

              Time(s)          LB          UB
Instance08       880.4      1300.00      1300.00
Instance09      1769.6       439.00       439.00
Instance13     12074.5      1348.00      1348.00
Instance14       456.7      1278.00      1278.00
Instance16       488.3      3225.00      3225.00
Instance17      1096.2      5746.00      5746.00
Instance18      2675.5      4459.00      4459.00               

                               LB          UB
Instance15                  3823.00      3834.00
Instance19                  3148.00      3149.00


New solutions from Petter Strandmark using branch and price (source code available at https://github.com/PetterS/monolith):

Instance13  1388
Instance15  4039
Instance19  3218
Instance20  4943
Instance21  21159
Instance22  33155
Instance23  17428
Instance24  48777


New solutions from Felix Winter (Technical University of Vienna) using a metaheuristic and constraint programming hybrid method:

             Solution     Time (secs)
Instance19   3688         19684
Instance20   5936         5010.18
Instance21   22020        53044.2
Instance22   37912        62141.2
Instance23   41574        3552.77
Instance24   54344        84340.8 


New results using Gurobi 5.6.3 (report)


New lower bounds and solutions from Petter Strandmark:

Lower bounds

Instance13: 519
Instance21: 11898
Instance22: 24064
Instance23: 2765


Instance14: 1779
Instance15: 4932
Instance21: 22215
Instance22: 46849


New lower bounds found by Petter Strandmark using Integer Programming:

Instance1: 607
Instance14: 1254
Instance15: 3740
Instance17: 5706
Instance18: 4175
Instance19: 2689
Instance20: 4091


New lower bounds found using Column Generation:

Instance1: 558
Instance2: 828 
Instance3: 1001  
Instance4: 1716 
Instance5: 1141  
Instance6: 1949 
Instance7: 1055  
Instance8: 1297  
Instance9: 406 
Instance10: 4631 
Instance11: 3443  
Instance12: 4040 
Instance16: 3224  

New best known solutions found using Branch and Price:

Instance    Solution   Time(s)
Instance1   607        0.27
Instance2   828        0.13
Instance3   1001       0.45
Instance4   1716       1.5
Instance5   1160       25.61
Instance6   1952       10.46
Instance7   1058       93.73
Instance8   1308       11831.06
Instance9   439        76.99
Instance10  4631       113.44
Instance11  3443       19.11
Instance12  4046       1336.40
Instance16  3323       265.02


24 new instances have been added. The instances have been designed to be easier to understand and use but challenging to solve. The instances range in size from 2 weeks to 52 weeks and 8 staff to 150 staff. They are available in an XML or a plain delimited text format.


The University of Nottingham has formed a spin-out company (Staff Roster Solutions) to licence and develop the rostering engine previously available at this site. The benchmark instances will continue to be hosted at this site. Roster Booster and the XML format documentation have moved to www.staffrostersolutions.com.


  • New version of Roster Booster (1.7.0).
  • Two new benchmark instances: HED01 and BCDT-Sep.


New version of Roster Booster (1.6.0).


New version of Roster Booster (1.5.0) which includes a column generation algorithm for calculating lower bounds on instances.


New version of Roster Booster which includes two new constraints: EmployeePairings and Conditionals.


New best known solutions for instance Ikegami-3Shift-DATA1.1 (3) and instance Ikegami-3Shift-DATA1.2 (3), found by Nobuo Inui, Kenta Maeda and Atsuko Ikegami.


New best known solution for instance Ikegami-3Shift-DATA1 (2), found by Nobuo Inui, Kenta Maeda and Atsuko Ikegami.


Updated the results spreadsheet to include some recent publications.


New best known solution for instance ORTEC02 (270), found by Celia Glass and Roger Knight. See reference [GLA09].


  • New version of Roster Booster (0.9.2). Includes :
    • The model now differentiates between hard and soft constraints.
    • New features (search space size, solver memory usage etc).


  • New version of Roster Booster (0.9).
    • Added the ability to open, create and solve tour (sub-daily) scheduling instances.
    • Updates to the rostering engine.
  • Added some example tour scheduling instances.


  • Converted the instances to a new model which uses two general constraints in place of all the previous constraints.
  • Updated Roster Booster (0.8.0) to work with the new model. Roster Booster is also now more of a modeling tool for creating instances and testing them using the solvers.
  • Added some lower bounds found by solving the new model using column generation.


New results :

Lower bounds
Valouxis-1 - 20
GPost-B    - 3


Added two small instances taken from papers published in the 80's (Ozkarahan.ros and Musa.ros)


Added two new instances Azaiez.ros and LLR.ros


New results :

Upper bounds
GPost      - 5
Valouxis-1 - 20

Lower bounds
ORTEC01  - 270 (more info)
GPost    - 5   (more info)
WHPP     - 5   (more info)


More best known solutions found by DeWolf Fan Xue (Hong Kong Polytechnic University) :

Valouxis-1 - 60
Valouxis-1 - 120
BCV-A.12.2 - 1953
BCV-3.46.1 - 3280
BCV-3.46.2 - 894


More best known solutions found by DeWolf Fan Xue (Hong Kong Polytechnic University) :

ORTEC01 - 270
BCV-A.12.1 - 1294
BCV-A.12.1 - 1305
BCV-A.12.1 - 1330
BCV-3.46.1 - 3282
BCV-3.46.1 - 3283


DeWolf Fan Xue (Hong Kong Polytechnic University) found two new best known solutions for instance BCV-A.12.1 (1345 and 1354).


Added an installer for roster viewer (also changed name to Roster Booster).


Roster viewer (0.6).
- Printing and print previewing rosters.
- Adding, editing and deleting constraints.
- Emailing schedules to employees.
- Cut, copy and paste shifts in the roster.
- Freeze days on the roster so nothing can be assigned or unassigned on those days.
- Added a flag for shifts which indicates whether or not they can be auto-assigned (e.g. by an auto-assignment algorithm). This allows 'shifts' such as 'training days' to be used.
- Select photos for employees.
- Enter phone and email details for employees.


Roster viewer (0.5.1).


New version of roster viewer (0.5).


New version of roster viewer (0.4). Minor changes to API (2.3.1).


Version 2.3 available.


Added the Valouxis instance.


Added the WHPP instance.


Added the Ikegami and Niwa data sets.
New version of the roster viewer.


Added the data sets from hospitals in Montreal.


Bug fixes to the roster viewer.


Version 2.0 available. Includes a number of changes:
- Min, max, preferred levels of cover can be specified and penalised by deviation from these levels.
- Cover can be specified for each skill.
- Cover can be specified by period of day as well as per shift.
- A number of new constraints.

Added some new data sets.

A GUI is now available for viewing and creating/changing rosters by hand.


Version 1.1 of the API available.
Simple command line user interface available for download.
Added to the website some more documentation about the data formats.


Added the QMC data set.


Some of the instances have been renamed.

The name changes are as follows:

Data1   =  BCV-1.8.1
Data1b  =  BCV-1.8.2
Data1c  =  BCV-1.8.3
Data1d  =  BCV-1.8.4
Data2   =  BCV-2.46.1
Data3   =  BCV-3.46.1
Data3b  =  BCV-3.46.2
Data4   =  BCV-4.13.1
Data4b  =  BCV-4.13.2
Data5   =  BCV-5.4.1
Data6   =  BCV-6.13.1
Data6b  =  BCV-6.13.2
Data7   =  BCV-7.10.1
Data8   =  BCV-8.13.1
Data8b  =  BCV-8.13.2
DataA   =  BCV-A.12.1
DataB   =  BCV-A.12.2