Shift Scheduling Benchmark Data Sets
[ home ] [ nurse ] [ multi-activity ] [ changes ] [ contact ]
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.