### Generated test set for the Home Health Care Problem ### Reference: Guericke, Daniela; Suhl, Leena: The Home Health Care Problem with Working Regulations, 2016 ### Filenames The filenames consist of the following information: _<#Jobs>_<#Clients>_<#Nurses>_<#Days> For example, instance 001_157_25_10_7 has the ID 1 and contains 157 jobs of 25 clients and 10 nurses in a planning horizon of 7 days. ### General information All information in the .hhc files are separated by tab "\t". Each block of new data is introduced by "$" and a keyword describing the content of the next block. The columns are described in brackets. For example, the lines following the line "$jobs (id, client id, day, duration (in minutes), qualification, time window start, time window end)" contain the list of jobs until the next keyword starting with "$" appears. ### File content The first 9 lines contain general instance information: Line 1 - instance name Line 2 - number of clients Line 3 - number of jobs Line 4 - number of nurses Line 5 - number of shift types Line 6 - planning horizon (days) Line 7 - start weekday (0=monday,..., 6=sunday) Line 8 - number of different break types Line 9 - number of shift rotations ### "$jobs" - List of jobs One line per job where the columns contain the following information: 1 - ID of the job 2 - Client ID 3 - Day (0 = first day of planning horizon) 4 - Duration in minutes 5 - Qualification needed 6 - Start of time window (in minutes from beginning of day) [0,1440] 7 - End of time window (in minutes from beginning of day) [0,1440] ### "$travel_times" - Driving time matrix The rows and columns are the client ids (zero-based). Thus driving time in minutes from client i to client j can be found in row i and column j. The rows are counted from the line after "$travel_times". ### "$shift_types" One line per shift type where the columns contain the following information: 1 - ID 2 - Earliest start time on Monday (in minutes from beginning of day) [0,1440] 3 - Latest end time on Monday (in minutes from beginning of day) [0,1440] 4 - Earliest start time on Tuesday (in minutes from beginning of day) [0,1440] 5 - Latest end time on Tuesday (in minutes from beginning of day) [0,1440] 6 - Earliest start time on Wednesday (in minutes from beginning of day) [0,1440] 7 - Latest end time on Wednesday (in minutes from beginning of day) [0,1440] 8 - Earliest start time on Thursday (in minutes from beginning of day) [0,1440] 9 - Latest end time on Thursday (in minutes from beginning of day) [0,1440] 10 - Earliest start time on Friday (in minutes from beginning of day) [0,1440] 11- Latest end time on Friday (in minutes from beginning of day) [0,1440] 12 - Earliest start time on Saturday (in minutes from beginning of day) [0,1440] 13 - Latest end time on Saturday (in minutes from beginning of day) [0,1440] 14 - Earliest start time on Sunday (in minutes from beginning of day) [0,1440] 15 - Latest end time on Sunday (in minutes from beginning of day) [0,1440] 16 - Valid weekdays as integer resulting from the binary format for 7 days (Example: Valid on all weekday --> 127; Valid from Monday to Friday --> 31) ### "$break_types" One line per break level and break type where the columns contain the following information: 1 - ID 2 - Lower bound (in minutes) -> if this value is exceeded a break of this level and type is necesary 3 - Break duration (in minutes) ### "$shift_rotations" One line per rotation and shift type where the columns contain the following information: 1 - Rotation ID 2 - Shift type ID [3 - Length] - Each column is one day. Value 1 = the day is valid in the shift rotation and shift type combination, 0 = otherwise Example: 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 In shift rotation 0 shift type 0 is allowed on the days 0 to 6 and 12 to 13 of the pattern. ### "$nurses" One line per nurse where the columns contain the following information: 1 - ID 2 - Max. daily working time (minutes) 3 - Daily rest time (minutes) 4 - Max. weekly working time (minutes) 5 - Max. weekly workdays 6 - Weekly uninterrupted rest time (minutes) 7 - Minimum break duration (in minutes) 8 - Id of the break type for this nurse 9 - Max. number of consecutive workdays 10 - Assignment of complete weekends (1 = yes, 0 = no) 11 - Client ID of the start location of the nurse 12 - ID of the shift rotation for this nurse (-1 = no shift rotation) ### "$nurse_qualifications" One line per nurse indicating the list of qualifcations 0 - Nurse ID [1 - Length] - List of qualification ids Example: 30 0 1 2 Nurse 30 has the qualification 0, 1 and 2 ### "$nurse_availabilities" One line per nurse and shift type indicating availability of nurses 0 - Nurse ID 1 - Shift type ID [2 - Length] - Flag for each day in the planning horizon indicating whether the nurse is available (1) or not (0) Example: 30 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 Nurse 30 is not available for shift type 0 on day 6 of the planning horizon ### "$end" End of file