Shift Scheduling Benchmark Data Sets

Nurse Rostering Instances 1..24

These instances are designed to be realistic and challenging but straightforward to use. To keep the data format and modelling as simple as possible the instances do not contain any specific information about the schedules in the previous planning period. This makes the instances less constrained but we don't believe it makes finding the optimal solution easier or harder on average.

An integer programming formulation for the constraints and objectives is also provided here.

General Information

All instances start on a Monday. Day indexes start at zero so the first day in the planning period is day zero.

Hard Constraints

Employees cannot be assigned more than one shift on a day.

Shift Rotation - Shifts which cannot follow the shift on the previous day are defined in SECTION_SHIFTS. This constraint always assumes that the last day of the previous planning period was a day off and the first day of the next planning horizon is a day off.

Maximum Number of Shifts - The maximum number of shifts of each type that can be assigned to each employee are defined in SECTION_STAFF in the field MaxShifts.

Maximum Total Minutes - The maximum amount of total time in minutes that can be assigned to each employee is defined in SECTION_STAFF in the field MaxTotalMinutes. The duration in minutes of each shift is defined in SECTION_SHIFTS in the field Length in mins.

Minimum Total Minutes - The minimum amount of total time in minutes that must be assigned to each employee is defined in SECTION_STAFF in the field MinTotalMinutes. The duration in minutes of each shift is defined in SECTION_SHIFTS in the field Length in mins.

Maximum Consecutive Shifts - The maximum number of consecutive shifts that can be worked before having a day off. This constraint always assumes that the last day of the previous planning period was a day off and the first day of the next planning period is a day off.

Minimum Consecutive Shifts - The minimum number of shifts that must be worked before having a day off. This constraint always assumes that there are an infinite number of consecutive shifts assigned at the end of the previous planning period and at the start of the next planning period.

Minimum Consecutive Days Off - The minimum number of consecutive days off that must be assigned before assigning a shift. This constraint always assumes that there are an infinite number of consecutive days off assigned at the end of the previous planning period and at the start of the next planning period.

Maximum Number of Weekends - A weekend is defined as being worked if there is a shift on the Saturday or the Sunday.

Days off - Shifts must not be assigned to the specified employee on the specified days. They are defined in the section SECTION_DAYS_OFF.

Soft Constraints

Shift on requests - If the specified shift is not assigned to the specified employee on the specified day then the solution's penalty is the specified weight value. Defined in SECTION_SHIFT_ON_REQUESTS.

Shift off requests - If the specified shift is assigned to the specified employee on the specified day then the solution's penalty is the weight value. Defined in SECTION_SHIFT_OFF_REQUESTS.

Cover - If the required number of staff on the specified day for the specified shift is not assigned (defined in SECTION_COVER) then it is a soft constraint violation. If the number assigned (x) is below the required number then the solution's penalty is:

(requirement - x) * weight for under

If the total number assigned is more than the required number then the solution's penalty is:

(x - requirement) * weight for over

How to verify new solutions?

See: How to verify new solutions.