task_name,problem_type,instruction,instance,solution,obj,instance_variant,solution_variant,context_index,input_format,input_index_base JSP,JSP,"Recently the kitchen got busier, so the head chef started sketching start times for every recipe step, making sure each step sits on its assigned counter or oven for the exact time, that steps for a dish follow one after another, and that no appliance is doing two jobs at once. The point is to get every order out as soon as possible — check when each dish is completed, pick the latest completion time as the end of the shift, and try to make that latest time as small as possible. Nothing can be skipped or duplicated in the plan, and the concrete details will be shown below. # nr_dishes=9 # nr_stations=5 # dishes=J1, J2, J3, J4, J5, J6, J7, J8, J9 # stations=1, 2, 3, 4, 5 dish_id,step_index,station_id,step_duration J1,0,5,1 J1,1,2,52 J1,2,3,73 J1,3,4,27 J1,4,1,38 J2,0,3,20 J2,1,5,97 J2,2,2,51 J2,3,4,53 J2,4,1,26 J3,0,5,11 J3,1,2,81 J3,2,4,90 J3,3,1,45 J3,4,3,25 J4,0,2,25 J4,1,4,19 J4,2,5,33 J4,3,1,11 J4,4,3,80 J5,0,5,53 J5,1,3,84 J5,2,1,73 J5,3,2,8 J5,4,4,54 J6,0,4,13 J6,1,1,86 J6,2,5,46 J6,3,3,47 J6,4,2,45 J7,0,1,24 J7,1,3,2 J7,2,4,3 J7,3,5,99 J7,4,2,91 J8,0,1,78 J8,1,5,57 J8,2,4,77 J8,3,2,62 J8,4,3,35 J9,0,2,38 J9,1,1,27 J9,2,4,35 J9,3,5,64 J9,4,3,37 Also, when you send the schedule back, please stick to a simple JSON layout — something like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This shows the shape I’m expecting: ""solution"" is a list of jobs (dishes), each job has an id and a list of tasks (steps). For each task you give its index in the job, the planned start time, which machine (counter/oven) it uses, and how long it runs. Think of it as a simple form: one object per dish, and an ordered list of the steps with times and machines. This JSON is only a sketch of the expected shape, not the actual schedule. Please use the exact identifiers from the instance input — do not rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[4, 1], [1, 52], [2, 73], [3, 27], [0, 38]], [[2, 20], [4, 97], [1, 51], [3, 53], [0, 26]], [[4, 11], [1, 81], [3, 90], [0, 45], [2, 25]], [[1, 25], [3, 19], [4, 33], [0, 11], [2, 80]], [[4, 53], [2, 84], [0, 73], [1, 8], [3, 54]], [[3, 13], [0, 86], [4, 46], [2, 47], [1, 45]], [[0, 24], [2, 2], [3, 3], [4, 99], [1, 91]], [[0, 78], [4, 57], [3, 77], [1, 62], [2, 35]], [[1, 38], [0, 27], [3, 35], [4, 64], [2, 37]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 64, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 92, 'machine': 1, 'duration': 52}, {'task': 2, 'start': 190, 'machine': 2, 'duration': 73}, {'task': 3, 'start': 384, 'machine': 3, 'duration': 27}, {'task': 4, 'start': 411, 'machine': 0, 'duration': 38}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 20}, {'task': 1, 'start': 65, 'machine': 4, 'duration': 97}, {'task': 2, 'start': 169, 'machine': 1, 'duration': 51}, {'task': 3, 'start': 296, 'machine': 3, 'duration': 53}, {'task': 4, 'start': 349, 'machine': 0, 'duration': 26}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 11}, {'task': 1, 'start': 11, 'machine': 1, 'duration': 81}, {'task': 2, 'start': 92, 'machine': 3, 'duration': 90}, {'task': 3, 'start': 261, 'machine': 0, 'duration': 45}, {'task': 4, 'start': 312, 'machine': 2, 'duration': 25}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 144, 'machine': 1, 'duration': 25}, {'task': 1, 'start': 182, 'machine': 3, 'duration': 19}, {'task': 2, 'start': 265, 'machine': 4, 'duration': 33}, {'task': 3, 'start': 333, 'machine': 0, 'duration': 11}, {'task': 4, 'start': 344, 'machine': 2, 'duration': 80}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 11, 'machine': 4, 'duration': 53}, {'task': 1, 'start': 64, 'machine': 2, 'duration': 84}, {'task': 2, 'start': 188, 'machine': 0, 'duration': 73}, {'task': 3, 'start': 261, 'machine': 1, 'duration': 8}, {'task': 4, 'start': 411, 'machine': 3, 'duration': 54}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 13}, {'task': 1, 'start': 78, 'machine': 0, 'duration': 86}, {'task': 2, 'start': 219, 'machine': 4, 'duration': 46}, {'task': 3, 'start': 265, 'machine': 2, 'duration': 47}, {'task': 4, 'start': 358, 'machine': 1, 'duration': 45}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 164, 'machine': 0, 'duration': 24}, {'task': 1, 'start': 188, 'machine': 2, 'duration': 2}, {'task': 2, 'start': 201, 'machine': 3, 'duration': 3}, {'task': 3, 'start': 298, 'machine': 4, 'duration': 99}, {'task': 4, 'start': 403, 'machine': 1, 'duration': 91}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 78}, {'task': 1, 'start': 162, 'machine': 4, 'duration': 57}, {'task': 2, 'start': 219, 'machine': 3, 'duration': 77}, {'task': 3, 'start': 296, 'machine': 1, 'duration': 62}, {'task': 4, 'start': 424, 'machine': 2, 'duration': 35}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 220, 'machine': 1, 'duration': 38}, {'task': 1, 'start': 306, 'machine': 0, 'duration': 27}, {'task': 2, 'start': 349, 'machine': 3, 'duration': 35}, {'task': 3, 'start': 397, 'machine': 4, 'duration': 64}, {'task': 4, 'start': 461, 'machine': 2, 'duration': 37}]}]",498.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 5, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 52}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 73}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 27}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 38}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 3, 'duration': 20}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 97}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 2, 'duration': 51}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 53}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 26}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 5, 'duration': 11}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 81}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 4, 'duration': 90}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 45}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 25}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 2, 'duration': 25}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 4, 'duration': 19}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 5, 'duration': 33}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 1, 'duration': 11}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 80}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 5, 'duration': 53}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 84}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 73}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 8}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 4, 'duration': 54}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 13}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 86}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 5, 'duration': 46}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 3, 'duration': 47}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 2, 'duration': 45}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 24}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 2}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 3}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 5, 'duration': 99}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 91}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 78}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 5, 'duration': 57}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 77}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 2, 'duration': 62}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 35}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 2, 'duration': 38}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 27}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 4, 'duration': 35}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 64}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 3, 'duration': 37}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 64, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 92, 'machine': 2, 'duration': 52}, {'task': 2, 'start': 190, 'machine': 3, 'duration': 73}, {'task': 3, 'start': 384, 'machine': 4, 'duration': 27}, {'task': 4, 'start': 411, 'machine': 1, 'duration': 38}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 20}, {'task': 1, 'start': 65, 'machine': 5, 'duration': 97}, {'task': 2, 'start': 169, 'machine': 2, 'duration': 51}, {'task': 3, 'start': 296, 'machine': 4, 'duration': 53}, {'task': 4, 'start': 349, 'machine': 1, 'duration': 26}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 11}, {'task': 1, 'start': 11, 'machine': 2, 'duration': 81}, {'task': 2, 'start': 92, 'machine': 4, 'duration': 90}, {'task': 3, 'start': 261, 'machine': 1, 'duration': 45}, {'task': 4, 'start': 312, 'machine': 3, 'duration': 25}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 144, 'machine': 2, 'duration': 25}, {'task': 1, 'start': 182, 'machine': 4, 'duration': 19}, {'task': 2, 'start': 265, 'machine': 5, 'duration': 33}, {'task': 3, 'start': 333, 'machine': 1, 'duration': 11}, {'task': 4, 'start': 344, 'machine': 3, 'duration': 80}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 11, 'machine': 5, 'duration': 53}, {'task': 1, 'start': 64, 'machine': 3, 'duration': 84}, {'task': 2, 'start': 188, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 261, 'machine': 2, 'duration': 8}, {'task': 4, 'start': 411, 'machine': 4, 'duration': 54}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 13}, {'task': 1, 'start': 78, 'machine': 1, 'duration': 86}, {'task': 2, 'start': 219, 'machine': 5, 'duration': 46}, {'task': 3, 'start': 265, 'machine': 3, 'duration': 47}, {'task': 4, 'start': 358, 'machine': 2, 'duration': 45}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 164, 'machine': 1, 'duration': 24}, {'task': 1, 'start': 188, 'machine': 3, 'duration': 2}, {'task': 2, 'start': 201, 'machine': 4, 'duration': 3}, {'task': 3, 'start': 298, 'machine': 5, 'duration': 99}, {'task': 4, 'start': 403, 'machine': 2, 'duration': 91}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 78}, {'task': 1, 'start': 162, 'machine': 5, 'duration': 57}, {'task': 2, 'start': 219, 'machine': 4, 'duration': 77}, {'task': 3, 'start': 296, 'machine': 2, 'duration': 62}, {'task': 4, 'start': 424, 'machine': 3, 'duration': 35}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 220, 'machine': 2, 'duration': 38}, {'task': 1, 'start': 306, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 349, 'machine': 4, 'duration': 35}, {'task': 3, 'start': 397, 'machine': 5, 'duration': 64}, {'task': 4, 'start': 461, 'machine': 3, 'duration': 37}]}]",1,csv,1 JSP,JSP,"Recently the team was handed several rooms to renovate, each with a step-by-step checklist, and the role was to place each step on its proper machine and time slot. The rules were simple in practice: don’t let a machine handle overlapping tasks, keep the room steps in their given sequence, and don’t skip or repeat any tasks. The success of a schedule is judged by how soon the last job completes — check the clock when the final task ends to see which plan is better. The concrete breakdown of tasks and durations is listed below. There were 11 rooms to renovate across 5 machines; the rooms were J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and the machines were 1, 2, 3, 4, 5. Room J1, step 0, required machine 3 for 1. Room J1, step 1, required machine 4 for 65. Room J1, step 2, required machine 2 for 49. Room J1, step 3, required machine 5 for 72. Room J1, step 4, required machine 1 for 90. Room J2, step 0, required machine 4 for 42. Room J2, step 1, required machine 5 for 3. Room J2, step 2, required machine 2 for 19. Room J2, step 3, required machine 1 for 21. Room J2, step 4, required machine 3 for 19. Room J3, step 0, required machine 3 for 49. Room J3, step 1, required machine 4 for 34. Room J3, step 2, required machine 2 for 73. Room J3, step 3, required machine 5 for 49. Room J3, step 4, required machine 1 for 30. Room J4, step 0, required machine 4 for 77. Room J4, step 1, required machine 5 for 86. Room J4, step 2, required machine 3 for 33. Room J4, step 3, required machine 1 for 49. Room J4, step 4, required machine 2 for 87. Room J5, step 0, required machine 3 for 95. Room J5, step 1, required machine 1 for 53. Room J5, step 2, required machine 4 for 33. Room J5, step 3, required machine 5 for 1. Room J5, step 4, required machine 2 for 39. Room J6, step 0, required machine 4 for 66. Room J6, step 1, required machine 3 for 95. Room J6, step 2, required machine 1 for 12. Room J6, step 3, required machine 2 for 88. Room J6, step 4, required machine 5 for 15. Room J7, step 0, required machine 3 for 15. Room J7, step 1, required machine 5 for 77. Room J7, step 2, required machine 2 for 29. Room J7, step 3, required machine 4 for 5. Room J7, step 4, required machine 1 for 65. Room J8, step 0, required machine 4 for 12. Room J8, step 1, required machine 3 for 21. Room J8, step 2, required machine 2 for 53. Room J8, step 3, required machine 1 for 61. Room J8, step 4, required machine 5 for 71. Room J9, step 0, required machine 4 for 62. Room J9, step 1, required machine 1 for 25. Room J9, step 2, required machine 2 for 8. Room J9, step 3, required machine 3 for 40. Room J9, step 4, required machine 5 for 2. Room J10, step 0, required machine 2 for 13. Room J10, step 1, required machine 1 for 16. Room J10, step 2, required machine 4 for 5. Room J10, step 3, required machine 5 for 72. Room J10, step 4, required machine 3 for 76. Room J11, step 0, required machine 5 for 95. Room J11, step 1, required machine 2 for 54. Room J11, step 2, required machine 3 for 23. Room J11, step 3, required machine 4 for 82. Room J11, step 4, required machine 1 for 45. The team judged schedules by checking the clock when the final task completed for the 11 rooms. Also, to keep things neat when you send back a plan, please follow this simple JSON layout for the schedule: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: ""solution"" holds all the rooms (jobs), each job entry names the job and then lists its steps. Each step shows which numbered step it is, when it starts, which machine it's on, and how long it runs. It's just a sketch of the shape I need, not the final schedule itself. Please make sure to use the exact identifiers from the instance input — no renaming and no inventing new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[2, 1], [3, 65], [1, 49], [4, 72], [0, 90]], [[3, 42], [4, 3], [1, 19], [0, 21], [2, 19]], [[2, 49], [3, 34], [1, 73], [4, 49], [0, 30]], [[3, 77], [4, 86], [2, 33], [0, 49], [1, 87]], [[2, 95], [0, 53], [3, 33], [4, 1], [1, 39]], [[3, 66], [2, 95], [0, 12], [1, 88], [4, 15]], [[2, 15], [4, 77], [1, 29], [3, 5], [0, 65]], [[3, 12], [2, 21], [1, 53], [0, 61], [4, 71]], [[3, 62], [0, 25], [1, 8], [2, 40], [4, 2]], [[1, 13], [0, 16], [3, 5], [4, 72], [2, 76]], [[4, 95], [1, 54], [2, 23], [3, 82], [0, 45]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 12, 'machine': 3, 'duration': 65}, {'task': 2, 'start': 122, 'machine': 1, 'duration': 49}, {'task': 3, 'start': 188, 'machine': 4, 'duration': 72}, {'task': 4, 'start': 288, 'machine': 0, 'duration': 90}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 259, 'machine': 3, 'duration': 42}, {'task': 1, 'start': 346, 'machine': 4, 'duration': 3}, {'task': 2, 'start': 397, 'machine': 1, 'duration': 19}, {'task': 3, 'start': 453, 'machine': 0, 'duration': 21}, {'task': 4, 'start': 537, 'machine': 2, 'duration': 19}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 37, 'machine': 2, 'duration': 49}, {'task': 1, 'start': 148, 'machine': 3, 'duration': 34}, {'task': 2, 'start': 182, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 422, 'machine': 4, 'duration': 49}, {'task': 4, 'start': 481, 'machine': 0, 'duration': 30}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 182, 'machine': 3, 'duration': 77}, {'task': 1, 'start': 260, 'machine': 4, 'duration': 86}, {'task': 2, 'start': 346, 'machine': 2, 'duration': 33}, {'task': 3, 'start': 379, 'machine': 0, 'duration': 49}, {'task': 4, 'start': 469, 'machine': 1, 'duration': 87}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 86, 'machine': 2, 'duration': 95}, {'task': 1, 'start': 216, 'machine': 0, 'duration': 53}, {'task': 2, 'start': 368, 'machine': 3, 'duration': 33}, {'task': 3, 'start': 421, 'machine': 4, 'duration': 1}, {'task': 4, 'start': 422, 'machine': 1, 'duration': 39}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 77, 'machine': 3, 'duration': 66}, {'task': 1, 'start': 181, 'machine': 2, 'duration': 95}, {'task': 2, 'start': 276, 'machine': 0, 'duration': 12}, {'task': 3, 'start': 309, 'machine': 1, 'duration': 88}, {'task': 4, 'start': 542, 'machine': 4, 'duration': 15}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 1, 'machine': 2, 'duration': 15}, {'task': 1, 'start': 16, 'machine': 4, 'duration': 77}, {'task': 2, 'start': 93, 'machine': 1, 'duration': 29}, {'task': 3, 'start': 143, 'machine': 3, 'duration': 5}, {'task': 4, 'start': 151, 'machine': 0, 'duration': 65}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 12}, {'task': 1, 'start': 16, 'machine': 2, 'duration': 21}, {'task': 2, 'start': 37, 'machine': 1, 'duration': 53}, {'task': 3, 'start': 90, 'machine': 0, 'duration': 61}, {'task': 4, 'start': 471, 'machine': 4, 'duration': 71}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 306, 'machine': 3, 'duration': 62}, {'task': 1, 'start': 428, 'machine': 0, 'duration': 25}, {'task': 2, 'start': 461, 'machine': 1, 'duration': 8}, {'task': 3, 'start': 497, 'machine': 2, 'duration': 40}, {'task': 4, 'start': 557, 'machine': 4, 'duration': 2}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 13}, {'task': 1, 'start': 13, 'machine': 0, 'duration': 16}, {'task': 2, 'start': 301, 'machine': 3, 'duration': 5}, {'task': 3, 'start': 349, 'machine': 4, 'duration': 72}, {'task': 4, 'start': 421, 'machine': 2, 'duration': 76}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 93, 'machine': 4, 'duration': 95}, {'task': 1, 'start': 255, 'machine': 1, 'duration': 54}, {'task': 2, 'start': 311, 'machine': 2, 'duration': 23}, {'task': 3, 'start': 401, 'machine': 3, 'duration': 82}, {'task': 4, 'start': 511, 'machine': 0, 'duration': 45}]}]",559.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 65}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 49}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 72}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 90}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 4, 'duration': 42}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 3}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 2, 'duration': 19}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 1, 'duration': 21}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 19}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 3, 'duration': 49}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 4, 'duration': 34}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 2, 'duration': 73}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 5, 'duration': 49}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 1, 'duration': 30}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 77}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 5, 'duration': 86}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 3, 'duration': 33}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 1, 'duration': 49}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 2, 'duration': 87}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 3, 'duration': 95}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 53}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 4, 'duration': 33}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 5, 'duration': 1}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 39}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 66}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 95}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 12}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 2, 'duration': 88}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 5, 'duration': 15}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 3, 'duration': 15}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 5, 'duration': 77}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 2, 'duration': 29}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 4, 'duration': 5}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 1, 'duration': 65}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 4, 'duration': 12}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 21}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 53}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 61}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 5, 'duration': 71}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 62}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 25}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 2, 'duration': 8}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 40}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 5, 'duration': 2}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 2, 'duration': 13}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 16}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 4, 'duration': 5}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 5, 'duration': 72}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 76}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 5, 'duration': 95}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 2, 'duration': 54}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 3, 'duration': 23}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 4, 'duration': 82}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 1, 'duration': 45}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 12, 'machine': 4, 'duration': 65}, {'task': 2, 'start': 122, 'machine': 2, 'duration': 49}, {'task': 3, 'start': 188, 'machine': 5, 'duration': 72}, {'task': 4, 'start': 288, 'machine': 1, 'duration': 90}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 259, 'machine': 4, 'duration': 42}, {'task': 1, 'start': 346, 'machine': 5, 'duration': 3}, {'task': 2, 'start': 397, 'machine': 2, 'duration': 19}, {'task': 3, 'start': 453, 'machine': 1, 'duration': 21}, {'task': 4, 'start': 537, 'machine': 3, 'duration': 19}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 37, 'machine': 3, 'duration': 49}, {'task': 1, 'start': 148, 'machine': 4, 'duration': 34}, {'task': 2, 'start': 182, 'machine': 2, 'duration': 73}, {'task': 3, 'start': 422, 'machine': 5, 'duration': 49}, {'task': 4, 'start': 481, 'machine': 1, 'duration': 30}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 182, 'machine': 4, 'duration': 77}, {'task': 1, 'start': 260, 'machine': 5, 'duration': 86}, {'task': 2, 'start': 346, 'machine': 3, 'duration': 33}, {'task': 3, 'start': 379, 'machine': 1, 'duration': 49}, {'task': 4, 'start': 469, 'machine': 2, 'duration': 87}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 86, 'machine': 3, 'duration': 95}, {'task': 1, 'start': 216, 'machine': 1, 'duration': 53}, {'task': 2, 'start': 368, 'machine': 4, 'duration': 33}, {'task': 3, 'start': 421, 'machine': 5, 'duration': 1}, {'task': 4, 'start': 422, 'machine': 2, 'duration': 39}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 77, 'machine': 4, 'duration': 66}, {'task': 1, 'start': 181, 'machine': 3, 'duration': 95}, {'task': 2, 'start': 276, 'machine': 1, 'duration': 12}, {'task': 3, 'start': 309, 'machine': 2, 'duration': 88}, {'task': 4, 'start': 542, 'machine': 5, 'duration': 15}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 1, 'machine': 3, 'duration': 15}, {'task': 1, 'start': 16, 'machine': 5, 'duration': 77}, {'task': 2, 'start': 93, 'machine': 2, 'duration': 29}, {'task': 3, 'start': 143, 'machine': 4, 'duration': 5}, {'task': 4, 'start': 151, 'machine': 1, 'duration': 65}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 12}, {'task': 1, 'start': 16, 'machine': 3, 'duration': 21}, {'task': 2, 'start': 37, 'machine': 2, 'duration': 53}, {'task': 3, 'start': 90, 'machine': 1, 'duration': 61}, {'task': 4, 'start': 471, 'machine': 5, 'duration': 71}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 306, 'machine': 4, 'duration': 62}, {'task': 1, 'start': 428, 'machine': 1, 'duration': 25}, {'task': 2, 'start': 461, 'machine': 2, 'duration': 8}, {'task': 3, 'start': 497, 'machine': 3, 'duration': 40}, {'task': 4, 'start': 557, 'machine': 5, 'duration': 2}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 13}, {'task': 1, 'start': 13, 'machine': 1, 'duration': 16}, {'task': 2, 'start': 301, 'machine': 4, 'duration': 5}, {'task': 3, 'start': 349, 'machine': 5, 'duration': 72}, {'task': 4, 'start': 421, 'machine': 3, 'duration': 76}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 93, 'machine': 5, 'duration': 95}, {'task': 1, 'start': 255, 'machine': 2, 'duration': 54}, {'task': 2, 'start': 311, 'machine': 3, 'duration': 23}, {'task': 3, 'start': 401, 'machine': 4, 'duration': 82}, {'task': 4, 'start': 511, 'machine': 1, 'duration': 45}]}]",2,nl,1 JSP,JSP,"Lately the shop has been trying to speed things up: every coat and dress has a fixed series of treatments on particular machines for specific times, and none of those steps can be rearranged. The job is to schedule those treatments so machines aren’t double-booked and every step for every garment occurs once and in order. What counts is the clock reading when the final garment is finished — the earlier, the better. The exact instance details are listed below. There are 10 garments and 5 machines; the garment identifiers are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 and the machine identifiers are A, B, C, D, E. | garment_id | treatment_index | required_machine_id | treatment_duration | |---|---|---|---| | J1 | 0 | C | 1 | | J1 | 1 | B | 78 | | J1 | 2 | D | 25 | | J1 | 3 | E | 18 | | J1 | 4 | A | 44 | | J2 | 0 | D | 63 | | J2 | 1 | C | 7 | | J2 | 2 | B | 87 | | J2 | 3 | E | 89 | | J2 | 4 | A | 13 | | J3 | 0 | B | 87 | | J3 | 1 | D | 85 | | J3 | 2 | C | 56 | | J3 | 3 | A | 52 | | J3 | 4 | E | 35 | | J4 | 0 | E | 31 | | J4 | 1 | D | 53 | | J4 | 2 | C | 34 | | J4 | 3 | A | 87 | | J4 | 4 | B | 94 | | J5 | 0 | D | 37 | | J5 | 1 | C | 22 | | J5 | 2 | E | 91 | | J5 | 3 | B | 93 | | J5 | 4 | A | 23 | | J6 | 0 | E | 19 | | J6 | 1 | A | 5 | | J6 | 2 | C | 77 | | J6 | 3 | D | 31 | | J6 | 4 | B | 85 | | J7 | 0 | A | 6 | | J7 | 1 | D | 54 | | J7 | 2 | C | 55 | | J7 | 3 | B | 9 | | J7 | 4 | E | 39 | | J8 | 0 | C | 44 | | J8 | 1 | E | 83 | | J8 | 2 | A | 28 | | J8 | 3 | D | 60 | | J8 | 4 | B | 8 | | J9 | 0 | D | 87 | | J9 | 1 | B | 23 | | J9 | 2 | E | 79 | | J9 | 3 | C | 15 | | J9 | 4 | A | 67 | | J10 | 0 | D | 20 | | J10 | 1 | A | 79 | | J10 | 2 | C | 92 | | J10 | 3 | E | 99 | | J10 | 4 | B | 21 | Schedule these treatments so machines aren’t double-booked and the final garment finishes as early as possible. Also, when you send back the schedule, please use a simple JSON layout so it's easy to parse and check — something that looks like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: each top-level entry is a job, ""job"" is the job identifier, ""tasks"" is the ordered list of steps for that job, and each step shows which task number it is, when it starts, which machine it runs on, and how long it lasts. It's just the shape I expect — not the real schedule yet. Please be sure to use the exact identifiers from the instance input — do not rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 10, 'jobs': [[[2, 1], [1, 78], [3, 25], [4, 18], [0, 44]], [[3, 63], [2, 7], [1, 87], [4, 89], [0, 13]], [[1, 87], [3, 85], [2, 56], [0, 52], [4, 35]], [[4, 31], [3, 53], [2, 34], [0, 87], [1, 94]], [[3, 37], [2, 22], [4, 91], [1, 93], [0, 23]], [[4, 19], [0, 5], [2, 77], [3, 31], [1, 85]], [[0, 6], [3, 54], [2, 55], [1, 9], [4, 39]], [[2, 44], [4, 83], [0, 28], [3, 60], [1, 8]], [[3, 87], [1, 23], [4, 79], [2, 15], [0, 67]], [[3, 20], [0, 79], [2, 92], [4, 99], [1, 21]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 44, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 87, 'machine': 1, 'duration': 78}, {'task': 2, 'start': 260, 'machine': 3, 'duration': 25}, {'task': 3, 'start': 323, 'machine': 4, 'duration': 18}, {'task': 4, 'start': 381, 'machine': 0, 'duration': 44}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 57, 'machine': 3, 'duration': 63}, {'task': 1, 'start': 120, 'machine': 2, 'duration': 7}, {'task': 2, 'start': 165, 'machine': 1, 'duration': 87}, {'task': 3, 'start': 420, 'machine': 4, 'duration': 89}, {'task': 4, 'start': 567, 'machine': 0, 'duration': 13}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 87}, {'task': 1, 'start': 285, 'machine': 3, 'duration': 85}, {'task': 2, 'start': 371, 'machine': 2, 'duration': 56}, {'task': 3, 'start': 448, 'machine': 0, 'duration': 52}, {'task': 4, 'start': 548, 'machine': 4, 'duration': 35}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 31}, {'task': 1, 'start': 207, 'machine': 3, 'duration': 53}, {'task': 2, 'start': 260, 'machine': 2, 'duration': 34}, {'task': 3, 'start': 294, 'machine': 0, 'duration': 87}, {'task': 4, 'start': 389, 'machine': 1, 'duration': 94}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 20, 'machine': 3, 'duration': 37}, {'task': 1, 'start': 57, 'machine': 2, 'duration': 22}, {'task': 2, 'start': 133, 'machine': 4, 'duration': 91}, {'task': 3, 'start': 275, 'machine': 1, 'duration': 93}, {'task': 4, 'start': 425, 'machine': 0, 'duration': 23}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 31, 'machine': 4, 'duration': 19}, {'task': 1, 'start': 99, 'machine': 0, 'duration': 5}, {'task': 2, 'start': 294, 'machine': 2, 'duration': 77}, {'task': 3, 'start': 424, 'machine': 3, 'duration': 31}, {'task': 4, 'start': 492, 'machine': 1, 'duration': 85}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 6}, {'task': 1, 'start': 370, 'machine': 3, 'duration': 54}, {'task': 2, 'start': 427, 'machine': 2, 'duration': 55}, {'task': 3, 'start': 483, 'machine': 1, 'duration': 9}, {'task': 4, 'start': 509, 'machine': 4, 'duration': 39}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 44}, {'task': 1, 'start': 50, 'machine': 4, 'duration': 83}, {'task': 2, 'start': 133, 'machine': 0, 'duration': 28}, {'task': 3, 'start': 455, 'machine': 3, 'duration': 60}, {'task': 4, 'start': 577, 'machine': 1, 'duration': 8}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 120, 'machine': 3, 'duration': 87}, {'task': 1, 'start': 252, 'machine': 1, 'duration': 23}, {'task': 2, 'start': 341, 'machine': 4, 'duration': 79}, {'task': 3, 'start': 482, 'machine': 2, 'duration': 15}, {'task': 4, 'start': 500, 'machine': 0, 'duration': 67}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 20}, {'task': 1, 'start': 20, 'machine': 0, 'duration': 79}, {'task': 2, 'start': 127, 'machine': 2, 'duration': 92}, {'task': 3, 'start': 224, 'machine': 4, 'duration': 99}, {'task': 4, 'start': 368, 'machine': 1, 'duration': 21}]}]",585.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'C', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 78}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'D', 'duration': 25}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 44}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'D', 'duration': 63}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'C', 'duration': 7}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'B', 'duration': 87}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'E', 'duration': 89}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'A', 'duration': 13}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'B', 'duration': 87}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'D', 'duration': 85}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'C', 'duration': 56}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'A', 'duration': 52}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'E', 'duration': 35}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 31}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 53}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'C', 'duration': 34}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'A', 'duration': 87}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'B', 'duration': 94}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'D', 'duration': 37}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'C', 'duration': 22}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'E', 'duration': 91}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 93}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'A', 'duration': 23}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'E', 'duration': 19}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'A', 'duration': 5}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'C', 'duration': 77}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'D', 'duration': 31}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'B', 'duration': 85}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'A', 'duration': 6}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 54}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'C', 'duration': 55}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'B', 'duration': 9}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'E', 'duration': 39}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'C', 'duration': 44}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 83}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'A', 'duration': 28}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'D', 'duration': 60}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'B', 'duration': 8}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'D', 'duration': 87}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'B', 'duration': 23}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'E', 'duration': 79}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'C', 'duration': 15}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'A', 'duration': 67}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'D', 'duration': 20}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'A', 'duration': 79}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'C', 'duration': 92}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'E', 'duration': 99}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'B', 'duration': 21}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 44, 'machine': 'C', 'duration': 1}, {'task': 1, 'start': 87, 'machine': 'B', 'duration': 78}, {'task': 2, 'start': 260, 'machine': 'D', 'duration': 25}, {'task': 3, 'start': 323, 'machine': 'E', 'duration': 18}, {'task': 4, 'start': 381, 'machine': 'A', 'duration': 44}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 57, 'machine': 'D', 'duration': 63}, {'task': 1, 'start': 120, 'machine': 'C', 'duration': 7}, {'task': 2, 'start': 165, 'machine': 'B', 'duration': 87}, {'task': 3, 'start': 420, 'machine': 'E', 'duration': 89}, {'task': 4, 'start': 567, 'machine': 'A', 'duration': 13}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 87}, {'task': 1, 'start': 285, 'machine': 'D', 'duration': 85}, {'task': 2, 'start': 371, 'machine': 'C', 'duration': 56}, {'task': 3, 'start': 448, 'machine': 'A', 'duration': 52}, {'task': 4, 'start': 548, 'machine': 'E', 'duration': 35}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 31}, {'task': 1, 'start': 207, 'machine': 'D', 'duration': 53}, {'task': 2, 'start': 260, 'machine': 'C', 'duration': 34}, {'task': 3, 'start': 294, 'machine': 'A', 'duration': 87}, {'task': 4, 'start': 389, 'machine': 'B', 'duration': 94}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 20, 'machine': 'D', 'duration': 37}, {'task': 1, 'start': 57, 'machine': 'C', 'duration': 22}, {'task': 2, 'start': 133, 'machine': 'E', 'duration': 91}, {'task': 3, 'start': 275, 'machine': 'B', 'duration': 93}, {'task': 4, 'start': 425, 'machine': 'A', 'duration': 23}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 31, 'machine': 'E', 'duration': 19}, {'task': 1, 'start': 99, 'machine': 'A', 'duration': 5}, {'task': 2, 'start': 294, 'machine': 'C', 'duration': 77}, {'task': 3, 'start': 424, 'machine': 'D', 'duration': 31}, {'task': 4, 'start': 492, 'machine': 'B', 'duration': 85}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 6}, {'task': 1, 'start': 370, 'machine': 'D', 'duration': 54}, {'task': 2, 'start': 427, 'machine': 'C', 'duration': 55}, {'task': 3, 'start': 483, 'machine': 'B', 'duration': 9}, {'task': 4, 'start': 509, 'machine': 'E', 'duration': 39}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 44}, {'task': 1, 'start': 50, 'machine': 'E', 'duration': 83}, {'task': 2, 'start': 133, 'machine': 'A', 'duration': 28}, {'task': 3, 'start': 455, 'machine': 'D', 'duration': 60}, {'task': 4, 'start': 577, 'machine': 'B', 'duration': 8}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 120, 'machine': 'D', 'duration': 87}, {'task': 1, 'start': 252, 'machine': 'B', 'duration': 23}, {'task': 2, 'start': 341, 'machine': 'E', 'duration': 79}, {'task': 3, 'start': 482, 'machine': 'C', 'duration': 15}, {'task': 4, 'start': 500, 'machine': 'A', 'duration': 67}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 20}, {'task': 1, 'start': 20, 'machine': 'A', 'duration': 79}, {'task': 2, 'start': 127, 'machine': 'C', 'duration': 92}, {'task': 3, 'start': 224, 'machine': 'E', 'duration': 99}, {'task': 4, 'start': 368, 'machine': 'B', 'duration': 21}]}]",3,markdown_table,names JSP,JSP,"I’m coordinating the bays today: each car has a set route through the shop — a defined order of tasks, each bound to a particular bay or tool for a set duration. The job is to pick start times so that no bay or tool is handling overlapping work, each vehicle’s steps happen in sequence, and every required operation is scheduled once. The aim is to have the last car leave as quickly as possible; the time when that last car finishes is the single number used to judge plans, and smaller is better. The concrete details are listed below. # nr_vehicles=9 # nr_bays=5 # vehicles=J1, J2, J3, J4, J5, J6, J7, J8, J9 # bays=A, B, C, D, E vehicle_id,step_index,bay_id,step_duration J1,0,D,1 J1,1,C,92 J1,2,E,1 J1,3,B,64 J1,4,A,97 J2,0,C,85 J2,1,A,12 J2,2,E,55 J2,3,B,57 J2,4,D,7 J3,0,E,26 J3,1,B,37 J3,2,A,39 J3,3,D,56 J3,4,C,41 J4,0,C,83 J4,1,D,20 J4,2,E,35 J4,3,B,26 J4,4,A,1 J5,0,C,78 J5,1,A,90 J5,2,E,50 J5,3,B,87 J5,4,D,8 J6,0,B,71 J6,1,E,14 J6,2,A,43 J6,3,C,72 J6,4,D,55 J7,0,A,96 J7,1,B,30 J7,2,C,81 J7,3,E,14 J7,4,D,13 J8,0,E,77 J8,1,C,47 J8,2,A,4 J8,3,B,60 J8,4,D,44 J9,0,E,12 J9,1,A,22 J9,2,C,52 J9,3,D,90 J9,4,B,32 If you want to give me the plan in a tidy, machine-friendly way, just follow this relaxed JSON layout — something like this will do: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a little form to fill in: ""solution"" holds all the cars, each entry names the job, and inside ""tasks"" you list each step with which numbered task it is, when it starts, which bay/tool (machine) it uses, and how long it runs. Think of it like filling out a work order for each car — nothing fancy, just the basic fields. It’s only a sketch of the expected shape, not the actual schedule. Please use the exact identifiers from the instance input — don’t rename jobs or machines or invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[3, 1], [2, 92], [4, 1], [1, 64], [0, 97]], [[2, 85], [0, 12], [4, 55], [1, 57], [3, 7]], [[4, 26], [1, 37], [0, 39], [3, 56], [2, 41]], [[2, 83], [3, 20], [4, 35], [1, 26], [0, 1]], [[2, 78], [0, 90], [4, 50], [1, 87], [3, 8]], [[1, 71], [4, 14], [0, 43], [2, 72], [3, 55]], [[0, 96], [1, 30], [2, 81], [4, 14], [3, 13]], [[4, 77], [2, 47], [0, 4], [1, 60], [3, 44]], [[4, 12], [0, 22], [2, 52], [3, 90], [1, 32]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 78, 'machine': 2, 'duration': 92}, {'task': 2, 'start': 170, 'machine': 4, 'duration': 1}, {'task': 3, 'start': 171, 'machine': 1, 'duration': 64}, {'task': 4, 'start': 302, 'machine': 0, 'duration': 97}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 170, 'machine': 2, 'duration': 85}, {'task': 1, 'start': 290, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 302, 'machine': 4, 'duration': 55}, {'task': 3, 'start': 357, 'machine': 1, 'duration': 57}, {'task': 4, 'start': 464, 'machine': 3, 'duration': 7}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 89, 'machine': 4, 'duration': 26}, {'task': 1, 'start': 126, 'machine': 1, 'duration': 37}, {'task': 2, 'start': 251, 'machine': 0, 'duration': 39}, {'task': 3, 'start': 290, 'machine': 3, 'duration': 56}, {'task': 4, 'start': 590, 'machine': 2, 'duration': 41}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 307, 'machine': 2, 'duration': 83}, {'task': 1, 'start': 436, 'machine': 3, 'duration': 20}, {'task': 2, 'start': 456, 'machine': 4, 'duration': 35}, {'task': 3, 'start': 528, 'machine': 1, 'duration': 26}, {'task': 4, 'start': 554, 'machine': 0, 'duration': 1}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 78}, {'task': 1, 'start': 96, 'machine': 0, 'duration': 90}, {'task': 2, 'start': 186, 'machine': 4, 'duration': 50}, {'task': 3, 'start': 236, 'machine': 1, 'duration': 87}, {'task': 4, 'start': 456, 'machine': 3, 'duration': 8}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 71}, {'task': 1, 'start': 115, 'machine': 4, 'duration': 14}, {'task': 2, 'start': 208, 'machine': 0, 'duration': 43}, {'task': 3, 'start': 437, 'machine': 2, 'duration': 72}, {'task': 4, 'start': 509, 'machine': 3, 'duration': 55}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 96}, {'task': 1, 'start': 96, 'machine': 1, 'duration': 30}, {'task': 2, 'start': 509, 'machine': 2, 'duration': 81}, {'task': 3, 'start': 590, 'machine': 4, 'duration': 14}, {'task': 4, 'start': 608, 'machine': 3, 'duration': 13}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 77}, {'task': 1, 'start': 390, 'machine': 2, 'duration': 47}, {'task': 2, 'start': 437, 'machine': 0, 'duration': 4}, {'task': 3, 'start': 468, 'machine': 1, 'duration': 60}, {'task': 4, 'start': 564, 'machine': 3, 'duration': 44}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 77, 'machine': 4, 'duration': 12}, {'task': 1, 'start': 186, 'machine': 0, 'duration': 22}, {'task': 2, 'start': 255, 'machine': 2, 'duration': 52}, {'task': 3, 'start': 346, 'machine': 3, 'duration': 90}, {'task': 4, 'start': 436, 'machine': 1, 'duration': 32}]}]",631.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'C', 'duration': 92}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'E', 'duration': 1}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'B', 'duration': 64}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 97}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'C', 'duration': 85}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'A', 'duration': 12}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'E', 'duration': 55}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'B', 'duration': 57}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'D', 'duration': 7}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'E', 'duration': 26}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'B', 'duration': 37}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'A', 'duration': 39}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'D', 'duration': 56}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'C', 'duration': 41}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'C', 'duration': 83}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 20}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'E', 'duration': 35}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 26}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 1}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'C', 'duration': 78}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'A', 'duration': 90}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'E', 'duration': 50}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 87}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 8}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'B', 'duration': 71}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 14}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'A', 'duration': 43}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'C', 'duration': 72}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'D', 'duration': 55}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'A', 'duration': 96}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'B', 'duration': 30}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'C', 'duration': 81}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 14}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'D', 'duration': 13}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'E', 'duration': 77}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'C', 'duration': 47}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'A', 'duration': 4}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'B', 'duration': 60}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'D', 'duration': 44}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'E', 'duration': 12}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'A', 'duration': 22}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'C', 'duration': 52}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'D', 'duration': 90}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'B', 'duration': 32}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 78, 'machine': 'C', 'duration': 92}, {'task': 2, 'start': 170, 'machine': 'E', 'duration': 1}, {'task': 3, 'start': 171, 'machine': 'B', 'duration': 64}, {'task': 4, 'start': 302, 'machine': 'A', 'duration': 97}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 170, 'machine': 'C', 'duration': 85}, {'task': 1, 'start': 290, 'machine': 'A', 'duration': 12}, {'task': 2, 'start': 302, 'machine': 'E', 'duration': 55}, {'task': 3, 'start': 357, 'machine': 'B', 'duration': 57}, {'task': 4, 'start': 464, 'machine': 'D', 'duration': 7}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 89, 'machine': 'E', 'duration': 26}, {'task': 1, 'start': 126, 'machine': 'B', 'duration': 37}, {'task': 2, 'start': 251, 'machine': 'A', 'duration': 39}, {'task': 3, 'start': 290, 'machine': 'D', 'duration': 56}, {'task': 4, 'start': 590, 'machine': 'C', 'duration': 41}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 307, 'machine': 'C', 'duration': 83}, {'task': 1, 'start': 436, 'machine': 'D', 'duration': 20}, {'task': 2, 'start': 456, 'machine': 'E', 'duration': 35}, {'task': 3, 'start': 528, 'machine': 'B', 'duration': 26}, {'task': 4, 'start': 554, 'machine': 'A', 'duration': 1}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 78}, {'task': 1, 'start': 96, 'machine': 'A', 'duration': 90}, {'task': 2, 'start': 186, 'machine': 'E', 'duration': 50}, {'task': 3, 'start': 236, 'machine': 'B', 'duration': 87}, {'task': 4, 'start': 456, 'machine': 'D', 'duration': 8}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 71}, {'task': 1, 'start': 115, 'machine': 'E', 'duration': 14}, {'task': 2, 'start': 208, 'machine': 'A', 'duration': 43}, {'task': 3, 'start': 437, 'machine': 'C', 'duration': 72}, {'task': 4, 'start': 509, 'machine': 'D', 'duration': 55}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 96}, {'task': 1, 'start': 96, 'machine': 'B', 'duration': 30}, {'task': 2, 'start': 509, 'machine': 'C', 'duration': 81}, {'task': 3, 'start': 590, 'machine': 'E', 'duration': 14}, {'task': 4, 'start': 608, 'machine': 'D', 'duration': 13}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 77}, {'task': 1, 'start': 390, 'machine': 'C', 'duration': 47}, {'task': 2, 'start': 437, 'machine': 'A', 'duration': 4}, {'task': 3, 'start': 468, 'machine': 'B', 'duration': 60}, {'task': 4, 'start': 564, 'machine': 'D', 'duration': 44}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 77, 'machine': 'E', 'duration': 12}, {'task': 1, 'start': 186, 'machine': 'A', 'duration': 22}, {'task': 2, 'start': 255, 'machine': 'C', 'duration': 52}, {'task': 3, 'start': 346, 'machine': 'D', 'duration': 90}, {'task': 4, 'start': 436, 'machine': 'B', 'duration': 32}]}]",4,csv,names JSP,JSP,"We treat the OR board like a slow-motion relay: every patient must run through a fixed chain of phases, each phase needs a particular room or machine for a set duration, and that room can’t be doing anything else at the same time. The task is to slot each phase into its assigned space, in order, without overlaps or repeats, so every phase happens exactly once in the right sequence. The thing that makes one schedule better than another is simple — how early does the final patient leave? The time when the last procedure ends is the number to minimize. The concrete list of cases and times follows below. We have 12 patients and 5 rooms/equipment; patient ids: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12; room/equipment ids: 1, 2, 3, 4, 5. | patient_id | phase_index | room_equipment_id | phase_duration_minutes | |---|---|---|---| | J1 | 0 | 5 | 1 | | J1 | 1 | 4 | 6 | | J1 | 2 | 3 | 76 | | J1 | 3 | 2 | 10 | | J1 | 4 | 1 | 51 | | J2 | 0 | 5 | 8 | | J2 | 1 | 4 | 17 | | J2 | 2 | 2 | 23 | | J2 | 3 | 3 | 25 | | J2 | 4 | 1 | 99 | | J3 | 0 | 3 | 64 | | J3 | 1 | 1 | 89 | | J3 | 2 | 5 | 23 | | J3 | 3 | 4 | 59 | | J3 | 4 | 2 | 46 | | J4 | 0 | 4 | 37 | | J4 | 1 | 3 | 87 | | J4 | 2 | 1 | 36 | | J4 | 3 | 2 | 64 | | J4 | 4 | 5 | 8 | | J5 | 0 | 4 | 21 | | J5 | 1 | 1 | 59 | | J5 | 2 | 3 | 10 | | J5 | 3 | 5 | 80 | | J5 | 4 | 2 | 92 | | J6 | 0 | 4 | 24 | | J6 | 1 | 5 | 23 | | J6 | 2 | 3 | 8 | | J6 | 3 | 2 | 14 | | J6 | 4 | 1 | 26 | | J7 | 0 | 2 | 87 | | J7 | 1 | 1 | 7 | | J7 | 2 | 4 | 8 | | J7 | 3 | 5 | 19 | | J7 | 4 | 3 | 86 | | J8 | 0 | 2 | 10 | | J8 | 1 | 3 | 11 | | J8 | 2 | 4 | 79 | | J8 | 3 | 5 | 59 | | J8 | 4 | 1 | 80 | | J9 | 0 | 2 | 37 | | J9 | 1 | 1 | 20 | | J9 | 2 | 3 | 24 | | J9 | 3 | 5 | 65 | | J9 | 4 | 4 | 97 | | J10 | 0 | 2 | 35 | | J10 | 1 | 1 | 6 | | J10 | 2 | 5 | 69 | | J10 | 3 | 4 | 54 | | J10 | 4 | 3 | 8 | | J11 | 0 | 2 | 26 | | J11 | 1 | 1 | 97 | | J11 | 2 | 5 | 93 | | J11 | 3 | 3 | 64 | | J11 | 4 | 4 | 53 | | J12 | 0 | 4 | 66 | | J12 | 1 | 3 | 38 | | J12 | 2 | 2 | 29 | | J12 | 3 | 5 | 82 | | J12 | 4 | 1 | 78 | Slot each listed phase into its assigned room in order so every phase happens exactly once and we minimize when the last patient leaves. You can hand the schedule back to me in a simple JSON shape — nothing fancy, just that structure so I can read it straight away. Here’s the exact layout I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: ""solution"" is the whole set of plans; each entry under it is one job (use the job's exact identifier), and inside each job you list its tasks in order. For each task you give the task index (which step it is in that job), the start time, the machine it runs on, and how long it runs. This is just a sketch of the shape I need, not the finished schedule. Please make sure to use the exact identifiers from the instance — don't rename machines or jobs or invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 12, 'jobs': [[[4, 1], [3, 6], [2, 76], [1, 10], [0, 51]], [[4, 8], [3, 17], [1, 23], [2, 25], [0, 99]], [[2, 64], [0, 89], [4, 23], [3, 59], [1, 46]], [[3, 37], [2, 87], [0, 36], [1, 64], [4, 8]], [[3, 21], [0, 59], [2, 10], [4, 80], [1, 92]], [[3, 24], [4, 23], [2, 8], [1, 14], [0, 26]], [[1, 87], [0, 7], [3, 8], [4, 19], [2, 86]], [[1, 10], [2, 11], [3, 79], [4, 59], [0, 80]], [[1, 37], [0, 20], [2, 24], [4, 65], [3, 97]], [[1, 35], [0, 6], [4, 69], [3, 54], [2, 8]], [[1, 26], [0, 97], [4, 93], [2, 64], [3, 53]], [[3, 66], [2, 38], [1, 29], [4, 82], [0, 78]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 128, 'machine': 3, 'duration': 6}, {'task': 2, 'start': 149, 'machine': 2, 'duration': 76}, {'task': 3, 'start': 339, 'machine': 1, 'duration': 10}, {'task': 4, 'start': 476, 'machine': 0, 'duration': 51}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 8}, {'task': 1, 'start': 111, 'machine': 3, 'duration': 17}, {'task': 2, 'start': 224, 'machine': 1, 'duration': 23}, {'task': 3, 'start': 249, 'machine': 2, 'duration': 25}, {'task': 4, 'start': 377, 'machine': 0, 'duration': 99}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 64}, {'task': 1, 'start': 80, 'machine': 0, 'duration': 89}, {'task': 2, 'start': 173, 'machine': 4, 'duration': 23}, {'task': 3, 'start': 250, 'machine': 3, 'duration': 59}, {'task': 4, 'start': 363, 'machine': 1, 'duration': 46}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 134, 'machine': 3, 'duration': 37}, {'task': 1, 'start': 274, 'machine': 2, 'duration': 87}, {'task': 2, 'start': 527, 'machine': 0, 'duration': 36}, {'task': 3, 'start': 563, 'machine': 1, 'duration': 64}, {'task': 4, 'start': 637, 'machine': 4, 'duration': 8}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 21}, {'task': 1, 'start': 21, 'machine': 0, 'duration': 59}, {'task': 2, 'start': 83, 'machine': 2, 'duration': 10}, {'task': 3, 'start': 93, 'machine': 4, 'duration': 80}, {'task': 4, 'start': 247, 'machine': 1, 'duration': 92}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 21, 'machine': 3, 'duration': 24}, {'task': 1, 'start': 45, 'machine': 4, 'duration': 23}, {'task': 2, 'start': 75, 'machine': 2, 'duration': 8}, {'task': 3, 'start': 349, 'machine': 1, 'duration': 14}, {'task': 4, 'start': 563, 'machine': 0, 'duration': 26}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 47, 'machine': 1, 'duration': 87}, {'task': 1, 'start': 292, 'machine': 0, 'duration': 7}, {'task': 2, 'start': 309, 'machine': 3, 'duration': 8}, {'task': 3, 'start': 343, 'machine': 4, 'duration': 19}, {'task': 4, 'start': 362, 'machine': 2, 'duration': 86}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 37, 'machine': 1, 'duration': 10}, {'task': 1, 'start': 64, 'machine': 2, 'duration': 11}, {'task': 2, 'start': 171, 'machine': 3, 'duration': 79}, {'task': 3, 'start': 524, 'machine': 4, 'duration': 59}, {'task': 4, 'start': 589, 'machine': 0, 'duration': 80}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 37}, {'task': 1, 'start': 169, 'machine': 0, 'duration': 20}, {'task': 2, 'start': 225, 'machine': 2, 'duration': 24}, {'task': 3, 'start': 278, 'machine': 4, 'duration': 65}, {'task': 4, 'start': 343, 'machine': 3, 'duration': 97}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 189, 'machine': 1, 'duration': 35}, {'task': 1, 'start': 286, 'machine': 0, 'duration': 6}, {'task': 2, 'start': 455, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 576, 'machine': 3, 'duration': 54}, {'task': 4, 'start': 630, 'machine': 2, 'duration': 8}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 134, 'machine': 1, 'duration': 26}, {'task': 1, 'start': 189, 'machine': 0, 'duration': 97}, {'task': 2, 'start': 362, 'machine': 4, 'duration': 93}, {'task': 3, 'start': 459, 'machine': 2, 'duration': 64}, {'task': 4, 'start': 523, 'machine': 3, 'duration': 53}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 45, 'machine': 3, 'duration': 66}, {'task': 1, 'start': 111, 'machine': 2, 'duration': 38}, {'task': 2, 'start': 160, 'machine': 1, 'duration': 29}, {'task': 3, 'start': 196, 'machine': 4, 'duration': 82}, {'task': 4, 'start': 299, 'machine': 0, 'duration': 78}]}]",669.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 5, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 6}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 76}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 10}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 51}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 8}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 4, 'duration': 17}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 2, 'duration': 23}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 25}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 99}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 3, 'duration': 64}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 1, 'duration': 89}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 5, 'duration': 23}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 4, 'duration': 59}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 46}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 37}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 3, 'duration': 87}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 36}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 64}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 5, 'duration': 8}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 21}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 59}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 3, 'duration': 10}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 5, 'duration': 80}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 92}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 24}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 5, 'duration': 23}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 8}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 2, 'duration': 14}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 1, 'duration': 26}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 2, 'duration': 87}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 7}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 8}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 5, 'duration': 19}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 3, 'duration': 86}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 2, 'duration': 10}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 11}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 79}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 5, 'duration': 59}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 1, 'duration': 80}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 2, 'duration': 37}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 20}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 24}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 65}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 4, 'duration': 97}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 2, 'duration': 35}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 6}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 5, 'duration': 69}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 4, 'duration': 54}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 8}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 2, 'duration': 26}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 1, 'duration': 97}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 5, 'duration': 93}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 3, 'duration': 64}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 4, 'duration': 53}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 4, 'duration': 66}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 3, 'duration': 38}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 2, 'duration': 29}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 5, 'duration': 82}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 1, 'duration': 78}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 128, 'machine': 4, 'duration': 6}, {'task': 2, 'start': 149, 'machine': 3, 'duration': 76}, {'task': 3, 'start': 339, 'machine': 2, 'duration': 10}, {'task': 4, 'start': 476, 'machine': 1, 'duration': 51}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 1, 'machine': 5, 'duration': 8}, {'task': 1, 'start': 111, 'machine': 4, 'duration': 17}, {'task': 2, 'start': 224, 'machine': 2, 'duration': 23}, {'task': 3, 'start': 249, 'machine': 3, 'duration': 25}, {'task': 4, 'start': 377, 'machine': 1, 'duration': 99}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 64}, {'task': 1, 'start': 80, 'machine': 1, 'duration': 89}, {'task': 2, 'start': 173, 'machine': 5, 'duration': 23}, {'task': 3, 'start': 250, 'machine': 4, 'duration': 59}, {'task': 4, 'start': 363, 'machine': 2, 'duration': 46}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 134, 'machine': 4, 'duration': 37}, {'task': 1, 'start': 274, 'machine': 3, 'duration': 87}, {'task': 2, 'start': 527, 'machine': 1, 'duration': 36}, {'task': 3, 'start': 563, 'machine': 2, 'duration': 64}, {'task': 4, 'start': 637, 'machine': 5, 'duration': 8}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 21}, {'task': 1, 'start': 21, 'machine': 1, 'duration': 59}, {'task': 2, 'start': 83, 'machine': 3, 'duration': 10}, {'task': 3, 'start': 93, 'machine': 5, 'duration': 80}, {'task': 4, 'start': 247, 'machine': 2, 'duration': 92}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 21, 'machine': 4, 'duration': 24}, {'task': 1, 'start': 45, 'machine': 5, 'duration': 23}, {'task': 2, 'start': 75, 'machine': 3, 'duration': 8}, {'task': 3, 'start': 349, 'machine': 2, 'duration': 14}, {'task': 4, 'start': 563, 'machine': 1, 'duration': 26}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 47, 'machine': 2, 'duration': 87}, {'task': 1, 'start': 292, 'machine': 1, 'duration': 7}, {'task': 2, 'start': 309, 'machine': 4, 'duration': 8}, {'task': 3, 'start': 343, 'machine': 5, 'duration': 19}, {'task': 4, 'start': 362, 'machine': 3, 'duration': 86}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 37, 'machine': 2, 'duration': 10}, {'task': 1, 'start': 64, 'machine': 3, 'duration': 11}, {'task': 2, 'start': 171, 'machine': 4, 'duration': 79}, {'task': 3, 'start': 524, 'machine': 5, 'duration': 59}, {'task': 4, 'start': 589, 'machine': 1, 'duration': 80}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 37}, {'task': 1, 'start': 169, 'machine': 1, 'duration': 20}, {'task': 2, 'start': 225, 'machine': 3, 'duration': 24}, {'task': 3, 'start': 278, 'machine': 5, 'duration': 65}, {'task': 4, 'start': 343, 'machine': 4, 'duration': 97}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 189, 'machine': 2, 'duration': 35}, {'task': 1, 'start': 286, 'machine': 1, 'duration': 6}, {'task': 2, 'start': 455, 'machine': 5, 'duration': 69}, {'task': 3, 'start': 576, 'machine': 4, 'duration': 54}, {'task': 4, 'start': 630, 'machine': 3, 'duration': 8}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 134, 'machine': 2, 'duration': 26}, {'task': 1, 'start': 189, 'machine': 1, 'duration': 97}, {'task': 2, 'start': 362, 'machine': 5, 'duration': 93}, {'task': 3, 'start': 459, 'machine': 3, 'duration': 64}, {'task': 4, 'start': 523, 'machine': 4, 'duration': 53}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 45, 'machine': 4, 'duration': 66}, {'task': 1, 'start': 111, 'machine': 3, 'duration': 38}, {'task': 2, 'start': 160, 'machine': 2, 'duration': 29}, {'task': 3, 'start': 196, 'machine': 5, 'duration': 82}, {'task': 4, 'start': 299, 'machine': 1, 'duration': 78}]}]",5,markdown_table,1 JSP,JSP,"Many people think booking is just filling empty slots, but a salon schedule is really about sequencing fixed step-by-step treatments at specific stations for set durations. The plan needs to keep each client’s steps in order, make sure each step uses its assigned chair for its required minutes, and never put two treatments on the same chair at once. The better the plan, the sooner the final customer is finished — that final finish time is how the whole day is judged. The concrete details are shown below. There are 9 clients and 5 stations; client IDs: J1, J2, J3, J4, J5, J6, J7, J8, J9; station IDs: 0, 1, 2, 3, 4. | client_id | step_index | station_id | duration_minutes | |---|---|---|---| | J1 | 0 | 3 | 1 | | J1 | 1 | 4 | 19 | | J1 | 2 | 1 | 51 | | J1 | 3 | 2 | 56 | | J1 | 4 | 0 | 4 | | J2 | 0 | 0 | 29 | | J2 | 1 | 2 | 21 | | J2 | 2 | 1 | 90 | | J2 | 3 | 4 | 92 | | J2 | 4 | 3 | 93 | | J3 | 0 | 2 | 3 | | J3 | 1 | 1 | 41 | | J3 | 2 | 0 | 6 | | J3 | 3 | 3 | 62 | | J3 | 4 | 4 | 51 | | J4 | 0 | 2 | 89 | | J4 | 1 | 4 | 54 | | J4 | 2 | 0 | 36 | | J4 | 3 | 1 | 3 | | J4 | 4 | 3 | 15 | | J5 | 0 | 2 | 62 | | J5 | 1 | 3 | 28 | | J5 | 2 | 4 | 68 | | J5 | 3 | 1 | 73 | | J5 | 4 | 0 | 77 | | J6 | 0 | 4 | 76 | | J6 | 1 | 3 | 32 | | J6 | 2 | 1 | 73 | | J6 | 3 | 0 | 55 | | J6 | 4 | 2 | 95 | | J7 | 0 | 3 | 78 | | J7 | 1 | 1 | 82 | | J7 | 2 | 4 | 34 | | J7 | 3 | 0 | 23 | | J7 | 4 | 2 | 59 | | J8 | 0 | 0 | 43 | | J8 | 1 | 1 | 73 | | J8 | 2 | 4 | 55 | | J8 | 3 | 3 | 58 | | J8 | 4 | 2 | 17 | | J9 | 0 | 0 | 61 | | J9 | 1 | 2 | 18 | | J9 | 2 | 1 | 96 | | J9 | 3 | 3 | 41 | | J9 | 4 | 4 | 62 | Keep every client's steps in order and prevent any station overlap; the day's quality is judged by when the last customer finishes. If you’d like the result in a tidy, machine-friendly shape, I usually sketch it out like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that as a simple form: ""solution"" holds every client’s plan; each entry has the job id and a list of tasks. Each task says which step it is, when it starts, which chair/station (machine) it needs, and how long it runs. It’s just the shape I expect the final schedule to follow — not the actual schedule itself. Please use the exact identifiers from the instance input — don’t rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[3, 1], [4, 19], [1, 51], [2, 56], [0, 4]], [[0, 29], [2, 21], [1, 90], [4, 92], [3, 93]], [[2, 3], [1, 41], [0, 6], [3, 62], [4, 51]], [[2, 89], [4, 54], [0, 36], [1, 3], [3, 15]], [[2, 62], [3, 28], [4, 68], [1, 73], [0, 77]], [[4, 76], [3, 32], [1, 73], [0, 55], [2, 95]], [[3, 78], [1, 82], [4, 34], [0, 23], [2, 59]], [[0, 43], [1, 73], [4, 55], [3, 58], [2, 17]], [[0, 61], [2, 18], [1, 96], [3, 41], [4, 62]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 76, 'machine': 4, 'duration': 19}, {'task': 2, 'start': 531, 'machine': 1, 'duration': 51}, {'task': 3, 'start': 582, 'machine': 2, 'duration': 56}, {'task': 4, 'start': 638, 'machine': 0, 'duration': 4}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 50, 'machine': 0, 'duration': 29}, {'task': 1, 'start': 92, 'machine': 2, 'duration': 21}, {'task': 2, 'start': 117, 'machine': 1, 'duration': 90}, {'task': 3, 'start': 323, 'machine': 4, 'duration': 92}, {'task': 4, 'start': 415, 'machine': 3, 'duration': 93}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 3}, {'task': 1, 'start': 3, 'machine': 1, 'duration': 41}, {'task': 2, 'start': 44, 'machine': 0, 'duration': 6}, {'task': 3, 'start': 50, 'machine': 3, 'duration': 62}, {'task': 4, 'start': 112, 'machine': 4, 'duration': 51}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 3, 'machine': 2, 'duration': 89}, {'task': 1, 'start': 415, 'machine': 4, 'duration': 54}, {'task': 2, 'start': 512, 'machine': 0, 'duration': 36}, {'task': 3, 'start': 582, 'machine': 1, 'duration': 3}, {'task': 4, 'start': 585, 'machine': 3, 'duration': 15}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 113, 'machine': 2, 'duration': 62}, {'task': 1, 'start': 190, 'machine': 3, 'duration': 28}, {'task': 2, 'start': 218, 'machine': 4, 'duration': 68}, {'task': 3, 'start': 362, 'machine': 1, 'duration': 73}, {'task': 4, 'start': 435, 'machine': 0, 'duration': 77}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 76}, {'task': 1, 'start': 218, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 289, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 362, 'machine': 0, 'duration': 55}, {'task': 4, 'start': 417, 'machine': 2, 'duration': 95}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 112, 'machine': 3, 'duration': 78}, {'task': 1, 'start': 207, 'machine': 1, 'duration': 82}, {'task': 2, 'start': 289, 'machine': 4, 'duration': 34}, {'task': 3, 'start': 323, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 346, 'machine': 2, 'duration': 59}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 43}, {'task': 1, 'start': 44, 'machine': 1, 'duration': 73}, {'task': 2, 'start': 163, 'machine': 4, 'duration': 55}, {'task': 3, 'start': 250, 'machine': 3, 'duration': 58}, {'task': 4, 'start': 308, 'machine': 2, 'duration': 17}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 79, 'machine': 0, 'duration': 61}, {'task': 1, 'start': 175, 'machine': 2, 'duration': 18}, {'task': 2, 'start': 435, 'machine': 1, 'duration': 96}, {'task': 3, 'start': 531, 'machine': 3, 'duration': 41}, {'task': 4, 'start': 572, 'machine': 4, 'duration': 62}]}]",642.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 19}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 1, 'duration': 51}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 56}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 4}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 0, 'duration': 29}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 2, 'duration': 21}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 90}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 92}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 93}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 2, 'duration': 3}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 1, 'duration': 41}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 0, 'duration': 6}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 62}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 51}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 2, 'duration': 89}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 4, 'duration': 54}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 36}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 1, 'duration': 3}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 15}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 2, 'duration': 62}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 28}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 4, 'duration': 68}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 73}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 0, 'duration': 77}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 76}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 32}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 73}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 0, 'duration': 55}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 2, 'duration': 95}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 3, 'duration': 78}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 82}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 34}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 0, 'duration': 23}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 59}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 0, 'duration': 43}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 73}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 55}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 3, 'duration': 58}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 2, 'duration': 17}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 0, 'duration': 61}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 2, 'duration': 18}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 1, 'duration': 96}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 41}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 4, 'duration': 62}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 76, 'machine': 4, 'duration': 19}, {'task': 2, 'start': 531, 'machine': 1, 'duration': 51}, {'task': 3, 'start': 582, 'machine': 2, 'duration': 56}, {'task': 4, 'start': 638, 'machine': 0, 'duration': 4}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 50, 'machine': 0, 'duration': 29}, {'task': 1, 'start': 92, 'machine': 2, 'duration': 21}, {'task': 2, 'start': 117, 'machine': 1, 'duration': 90}, {'task': 3, 'start': 323, 'machine': 4, 'duration': 92}, {'task': 4, 'start': 415, 'machine': 3, 'duration': 93}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 3}, {'task': 1, 'start': 3, 'machine': 1, 'duration': 41}, {'task': 2, 'start': 44, 'machine': 0, 'duration': 6}, {'task': 3, 'start': 50, 'machine': 3, 'duration': 62}, {'task': 4, 'start': 112, 'machine': 4, 'duration': 51}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 3, 'machine': 2, 'duration': 89}, {'task': 1, 'start': 415, 'machine': 4, 'duration': 54}, {'task': 2, 'start': 512, 'machine': 0, 'duration': 36}, {'task': 3, 'start': 582, 'machine': 1, 'duration': 3}, {'task': 4, 'start': 585, 'machine': 3, 'duration': 15}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 113, 'machine': 2, 'duration': 62}, {'task': 1, 'start': 190, 'machine': 3, 'duration': 28}, {'task': 2, 'start': 218, 'machine': 4, 'duration': 68}, {'task': 3, 'start': 362, 'machine': 1, 'duration': 73}, {'task': 4, 'start': 435, 'machine': 0, 'duration': 77}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 76}, {'task': 1, 'start': 218, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 289, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 362, 'machine': 0, 'duration': 55}, {'task': 4, 'start': 417, 'machine': 2, 'duration': 95}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 112, 'machine': 3, 'duration': 78}, {'task': 1, 'start': 207, 'machine': 1, 'duration': 82}, {'task': 2, 'start': 289, 'machine': 4, 'duration': 34}, {'task': 3, 'start': 323, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 346, 'machine': 2, 'duration': 59}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 43}, {'task': 1, 'start': 44, 'machine': 1, 'duration': 73}, {'task': 2, 'start': 163, 'machine': 4, 'duration': 55}, {'task': 3, 'start': 250, 'machine': 3, 'duration': 58}, {'task': 4, 'start': 308, 'machine': 2, 'duration': 17}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 79, 'machine': 0, 'duration': 61}, {'task': 1, 'start': 175, 'machine': 2, 'duration': 18}, {'task': 2, 'start': 435, 'machine': 1, 'duration': 96}, {'task': 3, 'start': 531, 'machine': 3, 'duration': 41}, {'task': 4, 'start': 572, 'machine': 4, 'duration': 62}]}]",6,markdown_table,0 JSP,JSP,"I run the print shop and have a stack of jobs that each need a set sequence of steps — print, dry, trim, bind — and every step has to happen on a specific press or binder and takes a known amount of time. The job is to pick when each machine does each step so that no press is doing two things at once, every step for each job happens in the right order, and nothing is skipped or duplicated. A better schedule gets the whole batch finished earlier; the success is simply the clock time when the final operation finishes, and the aim is to make that finish time as small as possible. The exact jobs, machines and times are listed below. I have 10 jobs and 5 stations: job ids J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 and station ids 0, 1, 2, 3, 4. | print_job_id | operation_index | station_id | processing_duration | |---|---|---|---| | J1 | 0 | 3 | 1 | | J1 | 1 | 1 | 32 | | J1 | 2 | 4 | 27 | | J1 | 3 | 2 | 2 | | J1 | 4 | 0 | 57 | | J2 | 0 | 4 | 51 | | J2 | 1 | 3 | 26 | | J2 | 2 | 2 | 58 | | J2 | 3 | 0 | 61 | | J2 | 4 | 1 | 86 | | J3 | 0 | 4 | 41 | | J3 | 1 | 0 | 93 | | J3 | 2 | 1 | 88 | | J3 | 3 | 3 | 66 | | J3 | 4 | 2 | 57 | | J4 | 0 | 3 | 43 | | J4 | 1 | 4 | 22 | | J4 | 2 | 0 | 37 | | J4 | 3 | 1 | 40 | | J4 | 4 | 2 | 21 | | J5 | 0 | 0 | 4 | | J5 | 1 | 2 | 96 | | J5 | 2 | 4 | 27 | | J5 | 3 | 1 | 66 | | J5 | 4 | 3 | 61 | | J6 | 0 | 1 | 29 | | J6 | 1 | 3 | 42 | | J6 | 2 | 0 | 39 | | J6 | 3 | 2 | 96 | | J6 | 4 | 4 | 66 | | J7 | 0 | 3 | 69 | | J7 | 1 | 4 | 58 | | J7 | 2 | 0 | 60 | | J7 | 3 | 2 | 28 | | J7 | 4 | 1 | 33 | | J8 | 0 | 0 | 75 | | J8 | 1 | 1 | 37 | | J8 | 2 | 3 | 31 | | J8 | 3 | 2 | 57 | | J8 | 4 | 4 | 54 | | J9 | 0 | 1 | 85 | | J9 | 1 | 2 | 17 | | J9 | 2 | 4 | 69 | | J9 | 3 | 3 | 16 | | J9 | 4 | 0 | 28 | | J10 | 0 | 0 | 49 | | J10 | 1 | 4 | 32 | | J10 | 2 | 2 | 47 | | J10 | 3 | 1 | 9 | | J10 | 4 | 3 | 94 | I need them scheduled so no station runs two tasks at once, each job's operations keep their order, and the whole batch finishes as early as possible. Also, when you give the schedule back, keep it in a simple JSON layout so it's easy to parse — something like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This just means: top-level ""solution"" is a list of jobs. For each job, put its job identifier under ""job"" and a ""tasks"" list with one entry per operation. Each task entry says which step number it is (""task""), when that step starts (""start""), which machine it runs on (""machine""), and how long it runs (""duration""). Think of it like filling out a little form for each job and each step. Note: that JSON is only a sketch of the shape I expect, not the actual answer — you'll need to fill in the real values from the instance. Also, please use the exact identifiers from the instance input with no renaming and no new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 10, 'jobs': [[[3, 1], [1, 32], [4, 27], [2, 2], [0, 57]], [[4, 51], [3, 26], [2, 58], [0, 61], [1, 86]], [[4, 41], [0, 93], [1, 88], [3, 66], [2, 57]], [[3, 43], [4, 22], [0, 37], [1, 40], [2, 21]], [[0, 4], [2, 96], [4, 27], [1, 66], [3, 61]], [[1, 29], [3, 42], [0, 39], [2, 96], [4, 66]], [[3, 69], [4, 58], [0, 60], [2, 28], [1, 33]], [[0, 75], [1, 37], [3, 31], [2, 57], [4, 54]], [[1, 85], [2, 17], [4, 69], [3, 16], [0, 28]], [[0, 49], [4, 32], [2, 47], [1, 9], [3, 94]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 69, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 151, 'machine': 1, 'duration': 32}, {'task': 2, 'start': 209, 'machine': 4, 'duration': 27}, {'task': 3, 'start': 412, 'machine': 2, 'duration': 2}, {'task': 4, 'start': 446, 'machine': 0, 'duration': 57}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 41, 'machine': 4, 'duration': 51}, {'task': 1, 'start': 92, 'machine': 3, 'duration': 26}, {'task': 2, 'start': 118, 'machine': 2, 'duration': 58}, {'task': 3, 'start': 297, 'machine': 0, 'duration': 61}, {'task': 4, 'start': 386, 'machine': 1, 'duration': 86}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 41}, {'task': 1, 'start': 128, 'machine': 0, 'duration': 93}, {'task': 2, 'start': 249, 'machine': 1, 'duration': 88}, {'task': 3, 'start': 343, 'machine': 3, 'duration': 66}, {'task': 4, 'start': 446, 'machine': 2, 'duration': 57}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 191, 'machine': 3, 'duration': 43}, {'task': 1, 'start': 236, 'machine': 4, 'duration': 22}, {'task': 2, 'start': 260, 'machine': 0, 'duration': 37}, {'task': 3, 'start': 346, 'machine': 1, 'duration': 40}, {'task': 4, 'start': 391, 'machine': 2, 'duration': 21}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 4}, {'task': 1, 'start': 4, 'machine': 2, 'duration': 96}, {'task': 2, 'start': 150, 'machine': 4, 'duration': 27}, {'task': 3, 'start': 183, 'machine': 1, 'duration': 66}, {'task': 4, 'start': 249, 'machine': 3, 'duration': 61}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 85, 'machine': 1, 'duration': 29}, {'task': 1, 'start': 118, 'machine': 3, 'duration': 42}, {'task': 2, 'start': 221, 'machine': 0, 'duration': 39}, {'task': 3, 'start': 295, 'machine': 2, 'duration': 96}, {'task': 4, 'start': 391, 'machine': 4, 'duration': 66}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 69}, {'task': 1, 'start': 92, 'machine': 4, 'duration': 58}, {'task': 2, 'start': 358, 'machine': 0, 'duration': 60}, {'task': 3, 'start': 418, 'machine': 2, 'duration': 28}, {'task': 4, 'start': 472, 'machine': 1, 'duration': 33}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 4, 'machine': 0, 'duration': 75}, {'task': 1, 'start': 114, 'machine': 1, 'duration': 37}, {'task': 2, 'start': 160, 'machine': 3, 'duration': 31}, {'task': 3, 'start': 191, 'machine': 2, 'duration': 57}, {'task': 4, 'start': 327, 'machine': 4, 'duration': 54}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 85}, {'task': 1, 'start': 100, 'machine': 2, 'duration': 17}, {'task': 2, 'start': 258, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 327, 'machine': 3, 'duration': 16}, {'task': 4, 'start': 418, 'machine': 0, 'duration': 28}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 79, 'machine': 0, 'duration': 49}, {'task': 1, 'start': 177, 'machine': 4, 'duration': 32}, {'task': 2, 'start': 248, 'machine': 2, 'duration': 47}, {'task': 3, 'start': 337, 'machine': 1, 'duration': 9}, {'task': 4, 'start': 409, 'machine': 3, 'duration': 94}]}]",505.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 1, 'duration': 32}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 4, 'duration': 27}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 2}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 57}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 4, 'duration': 51}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 26}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 2, 'duration': 58}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 0, 'duration': 61}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 86}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 4, 'duration': 41}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 0, 'duration': 93}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 1, 'duration': 88}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 66}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 57}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 3, 'duration': 43}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 4, 'duration': 22}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 37}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 1, 'duration': 40}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 2, 'duration': 21}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 0, 'duration': 4}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 2, 'duration': 96}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 4, 'duration': 27}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 66}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 3, 'duration': 61}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 1, 'duration': 29}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 42}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 0, 'duration': 39}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 2, 'duration': 96}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 66}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 3, 'duration': 69}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 4, 'duration': 58}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 0, 'duration': 60}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 28}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 1, 'duration': 33}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 0, 'duration': 75}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 37}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 3, 'duration': 31}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 2, 'duration': 57}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 54}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 1, 'duration': 85}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 2, 'duration': 17}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 4, 'duration': 69}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 16}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 0, 'duration': 28}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 0, 'duration': 49}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 4, 'duration': 32}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 2, 'duration': 47}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 1, 'duration': 9}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 94}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 69, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 151, 'machine': 1, 'duration': 32}, {'task': 2, 'start': 209, 'machine': 4, 'duration': 27}, {'task': 3, 'start': 412, 'machine': 2, 'duration': 2}, {'task': 4, 'start': 446, 'machine': 0, 'duration': 57}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 41, 'machine': 4, 'duration': 51}, {'task': 1, 'start': 92, 'machine': 3, 'duration': 26}, {'task': 2, 'start': 118, 'machine': 2, 'duration': 58}, {'task': 3, 'start': 297, 'machine': 0, 'duration': 61}, {'task': 4, 'start': 386, 'machine': 1, 'duration': 86}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 41}, {'task': 1, 'start': 128, 'machine': 0, 'duration': 93}, {'task': 2, 'start': 249, 'machine': 1, 'duration': 88}, {'task': 3, 'start': 343, 'machine': 3, 'duration': 66}, {'task': 4, 'start': 446, 'machine': 2, 'duration': 57}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 191, 'machine': 3, 'duration': 43}, {'task': 1, 'start': 236, 'machine': 4, 'duration': 22}, {'task': 2, 'start': 260, 'machine': 0, 'duration': 37}, {'task': 3, 'start': 346, 'machine': 1, 'duration': 40}, {'task': 4, 'start': 391, 'machine': 2, 'duration': 21}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 4}, {'task': 1, 'start': 4, 'machine': 2, 'duration': 96}, {'task': 2, 'start': 150, 'machine': 4, 'duration': 27}, {'task': 3, 'start': 183, 'machine': 1, 'duration': 66}, {'task': 4, 'start': 249, 'machine': 3, 'duration': 61}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 85, 'machine': 1, 'duration': 29}, {'task': 1, 'start': 118, 'machine': 3, 'duration': 42}, {'task': 2, 'start': 221, 'machine': 0, 'duration': 39}, {'task': 3, 'start': 295, 'machine': 2, 'duration': 96}, {'task': 4, 'start': 391, 'machine': 4, 'duration': 66}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 69}, {'task': 1, 'start': 92, 'machine': 4, 'duration': 58}, {'task': 2, 'start': 358, 'machine': 0, 'duration': 60}, {'task': 3, 'start': 418, 'machine': 2, 'duration': 28}, {'task': 4, 'start': 472, 'machine': 1, 'duration': 33}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 4, 'machine': 0, 'duration': 75}, {'task': 1, 'start': 114, 'machine': 1, 'duration': 37}, {'task': 2, 'start': 160, 'machine': 3, 'duration': 31}, {'task': 3, 'start': 191, 'machine': 2, 'duration': 57}, {'task': 4, 'start': 327, 'machine': 4, 'duration': 54}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 85}, {'task': 1, 'start': 100, 'machine': 2, 'duration': 17}, {'task': 2, 'start': 258, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 327, 'machine': 3, 'duration': 16}, {'task': 4, 'start': 418, 'machine': 0, 'duration': 28}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 79, 'machine': 0, 'duration': 49}, {'task': 1, 'start': 177, 'machine': 4, 'duration': 32}, {'task': 2, 'start': 248, 'machine': 2, 'duration': 47}, {'task': 3, 'start': 337, 'machine': 1, 'duration': 9}, {'task': 4, 'start': 409, 'machine': 3, 'duration': 94}]}]",7,markdown_table,0 JSP,JSP,"Someone has to be the shop scheduler: line up the development, drying, trimming and other steps for each print on their assigned machines, respect the order of steps, and never let a machine do two steps at once. The decision is choosing the timing for each step so nothing’s missed or duplicated and the whole batch finishes as quickly as possible. Performance is measured by the time the last print completes — you find every print’s end time and take the maximum; lower is preferable. The concrete job list and timings appear below. { ""num_print_runs"": 9, ""num_processing_stations"": 5, ""print_run_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"" ], ""station_ids"": [ ""A"", ""B"", ""C"", ""D"", ""E"" ], ""tasks"": [ { ""print_id"": ""J1"", ""step_index"": 0, ""station_id"": ""C"", ""step_duration"": 1 }, { ""print_id"": ""J1"", ""step_index"": 1, ""station_id"": ""B"", ""step_duration"": 45 }, { ""print_id"": ""J1"", ""step_index"": 2, ""station_id"": ""E"", ""step_duration"": 3 }, { ""print_id"": ""J1"", ""step_index"": 3, ""station_id"": ""D"", ""step_duration"": 47 }, { ""print_id"": ""J1"", ""step_index"": 4, ""station_id"": ""A"", ""step_duration"": 11 }, { ""print_id"": ""J2"", ""step_index"": 0, ""station_id"": ""A"", ""step_duration"": 73 }, { ""print_id"": ""J2"", ""step_index"": 1, ""station_id"": ""E"", ""step_duration"": 31 }, { ""print_id"": ""J2"", ""step_index"": 2, ""station_id"": ""C"", ""step_duration"": 27 }, { ""print_id"": ""J2"", ""step_index"": 3, ""station_id"": ""B"", ""step_duration"": 29 }, { ""print_id"": ""J2"", ""step_index"": 4, ""station_id"": ""D"", ""step_duration"": 80 }, { ""print_id"": ""J3"", ""step_index"": 0, ""station_id"": ""A"", ""step_duration"": 79 }, { ""print_id"": ""J3"", ""step_index"": 1, ""station_id"": ""E"", ""step_duration"": 45 }, { ""print_id"": ""J3"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 72 }, { ""print_id"": ""J3"", ""step_index"": 3, ""station_id"": ""C"", ""step_duration"": 69 }, { ""print_id"": ""J3"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 62 }, { ""print_id"": ""J4"", ""step_index"": 0, ""station_id"": ""C"", ""step_duration"": 95 }, { ""print_id"": ""J4"", ""step_index"": 1, ""station_id"": ""D"", ""step_duration"": 88 }, { ""print_id"": ""J4"", ""step_index"": 2, ""station_id"": ""A"", ""step_duration"": 38 }, { ""print_id"": ""J4"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 78 }, { ""print_id"": ""J4"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 28 }, { ""print_id"": ""J5"", ""step_index"": 0, ""station_id"": ""A"", ""step_duration"": 46 }, { ""print_id"": ""J5"", ""step_index"": 1, ""station_id"": ""D"", ""step_duration"": 65 }, { ""print_id"": ""J5"", ""step_index"": 2, ""station_id"": ""C"", ""step_duration"": 86 }, { ""print_id"": ""J5"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 59 }, { ""print_id"": ""J5"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 46 }, { ""print_id"": ""J6"", ""step_index"": 0, ""station_id"": ""A"", ""step_duration"": 82 }, { ""print_id"": ""J6"", ""step_index"": 1, ""station_id"": ""C"", ""step_duration"": 51 }, { ""print_id"": ""J6"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 5 }, { ""print_id"": ""J6"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 39 }, { ""print_id"": ""J6"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 36 }, { ""print_id"": ""J7"", ""step_index"": 0, ""station_id"": ""B"", ""step_duration"": 60 }, { ""print_id"": ""J7"", ""step_index"": 1, ""station_id"": ""C"", ""step_duration"": 35 }, { ""print_id"": ""J7"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 86 }, { ""print_id"": ""J7"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 33 }, { ""print_id"": ""J7"", ""step_index"": 4, ""station_id"": ""A"", ""step_duration"": 7 }, { ""print_id"": ""J8"", ""step_index"": 0, ""station_id"": ""D"", ""step_duration"": 9 }, { ""print_id"": ""J8"", ""step_index"": 1, ""station_id"": ""A"", ""step_duration"": 99 }, { ""print_id"": ""J8"", ""step_index"": 2, ""station_id"": ""C"", ""step_duration"": 7 }, { ""print_id"": ""J8"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 56 }, { ""print_id"": ""J8"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 90 }, { ""print_id"": ""J9"", ""step_index"": 0, ""station_id"": ""E"", ""step_duration"": 11 }, { ""print_id"": ""J9"", ""step_index"": 1, ""station_id"": ""A"", ""step_duration"": 15 }, { ""print_id"": ""J9"", ""step_index"": 2, ""station_id"": ""C"", ""step_duration"": 41 }, { ""print_id"": ""J9"", ""step_index"": 3, ""station_id"": ""D"", ""step_duration"": 91 }, { ""print_id"": ""J9"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 92 } ] } When you hand me the schedule, just use a simple JSON shape — nothing fancy. Something like this will do: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that as a little form: ""solution"" holds a list of jobs; each job has its id and a list of tasks; each task records which step it is, when it starts, which machine it uses, and how long it runs. Super casual — like filling in a schedule sheet. This JSON is just a sketch of the expected shape, not the actual completed schedule. Please make sure to use the exact identifiers from the instance input — do not rename or invent labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[2, 1], [1, 45], [4, 3], [3, 47], [0, 11]], [[0, 73], [4, 31], [2, 27], [1, 29], [3, 80]], [[0, 79], [4, 45], [3, 72], [2, 69], [1, 62]], [[2, 95], [3, 88], [0, 38], [4, 78], [1, 28]], [[0, 46], [3, 65], [2, 86], [4, 59], [1, 46]], [[0, 82], [2, 51], [3, 5], [4, 39], [1, 36]], [[1, 60], [2, 35], [3, 86], [4, 33], [0, 7]], [[3, 9], [0, 99], [2, 7], [4, 56], [1, 90]], [[4, 11], [0, 15], [2, 41], [3, 91], [1, 92]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 95, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 96, 'machine': 1, 'duration': 45}, {'task': 2, 'start': 141, 'machine': 4, 'duration': 3}, {'task': 3, 'start': 450, 'machine': 3, 'duration': 47}, {'task': 4, 'start': 497, 'machine': 0, 'duration': 11}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 239, 'machine': 0, 'duration': 73}, {'task': 1, 'start': 312, 'machine': 4, 'duration': 31}, {'task': 2, 'start': 343, 'machine': 2, 'duration': 27}, {'task': 3, 'start': 390, 'machine': 1, 'duration': 29}, {'task': 4, 'start': 502, 'machine': 3, 'duration': 80}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 160, 'machine': 0, 'duration': 79}, {'task': 1, 'start': 239, 'machine': 4, 'duration': 45}, {'task': 2, 'start': 292, 'machine': 3, 'duration': 72}, {'task': 3, 'start': 370, 'machine': 2, 'duration': 69}, {'task': 4, 'start': 465, 'machine': 1, 'duration': 62}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 95}, {'task': 1, 'start': 111, 'machine': 3, 'duration': 88}, {'task': 2, 'start': 312, 'machine': 0, 'duration': 38}, {'task': 3, 'start': 402, 'machine': 4, 'duration': 78}, {'task': 4, 'start': 527, 'machine': 1, 'duration': 28}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 46}, {'task': 1, 'start': 46, 'machine': 3, 'duration': 65}, {'task': 2, 'start': 201, 'machine': 2, 'duration': 86}, {'task': 3, 'start': 343, 'machine': 4, 'duration': 59}, {'task': 4, 'start': 419, 'machine': 1, 'duration': 46}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 350, 'machine': 0, 'duration': 82}, {'task': 1, 'start': 439, 'machine': 2, 'duration': 51}, {'task': 2, 'start': 497, 'machine': 3, 'duration': 5}, {'task': 3, 'start': 513, 'machine': 4, 'duration': 39}, {'task': 4, 'start': 555, 'machine': 1, 'duration': 36}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 60}, {'task': 1, 'start': 96, 'machine': 2, 'duration': 35}, {'task': 2, 'start': 364, 'machine': 3, 'duration': 86}, {'task': 3, 'start': 480, 'machine': 4, 'duration': 33}, {'task': 4, 'start': 536, 'machine': 0, 'duration': 7}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 9}, {'task': 1, 'start': 46, 'machine': 0, 'duration': 99}, {'task': 2, 'start': 145, 'machine': 2, 'duration': 7}, {'task': 3, 'start': 152, 'machine': 4, 'duration': 56}, {'task': 4, 'start': 208, 'machine': 1, 'duration': 90}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 11}, {'task': 1, 'start': 145, 'machine': 0, 'duration': 15}, {'task': 2, 'start': 160, 'machine': 2, 'duration': 41}, {'task': 3, 'start': 201, 'machine': 3, 'duration': 91}, {'task': 4, 'start': 298, 'machine': 1, 'duration': 92}]}]",591.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'C', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 45}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'E', 'duration': 3}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'D', 'duration': 47}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 11}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'A', 'duration': 73}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'E', 'duration': 31}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'C', 'duration': 27}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'B', 'duration': 29}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'D', 'duration': 80}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'A', 'duration': 79}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'E', 'duration': 45}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'D', 'duration': 72}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'C', 'duration': 69}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'B', 'duration': 62}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'C', 'duration': 95}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 88}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'A', 'duration': 38}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'E', 'duration': 78}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'B', 'duration': 28}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'A', 'duration': 46}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'D', 'duration': 65}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'C', 'duration': 86}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'E', 'duration': 59}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'B', 'duration': 46}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'A', 'duration': 82}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'C', 'duration': 51}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 5}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'E', 'duration': 39}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'B', 'duration': 36}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'B', 'duration': 60}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'C', 'duration': 35}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'D', 'duration': 86}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 33}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'A', 'duration': 7}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'D', 'duration': 9}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'A', 'duration': 99}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 7}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'E', 'duration': 56}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'B', 'duration': 90}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'E', 'duration': 11}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'A', 'duration': 15}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'C', 'duration': 41}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'D', 'duration': 91}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'B', 'duration': 92}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 95, 'machine': 'C', 'duration': 1}, {'task': 1, 'start': 96, 'machine': 'B', 'duration': 45}, {'task': 2, 'start': 141, 'machine': 'E', 'duration': 3}, {'task': 3, 'start': 450, 'machine': 'D', 'duration': 47}, {'task': 4, 'start': 497, 'machine': 'A', 'duration': 11}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 239, 'machine': 'A', 'duration': 73}, {'task': 1, 'start': 312, 'machine': 'E', 'duration': 31}, {'task': 2, 'start': 343, 'machine': 'C', 'duration': 27}, {'task': 3, 'start': 390, 'machine': 'B', 'duration': 29}, {'task': 4, 'start': 502, 'machine': 'D', 'duration': 80}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 160, 'machine': 'A', 'duration': 79}, {'task': 1, 'start': 239, 'machine': 'E', 'duration': 45}, {'task': 2, 'start': 292, 'machine': 'D', 'duration': 72}, {'task': 3, 'start': 370, 'machine': 'C', 'duration': 69}, {'task': 4, 'start': 465, 'machine': 'B', 'duration': 62}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 95}, {'task': 1, 'start': 111, 'machine': 'D', 'duration': 88}, {'task': 2, 'start': 312, 'machine': 'A', 'duration': 38}, {'task': 3, 'start': 402, 'machine': 'E', 'duration': 78}, {'task': 4, 'start': 527, 'machine': 'B', 'duration': 28}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 46}, {'task': 1, 'start': 46, 'machine': 'D', 'duration': 65}, {'task': 2, 'start': 201, 'machine': 'C', 'duration': 86}, {'task': 3, 'start': 343, 'machine': 'E', 'duration': 59}, {'task': 4, 'start': 419, 'machine': 'B', 'duration': 46}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 350, 'machine': 'A', 'duration': 82}, {'task': 1, 'start': 439, 'machine': 'C', 'duration': 51}, {'task': 2, 'start': 497, 'machine': 'D', 'duration': 5}, {'task': 3, 'start': 513, 'machine': 'E', 'duration': 39}, {'task': 4, 'start': 555, 'machine': 'B', 'duration': 36}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 60}, {'task': 1, 'start': 96, 'machine': 'C', 'duration': 35}, {'task': 2, 'start': 364, 'machine': 'D', 'duration': 86}, {'task': 3, 'start': 480, 'machine': 'E', 'duration': 33}, {'task': 4, 'start': 536, 'machine': 'A', 'duration': 7}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 9}, {'task': 1, 'start': 46, 'machine': 'A', 'duration': 99}, {'task': 2, 'start': 145, 'machine': 'C', 'duration': 7}, {'task': 3, 'start': 152, 'machine': 'E', 'duration': 56}, {'task': 4, 'start': 208, 'machine': 'B', 'duration': 90}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 11}, {'task': 1, 'start': 145, 'machine': 'A', 'duration': 15}, {'task': 2, 'start': 160, 'machine': 'C', 'duration': 41}, {'task': 3, 'start': 201, 'machine': 'D', 'duration': 91}, {'task': 4, 'start': 298, 'machine': 'B', 'duration': 92}]}]",8,json,names JSP,JSP,"There’s a line of orders waiting and every pastry needs a chain of steps on specific machines, each taking a fixed amount of time. The trick is arranging those steps in time so each recipe’s sequence is preserved, no machine is asked to do two things at once, and nothing is skipped or duplicated. Success is judged by the moment the last item is done — that end time tells how efficient the plan was. The exact details of items, machines, and durations are shown below. # num_orders=12 # num_equipment=5 # order_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 # equipment_ids=0, 1, 2, 3, 4 order_id,step_index,equipment_id,duration_minutes J1,0,1,1 J1,1,4,58 J1,2,2,78 J1,3,3,93 J1,4,0,64 J2,0,0,94 J2,1,4,35 J2,2,3,94 J2,3,2,96 J2,4,1,73 J3,0,1,18 J3,1,3,97 J3,2,0,55 J3,3,2,73 J3,4,4,67 J4,0,3,49 J4,1,2,56 J4,2,0,39 J4,3,4,17 J4,4,1,34 J5,0,2,87 J5,1,3,34 J5,2,4,45 J5,3,1,52 J5,4,0,31 J6,0,2,35 J6,1,1,60 J6,2,4,69 J6,3,0,80 J6,4,3,6 J7,0,3,52 J7,1,1,11 J7,2,0,13 J7,3,2,37 J7,4,4,80 J8,0,1,41 J8,1,0,63 J8,2,2,82 J8,3,4,55 J8,4,3,27 J9,0,4,35 J9,1,2,13 J9,2,1,14 J9,3,0,67 J9,4,3,58 J10,0,4,63 J10,1,1,58 J10,2,2,24 J10,3,3,63 J10,4,0,82 J11,0,1,33 J11,1,0,88 J11,2,4,88 J11,3,2,74 J11,4,3,96 J12,0,4,33 J12,1,0,33 J12,2,2,88 J12,3,1,46 J12,4,3,3 Also, when you hand the schedule back, just follow this simple JSON shape so it's easy to read and check: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a sketch of the expected shape — each top-level entry is one job, and each job lists its tasks in order. For each task you give the task index (which task in the job), the planned start time, the machine it runs on, and how long it runs. Keep it simple and human-readable, like filling out a tiny form. Please use the exact identifiers from the instance input — don't rename them or invent new ones. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 12, 'jobs': [[[1, 1], [4, 58], [2, 78], [3, 93], [0, 64]], [[0, 94], [4, 35], [3, 94], [2, 96], [1, 73]], [[1, 18], [3, 97], [0, 55], [2, 73], [4, 67]], [[3, 49], [2, 56], [0, 39], [4, 17], [1, 34]], [[2, 87], [3, 34], [4, 45], [1, 52], [0, 31]], [[2, 35], [1, 60], [4, 69], [0, 80], [3, 6]], [[3, 52], [1, 11], [0, 13], [2, 37], [4, 80]], [[1, 41], [0, 63], [2, 82], [4, 55], [3, 27]], [[4, 35], [2, 13], [1, 14], [0, 67], [3, 58]], [[4, 63], [1, 58], [2, 24], [3, 63], [0, 82]], [[1, 33], [0, 88], [4, 88], [2, 74], [3, 96]], [[4, 33], [0, 33], [2, 88], [1, 46], [3, 3]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 92, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 131, 'machine': 4, 'duration': 58}, {'task': 2, 'start': 202, 'machine': 2, 'duration': 78}, {'task': 3, 'start': 326, 'machine': 3, 'duration': 93}, {'task': 4, 'start': 465, 'machine': 0, 'duration': 64}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 94}, {'task': 1, 'start': 96, 'machine': 4, 'duration': 35}, {'task': 2, 'start': 198, 'machine': 3, 'duration': 94}, {'task': 3, 'start': 473, 'machine': 2, 'duration': 96}, {'task': 4, 'start': 569, 'machine': 1, 'duration': 73}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 74, 'machine': 1, 'duration': 18}, {'task': 1, 'start': 101, 'machine': 3, 'duration': 97}, {'task': 2, 'start': 245, 'machine': 0, 'duration': 55}, {'task': 3, 'start': 582, 'machine': 2, 'duration': 73}, {'task': 4, 'start': 655, 'machine': 4, 'duration': 67}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 52, 'machine': 3, 'duration': 49}, {'task': 1, 'start': 122, 'machine': 2, 'duration': 56}, {'task': 2, 'start': 346, 'machine': 0, 'duration': 39}, {'task': 3, 'start': 561, 'machine': 4, 'duration': 17}, {'task': 4, 'start': 656, 'machine': 1, 'duration': 34}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 35, 'machine': 2, 'duration': 87}, {'task': 1, 'start': 292, 'machine': 3, 'duration': 34}, {'task': 2, 'start': 381, 'machine': 4, 'duration': 45}, {'task': 3, 'start': 426, 'machine': 1, 'duration': 52}, {'task': 4, 'start': 611, 'machine': 0, 'duration': 31}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 35}, {'task': 1, 'start': 151, 'machine': 1, 'duration': 60}, {'task': 2, 'start': 312, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 385, 'machine': 0, 'duration': 80}, {'task': 4, 'start': 605, 'machine': 3, 'duration': 6}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 52}, {'task': 1, 'start': 211, 'machine': 1, 'duration': 11}, {'task': 2, 'start': 300, 'machine': 0, 'duration': 13}, {'task': 3, 'start': 436, 'machine': 2, 'duration': 37}, {'task': 4, 'start': 481, 'machine': 4, 'duration': 80}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 33, 'machine': 1, 'duration': 41}, {'task': 1, 'start': 182, 'machine': 0, 'duration': 63}, {'task': 2, 'start': 280, 'machine': 2, 'duration': 82}, {'task': 3, 'start': 426, 'machine': 4, 'duration': 55}, {'task': 4, 'start': 578, 'machine': 3, 'duration': 27}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 277, 'machine': 4, 'duration': 35}, {'task': 1, 'start': 569, 'machine': 2, 'duration': 13}, {'task': 2, 'start': 642, 'machine': 1, 'duration': 14}, {'task': 3, 'start': 656, 'machine': 0, 'duration': 67}, {'task': 4, 'start': 723, 'machine': 3, 'duration': 58}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 63}, {'task': 1, 'start': 93, 'machine': 1, 'duration': 58}, {'task': 2, 'start': 178, 'machine': 2, 'duration': 24}, {'task': 3, 'start': 419, 'machine': 3, 'duration': 63}, {'task': 4, 'start': 529, 'machine': 0, 'duration': 82}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 33}, {'task': 1, 'start': 94, 'machine': 0, 'duration': 88}, {'task': 2, 'start': 189, 'machine': 4, 'duration': 88}, {'task': 3, 'start': 362, 'machine': 2, 'duration': 74}, {'task': 4, 'start': 482, 'machine': 3, 'duration': 96}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 63, 'machine': 4, 'duration': 33}, {'task': 1, 'start': 313, 'machine': 0, 'duration': 33}, {'task': 2, 'start': 655, 'machine': 2, 'duration': 88}, {'task': 3, 'start': 743, 'machine': 1, 'duration': 46}, {'task': 4, 'start': 789, 'machine': 3, 'duration': 3}]}]",792.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 1, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 58}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 78}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 3, 'duration': 93}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 64}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 0, 'duration': 94}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 4, 'duration': 35}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 3, 'duration': 94}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 96}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 73}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 1, 'duration': 18}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 3, 'duration': 97}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 0, 'duration': 55}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 2, 'duration': 73}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 67}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 3, 'duration': 49}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 2, 'duration': 56}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 39}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 4, 'duration': 17}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 1, 'duration': 34}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 2, 'duration': 87}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 34}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 4, 'duration': 45}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 52}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 0, 'duration': 31}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 35}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 60}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 4, 'duration': 69}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 0, 'duration': 80}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 3, 'duration': 6}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 3, 'duration': 52}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 11}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 0, 'duration': 13}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 37}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 4, 'duration': 80}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 41}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 0, 'duration': 63}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 82}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 4, 'duration': 55}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 27}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 35}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 2, 'duration': 13}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 1, 'duration': 14}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 0, 'duration': 67}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 3, 'duration': 58}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 4, 'duration': 63}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 58}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 2, 'duration': 24}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 3, 'duration': 63}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 0, 'duration': 82}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 1, 'duration': 33}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 0, 'duration': 88}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 4, 'duration': 88}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 2, 'duration': 74}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 3, 'duration': 96}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 4, 'duration': 33}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 0, 'duration': 33}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 2, 'duration': 88}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 1, 'duration': 46}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 3, 'duration': 3}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 92, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 131, 'machine': 4, 'duration': 58}, {'task': 2, 'start': 202, 'machine': 2, 'duration': 78}, {'task': 3, 'start': 326, 'machine': 3, 'duration': 93}, {'task': 4, 'start': 465, 'machine': 0, 'duration': 64}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 94}, {'task': 1, 'start': 96, 'machine': 4, 'duration': 35}, {'task': 2, 'start': 198, 'machine': 3, 'duration': 94}, {'task': 3, 'start': 473, 'machine': 2, 'duration': 96}, {'task': 4, 'start': 569, 'machine': 1, 'duration': 73}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 74, 'machine': 1, 'duration': 18}, {'task': 1, 'start': 101, 'machine': 3, 'duration': 97}, {'task': 2, 'start': 245, 'machine': 0, 'duration': 55}, {'task': 3, 'start': 582, 'machine': 2, 'duration': 73}, {'task': 4, 'start': 655, 'machine': 4, 'duration': 67}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 52, 'machine': 3, 'duration': 49}, {'task': 1, 'start': 122, 'machine': 2, 'duration': 56}, {'task': 2, 'start': 346, 'machine': 0, 'duration': 39}, {'task': 3, 'start': 561, 'machine': 4, 'duration': 17}, {'task': 4, 'start': 656, 'machine': 1, 'duration': 34}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 35, 'machine': 2, 'duration': 87}, {'task': 1, 'start': 292, 'machine': 3, 'duration': 34}, {'task': 2, 'start': 381, 'machine': 4, 'duration': 45}, {'task': 3, 'start': 426, 'machine': 1, 'duration': 52}, {'task': 4, 'start': 611, 'machine': 0, 'duration': 31}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 35}, {'task': 1, 'start': 151, 'machine': 1, 'duration': 60}, {'task': 2, 'start': 312, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 385, 'machine': 0, 'duration': 80}, {'task': 4, 'start': 605, 'machine': 3, 'duration': 6}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 52}, {'task': 1, 'start': 211, 'machine': 1, 'duration': 11}, {'task': 2, 'start': 300, 'machine': 0, 'duration': 13}, {'task': 3, 'start': 436, 'machine': 2, 'duration': 37}, {'task': 4, 'start': 481, 'machine': 4, 'duration': 80}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 33, 'machine': 1, 'duration': 41}, {'task': 1, 'start': 182, 'machine': 0, 'duration': 63}, {'task': 2, 'start': 280, 'machine': 2, 'duration': 82}, {'task': 3, 'start': 426, 'machine': 4, 'duration': 55}, {'task': 4, 'start': 578, 'machine': 3, 'duration': 27}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 277, 'machine': 4, 'duration': 35}, {'task': 1, 'start': 569, 'machine': 2, 'duration': 13}, {'task': 2, 'start': 642, 'machine': 1, 'duration': 14}, {'task': 3, 'start': 656, 'machine': 0, 'duration': 67}, {'task': 4, 'start': 723, 'machine': 3, 'duration': 58}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 63}, {'task': 1, 'start': 93, 'machine': 1, 'duration': 58}, {'task': 2, 'start': 178, 'machine': 2, 'duration': 24}, {'task': 3, 'start': 419, 'machine': 3, 'duration': 63}, {'task': 4, 'start': 529, 'machine': 0, 'duration': 82}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 33}, {'task': 1, 'start': 94, 'machine': 0, 'duration': 88}, {'task': 2, 'start': 189, 'machine': 4, 'duration': 88}, {'task': 3, 'start': 362, 'machine': 2, 'duration': 74}, {'task': 4, 'start': 482, 'machine': 3, 'duration': 96}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 63, 'machine': 4, 'duration': 33}, {'task': 1, 'start': 313, 'machine': 0, 'duration': 33}, {'task': 2, 'start': 655, 'machine': 2, 'duration': 88}, {'task': 3, 'start': 743, 'machine': 1, 'duration': 46}, {'task': 4, 'start': 789, 'machine': 3, 'duration': 3}]}]",9,csv,0 JSP,JSP,"I run the render farm and my job is to pick start times for every little scene task so each one runs on its assigned server for however long it needs. Each shot is a chain of steps that have to happen in order, every task has to be scheduled exactly once, and no server can be asked to do two things at once. A better plan is simply the one that gets the whole project finished sooner — to check that, look at the finish times of all tasks and take the latest one; the smaller that time, the better. The concrete scene-by-scene details and runtimes are listed below. { ""total_shots"": 12, ""total_servers"": 6, ""shot_identifiers"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"", ""J11"", ""J12"" ], ""server_identifiers"": [ ""A"", ""B"", ""C"", ""D"", ""E"", ""F"" ], ""tasks"": [ { ""shot_id"": ""J1"", ""step_index"": 0, ""server_id"": ""E"", ""expected_runtime"": 1 }, { ""shot_id"": ""J1"", ""step_index"": 1, ""server_id"": ""B"", ""expected_runtime"": 71 }, { ""shot_id"": ""J1"", ""step_index"": 2, ""server_id"": ""D"", ""expected_runtime"": 54 }, { ""shot_id"": ""J1"", ""step_index"": 3, ""server_id"": ""C"", ""expected_runtime"": 39 }, { ""shot_id"": ""J1"", ""step_index"": 4, ""server_id"": ""F"", ""expected_runtime"": 17 }, { ""shot_id"": ""J1"", ""step_index"": 5, ""server_id"": ""A"", ""expected_runtime"": 17 }, { ""shot_id"": ""J2"", ""step_index"": 0, ""server_id"": ""A"", ""expected_runtime"": 40 }, { ""shot_id"": ""J2"", ""step_index"": 1, ""server_id"": ""C"", ""expected_runtime"": 62 }, { ""shot_id"": ""J2"", ""step_index"": 2, ""server_id"": ""D"", ""expected_runtime"": 64 }, { ""shot_id"": ""J2"", ""step_index"": 3, ""server_id"": ""B"", ""expected_runtime"": 67 }, { ""shot_id"": ""J2"", ""step_index"": 4, ""server_id"": ""F"", ""expected_runtime"": 56 }, { ""shot_id"": ""J2"", ""step_index"": 5, ""server_id"": ""E"", ""expected_runtime"": 49 }, { ""shot_id"": ""J3"", ""step_index"": 0, ""server_id"": ""C"", ""expected_runtime"": 38 }, { ""shot_id"": ""J3"", ""step_index"": 1, ""server_id"": ""E"", ""expected_runtime"": 76 }, { ""shot_id"": ""J3"", ""step_index"": 2, ""server_id"": ""B"", ""expected_runtime"": 72 }, { ""shot_id"": ""J3"", ""step_index"": 3, ""server_id"": ""A"", ""expected_runtime"": 2 }, { ""shot_id"": ""J3"", ""step_index"": 4, ""server_id"": ""F"", ""expected_runtime"": 23 }, { ""shot_id"": ""J3"", ""step_index"": 5, ""server_id"": ""D"", ""expected_runtime"": 39 }, { ""shot_id"": ""J4"", ""step_index"": 0, ""server_id"": ""F"", ""expected_runtime"": 55 }, { ""shot_id"": ""J4"", ""step_index"": 1, ""server_id"": ""E"", ""expected_runtime"": 41 }, { ""shot_id"": ""J4"", ""step_index"": 2, ""server_id"": ""C"", ""expected_runtime"": 29 }, { ""shot_id"": ""J4"", ""step_index"": 3, ""server_id"": ""B"", ""expected_runtime"": 3 }, { ""shot_id"": ""J4"", ""step_index"": 4, ""server_id"": ""D"", ""expected_runtime"": 4 }, { ""shot_id"": ""J4"", ""step_index"": 5, ""server_id"": ""A"", ""expected_runtime"": 45 }, { ""shot_id"": ""J5"", ""step_index"": 0, ""server_id"": ""F"", ""expected_runtime"": 16 }, { ""shot_id"": ""J5"", ""step_index"": 1, ""server_id"": ""B"", ""expected_runtime"": 87 }, { ""shot_id"": ""J5"", ""step_index"": 2, ""server_id"": ""C"", ""expected_runtime"": 69 }, { ""shot_id"": ""J5"", ""step_index"": 3, ""server_id"": ""E"", ""expected_runtime"": 35 }, { ""shot_id"": ""J5"", ""step_index"": 4, ""server_id"": ""D"", ""expected_runtime"": 22 }, { ""shot_id"": ""J5"", ""step_index"": 5, ""server_id"": ""A"", ""expected_runtime"": 76 }, { ""shot_id"": ""J6"", ""step_index"": 0, ""server_id"": ""D"", ""expected_runtime"": 43 }, { ""shot_id"": ""J6"", ""step_index"": 1, ""server_id"": ""E"", ""expected_runtime"": 87 }, { ""shot_id"": ""J6"", ""step_index"": 2, ""server_id"": ""F"", ""expected_runtime"": 39 }, { ""shot_id"": ""J6"", ""step_index"": 3, ""server_id"": ""C"", ""expected_runtime"": 42 }, { ""shot_id"": ""J6"", ""step_index"": 4, ""server_id"": ""B"", ""expected_runtime"": 54 }, { ""shot_id"": ""J6"", ""step_index"": 5, ""server_id"": ""A"", ""expected_runtime"": 74 }, { ""shot_id"": ""J7"", ""step_index"": 0, ""server_id"": ""B"", ""expected_runtime"": 27 }, { ""shot_id"": ""J7"", ""step_index"": 1, ""server_id"": ""C"", ""expected_runtime"": 58 }, { ""shot_id"": ""J7"", ""step_index"": 2, ""server_id"": ""A"", ""expected_runtime"": 54 }, { ""shot_id"": ""J7"", ""step_index"": 3, ""server_id"": ""F"", ""expected_runtime"": 63 }, { ""shot_id"": ""J7"", ""step_index"": 4, ""server_id"": ""E"", ""expected_runtime"": 60 }, { ""shot_id"": ""J7"", ""step_index"": 5, ""server_id"": ""D"", ""expected_runtime"": 11 }, { ""shot_id"": ""J8"", ""step_index"": 0, ""server_id"": ""B"", ""expected_runtime"": 85 }, { ""shot_id"": ""J8"", ""step_index"": 1, ""server_id"": ""F"", ""expected_runtime"": 42 }, { ""shot_id"": ""J8"", ""step_index"": 2, ""server_id"": ""E"", ""expected_runtime"": 23 }, { ""shot_id"": ""J8"", ""step_index"": 3, ""server_id"": ""C"", ""expected_runtime"": 70 }, { ""shot_id"": ""J8"", ""step_index"": 4, ""server_id"": ""D"", ""expected_runtime"": 22 }, { ""shot_id"": ""J8"", ""step_index"": 5, ""server_id"": ""A"", ""expected_runtime"": 12 }, { ""shot_id"": ""J9"", ""step_index"": 0, ""server_id"": ""E"", ""expected_runtime"": 90 }, { ""shot_id"": ""J9"", ""step_index"": 1, ""server_id"": ""A"", ""expected_runtime"": 26 }, { ""shot_id"": ""J9"", ""step_index"": 2, ""server_id"": ""C"", ""expected_runtime"": 10 }, { ""shot_id"": ""J9"", ""step_index"": 3, ""server_id"": ""B"", ""expected_runtime"": 37 }, { ""shot_id"": ""J9"", ""step_index"": 4, ""server_id"": ""D"", ""expected_runtime"": 13 }, { ""shot_id"": ""J9"", ""step_index"": 5, ""server_id"": ""F"", ""expected_runtime"": 3 }, { ""shot_id"": ""J10"", ""step_index"": 0, ""server_id"": ""B"", ""expected_runtime"": 32 }, { ""shot_id"": ""J10"", ""step_index"": 1, ""server_id"": ""E"", ""expected_runtime"": 49 }, { ""shot_id"": ""J10"", ""step_index"": 2, ""server_id"": ""F"", ""expected_runtime"": 81 }, { ""shot_id"": ""J10"", ""step_index"": 3, ""server_id"": ""A"", ""expected_runtime"": 78 }, { ""shot_id"": ""J10"", ""step_index"": 4, ""server_id"": ""C"", ""expected_runtime"": 37 }, { ""shot_id"": ""J10"", ""step_index"": 5, ""server_id"": ""D"", ""expected_runtime"": 9 }, { ""shot_id"": ""J11"", ""step_index"": 0, ""server_id"": ""C"", ""expected_runtime"": 14 }, { ""shot_id"": ""J11"", ""step_index"": 1, ""server_id"": ""B"", ""expected_runtime"": 73 }, { ""shot_id"": ""J11"", ""step_index"": 2, ""server_id"": ""F"", ""expected_runtime"": 33 }, { ""shot_id"": ""J11"", ""step_index"": 3, ""server_id"": ""E"", ""expected_runtime"": 27 }, { ""shot_id"": ""J11"", ""step_index"": 4, ""server_id"": ""D"", ""expected_runtime"": 32 }, { ""shot_id"": ""J11"", ""step_index"": 5, ""server_id"": ""A"", ""expected_runtime"": 20 }, { ""shot_id"": ""J12"", ""step_index"": 0, ""server_id"": ""A"", ""expected_runtime"": 57 }, { ""shot_id"": ""J12"", ""step_index"": 1, ""server_id"": ""C"", ""expected_runtime"": 63 }, { ""shot_id"": ""J12"", ""step_index"": 2, ""server_id"": ""F"", ""expected_runtime"": 34 }, { ""shot_id"": ""J12"", ""step_index"": 3, ""server_id"": ""B"", ""expected_runtime"": 76 }, { ""shot_id"": ""J12"", ""step_index"": 4, ""server_id"": ""E"", ""expected_runtime"": 54 }, { ""shot_id"": ""J12"", ""step_index"": 5, ""server_id"": ""D"", ""expected_runtime"": 59 } ] } When you send the schedule back, just use this simple JSON shape so I can pick up the info cleanly: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: the top-level ""solution"" holds one entry per shot (job). Each job entry names the job and then lists its tasks in order. For each task you give which step it is (""task""), when it starts (""start""), which server it runs on (""machine""), and how long it runs (""duration""). This block is just a sketch of the shape I expect, not the actual schedule — fill it with the real IDs and times when you reply. Please use the exact identifiers from the instance input — do not rename or invent labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[4, 1], [1, 71], [3, 54], [2, 39], [5, 17], [0, 17]], [[0, 40], [2, 62], [3, 64], [1, 67], [5, 56], [4, 49]], [[2, 38], [4, 76], [1, 72], [0, 2], [5, 23], [3, 39]], [[5, 55], [4, 41], [2, 29], [1, 3], [3, 4], [0, 45]], [[5, 16], [1, 87], [2, 69], [4, 35], [3, 22], [0, 76]], [[3, 43], [4, 87], [5, 39], [2, 42], [1, 54], [0, 74]], [[1, 27], [2, 58], [0, 54], [5, 63], [4, 60], [3, 11]], [[1, 85], [5, 42], [4, 23], [2, 70], [3, 22], [0, 12]], [[4, 90], [0, 26], [2, 10], [1, 37], [3, 13], [5, 3]], [[1, 32], [4, 49], [5, 81], [0, 78], [2, 37], [3, 9]], [[2, 14], [1, 73], [5, 33], [4, 27], [3, 32], [0, 20]], [[0, 57], [2, 63], [5, 34], [1, 76], [4, 54], [3, 59]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 231, 'machine': 1, 'duration': 71}, {'task': 2, 'start': 302, 'machine': 3, 'duration': 54}, {'task': 3, 'start': 380, 'machine': 2, 'duration': 39}, {'task': 4, 'start': 419, 'machine': 5, 'duration': 17}, {'task': 5, 'start': 477, 'machine': 0, 'duration': 17}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 57, 'machine': 0, 'duration': 40}, {'task': 1, 'start': 120, 'machine': 2, 'duration': 62}, {'task': 2, 'start': 182, 'machine': 3, 'duration': 64}, {'task': 3, 'start': 451, 'machine': 1, 'duration': 67}, {'task': 4, 'start': 518, 'machine': 5, 'duration': 56}, {'task': 5, 'start': 574, 'machine': 4, 'duration': 49}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 38}, {'task': 1, 'start': 227, 'machine': 4, 'duration': 76}, {'task': 2, 'start': 518, 'machine': 1, 'duration': 72}, {'task': 3, 'start': 600, 'machine': 0, 'duration': 2}, {'task': 4, 'start': 602, 'machine': 5, 'duration': 23}, {'task': 5, 'start': 626, 'machine': 3, 'duration': 39}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 16, 'machine': 5, 'duration': 55}, {'task': 1, 'start': 303, 'machine': 4, 'duration': 41}, {'task': 2, 'start': 351, 'machine': 2, 'duration': 29}, {'task': 3, 'start': 590, 'machine': 1, 'duration': 3}, {'task': 4, 'start': 593, 'machine': 3, 'duration': 4}, {'task': 5, 'start': 602, 'machine': 0, 'duration': 45}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 16}, {'task': 1, 'start': 32, 'machine': 1, 'duration': 87}, {'task': 2, 'start': 240, 'machine': 2, 'duration': 69}, {'task': 3, 'start': 344, 'machine': 4, 'duration': 35}, {'task': 4, 'start': 379, 'machine': 3, 'duration': 22}, {'task': 5, 'start': 401, 'machine': 0, 'duration': 76}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 43}, {'task': 1, 'start': 91, 'machine': 4, 'duration': 87}, {'task': 2, 'start': 178, 'machine': 5, 'duration': 39}, {'task': 3, 'start': 309, 'machine': 2, 'duration': 42}, {'task': 4, 'start': 593, 'machine': 1, 'duration': 54}, {'task': 5, 'start': 647, 'machine': 0, 'duration': 74}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 119, 'machine': 1, 'duration': 27}, {'task': 1, 'start': 182, 'machine': 2, 'duration': 58}, {'task': 2, 'start': 240, 'machine': 0, 'duration': 54}, {'task': 3, 'start': 350, 'machine': 5, 'duration': 63}, {'task': 4, 'start': 456, 'machine': 4, 'duration': 60}, {'task': 5, 'start': 537, 'machine': 3, 'duration': 11}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 146, 'machine': 1, 'duration': 85}, {'task': 1, 'start': 308, 'machine': 5, 'duration': 42}, {'task': 2, 'start': 379, 'machine': 4, 'duration': 23}, {'task': 3, 'start': 419, 'machine': 2, 'duration': 70}, {'task': 4, 'start': 515, 'machine': 3, 'duration': 22}, {'task': 5, 'start': 537, 'machine': 0, 'duration': 12}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 90}, {'task': 1, 'start': 97, 'machine': 0, 'duration': 26}, {'task': 2, 'start': 489, 'machine': 2, 'duration': 10}, {'task': 3, 'start': 647, 'machine': 1, 'duration': 37}, {'task': 4, 'start': 684, 'machine': 3, 'duration': 13}, {'task': 5, 'start': 697, 'machine': 5, 'duration': 3}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 32}, {'task': 1, 'start': 178, 'machine': 4, 'duration': 49}, {'task': 2, 'start': 227, 'machine': 5, 'duration': 81}, {'task': 3, 'start': 308, 'machine': 0, 'duration': 78}, {'task': 4, 'start': 499, 'machine': 2, 'duration': 37}, {'task': 5, 'start': 580, 'machine': 3, 'duration': 9}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 38, 'machine': 2, 'duration': 14}, {'task': 1, 'start': 378, 'machine': 1, 'duration': 73}, {'task': 2, 'start': 451, 'machine': 5, 'duration': 33}, {'task': 3, 'start': 516, 'machine': 4, 'duration': 27}, {'task': 4, 'start': 548, 'machine': 3, 'duration': 32}, {'task': 5, 'start': 580, 'machine': 0, 'duration': 20}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 57}, {'task': 1, 'start': 57, 'machine': 2, 'duration': 63}, {'task': 2, 'start': 120, 'machine': 5, 'duration': 34}, {'task': 3, 'start': 302, 'machine': 1, 'duration': 76}, {'task': 4, 'start': 402, 'machine': 4, 'duration': 54}, {'task': 5, 'start': 456, 'machine': 3, 'duration': 59}]}]",721.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'E', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 71}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'D', 'duration': 54}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 39}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'F', 'duration': 17}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 17}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'A', 'duration': 40}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'C', 'duration': 62}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'D', 'duration': 64}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'B', 'duration': 67}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'F', 'duration': 56}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'E', 'duration': 49}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'C', 'duration': 38}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'E', 'duration': 76}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'B', 'duration': 72}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'A', 'duration': 2}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'F', 'duration': 23}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'D', 'duration': 39}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'F', 'duration': 55}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'E', 'duration': 41}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'C', 'duration': 29}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 3}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'D', 'duration': 4}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'A', 'duration': 45}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'F', 'duration': 16}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'B', 'duration': 87}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'C', 'duration': 69}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'E', 'duration': 35}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 22}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'A', 'duration': 76}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'D', 'duration': 43}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 87}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'F', 'duration': 39}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'C', 'duration': 42}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'B', 'duration': 54}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'A', 'duration': 74}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'B', 'duration': 27}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'C', 'duration': 58}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 54}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'F', 'duration': 63}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'E', 'duration': 60}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'D', 'duration': 11}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'B', 'duration': 85}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'F', 'duration': 42}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'E', 'duration': 23}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'C', 'duration': 70}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'D', 'duration': 22}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'A', 'duration': 12}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'E', 'duration': 90}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'A', 'duration': 26}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'C', 'duration': 10}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'B', 'duration': 37}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'D', 'duration': 13}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'F', 'duration': 3}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'B', 'duration': 32}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'E', 'duration': 49}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'F', 'duration': 81}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'A', 'duration': 78}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'C', 'duration': 37}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'D', 'duration': 9}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'C', 'duration': 14}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'B', 'duration': 73}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'F', 'duration': 33}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'E', 'duration': 27}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 'A', 'duration': 20}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 'A', 'duration': 57}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 'C', 'duration': 63}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 'F', 'duration': 34}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 'B', 'duration': 76}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 'E', 'duration': 54}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 'D', 'duration': 59}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 1}, {'task': 1, 'start': 231, 'machine': 'B', 'duration': 71}, {'task': 2, 'start': 302, 'machine': 'D', 'duration': 54}, {'task': 3, 'start': 380, 'machine': 'C', 'duration': 39}, {'task': 4, 'start': 419, 'machine': 'F', 'duration': 17}, {'task': 5, 'start': 477, 'machine': 'A', 'duration': 17}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 57, 'machine': 'A', 'duration': 40}, {'task': 1, 'start': 120, 'machine': 'C', 'duration': 62}, {'task': 2, 'start': 182, 'machine': 'D', 'duration': 64}, {'task': 3, 'start': 451, 'machine': 'B', 'duration': 67}, {'task': 4, 'start': 518, 'machine': 'F', 'duration': 56}, {'task': 5, 'start': 574, 'machine': 'E', 'duration': 49}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 38}, {'task': 1, 'start': 227, 'machine': 'E', 'duration': 76}, {'task': 2, 'start': 518, 'machine': 'B', 'duration': 72}, {'task': 3, 'start': 600, 'machine': 'A', 'duration': 2}, {'task': 4, 'start': 602, 'machine': 'F', 'duration': 23}, {'task': 5, 'start': 626, 'machine': 'D', 'duration': 39}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 16, 'machine': 'F', 'duration': 55}, {'task': 1, 'start': 303, 'machine': 'E', 'duration': 41}, {'task': 2, 'start': 351, 'machine': 'C', 'duration': 29}, {'task': 3, 'start': 590, 'machine': 'B', 'duration': 3}, {'task': 4, 'start': 593, 'machine': 'D', 'duration': 4}, {'task': 5, 'start': 602, 'machine': 'A', 'duration': 45}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 16}, {'task': 1, 'start': 32, 'machine': 'B', 'duration': 87}, {'task': 2, 'start': 240, 'machine': 'C', 'duration': 69}, {'task': 3, 'start': 344, 'machine': 'E', 'duration': 35}, {'task': 4, 'start': 379, 'machine': 'D', 'duration': 22}, {'task': 5, 'start': 401, 'machine': 'A', 'duration': 76}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 43}, {'task': 1, 'start': 91, 'machine': 'E', 'duration': 87}, {'task': 2, 'start': 178, 'machine': 'F', 'duration': 39}, {'task': 3, 'start': 309, 'machine': 'C', 'duration': 42}, {'task': 4, 'start': 593, 'machine': 'B', 'duration': 54}, {'task': 5, 'start': 647, 'machine': 'A', 'duration': 74}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 119, 'machine': 'B', 'duration': 27}, {'task': 1, 'start': 182, 'machine': 'C', 'duration': 58}, {'task': 2, 'start': 240, 'machine': 'A', 'duration': 54}, {'task': 3, 'start': 350, 'machine': 'F', 'duration': 63}, {'task': 4, 'start': 456, 'machine': 'E', 'duration': 60}, {'task': 5, 'start': 537, 'machine': 'D', 'duration': 11}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 146, 'machine': 'B', 'duration': 85}, {'task': 1, 'start': 308, 'machine': 'F', 'duration': 42}, {'task': 2, 'start': 379, 'machine': 'E', 'duration': 23}, {'task': 3, 'start': 419, 'machine': 'C', 'duration': 70}, {'task': 4, 'start': 515, 'machine': 'D', 'duration': 22}, {'task': 5, 'start': 537, 'machine': 'A', 'duration': 12}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 1, 'machine': 'E', 'duration': 90}, {'task': 1, 'start': 97, 'machine': 'A', 'duration': 26}, {'task': 2, 'start': 489, 'machine': 'C', 'duration': 10}, {'task': 3, 'start': 647, 'machine': 'B', 'duration': 37}, {'task': 4, 'start': 684, 'machine': 'D', 'duration': 13}, {'task': 5, 'start': 697, 'machine': 'F', 'duration': 3}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 32}, {'task': 1, 'start': 178, 'machine': 'E', 'duration': 49}, {'task': 2, 'start': 227, 'machine': 'F', 'duration': 81}, {'task': 3, 'start': 308, 'machine': 'A', 'duration': 78}, {'task': 4, 'start': 499, 'machine': 'C', 'duration': 37}, {'task': 5, 'start': 580, 'machine': 'D', 'duration': 9}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 38, 'machine': 'C', 'duration': 14}, {'task': 1, 'start': 378, 'machine': 'B', 'duration': 73}, {'task': 2, 'start': 451, 'machine': 'F', 'duration': 33}, {'task': 3, 'start': 516, 'machine': 'E', 'duration': 27}, {'task': 4, 'start': 548, 'machine': 'D', 'duration': 32}, {'task': 5, 'start': 580, 'machine': 'A', 'duration': 20}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 57}, {'task': 1, 'start': 57, 'machine': 'C', 'duration': 63}, {'task': 2, 'start': 120, 'machine': 'F', 'duration': 34}, {'task': 3, 'start': 302, 'machine': 'B', 'duration': 76}, {'task': 4, 'start': 402, 'machine': 'E', 'duration': 54}, {'task': 5, 'start': 456, 'machine': 'D', 'duration': 59}]}]",10,json,names JSP,JSP,"I’m the lab coordinator trying to line up a stack of experiments so every procedure uses the right instrument for its listed time, with each experiment’s steps done in the order they’re written. The choice to make is when to book each instrument for each step so nothing overlaps and every step happens exactly once. The good schedules are the ones that get all the experiments finished sooner — measure that by the clock time when the last experiment wraps up, and the earlier that finish time, the better. The specific experiments, steps, instruments, and durations are shown below. I have 9 experiments and 5 instruments; their IDs are J1, J2, J3, J4, J5, J6, J7, J8, J9 and A, B, C, D, E. For experiment J1, I will book instrument C for step 0 for 1 time units. For experiment J1, I will book instrument D for step 1 for 84 time units. For experiment J1, I will book instrument B for step 2 for 29 time units. For experiment J1, I will book instrument E for step 3 for 85 time units. For experiment J1, I will book instrument A for step 4 for 70 time units. For experiment J2, I will book instrument A for step 0 for 39 time units. For experiment J2, I will book instrument E for step 1 for 45 time units. For experiment J2, I will book instrument C for step 2 for 30 time units. For experiment J2, I will book instrument D for step 3 for 33 time units. For experiment J2, I will book instrument B for step 4 for 60 time units. For experiment J3, I will book instrument E for step 0 for 94 time units. For experiment J3, I will book instrument A for step 1 for 1 time units. For experiment J3, I will book instrument D for step 2 for 21 time units. For experiment J3, I will book instrument C for step 3 for 79 time units. For experiment J3, I will book instrument B for step 4 for 78 time units. For experiment J4, I will book instrument A for step 0 for 54 time units. For experiment J4, I will book instrument D for step 1 for 90 time units. For experiment J4, I will book instrument B for step 2 for 40 time units. For experiment J4, I will book instrument C for step 3 for 93 time units. For experiment J4, I will book instrument E for step 4 for 48 time units. For experiment J5, I will book instrument C for step 0 for 71 time units. For experiment J5, I will book instrument D for step 1 for 71 time units. For experiment J5, I will book instrument A for step 2 for 63 time units. For experiment J5, I will book instrument E for step 3 for 38 time units. For experiment J5, I will book instrument B for step 4 for 1 time units. For experiment J6, I will book instrument A for step 0 for 40 time units. For experiment J6, I will book instrument E for step 1 for 78 time units. For experiment J6, I will book instrument D for step 2 for 1 time units. For experiment J6, I will book instrument B for step 3 for 63 time units. For experiment J6, I will book instrument C for step 4 for 46 time units. For experiment J7, I will book instrument E for step 0 for 34 time units. For experiment J7, I will book instrument A for step 1 for 63 time units. For experiment J7, I will book instrument B for step 2 for 65 time units. For experiment J7, I will book instrument C for step 3 for 47 time units. For experiment J7, I will book instrument D for step 4 for 28 time units. For experiment J8, I will book instrument A for step 0 for 7 time units. For experiment J8, I will book instrument C for step 1 for 89 time units. For experiment J8, I will book instrument E for step 2 for 34 time units. For experiment J8, I will book instrument B for step 3 for 53 time units. For experiment J8, I will book instrument D for step 4 for 99 time units. For experiment J9, I will book instrument B for step 0 for 84 time units. For experiment J9, I will book instrument C for step 1 for 10 time units. For experiment J9, I will book instrument D for step 2 for 58 time units. For experiment J9, I will book instrument E for step 3 for 18 time units. For experiment J9, I will book instrument A for step 4 for 88 time units. I'll schedule the bookings so every step runs once in order and no instrument is double-booked. Also, when you send the schedule back, a handy way to format it is with a simple JSON shape so I can read each experiment (job) and its ordered steps. Something like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that JSON as a little form: each top-level ""job"" is one experiment, ""tasks"" is the ordered list of steps, ""task"" is the step number, ""start"" is the clock time that step begins, ""machine"" is which instrument it uses, and ""duration"" is how long that step runs. It's just a sketch of the shape I need — not the actual schedule yet. Please make sure to use the exact identifiers from the instance input — no renaming and no new labels. ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[2, 1], [3, 84], [1, 29], [4, 85], [0, 70]], [[0, 39], [4, 45], [2, 30], [3, 33], [1, 60]], [[4, 94], [0, 1], [3, 21], [2, 79], [1, 78]], [[0, 54], [3, 90], [1, 40], [2, 93], [4, 48]], [[2, 71], [3, 71], [0, 63], [4, 38], [1, 1]], [[0, 40], [4, 78], [3, 1], [1, 63], [2, 46]], [[4, 34], [0, 63], [1, 65], [2, 47], [3, 28]], [[0, 7], [2, 89], [4, 34], [1, 53], [3, 99]], [[1, 84], [2, 10], [3, 58], [4, 18], [0, 88]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 3, 'duration': 84}, {'task': 2, 'start': 85, 'machine': 1, 'duration': 29}, {'task': 3, 'start': 208, 'machine': 4, 'duration': 85}, {'task': 4, 'start': 330, 'machine': 0, 'duration': 70}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 124, 'machine': 0, 'duration': 39}, {'task': 1, 'start': 163, 'machine': 4, 'duration': 45}, {'task': 2, 'start': 275, 'machine': 2, 'duration': 30}, {'task': 3, 'start': 325, 'machine': 3, 'duration': 33}, {'task': 4, 'start': 435, 'machine': 1, 'duration': 60}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 34, 'machine': 4, 'duration': 94}, {'task': 1, 'start': 163, 'machine': 0, 'duration': 1}, {'task': 2, 'start': 175, 'machine': 3, 'duration': 21}, {'task': 3, 'start': 196, 'machine': 2, 'duration': 79}, {'task': 4, 'start': 282, 'machine': 1, 'duration': 78}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 7, 'machine': 0, 'duration': 54}, {'task': 1, 'start': 85, 'machine': 3, 'duration': 90}, {'task': 2, 'start': 189, 'machine': 1, 'duration': 40}, {'task': 3, 'start': 305, 'machine': 2, 'duration': 93}, {'task': 4, 'start': 427, 'machine': 4, 'duration': 48}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 106, 'machine': 2, 'duration': 71}, {'task': 1, 'start': 196, 'machine': 3, 'duration': 71}, {'task': 2, 'start': 267, 'machine': 0, 'duration': 63}, {'task': 3, 'start': 389, 'machine': 4, 'duration': 38}, {'task': 4, 'start': 495, 'machine': 1, 'duration': 1}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 164, 'machine': 0, 'duration': 40}, {'task': 1, 'start': 293, 'machine': 4, 'duration': 78}, {'task': 2, 'start': 371, 'machine': 3, 'duration': 1}, {'task': 3, 'start': 372, 'machine': 1, 'duration': 63}, {'task': 4, 'start': 445, 'machine': 2, 'duration': 46}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 34}, {'task': 1, 'start': 61, 'machine': 0, 'duration': 63}, {'task': 2, 'start': 124, 'machine': 1, 'duration': 65}, {'task': 3, 'start': 398, 'machine': 2, 'duration': 47}, {'task': 4, 'start': 471, 'machine': 3, 'duration': 28}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 7}, {'task': 1, 'start': 7, 'machine': 2, 'duration': 89}, {'task': 2, 'start': 128, 'machine': 4, 'duration': 34}, {'task': 3, 'start': 229, 'machine': 1, 'duration': 53}, {'task': 4, 'start': 372, 'machine': 3, 'duration': 99}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 84}, {'task': 1, 'start': 96, 'machine': 2, 'duration': 10}, {'task': 2, 'start': 267, 'machine': 3, 'duration': 58}, {'task': 3, 'start': 371, 'machine': 4, 'duration': 18}, {'task': 4, 'start': 400, 'machine': 0, 'duration': 88}]}]",499.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'C', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'D', 'duration': 84}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 29}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'E', 'duration': 85}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 70}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'A', 'duration': 39}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'E', 'duration': 45}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'C', 'duration': 30}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'D', 'duration': 33}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'B', 'duration': 60}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'E', 'duration': 94}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'A', 'duration': 1}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'D', 'duration': 21}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'C', 'duration': 79}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'B', 'duration': 78}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'A', 'duration': 54}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 90}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 40}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'C', 'duration': 93}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'E', 'duration': 48}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'C', 'duration': 71}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'D', 'duration': 71}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'A', 'duration': 63}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'E', 'duration': 38}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'B', 'duration': 1}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'A', 'duration': 40}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 78}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'B', 'duration': 63}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 46}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'E', 'duration': 34}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'A', 'duration': 63}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'B', 'duration': 65}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'C', 'duration': 47}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'D', 'duration': 28}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'A', 'duration': 7}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'C', 'duration': 89}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'E', 'duration': 34}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'B', 'duration': 53}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'D', 'duration': 99}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'B', 'duration': 84}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'C', 'duration': 10}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'D', 'duration': 58}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'A', 'duration': 88}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 1}, {'task': 1, 'start': 1, 'machine': 'D', 'duration': 84}, {'task': 2, 'start': 85, 'machine': 'B', 'duration': 29}, {'task': 3, 'start': 208, 'machine': 'E', 'duration': 85}, {'task': 4, 'start': 330, 'machine': 'A', 'duration': 70}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 124, 'machine': 'A', 'duration': 39}, {'task': 1, 'start': 163, 'machine': 'E', 'duration': 45}, {'task': 2, 'start': 275, 'machine': 'C', 'duration': 30}, {'task': 3, 'start': 325, 'machine': 'D', 'duration': 33}, {'task': 4, 'start': 435, 'machine': 'B', 'duration': 60}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 34, 'machine': 'E', 'duration': 94}, {'task': 1, 'start': 163, 'machine': 'A', 'duration': 1}, {'task': 2, 'start': 175, 'machine': 'D', 'duration': 21}, {'task': 3, 'start': 196, 'machine': 'C', 'duration': 79}, {'task': 4, 'start': 282, 'machine': 'B', 'duration': 78}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 7, 'machine': 'A', 'duration': 54}, {'task': 1, 'start': 85, 'machine': 'D', 'duration': 90}, {'task': 2, 'start': 189, 'machine': 'B', 'duration': 40}, {'task': 3, 'start': 305, 'machine': 'C', 'duration': 93}, {'task': 4, 'start': 427, 'machine': 'E', 'duration': 48}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 106, 'machine': 'C', 'duration': 71}, {'task': 1, 'start': 196, 'machine': 'D', 'duration': 71}, {'task': 2, 'start': 267, 'machine': 'A', 'duration': 63}, {'task': 3, 'start': 389, 'machine': 'E', 'duration': 38}, {'task': 4, 'start': 495, 'machine': 'B', 'duration': 1}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 164, 'machine': 'A', 'duration': 40}, {'task': 1, 'start': 293, 'machine': 'E', 'duration': 78}, {'task': 2, 'start': 371, 'machine': 'D', 'duration': 1}, {'task': 3, 'start': 372, 'machine': 'B', 'duration': 63}, {'task': 4, 'start': 445, 'machine': 'C', 'duration': 46}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 34}, {'task': 1, 'start': 61, 'machine': 'A', 'duration': 63}, {'task': 2, 'start': 124, 'machine': 'B', 'duration': 65}, {'task': 3, 'start': 398, 'machine': 'C', 'duration': 47}, {'task': 4, 'start': 471, 'machine': 'D', 'duration': 28}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 7}, {'task': 1, 'start': 7, 'machine': 'C', 'duration': 89}, {'task': 2, 'start': 128, 'machine': 'E', 'duration': 34}, {'task': 3, 'start': 229, 'machine': 'B', 'duration': 53}, {'task': 4, 'start': 372, 'machine': 'D', 'duration': 99}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 84}, {'task': 1, 'start': 96, 'machine': 'C', 'duration': 10}, {'task': 2, 'start': 267, 'machine': 'D', 'duration': 58}, {'task': 3, 'start': 371, 'machine': 'E', 'duration': 18}, {'task': 4, 'start': 400, 'machine': 'A', 'duration': 88}]}]",11,nl,names JSP,JSP,"Late one night the operations lead described the situation like a game: batches move through a fixed series of stations, each station is a certain server and each stop takes a set time, and a server can only serve one stop at a time. The game is to time every start so each stop gets its right server for the allotted time, the stops in a batch occur in their given order, nothing is left out or done twice, and the entire game ends as fast as possible — tracked by the moment the last stop finishes on the clock. The exact job and server specifics are shown below. { ""total_batch_jobs"": 12, ""total_servers"": 6, ""batch_job_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"", ""J11"", ""J12"" ], ""server_ids"": [ ""A"", ""B"", ""C"", ""D"", ""E"", ""F"" ], ""tasks"": [ { ""batch_id"": ""J1"", ""stage_index"": 0, ""required_server_id"": ""D"", ""expected_runtime"": 1 }, { ""batch_id"": ""J1"", ""stage_index"": 1, ""required_server_id"": ""E"", ""expected_runtime"": 97 }, { ""batch_id"": ""J1"", ""stage_index"": 2, ""required_server_id"": ""C"", ""expected_runtime"": 5 }, { ""batch_id"": ""J1"", ""stage_index"": 3, ""required_server_id"": ""F"", ""expected_runtime"": 31 }, { ""batch_id"": ""J1"", ""stage_index"": 4, ""required_server_id"": ""B"", ""expected_runtime"": 24 }, { ""batch_id"": ""J1"", ""stage_index"": 5, ""required_server_id"": ""A"", ""expected_runtime"": 60 }, { ""batch_id"": ""J2"", ""stage_index"": 0, ""required_server_id"": ""F"", ""expected_runtime"": 49 }, { ""batch_id"": ""J2"", ""stage_index"": 1, ""required_server_id"": ""A"", ""expected_runtime"": 98 }, { ""batch_id"": ""J2"", ""stage_index"": 2, ""required_server_id"": ""D"", ""expected_runtime"": 1 }, { ""batch_id"": ""J2"", ""stage_index"": 3, ""required_server_id"": ""C"", ""expected_runtime"": 54 }, { ""batch_id"": ""J2"", ""stage_index"": 4, ""required_server_id"": ""E"", ""expected_runtime"": 33 }, { ""batch_id"": ""J2"", ""stage_index"": 5, ""required_server_id"": ""B"", ""expected_runtime"": 53 }, { ""batch_id"": ""J3"", ""stage_index"": 0, ""required_server_id"": ""E"", ""expected_runtime"": 5 }, { ""batch_id"": ""J3"", ""stage_index"": 1, ""required_server_id"": ""A"", ""expected_runtime"": 83 }, { ""batch_id"": ""J3"", ""stage_index"": 2, ""required_server_id"": ""B"", ""expected_runtime"": 83 }, { ""batch_id"": ""J3"", ""stage_index"": 3, ""required_server_id"": ""F"", ""expected_runtime"": 8 }, { ""batch_id"": ""J3"", ""stage_index"": 4, ""required_server_id"": ""D"", ""expected_runtime"": 57 }, { ""batch_id"": ""J3"", ""stage_index"": 5, ""required_server_id"": ""C"", ""expected_runtime"": 41 }, { ""batch_id"": ""J4"", ""stage_index"": 0, ""required_server_id"": ""E"", ""expected_runtime"": 32 }, { ""batch_id"": ""J4"", ""stage_index"": 1, ""required_server_id"": ""C"", ""expected_runtime"": 54 }, { ""batch_id"": ""J4"", ""stage_index"": 2, ""required_server_id"": ""D"", ""expected_runtime"": 13 }, { ""batch_id"": ""J4"", ""stage_index"": 3, ""required_server_id"": ""B"", ""expected_runtime"": 40 }, { ""batch_id"": ""J4"", ""stage_index"": 4, ""required_server_id"": ""F"", ""expected_runtime"": 22 }, { ""batch_id"": ""J4"", ""stage_index"": 5, ""required_server_id"": ""A"", ""expected_runtime"": 32 }, { ""batch_id"": ""J5"", ""stage_index"": 0, ""required_server_id"": ""E"", ""expected_runtime"": 84 }, { ""batch_id"": ""J5"", ""stage_index"": 1, ""required_server_id"": ""B"", ""expected_runtime"": 92 }, { ""batch_id"": ""J5"", ""stage_index"": 2, ""required_server_id"": ""C"", ""expected_runtime"": 87 }, { ""batch_id"": ""J5"", ""stage_index"": 3, ""required_server_id"": ""D"", ""expected_runtime"": 66 }, { ""batch_id"": ""J5"", ""stage_index"": 4, ""required_server_id"": ""A"", ""expected_runtime"": 5 }, { ""batch_id"": ""J5"", ""stage_index"": 5, ""required_server_id"": ""F"", ""expected_runtime"": 17 }, { ""batch_id"": ""J6"", ""stage_index"": 0, ""required_server_id"": ""F"", ""expected_runtime"": 25 }, { ""batch_id"": ""J6"", ""stage_index"": 1, ""required_server_id"": ""E"", ""expected_runtime"": 40 }, { ""batch_id"": ""J6"", ""stage_index"": 2, ""required_server_id"": ""A"", ""expected_runtime"": 91 }, { ""batch_id"": ""J6"", ""stage_index"": 3, ""required_server_id"": ""D"", ""expected_runtime"": 52 }, { ""batch_id"": ""J6"", ""stage_index"": 4, ""required_server_id"": ""C"", ""expected_runtime"": 2 }, { ""batch_id"": ""J6"", ""stage_index"": 5, ""required_server_id"": ""B"", ""expected_runtime"": 40 }, { ""batch_id"": ""J7"", ""stage_index"": 0, ""required_server_id"": ""F"", ""expected_runtime"": 53 }, { ""batch_id"": ""J7"", ""stage_index"": 1, ""required_server_id"": ""D"", ""expected_runtime"": 9 }, { ""batch_id"": ""J7"", ""stage_index"": 2, ""required_server_id"": ""A"", ""expected_runtime"": 52 }, { ""batch_id"": ""J7"", ""stage_index"": 3, ""required_server_id"": ""E"", ""expected_runtime"": 36 }, { ""batch_id"": ""J7"", ""stage_index"": 4, ""required_server_id"": ""B"", ""expected_runtime"": 10 }, { ""batch_id"": ""J7"", ""stage_index"": 5, ""required_server_id"": ""C"", ""expected_runtime"": 8 }, { ""batch_id"": ""J8"", ""stage_index"": 0, ""required_server_id"": ""D"", ""expected_runtime"": 30 }, { ""batch_id"": ""J8"", ""stage_index"": 1, ""required_server_id"": ""B"", ""expected_runtime"": 92 }, { ""batch_id"": ""J8"", ""stage_index"": 2, ""required_server_id"": ""C"", ""expected_runtime"": 53 }, { ""batch_id"": ""J8"", ""stage_index"": 3, ""required_server_id"": ""A"", ""expected_runtime"": 85 }, { ""batch_id"": ""J8"", ""stage_index"": 4, ""required_server_id"": ""F"", ""expected_runtime"": 48 }, { ""batch_id"": ""J8"", ""stage_index"": 5, ""required_server_id"": ""E"", ""expected_runtime"": 89 }, { ""batch_id"": ""J9"", ""stage_index"": 0, ""required_server_id"": ""A"", ""expected_runtime"": 45 }, { ""batch_id"": ""J9"", ""stage_index"": 1, ""required_server_id"": ""E"", ""expected_runtime"": 13 }, { ""batch_id"": ""J9"", ""stage_index"": 2, ""required_server_id"": ""B"", ""expected_runtime"": 62 }, { ""batch_id"": ""J9"", ""stage_index"": 3, ""required_server_id"": ""D"", ""expected_runtime"": 32 }, { ""batch_id"": ""J9"", ""stage_index"": 4, ""required_server_id"": ""F"", ""expected_runtime"": 60 }, { ""batch_id"": ""J9"", ""stage_index"": 5, ""required_server_id"": ""C"", ""expected_runtime"": 57 }, { ""batch_id"": ""J10"", ""stage_index"": 0, ""required_server_id"": ""C"", ""expected_runtime"": 5 }, { ""batch_id"": ""J10"", ""stage_index"": 1, ""required_server_id"": ""A"", ""expected_runtime"": 82 }, { ""batch_id"": ""J10"", ""stage_index"": 2, ""required_server_id"": ""B"", ""expected_runtime"": 78 }, { ""batch_id"": ""J10"", ""stage_index"": 3, ""required_server_id"": ""D"", ""expected_runtime"": 58 }, { ""batch_id"": ""J10"", ""stage_index"": 4, ""required_server_id"": ""F"", ""expected_runtime"": 19 }, { ""batch_id"": ""J10"", ""stage_index"": 5, ""required_server_id"": ""E"", ""expected_runtime"": 21 }, { ""batch_id"": ""J11"", ""stage_index"": 0, ""required_server_id"": ""A"", ""expected_runtime"": 94 }, { ""batch_id"": ""J11"", ""stage_index"": 1, ""required_server_id"": ""C"", ""expected_runtime"": 74 }, { ""batch_id"": ""J11"", ""stage_index"": 2, ""required_server_id"": ""E"", ""expected_runtime"": 36 }, { ""batch_id"": ""J11"", ""stage_index"": 3, ""required_server_id"": ""B"", ""expected_runtime"": 90 }, { ""batch_id"": ""J11"", ""stage_index"": 4, ""required_server_id"": ""F"", ""expected_runtime"": 29 }, { ""batch_id"": ""J11"", ""stage_index"": 5, ""required_server_id"": ""D"", ""expected_runtime"": 18 }, { ""batch_id"": ""J12"", ""stage_index"": 0, ""required_server_id"": ""C"", ""expected_runtime"": 11 }, { ""batch_id"": ""J12"", ""stage_index"": 1, ""required_server_id"": ""B"", ""expected_runtime"": 81 }, { ""batch_id"": ""J12"", ""stage_index"": 2, ""required_server_id"": ""D"", ""expected_runtime"": 23 }, { ""batch_id"": ""J12"", ""stage_index"": 3, ""required_server_id"": ""A"", ""expected_runtime"": 90 }, { ""batch_id"": ""J12"", ""stage_index"": 4, ""required_server_id"": ""E"", ""expected_runtime"": 54 }, { ""batch_id"": ""J12"", ""stage_index"": 5, ""required_server_id"": ""F"", ""expected_runtime"": 36 } ] } Also, to keep things tidy when you send the schedule back, just follow this simple JSON shape: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it as a little form: ""solution"" is the list of jobs, each job has its id and a list of tasks, and each task entry says which numbered stop it is, the clock time it starts, which server (machine) it uses, and how long it runs. This is just the sketch of the shape I need — not the actual schedule itself. Please make sure to use the exact identifiers from the instance input — don’t rename them and don’t invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[3, 1], [4, 97], [2, 5], [5, 31], [1, 24], [0, 60]], [[5, 49], [0, 98], [3, 1], [2, 54], [4, 33], [1, 53]], [[4, 5], [0, 83], [1, 83], [5, 8], [3, 57], [2, 41]], [[4, 32], [2, 54], [3, 13], [1, 40], [5, 22], [0, 32]], [[4, 84], [1, 92], [2, 87], [3, 66], [0, 5], [5, 17]], [[5, 25], [4, 40], [0, 91], [3, 52], [2, 2], [1, 40]], [[5, 53], [3, 9], [0, 52], [4, 36], [1, 10], [2, 8]], [[3, 30], [1, 92], [2, 53], [0, 85], [5, 48], [4, 89]], [[0, 45], [4, 13], [1, 62], [3, 32], [5, 60], [2, 57]], [[2, 5], [0, 82], [1, 78], [3, 58], [5, 19], [4, 21]], [[0, 94], [2, 74], [4, 36], [1, 90], [5, 29], [3, 18]], [[2, 11], [1, 81], [3, 23], [0, 90], [4, 54], [5, 36]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 30, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 129, 'machine': 4, 'duration': 97}, {'task': 2, 'start': 237, 'machine': 2, 'duration': 5}, {'task': 3, 'start': 242, 'machine': 5, 'duration': 31}, {'task': 4, 'start': 629, 'machine': 1, 'duration': 24}, {'task': 5, 'start': 720, 'machine': 0, 'duration': 60}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 49}, {'task': 1, 'start': 304, 'machine': 0, 'duration': 98}, {'task': 2, 'start': 402, 'machine': 3, 'duration': 1}, {'task': 3, 'start': 412, 'machine': 2, 'duration': 54}, {'task': 4, 'start': 466, 'machine': 4, 'duration': 33}, {'task': 5, 'start': 653, 'machine': 1, 'duration': 53}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 84, 'machine': 4, 'duration': 5}, {'task': 1, 'start': 94, 'machine': 0, 'duration': 83}, {'task': 2, 'start': 338, 'machine': 1, 'duration': 83}, {'task': 3, 'start': 430, 'machine': 5, 'duration': 8}, {'task': 4, 'start': 478, 'machine': 3, 'duration': 57}, {'task': 5, 'start': 535, 'machine': 2, 'duration': 41}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 239, 'machine': 4, 'duration': 32}, {'task': 1, 'start': 271, 'machine': 2, 'duration': 54}, {'task': 2, 'start': 325, 'machine': 3, 'duration': 13}, {'task': 3, 'start': 589, 'machine': 1, 'duration': 40}, {'task': 4, 'start': 637, 'machine': 5, 'duration': 22}, {'task': 5, 'start': 785, 'machine': 0, 'duration': 32}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 84}, {'task': 1, 'start': 184, 'machine': 1, 'duration': 92}, {'task': 2, 'start': 325, 'machine': 2, 'duration': 87}, {'task': 3, 'start': 412, 'machine': 3, 'duration': 66}, {'task': 4, 'start': 780, 'machine': 0, 'duration': 5}, {'task': 5, 'start': 785, 'machine': 5, 'duration': 17}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 49, 'machine': 5, 'duration': 25}, {'task': 1, 'start': 89, 'machine': 4, 'duration': 40}, {'task': 2, 'start': 487, 'machine': 0, 'duration': 91}, {'task': 3, 'start': 593, 'machine': 3, 'duration': 52}, {'task': 4, 'start': 645, 'machine': 2, 'duration': 2}, {'task': 5, 'start': 706, 'machine': 1, 'duration': 40}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 74, 'machine': 5, 'duration': 53}, {'task': 1, 'start': 127, 'machine': 3, 'duration': 9}, {'task': 2, 'start': 668, 'machine': 0, 'duration': 52}, {'task': 3, 'start': 722, 'machine': 4, 'duration': 36}, {'task': 4, 'start': 758, 'machine': 1, 'duration': 10}, {'task': 5, 'start': 768, 'machine': 2, 'duration': 8}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 30}, {'task': 1, 'start': 92, 'machine': 1, 'duration': 92}, {'task': 2, 'start': 184, 'machine': 2, 'duration': 53}, {'task': 3, 'start': 402, 'machine': 0, 'duration': 85}, {'task': 4, 'start': 487, 'machine': 5, 'duration': 48}, {'task': 5, 'start': 535, 'machine': 4, 'duration': 89}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 177, 'machine': 0, 'duration': 45}, {'task': 1, 'start': 226, 'machine': 4, 'duration': 13}, {'task': 2, 'start': 276, 'machine': 1, 'duration': 62}, {'task': 3, 'start': 338, 'machine': 3, 'duration': 32}, {'task': 4, 'start': 370, 'machine': 5, 'duration': 60}, {'task': 5, 'start': 466, 'machine': 2, 'duration': 57}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 11, 'machine': 2, 'duration': 5}, {'task': 1, 'start': 222, 'machine': 0, 'duration': 82}, {'task': 2, 'start': 421, 'machine': 1, 'duration': 78}, {'task': 3, 'start': 535, 'machine': 3, 'duration': 58}, {'task': 4, 'start': 618, 'machine': 5, 'duration': 19}, {'task': 5, 'start': 637, 'machine': 4, 'duration': 21}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 94}, {'task': 1, 'start': 94, 'machine': 2, 'duration': 74}, {'task': 2, 'start': 271, 'machine': 4, 'duration': 36}, {'task': 3, 'start': 499, 'machine': 1, 'duration': 90}, {'task': 4, 'start': 589, 'machine': 5, 'duration': 29}, {'task': 5, 'start': 645, 'machine': 3, 'duration': 18}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 11}, {'task': 1, 'start': 11, 'machine': 1, 'duration': 81}, {'task': 2, 'start': 92, 'machine': 3, 'duration': 23}, {'task': 3, 'start': 578, 'machine': 0, 'duration': 90}, {'task': 4, 'start': 668, 'machine': 4, 'duration': 54}, {'task': 5, 'start': 722, 'machine': 5, 'duration': 36}]}]",817.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 97}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'C', 'duration': 5}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'F', 'duration': 31}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'B', 'duration': 24}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 60}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'F', 'duration': 49}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'A', 'duration': 98}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'C', 'duration': 54}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'E', 'duration': 33}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'B', 'duration': 53}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'E', 'duration': 5}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'A', 'duration': 83}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'B', 'duration': 83}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'F', 'duration': 8}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'D', 'duration': 57}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'C', 'duration': 41}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 32}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'C', 'duration': 54}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'D', 'duration': 13}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 40}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'F', 'duration': 22}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'A', 'duration': 32}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'E', 'duration': 84}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'B', 'duration': 92}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'C', 'duration': 87}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'D', 'duration': 66}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'A', 'duration': 5}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'F', 'duration': 17}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'F', 'duration': 25}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 40}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'A', 'duration': 91}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'D', 'duration': 52}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 2}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'B', 'duration': 40}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'F', 'duration': 53}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 9}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 52}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 36}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'B', 'duration': 10}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'C', 'duration': 8}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'D', 'duration': 30}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'B', 'duration': 92}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 53}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 85}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'F', 'duration': 48}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'E', 'duration': 89}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'A', 'duration': 45}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'E', 'duration': 13}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'B', 'duration': 62}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'F', 'duration': 60}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'C', 'duration': 57}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'C', 'duration': 5}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'A', 'duration': 82}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'B', 'duration': 78}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'D', 'duration': 58}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'F', 'duration': 19}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'E', 'duration': 21}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'A', 'duration': 94}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'C', 'duration': 74}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'E', 'duration': 36}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'B', 'duration': 90}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'F', 'duration': 29}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 'D', 'duration': 18}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 'C', 'duration': 11}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 'B', 'duration': 81}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 'D', 'duration': 23}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 'A', 'duration': 90}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 'E', 'duration': 54}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 'F', 'duration': 36}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 30, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 129, 'machine': 'E', 'duration': 97}, {'task': 2, 'start': 237, 'machine': 'C', 'duration': 5}, {'task': 3, 'start': 242, 'machine': 'F', 'duration': 31}, {'task': 4, 'start': 629, 'machine': 'B', 'duration': 24}, {'task': 5, 'start': 720, 'machine': 'A', 'duration': 60}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 49}, {'task': 1, 'start': 304, 'machine': 'A', 'duration': 98}, {'task': 2, 'start': 402, 'machine': 'D', 'duration': 1}, {'task': 3, 'start': 412, 'machine': 'C', 'duration': 54}, {'task': 4, 'start': 466, 'machine': 'E', 'duration': 33}, {'task': 5, 'start': 653, 'machine': 'B', 'duration': 53}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 84, 'machine': 'E', 'duration': 5}, {'task': 1, 'start': 94, 'machine': 'A', 'duration': 83}, {'task': 2, 'start': 338, 'machine': 'B', 'duration': 83}, {'task': 3, 'start': 430, 'machine': 'F', 'duration': 8}, {'task': 4, 'start': 478, 'machine': 'D', 'duration': 57}, {'task': 5, 'start': 535, 'machine': 'C', 'duration': 41}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 239, 'machine': 'E', 'duration': 32}, {'task': 1, 'start': 271, 'machine': 'C', 'duration': 54}, {'task': 2, 'start': 325, 'machine': 'D', 'duration': 13}, {'task': 3, 'start': 589, 'machine': 'B', 'duration': 40}, {'task': 4, 'start': 637, 'machine': 'F', 'duration': 22}, {'task': 5, 'start': 785, 'machine': 'A', 'duration': 32}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 84}, {'task': 1, 'start': 184, 'machine': 'B', 'duration': 92}, {'task': 2, 'start': 325, 'machine': 'C', 'duration': 87}, {'task': 3, 'start': 412, 'machine': 'D', 'duration': 66}, {'task': 4, 'start': 780, 'machine': 'A', 'duration': 5}, {'task': 5, 'start': 785, 'machine': 'F', 'duration': 17}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 49, 'machine': 'F', 'duration': 25}, {'task': 1, 'start': 89, 'machine': 'E', 'duration': 40}, {'task': 2, 'start': 487, 'machine': 'A', 'duration': 91}, {'task': 3, 'start': 593, 'machine': 'D', 'duration': 52}, {'task': 4, 'start': 645, 'machine': 'C', 'duration': 2}, {'task': 5, 'start': 706, 'machine': 'B', 'duration': 40}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 74, 'machine': 'F', 'duration': 53}, {'task': 1, 'start': 127, 'machine': 'D', 'duration': 9}, {'task': 2, 'start': 668, 'machine': 'A', 'duration': 52}, {'task': 3, 'start': 722, 'machine': 'E', 'duration': 36}, {'task': 4, 'start': 758, 'machine': 'B', 'duration': 10}, {'task': 5, 'start': 768, 'machine': 'C', 'duration': 8}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 30}, {'task': 1, 'start': 92, 'machine': 'B', 'duration': 92}, {'task': 2, 'start': 184, 'machine': 'C', 'duration': 53}, {'task': 3, 'start': 402, 'machine': 'A', 'duration': 85}, {'task': 4, 'start': 487, 'machine': 'F', 'duration': 48}, {'task': 5, 'start': 535, 'machine': 'E', 'duration': 89}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 177, 'machine': 'A', 'duration': 45}, {'task': 1, 'start': 226, 'machine': 'E', 'duration': 13}, {'task': 2, 'start': 276, 'machine': 'B', 'duration': 62}, {'task': 3, 'start': 338, 'machine': 'D', 'duration': 32}, {'task': 4, 'start': 370, 'machine': 'F', 'duration': 60}, {'task': 5, 'start': 466, 'machine': 'C', 'duration': 57}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 11, 'machine': 'C', 'duration': 5}, {'task': 1, 'start': 222, 'machine': 'A', 'duration': 82}, {'task': 2, 'start': 421, 'machine': 'B', 'duration': 78}, {'task': 3, 'start': 535, 'machine': 'D', 'duration': 58}, {'task': 4, 'start': 618, 'machine': 'F', 'duration': 19}, {'task': 5, 'start': 637, 'machine': 'E', 'duration': 21}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 94}, {'task': 1, 'start': 94, 'machine': 'C', 'duration': 74}, {'task': 2, 'start': 271, 'machine': 'E', 'duration': 36}, {'task': 3, 'start': 499, 'machine': 'B', 'duration': 90}, {'task': 4, 'start': 589, 'machine': 'F', 'duration': 29}, {'task': 5, 'start': 645, 'machine': 'D', 'duration': 18}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 11}, {'task': 1, 'start': 11, 'machine': 'B', 'duration': 81}, {'task': 2, 'start': 92, 'machine': 'D', 'duration': 23}, {'task': 3, 'start': 578, 'machine': 'A', 'duration': 90}, {'task': 4, 'start': 668, 'machine': 'E', 'duration': 54}, {'task': 5, 'start': 722, 'machine': 'F', 'duration': 36}]}]",12,json,names JSP,JSP,"In the edit bay it’s down to sequencing: each scene needs a lineup of tasks done one after another, each task tied to a particular station and taking a fixed amount of time. Stations can’t do two tasks at once, and every required task must occur once and only once. The whole exercise is about getting the project fully wrapped ASAP — measured by the moment the last task finishes — so plans are judged by how early that finishing moment is. The concrete scene list and durations follow below. Here they are: 11 scenes, 5 stations — scenes: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11; stations: A, B, C, D, E. | scene_id | step_index | station_id | step_duration | |---|---|---|---| | J1 | 0 | D | 1 | | J1 | 1 | E | 11 | | J1 | 2 | C | 80 | | J1 | 3 | B | 76 | | J1 | 4 | A | 77 | | J2 | 0 | D | 82 | | J2 | 1 | A | 54 | | J2 | 2 | E | 66 | | J2 | 3 | B | 68 | | J2 | 4 | C | 47 | | J3 | 0 | E | 71 | | J3 | 1 | A | 5 | | J3 | 2 | C | 87 | | J3 | 3 | B | 86 | | J3 | 4 | D | 88 | | J4 | 0 | A | 60 | | J4 | 1 | D | 24 | | J4 | 2 | B | 42 | | J4 | 3 | E | 70 | | J4 | 4 | C | 61 | | J5 | 0 | E | 54 | | J5 | 1 | A | 9 | | J5 | 2 | C | 80 | | J5 | 3 | B | 25 | | J5 | 4 | D | 69 | | J6 | 0 | A | 45 | | J6 | 1 | E | 96 | | J6 | 2 | B | 31 | | J6 | 3 | D | 46 | | J6 | 4 | C | 86 | | J7 | 0 | A | 16 | | J7 | 1 | D | 16 | | J7 | 2 | E | 18 | | J7 | 3 | C | 56 | | J7 | 4 | B | 75 | | J8 | 0 | E | 72 | | J8 | 1 | A | 17 | | J8 | 2 | B | 84 | | J8 | 3 | D | 52 | | J8 | 4 | C | 73 | | J9 | 0 | C | 34 | | J9 | 1 | E | 6 | | J9 | 2 | B | 3 | | J9 | 3 | A | 68 | | J9 | 4 | D | 19 | | J10 | 0 | B | 92 | | J10 | 1 | A | 11 | | J10 | 2 | E | 77 | | J10 | 3 | D | 72 | | J10 | 4 | C | 57 | | J11 | 0 | E | 39 | | J11 | 1 | A | 79 | | J11 | 2 | B | 84 | | J11 | 3 | C | 84 | | J11 | 4 | D | 40 | Sequence each listed step once, respect station exclusivity, and aim to finish the last step as early as possible. Oh, and to keep things tidy, please shape your plan like this simple JSON layout so I can read it automatically: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: each ""job"" is one of the scenes, ""tasks"" lists the steps for that scene, ""task"" is the step index, ""start"" is when that step begins, ""machine"" is the station that does the work, and ""duration"" is how long that step runs. Super casual — the JSON is just a sketch of the shape I need, not the actual answer itself. Please also make sure to use the exact identifiers from the instance input — don't rename them or invent new ones. - For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[3, 1], [4, 11], [2, 80], [1, 76], [0, 77]], [[3, 82], [0, 54], [4, 66], [1, 68], [2, 47]], [[4, 71], [0, 5], [2, 87], [1, 86], [3, 88]], [[0, 60], [3, 24], [1, 42], [4, 70], [2, 61]], [[4, 54], [0, 9], [2, 80], [1, 25], [3, 69]], [[0, 45], [4, 96], [1, 31], [3, 46], [2, 86]], [[0, 16], [3, 16], [4, 18], [2, 56], [1, 75]], [[4, 72], [0, 17], [1, 84], [3, 52], [2, 73]], [[2, 34], [4, 6], [1, 3], [0, 68], [3, 19]], [[1, 92], [0, 11], [4, 77], [3, 72], [2, 57]], [[4, 39], [0, 79], [1, 84], [2, 84], [3, 40]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 4, 'duration': 11}, {'task': 2, 'start': 34, 'machine': 2, 'duration': 80}, {'task': 3, 'start': 114, 'machine': 1, 'duration': 76}, {'task': 4, 'start': 365, 'machine': 0, 'duration': 77}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 100, 'machine': 3, 'duration': 82}, {'task': 1, 'start': 232, 'machine': 0, 'duration': 54}, {'task': 2, 'start': 509, 'machine': 4, 'duration': 66}, {'task': 3, 'start': 575, 'machine': 1, 'duration': 68}, {'task': 4, 'start': 698, 'machine': 2, 'duration': 47}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 156, 'machine': 4, 'duration': 71}, {'task': 1, 'start': 227, 'machine': 0, 'duration': 5}, {'task': 2, 'start': 250, 'machine': 2, 'duration': 87}, {'task': 3, 'start': 480, 'machine': 1, 'duration': 86}, {'task': 4, 'start': 598, 'machine': 3, 'duration': 88}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 16, 'machine': 0, 'duration': 60}, {'task': 1, 'start': 76, 'machine': 3, 'duration': 24}, {'task': 2, 'start': 190, 'machine': 1, 'duration': 42}, {'task': 3, 'start': 266, 'machine': 4, 'duration': 70}, {'task': 4, 'start': 337, 'machine': 2, 'duration': 61}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 102, 'machine': 4, 'duration': 54}, {'task': 1, 'start': 156, 'machine': 0, 'duration': 9}, {'task': 2, 'start': 170, 'machine': 2, 'duration': 80}, {'task': 3, 'start': 316, 'machine': 1, 'duration': 25}, {'task': 4, 'start': 368, 'machine': 3, 'duration': 69}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 165, 'machine': 0, 'duration': 45}, {'task': 1, 'start': 336, 'machine': 4, 'duration': 96}, {'task': 2, 'start': 449, 'machine': 1, 'duration': 31}, {'task': 3, 'start': 480, 'machine': 3, 'duration': 46}, {'task': 4, 'start': 555, 'machine': 2, 'duration': 86}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 16}, {'task': 1, 'start': 16, 'machine': 3, 'duration': 16}, {'task': 2, 'start': 84, 'machine': 4, 'duration': 18}, {'task': 3, 'start': 114, 'machine': 2, 'duration': 56}, {'task': 4, 'start': 646, 'machine': 1, 'duration': 75}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 12, 'machine': 4, 'duration': 72}, {'task': 1, 'start': 103, 'machine': 0, 'duration': 17}, {'task': 2, 'start': 232, 'machine': 1, 'duration': 84}, {'task': 3, 'start': 316, 'machine': 3, 'duration': 52}, {'task': 4, 'start': 398, 'machine': 2, 'duration': 73}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 34}, {'task': 1, 'start': 575, 'machine': 4, 'duration': 6}, {'task': 2, 'start': 643, 'machine': 1, 'duration': 3}, {'task': 3, 'start': 646, 'machine': 0, 'duration': 68}, {'task': 4, 'start': 726, 'machine': 3, 'duration': 19}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 92}, {'task': 1, 'start': 92, 'machine': 0, 'duration': 11}, {'task': 2, 'start': 432, 'machine': 4, 'duration': 77}, {'task': 3, 'start': 526, 'machine': 3, 'duration': 72}, {'task': 4, 'start': 641, 'machine': 2, 'duration': 57}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 227, 'machine': 4, 'duration': 39}, {'task': 1, 'start': 286, 'machine': 0, 'duration': 79}, {'task': 2, 'start': 365, 'machine': 1, 'duration': 84}, {'task': 3, 'start': 471, 'machine': 2, 'duration': 84}, {'task': 4, 'start': 686, 'machine': 3, 'duration': 40}]}]",745.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 11}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'C', 'duration': 80}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'B', 'duration': 76}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 77}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'D', 'duration': 82}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'A', 'duration': 54}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'E', 'duration': 66}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'B', 'duration': 68}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'C', 'duration': 47}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'E', 'duration': 71}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'A', 'duration': 5}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'C', 'duration': 87}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'B', 'duration': 86}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'D', 'duration': 88}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'A', 'duration': 60}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 24}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 42}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'E', 'duration': 70}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'C', 'duration': 61}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'E', 'duration': 54}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'A', 'duration': 9}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'C', 'duration': 80}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 25}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 69}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'A', 'duration': 45}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 96}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'B', 'duration': 31}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'D', 'duration': 46}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 86}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'A', 'duration': 16}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 16}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'C', 'duration': 56}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'B', 'duration': 75}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'E', 'duration': 72}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'A', 'duration': 17}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'B', 'duration': 84}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'D', 'duration': 52}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'C', 'duration': 73}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 34}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'E', 'duration': 6}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'B', 'duration': 3}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'A', 'duration': 68}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'D', 'duration': 19}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'B', 'duration': 92}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'A', 'duration': 11}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'E', 'duration': 77}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'D', 'duration': 72}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'C', 'duration': 57}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'E', 'duration': 39}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'A', 'duration': 79}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'B', 'duration': 84}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'C', 'duration': 84}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'D', 'duration': 40}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 1, 'machine': 'E', 'duration': 11}, {'task': 2, 'start': 34, 'machine': 'C', 'duration': 80}, {'task': 3, 'start': 114, 'machine': 'B', 'duration': 76}, {'task': 4, 'start': 365, 'machine': 'A', 'duration': 77}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 100, 'machine': 'D', 'duration': 82}, {'task': 1, 'start': 232, 'machine': 'A', 'duration': 54}, {'task': 2, 'start': 509, 'machine': 'E', 'duration': 66}, {'task': 3, 'start': 575, 'machine': 'B', 'duration': 68}, {'task': 4, 'start': 698, 'machine': 'C', 'duration': 47}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 156, 'machine': 'E', 'duration': 71}, {'task': 1, 'start': 227, 'machine': 'A', 'duration': 5}, {'task': 2, 'start': 250, 'machine': 'C', 'duration': 87}, {'task': 3, 'start': 480, 'machine': 'B', 'duration': 86}, {'task': 4, 'start': 598, 'machine': 'D', 'duration': 88}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 16, 'machine': 'A', 'duration': 60}, {'task': 1, 'start': 76, 'machine': 'D', 'duration': 24}, {'task': 2, 'start': 190, 'machine': 'B', 'duration': 42}, {'task': 3, 'start': 266, 'machine': 'E', 'duration': 70}, {'task': 4, 'start': 337, 'machine': 'C', 'duration': 61}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 102, 'machine': 'E', 'duration': 54}, {'task': 1, 'start': 156, 'machine': 'A', 'duration': 9}, {'task': 2, 'start': 170, 'machine': 'C', 'duration': 80}, {'task': 3, 'start': 316, 'machine': 'B', 'duration': 25}, {'task': 4, 'start': 368, 'machine': 'D', 'duration': 69}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 165, 'machine': 'A', 'duration': 45}, {'task': 1, 'start': 336, 'machine': 'E', 'duration': 96}, {'task': 2, 'start': 449, 'machine': 'B', 'duration': 31}, {'task': 3, 'start': 480, 'machine': 'D', 'duration': 46}, {'task': 4, 'start': 555, 'machine': 'C', 'duration': 86}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 16}, {'task': 1, 'start': 16, 'machine': 'D', 'duration': 16}, {'task': 2, 'start': 84, 'machine': 'E', 'duration': 18}, {'task': 3, 'start': 114, 'machine': 'C', 'duration': 56}, {'task': 4, 'start': 646, 'machine': 'B', 'duration': 75}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 12, 'machine': 'E', 'duration': 72}, {'task': 1, 'start': 103, 'machine': 'A', 'duration': 17}, {'task': 2, 'start': 232, 'machine': 'B', 'duration': 84}, {'task': 3, 'start': 316, 'machine': 'D', 'duration': 52}, {'task': 4, 'start': 398, 'machine': 'C', 'duration': 73}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 34}, {'task': 1, 'start': 575, 'machine': 'E', 'duration': 6}, {'task': 2, 'start': 643, 'machine': 'B', 'duration': 3}, {'task': 3, 'start': 646, 'machine': 'A', 'duration': 68}, {'task': 4, 'start': 726, 'machine': 'D', 'duration': 19}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 92}, {'task': 1, 'start': 92, 'machine': 'A', 'duration': 11}, {'task': 2, 'start': 432, 'machine': 'E', 'duration': 77}, {'task': 3, 'start': 526, 'machine': 'D', 'duration': 72}, {'task': 4, 'start': 641, 'machine': 'C', 'duration': 57}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 227, 'machine': 'E', 'duration': 39}, {'task': 1, 'start': 286, 'machine': 'A', 'duration': 79}, {'task': 2, 'start': 365, 'machine': 'B', 'duration': 84}, {'task': 3, 'start': 471, 'machine': 'C', 'duration': 84}, {'task': 4, 'start': 686, 'machine': 'D', 'duration': 40}]}]",13,markdown_table,names JSP,JSP,"On a normal morning at the workshop, every piece of clothing must pass through a fixed chain of stations, each taking its expected time on a particular machine. The task for the manager is to line up those stations across all garments so machines don’t collide, each operation occurs exactly once and in order, and the entire load is finished quickly. The straightforward way to judge two different line-ups is to look at the clock when the last garment is done — whichever clock time is earlier is the better line-up. The concrete details are shown below. There are 10 garments to schedule across 6 stations; the garment identifiers are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 and the station identifiers are A, B, C, D, E, F. | garment_id | step_index | station_id | step_duration | |---|---|---|---| | J1 | 0 | F | 1 | | J1 | 1 | B | 24 | | J1 | 2 | E | 56 | | J1 | 3 | C | 23 | | J1 | 4 | D | 30 | | J1 | 5 | A | 5 | | J2 | 0 | B | 59 | | J2 | 1 | C | 34 | | J2 | 2 | E | 36 | | J2 | 3 | F | 41 | | J2 | 4 | A | 10 | | J2 | 5 | D | 57 | | J3 | 0 | F | 70 | | J3 | 1 | C | 90 | | J3 | 2 | E | 94 | | J3 | 3 | B | 14 | | J3 | 4 | D | 91 | | J3 | 5 | A | 42 | | J4 | 0 | D | 9 | | J4 | 1 | E | 67 | | J4 | 2 | F | 96 | | J4 | 3 | B | 77 | | J4 | 4 | C | 39 | | J4 | 5 | A | 18 | | J5 | 0 | F | 54 | | J5 | 1 | D | 98 | | J5 | 2 | B | 6 | | J5 | 3 | A | 96 | | J5 | 4 | C | 88 | | J5 | 5 | E | 56 | | J6 | 0 | F | 7 | | J6 | 1 | E | 92 | | J6 | 2 | C | 44 | | J6 | 3 | A | 61 | | J6 | 4 | D | 48 | | J6 | 5 | B | 6 | | J7 | 0 | F | 79 | | J7 | 1 | C | 60 | | J7 | 2 | A | 51 | | J7 | 3 | D | 10 | | J7 | 4 | E | 59 | | J7 | 5 | B | 4 | | J8 | 0 | B | 74 | | J8 | 1 | E | 44 | | J8 | 2 | D | 83 | | J8 | 3 | F | 99 | | J8 | 4 | A | 74 | | J8 | 5 | C | 66 | | J9 | 0 | D | 99 | | J9 | 1 | A | 1 | | J9 | 2 | E | 16 | | J9 | 3 | B | 28 | | J9 | 4 | C | 8 | | J9 | 5 | F | 12 | | J10 | 0 | B | 76 | | J10 | 1 | D | 16 | | J10 | 2 | E | 76 | | J10 | 3 | C | 37 | | J10 | 4 | A | 1 | | J10 | 5 | F | 33 | The manager will judge alternative line-ups by the clock time when the last garment finishes. And just so we're on the same page about how I'd like the final reply to look, here's a relaxed sketch of the exact JSON layout I expect you to follow when you give the schedule: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a simple form: each top-level entry is a job (a garment), and under each job there's a list of tasks in the order they must happen. For each task you record which operation it is (task), when it starts (start), which machine it uses (machine), and how long it runs (duration). This is just the shape I want — a sketch, not the actual filled-in schedule. Please make sure all identifiers in your real schedule match the instance input exactly — no renaming, no new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[5, 1], [1, 24], [4, 56], [2, 23], [3, 30], [0, 5]], [[1, 59], [2, 34], [4, 36], [5, 41], [0, 10], [3, 57]], [[5, 70], [2, 90], [4, 94], [1, 14], [3, 91], [0, 42]], [[3, 9], [4, 67], [5, 96], [1, 77], [2, 39], [0, 18]], [[5, 54], [3, 98], [1, 6], [0, 96], [2, 88], [4, 56]], [[5, 7], [4, 92], [2, 44], [0, 61], [3, 48], [1, 6]], [[5, 79], [2, 60], [0, 51], [3, 10], [4, 59], [1, 4]], [[1, 74], [4, 44], [3, 83], [5, 99], [0, 74], [2, 66]], [[3, 99], [0, 1], [4, 16], [1, 28], [2, 8], [5, 12]], [[1, 76], [3, 16], [4, 76], [2, 37], [0, 1], [5, 33]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 61, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 133, 'machine': 1, 'duration': 24}, {'task': 2, 'start': 210, 'machine': 4, 'duration': 56}, {'task': 3, 'start': 327, 'machine': 2, 'duration': 23}, {'task': 4, 'start': 415, 'machine': 3, 'duration': 30}, {'task': 5, 'start': 445, 'machine': 0, 'duration': 5}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 74, 'machine': 1, 'duration': 59}, {'task': 1, 'start': 203, 'machine': 2, 'duration': 34}, {'task': 2, 'start': 436, 'machine': 4, 'duration': 36}, {'task': 3, 'start': 472, 'machine': 5, 'duration': 41}, {'task': 4, 'start': 513, 'machine': 0, 'duration': 10}, {'task': 5, 'start': 541, 'machine': 3, 'duration': 57}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 141, 'machine': 5, 'duration': 70}, {'task': 1, 'start': 237, 'machine': 2, 'duration': 90}, {'task': 2, 'start': 342, 'machine': 4, 'duration': 94}, {'task': 3, 'start': 436, 'machine': 1, 'duration': 14}, {'task': 4, 'start': 450, 'machine': 3, 'duration': 91}, {'task': 5, 'start': 541, 'machine': 0, 'duration': 42}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 9}, {'task': 1, 'start': 143, 'machine': 4, 'duration': 67}, {'task': 2, 'start': 341, 'machine': 5, 'duration': 96}, {'task': 3, 'start': 450, 'machine': 1, 'duration': 77}, {'task': 4, 'start': 541, 'machine': 2, 'duration': 39}, {'task': 5, 'start': 583, 'machine': 0, 'duration': 18}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 7, 'machine': 5, 'duration': 54}, {'task': 1, 'start': 61, 'machine': 3, 'duration': 98}, {'task': 2, 'start': 233, 'machine': 1, 'duration': 6}, {'task': 3, 'start': 255, 'machine': 0, 'duration': 96}, {'task': 4, 'start': 387, 'machine': 2, 'duration': 88}, {'task': 5, 'start': 547, 'machine': 4, 'duration': 56}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 7}, {'task': 1, 'start': 7, 'machine': 4, 'duration': 92}, {'task': 2, 'start': 99, 'machine': 2, 'duration': 44}, {'task': 3, 'start': 143, 'machine': 0, 'duration': 61}, {'task': 4, 'start': 367, 'machine': 3, 'duration': 48}, {'task': 5, 'start': 415, 'machine': 1, 'duration': 6}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 62, 'machine': 5, 'duration': 79}, {'task': 1, 'start': 143, 'machine': 2, 'duration': 60}, {'task': 2, 'start': 204, 'machine': 0, 'duration': 51}, {'task': 3, 'start': 357, 'machine': 3, 'duration': 10}, {'task': 4, 'start': 488, 'machine': 4, 'duration': 59}, {'task': 5, 'start': 555, 'machine': 1, 'duration': 4}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 74}, {'task': 1, 'start': 99, 'machine': 4, 'duration': 44}, {'task': 2, 'start': 159, 'machine': 3, 'duration': 83}, {'task': 3, 'start': 242, 'machine': 5, 'duration': 99}, {'task': 4, 'start': 351, 'machine': 0, 'duration': 74}, {'task': 5, 'start': 475, 'machine': 2, 'duration': 66}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 258, 'machine': 3, 'duration': 99}, {'task': 1, 'start': 425, 'machine': 0, 'duration': 1}, {'task': 2, 'start': 472, 'machine': 4, 'duration': 16}, {'task': 3, 'start': 527, 'machine': 1, 'duration': 28}, {'task': 4, 'start': 580, 'machine': 2, 'duration': 8}, {'task': 5, 'start': 588, 'machine': 5, 'duration': 12}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 157, 'machine': 1, 'duration': 76}, {'task': 1, 'start': 242, 'machine': 3, 'duration': 16}, {'task': 2, 'start': 266, 'machine': 4, 'duration': 76}, {'task': 3, 'start': 350, 'machine': 2, 'duration': 37}, {'task': 4, 'start': 426, 'machine': 0, 'duration': 1}, {'task': 5, 'start': 437, 'machine': 5, 'duration': 33}]}]",603.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'F', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 24}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'E', 'duration': 56}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 23}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'D', 'duration': 30}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 5}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'B', 'duration': 59}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'C', 'duration': 34}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'E', 'duration': 36}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'F', 'duration': 41}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'A', 'duration': 10}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'D', 'duration': 57}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'F', 'duration': 70}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'C', 'duration': 90}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'E', 'duration': 94}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'B', 'duration': 14}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'D', 'duration': 91}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'A', 'duration': 42}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'D', 'duration': 9}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'E', 'duration': 67}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'F', 'duration': 96}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 77}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'C', 'duration': 39}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'A', 'duration': 18}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'F', 'duration': 54}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'D', 'duration': 98}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'B', 'duration': 6}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'A', 'duration': 96}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'C', 'duration': 88}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'E', 'duration': 56}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'F', 'duration': 7}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 92}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'C', 'duration': 44}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'A', 'duration': 61}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'D', 'duration': 48}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'B', 'duration': 6}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'F', 'duration': 79}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'C', 'duration': 60}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 51}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'D', 'duration': 10}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'E', 'duration': 59}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'B', 'duration': 4}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'B', 'duration': 74}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 44}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'D', 'duration': 83}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'F', 'duration': 99}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'A', 'duration': 74}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'C', 'duration': 66}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'D', 'duration': 99}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'A', 'duration': 1}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'E', 'duration': 16}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'B', 'duration': 28}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'C', 'duration': 8}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'F', 'duration': 12}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'B', 'duration': 76}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'D', 'duration': 16}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'E', 'duration': 76}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'C', 'duration': 37}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'A', 'duration': 1}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'F', 'duration': 33}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 61, 'machine': 'F', 'duration': 1}, {'task': 1, 'start': 133, 'machine': 'B', 'duration': 24}, {'task': 2, 'start': 210, 'machine': 'E', 'duration': 56}, {'task': 3, 'start': 327, 'machine': 'C', 'duration': 23}, {'task': 4, 'start': 415, 'machine': 'D', 'duration': 30}, {'task': 5, 'start': 445, 'machine': 'A', 'duration': 5}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 74, 'machine': 'B', 'duration': 59}, {'task': 1, 'start': 203, 'machine': 'C', 'duration': 34}, {'task': 2, 'start': 436, 'machine': 'E', 'duration': 36}, {'task': 3, 'start': 472, 'machine': 'F', 'duration': 41}, {'task': 4, 'start': 513, 'machine': 'A', 'duration': 10}, {'task': 5, 'start': 541, 'machine': 'D', 'duration': 57}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 141, 'machine': 'F', 'duration': 70}, {'task': 1, 'start': 237, 'machine': 'C', 'duration': 90}, {'task': 2, 'start': 342, 'machine': 'E', 'duration': 94}, {'task': 3, 'start': 436, 'machine': 'B', 'duration': 14}, {'task': 4, 'start': 450, 'machine': 'D', 'duration': 91}, {'task': 5, 'start': 541, 'machine': 'A', 'duration': 42}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 9}, {'task': 1, 'start': 143, 'machine': 'E', 'duration': 67}, {'task': 2, 'start': 341, 'machine': 'F', 'duration': 96}, {'task': 3, 'start': 450, 'machine': 'B', 'duration': 77}, {'task': 4, 'start': 541, 'machine': 'C', 'duration': 39}, {'task': 5, 'start': 583, 'machine': 'A', 'duration': 18}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 7, 'machine': 'F', 'duration': 54}, {'task': 1, 'start': 61, 'machine': 'D', 'duration': 98}, {'task': 2, 'start': 233, 'machine': 'B', 'duration': 6}, {'task': 3, 'start': 255, 'machine': 'A', 'duration': 96}, {'task': 4, 'start': 387, 'machine': 'C', 'duration': 88}, {'task': 5, 'start': 547, 'machine': 'E', 'duration': 56}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 7}, {'task': 1, 'start': 7, 'machine': 'E', 'duration': 92}, {'task': 2, 'start': 99, 'machine': 'C', 'duration': 44}, {'task': 3, 'start': 143, 'machine': 'A', 'duration': 61}, {'task': 4, 'start': 367, 'machine': 'D', 'duration': 48}, {'task': 5, 'start': 415, 'machine': 'B', 'duration': 6}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 62, 'machine': 'F', 'duration': 79}, {'task': 1, 'start': 143, 'machine': 'C', 'duration': 60}, {'task': 2, 'start': 204, 'machine': 'A', 'duration': 51}, {'task': 3, 'start': 357, 'machine': 'D', 'duration': 10}, {'task': 4, 'start': 488, 'machine': 'E', 'duration': 59}, {'task': 5, 'start': 555, 'machine': 'B', 'duration': 4}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 74}, {'task': 1, 'start': 99, 'machine': 'E', 'duration': 44}, {'task': 2, 'start': 159, 'machine': 'D', 'duration': 83}, {'task': 3, 'start': 242, 'machine': 'F', 'duration': 99}, {'task': 4, 'start': 351, 'machine': 'A', 'duration': 74}, {'task': 5, 'start': 475, 'machine': 'C', 'duration': 66}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 258, 'machine': 'D', 'duration': 99}, {'task': 1, 'start': 425, 'machine': 'A', 'duration': 1}, {'task': 2, 'start': 472, 'machine': 'E', 'duration': 16}, {'task': 3, 'start': 527, 'machine': 'B', 'duration': 28}, {'task': 4, 'start': 580, 'machine': 'C', 'duration': 8}, {'task': 5, 'start': 588, 'machine': 'F', 'duration': 12}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 157, 'machine': 'B', 'duration': 76}, {'task': 1, 'start': 242, 'machine': 'D', 'duration': 16}, {'task': 2, 'start': 266, 'machine': 'E', 'duration': 76}, {'task': 3, 'start': 350, 'machine': 'C', 'duration': 37}, {'task': 4, 'start': 426, 'machine': 'A', 'duration': 1}, {'task': 5, 'start': 437, 'machine': 'F', 'duration': 33}]}]",14,markdown_table,names JSP,JSP,"We’re juggling several landscaping jobs at once, and the task is to slot each site activity onto its assigned machine and pick start times so things move smoothly. Each job has a fixed sequence of steps that must happen in order, machines can’t do overlapping work, and every step must be scheduled exactly once for its full duration. A schedule is judged by when the very last job wraps up — just check each job’s finish time and use the latest one; the sooner that is, the better. The concrete project details and timings are shown below. { ""number_of_projects"": 9, ""number_of_machines"": 5, ""project_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"" ], ""machine_ids"": [ ""A"", ""B"", ""C"", ""D"", ""E"" ], ""tasks"": [ { ""project_id"": ""J1"", ""activity_index"": 0, ""required_machine_id"": ""D"", ""activity_duration"": 1 }, { ""project_id"": ""J1"", ""activity_index"": 1, ""required_machine_id"": ""E"", ""activity_duration"": 37 }, { ""project_id"": ""J1"", ""activity_index"": 2, ""required_machine_id"": ""B"", ""activity_duration"": 32 }, { ""project_id"": ""J1"", ""activity_index"": 3, ""required_machine_id"": ""C"", ""activity_duration"": 68 }, { ""project_id"": ""J1"", ""activity_index"": 4, ""required_machine_id"": ""A"", ""activity_duration"": 83 }, { ""project_id"": ""J2"", ""activity_index"": 0, ""required_machine_id"": ""E"", ""activity_duration"": 26 }, { ""project_id"": ""J2"", ""activity_index"": 1, ""required_machine_id"": ""B"", ""activity_duration"": 63 }, { ""project_id"": ""J2"", ""activity_index"": 2, ""required_machine_id"": ""A"", ""activity_duration"": 2 }, { ""project_id"": ""J2"", ""activity_index"": 3, ""required_machine_id"": ""D"", ""activity_duration"": 5 }, { ""project_id"": ""J2"", ""activity_index"": 4, ""required_machine_id"": ""C"", ""activity_duration"": 34 }, { ""project_id"": ""J3"", ""activity_index"": 0, ""required_machine_id"": ""C"", ""activity_duration"": 48 }, { ""project_id"": ""J3"", ""activity_index"": 1, ""required_machine_id"": ""E"", ""activity_duration"": 9 }, { ""project_id"": ""J3"", ""activity_index"": 2, ""required_machine_id"": ""D"", ""activity_duration"": 53 }, { ""project_id"": ""J3"", ""activity_index"": 3, ""required_machine_id"": ""B"", ""activity_duration"": 93 }, { ""project_id"": ""J3"", ""activity_index"": 4, ""required_machine_id"": ""A"", ""activity_duration"": 99 }, { ""project_id"": ""J4"", ""activity_index"": 0, ""required_machine_id"": ""E"", ""activity_duration"": 66 }, { ""project_id"": ""J4"", ""activity_index"": 1, ""required_machine_id"": ""D"", ""activity_duration"": 58 }, { ""project_id"": ""J4"", ""activity_index"": 2, ""required_machine_id"": ""B"", ""activity_duration"": 43 }, { ""project_id"": ""J4"", ""activity_index"": 3, ""required_machine_id"": ""C"", ""activity_duration"": 47 }, { ""project_id"": ""J4"", ""activity_index"": 4, ""required_machine_id"": ""A"", ""activity_duration"": 74 }, { ""project_id"": ""J5"", ""activity_index"": 0, ""required_machine_id"": ""C"", ""activity_duration"": 38 }, { ""project_id"": ""J5"", ""activity_index"": 1, ""required_machine_id"": ""E"", ""activity_duration"": 46 }, { ""project_id"": ""J5"", ""activity_index"": 2, ""required_machine_id"": ""D"", ""activity_duration"": 98 }, { ""project_id"": ""J5"", ""activity_index"": 3, ""required_machine_id"": ""B"", ""activity_duration"": 11 }, { ""project_id"": ""J5"", ""activity_index"": 4, ""required_machine_id"": ""A"", ""activity_duration"": 39 }, { ""project_id"": ""J6"", ""activity_index"": 0, ""required_machine_id"": ""E"", ""activity_duration"": 51 }, { ""project_id"": ""J6"", ""activity_index"": 1, ""required_machine_id"": ""D"", ""activity_duration"": 15 }, { ""project_id"": ""J6"", ""activity_index"": 2, ""required_machine_id"": ""C"", ""activity_duration"": 62 }, { ""project_id"": ""J6"", ""activity_index"": 3, ""required_machine_id"": ""A"", ""activity_duration"": 30 }, { ""project_id"": ""J6"", ""activity_index"": 4, ""required_machine_id"": ""B"", ""activity_duration"": 27 }, { ""project_id"": ""J7"", ""activity_index"": 0, ""required_machine_id"": ""E"", ""activity_duration"": 97 }, { ""project_id"": ""J7"", ""activity_index"": 1, ""required_machine_id"": ""B"", ""activity_duration"": 68 }, { ""project_id"": ""J7"", ""activity_index"": 2, ""required_machine_id"": ""C"", ""activity_duration"": 70 }, { ""project_id"": ""J7"", ""activity_index"": 3, ""required_machine_id"": ""D"", ""activity_duration"": 66 }, { ""project_id"": ""J7"", ""activity_index"": 4, ""required_machine_id"": ""A"", ""activity_duration"": 22 }, { ""project_id"": ""J8"", ""activity_index"": 0, ""required_machine_id"": ""C"", ""activity_duration"": 38 }, { ""project_id"": ""J8"", ""activity_index"": 1, ""required_machine_id"": ""E"", ""activity_duration"": 43 }, { ""project_id"": ""J8"", ""activity_index"": 2, ""required_machine_id"": ""D"", ""activity_duration"": 36 }, { ""project_id"": ""J8"", ""activity_index"": 3, ""required_machine_id"": ""A"", ""activity_duration"": 50 }, { ""project_id"": ""J8"", ""activity_index"": 4, ""required_machine_id"": ""B"", ""activity_duration"": 46 }, { ""project_id"": ""J9"", ""activity_index"": 0, ""required_machine_id"": ""C"", ""activity_duration"": 83 }, { ""project_id"": ""J9"", ""activity_index"": 1, ""required_machine_id"": ""D"", ""activity_duration"": 3 }, { ""project_id"": ""J9"", ""activity_index"": 2, ""required_machine_id"": ""A"", ""activity_duration"": 47 }, { ""project_id"": ""J9"", ""activity_index"": 3, ""required_machine_id"": ""E"", ""activity_duration"": 19 }, { ""project_id"": ""J9"", ""activity_index"": 4, ""required_machine_id"": ""B"", ""activity_duration"": 49 } ] } When you hand me the schedule, just drop it into a small JSON snippet like this so I can parse it easily: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This shows the shape I expect: a top-level ""solution"" list with one entry per job, each job saying which job it is and listing its tasks; each task lists its index in the job, the start time, which machine it runs on, and how long it takes. Think of it like filling out a simple form for each job step — nothing fussy. This JSON is only a sketch of the expected shape, not the actual answer. Please use the exact identifiers from the instance input — do not rename jobs or machines or invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[3, 1], [4, 37], [1, 32], [2, 68], [0, 83]], [[4, 26], [1, 63], [0, 2], [3, 5], [2, 34]], [[2, 48], [4, 9], [3, 53], [1, 93], [0, 99]], [[4, 66], [3, 58], [1, 43], [2, 47], [0, 74]], [[2, 38], [4, 46], [3, 98], [1, 11], [0, 39]], [[4, 51], [3, 15], [2, 62], [0, 30], [1, 27]], [[4, 97], [1, 68], [2, 70], [3, 66], [0, 22]], [[2, 38], [4, 43], [3, 36], [0, 50], [1, 46]], [[2, 83], [3, 3], [0, 47], [4, 19], [1, 49]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 4, 'duration': 37}, {'task': 2, 'start': 38, 'machine': 1, 'duration': 32}, {'task': 3, 'start': 86, 'machine': 2, 'duration': 68}, {'task': 4, 'start': 167, 'machine': 0, 'duration': 83}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 81, 'machine': 4, 'duration': 26}, {'task': 1, 'start': 107, 'machine': 1, 'duration': 63}, {'task': 2, 'start': 250, 'machine': 0, 'duration': 2}, {'task': 3, 'start': 252, 'machine': 3, 'duration': 5}, {'task': 4, 'start': 468, 'machine': 2, 'duration': 34}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 38, 'machine': 2, 'duration': 48}, {'task': 1, 'start': 107, 'machine': 4, 'duration': 9}, {'task': 2, 'start': 117, 'machine': 3, 'duration': 53}, {'task': 3, 'start': 170, 'machine': 1, 'duration': 93}, {'task': 4, 'start': 299, 'machine': 0, 'duration': 99}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 116, 'machine': 4, 'duration': 66}, {'task': 1, 'start': 182, 'machine': 3, 'duration': 58}, {'task': 2, 'start': 263, 'machine': 1, 'duration': 43}, {'task': 3, 'start': 337, 'machine': 2, 'duration': 47}, {'task': 4, 'start': 398, 'machine': 0, 'duration': 74}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 237, 'machine': 2, 'duration': 38}, {'task': 1, 'start': 330, 'machine': 4, 'duration': 46}, {'task': 2, 'start': 376, 'machine': 3, 'duration': 98}, {'task': 3, 'start': 474, 'machine': 1, 'duration': 11}, {'task': 4, 'start': 502, 'machine': 0, 'duration': 39}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 182, 'machine': 4, 'duration': 51}, {'task': 1, 'start': 257, 'machine': 3, 'duration': 15}, {'task': 2, 'start': 275, 'machine': 2, 'duration': 62}, {'task': 3, 'start': 472, 'machine': 0, 'duration': 30}, {'task': 4, 'start': 531, 'machine': 1, 'duration': 27}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 233, 'machine': 4, 'duration': 97}, {'task': 1, 'start': 330, 'machine': 1, 'duration': 68}, {'task': 2, 'start': 398, 'machine': 2, 'duration': 70}, {'task': 3, 'start': 474, 'machine': 3, 'duration': 66}, {'task': 4, 'start': 541, 'machine': 0, 'duration': 22}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 38}, {'task': 1, 'start': 38, 'machine': 4, 'duration': 43}, {'task': 2, 'start': 81, 'machine': 3, 'duration': 36}, {'task': 3, 'start': 117, 'machine': 0, 'duration': 50}, {'task': 4, 'start': 485, 'machine': 1, 'duration': 46}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 154, 'machine': 2, 'duration': 83}, {'task': 1, 'start': 240, 'machine': 3, 'duration': 3}, {'task': 2, 'start': 252, 'machine': 0, 'duration': 47}, {'task': 3, 'start': 376, 'machine': 4, 'duration': 19}, {'task': 4, 'start': 398, 'machine': 1, 'duration': 49}]}]",563.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 37}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 32}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 68}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 83}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'E', 'duration': 26}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'B', 'duration': 63}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'A', 'duration': 2}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'D', 'duration': 5}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'C', 'duration': 34}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'C', 'duration': 48}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'E', 'duration': 9}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'D', 'duration': 53}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'B', 'duration': 93}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'A', 'duration': 99}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 66}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 58}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 43}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'C', 'duration': 47}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 74}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'C', 'duration': 38}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'E', 'duration': 46}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'D', 'duration': 98}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 11}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'A', 'duration': 39}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'E', 'duration': 51}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'D', 'duration': 15}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'C', 'duration': 62}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'A', 'duration': 30}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'B', 'duration': 27}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'E', 'duration': 97}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'B', 'duration': 68}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'C', 'duration': 70}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'D', 'duration': 66}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'A', 'duration': 22}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'C', 'duration': 38}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 43}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'D', 'duration': 36}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 50}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'B', 'duration': 46}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 83}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'D', 'duration': 3}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'A', 'duration': 47}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'E', 'duration': 19}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'B', 'duration': 49}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 1, 'machine': 'E', 'duration': 37}, {'task': 2, 'start': 38, 'machine': 'B', 'duration': 32}, {'task': 3, 'start': 86, 'machine': 'C', 'duration': 68}, {'task': 4, 'start': 167, 'machine': 'A', 'duration': 83}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 81, 'machine': 'E', 'duration': 26}, {'task': 1, 'start': 107, 'machine': 'B', 'duration': 63}, {'task': 2, 'start': 250, 'machine': 'A', 'duration': 2}, {'task': 3, 'start': 252, 'machine': 'D', 'duration': 5}, {'task': 4, 'start': 468, 'machine': 'C', 'duration': 34}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 38, 'machine': 'C', 'duration': 48}, {'task': 1, 'start': 107, 'machine': 'E', 'duration': 9}, {'task': 2, 'start': 117, 'machine': 'D', 'duration': 53}, {'task': 3, 'start': 170, 'machine': 'B', 'duration': 93}, {'task': 4, 'start': 299, 'machine': 'A', 'duration': 99}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 116, 'machine': 'E', 'duration': 66}, {'task': 1, 'start': 182, 'machine': 'D', 'duration': 58}, {'task': 2, 'start': 263, 'machine': 'B', 'duration': 43}, {'task': 3, 'start': 337, 'machine': 'C', 'duration': 47}, {'task': 4, 'start': 398, 'machine': 'A', 'duration': 74}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 237, 'machine': 'C', 'duration': 38}, {'task': 1, 'start': 330, 'machine': 'E', 'duration': 46}, {'task': 2, 'start': 376, 'machine': 'D', 'duration': 98}, {'task': 3, 'start': 474, 'machine': 'B', 'duration': 11}, {'task': 4, 'start': 502, 'machine': 'A', 'duration': 39}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 182, 'machine': 'E', 'duration': 51}, {'task': 1, 'start': 257, 'machine': 'D', 'duration': 15}, {'task': 2, 'start': 275, 'machine': 'C', 'duration': 62}, {'task': 3, 'start': 472, 'machine': 'A', 'duration': 30}, {'task': 4, 'start': 531, 'machine': 'B', 'duration': 27}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 233, 'machine': 'E', 'duration': 97}, {'task': 1, 'start': 330, 'machine': 'B', 'duration': 68}, {'task': 2, 'start': 398, 'machine': 'C', 'duration': 70}, {'task': 3, 'start': 474, 'machine': 'D', 'duration': 66}, {'task': 4, 'start': 541, 'machine': 'A', 'duration': 22}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 38}, {'task': 1, 'start': 38, 'machine': 'E', 'duration': 43}, {'task': 2, 'start': 81, 'machine': 'D', 'duration': 36}, {'task': 3, 'start': 117, 'machine': 'A', 'duration': 50}, {'task': 4, 'start': 485, 'machine': 'B', 'duration': 46}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 154, 'machine': 'C', 'duration': 83}, {'task': 1, 'start': 240, 'machine': 'D', 'duration': 3}, {'task': 2, 'start': 252, 'machine': 'A', 'duration': 47}, {'task': 3, 'start': 376, 'machine': 'E', 'duration': 19}, {'task': 4, 'start': 398, 'machine': 'B', 'duration': 49}]}]",15,json,names JSP,JSP,"We have a pile of circuit boards waiting and each board needs a fixed sequence of operations on specific stations — pick-and-place, solder, test, whatever — each taking a set time. Stations can’t be in two places at once and the operations for any individual board must happen in the order they’re listed, so the challenge is arranging who goes where and when so the entire batch comes off the line as soon as possible; the score is simply the time when the final board is finished. Concrete details about which board needs which steps and how long they take appear below. { ""num_boards"": 12, ""num_stations"": 5, ""board_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"", ""J11"", ""J12"" ], ""station_ids"": [ 1, 2, 3, 4, 5 ], ""tasks"": [ { ""board_id"": ""J1"", ""operation_index"": 0, ""station_id"": 3, ""processing_time"": 1 }, { ""board_id"": ""J1"", ""operation_index"": 1, ""station_id"": 2, ""processing_time"": 50 }, { ""board_id"": ""J1"", ""operation_index"": 2, ""station_id"": 5, ""processing_time"": 7 }, { ""board_id"": ""J1"", ""operation_index"": 3, ""station_id"": 4, ""processing_time"": 15 }, { ""board_id"": ""J1"", ""operation_index"": 4, ""station_id"": 1, ""processing_time"": 37 }, { ""board_id"": ""J2"", ""operation_index"": 0, ""station_id"": 2, ""processing_time"": 48 }, { ""board_id"": ""J2"", ""operation_index"": 1, ""station_id"": 3, ""processing_time"": 68 }, { ""board_id"": ""J2"", ""operation_index"": 2, ""station_id"": 4, ""processing_time"": 69 }, { ""board_id"": ""J2"", ""operation_index"": 3, ""station_id"": 5, ""processing_time"": 72 }, { ""board_id"": ""J2"", ""operation_index"": 4, ""station_id"": 1, ""processing_time"": 28 }, { ""board_id"": ""J3"", ""operation_index"": 0, ""station_id"": 5, ""processing_time"": 86 }, { ""board_id"": ""J3"", ""operation_index"": 1, ""station_id"": 2, ""processing_time"": 61 }, { ""board_id"": ""J3"", ""operation_index"": 2, ""station_id"": 3, ""processing_time"": 37 }, { ""board_id"": ""J3"", ""operation_index"": 3, ""station_id"": 1, ""processing_time"": 97 }, { ""board_id"": ""J3"", ""operation_index"": 4, ""station_id"": 4, ""processing_time"": 5 }, { ""board_id"": ""J4"", ""operation_index"": 0, ""station_id"": 4, ""processing_time"": 20 }, { ""board_id"": ""J4"", ""operation_index"": 1, ""station_id"": 5, ""processing_time"": 26 }, { ""board_id"": ""J4"", ""operation_index"": 2, ""station_id"": 2, ""processing_time"": 44 }, { ""board_id"": ""J4"", ""operation_index"": 3, ""station_id"": 3, ""processing_time"": 85 }, { ""board_id"": ""J4"", ""operation_index"": 4, ""station_id"": 1, ""processing_time"": 81 }, { ""board_id"": ""J5"", ""operation_index"": 0, ""station_id"": 5, ""processing_time"": 79 }, { ""board_id"": ""J5"", ""operation_index"": 1, ""station_id"": 3, ""processing_time"": 15 }, { ""board_id"": ""J5"", ""operation_index"": 2, ""station_id"": 1, ""processing_time"": 57 }, { ""board_id"": ""J5"", ""operation_index"": 3, ""station_id"": 2, ""processing_time"": 4 }, { ""board_id"": ""J5"", ""operation_index"": 4, ""station_id"": 4, ""processing_time"": 23 }, { ""board_id"": ""J6"", ""operation_index"": 0, ""station_id"": 3, ""processing_time"": 4 }, { ""board_id"": ""J6"", ""operation_index"": 1, ""station_id"": 1, ""processing_time"": 24 }, { ""board_id"": ""J6"", ""operation_index"": 2, ""station_id"": 2, ""processing_time"": 28 }, { ""board_id"": ""J6"", ""operation_index"": 3, ""station_id"": 5, ""processing_time"": 71 }, { ""board_id"": ""J6"", ""operation_index"": 4, ""station_id"": 4, ""processing_time"": 96 }, { ""board_id"": ""J7"", ""operation_index"": 0, ""station_id"": 4, ""processing_time"": 88 }, { ""board_id"": ""J7"", ""operation_index"": 1, ""station_id"": 1, ""processing_time"": 45 }, { ""board_id"": ""J7"", ""operation_index"": 2, ""station_id"": 3, ""processing_time"": 96 }, { ""board_id"": ""J7"", ""operation_index"": 3, ""station_id"": 2, ""processing_time"": 70 }, { ""board_id"": ""J7"", ""operation_index"": 4, ""station_id"": 5, ""processing_time"": 95 }, { ""board_id"": ""J8"", ""operation_index"": 0, ""station_id"": 2, ""processing_time"": 71 }, { ""board_id"": ""J8"", ""operation_index"": 1, ""station_id"": 3, ""processing_time"": 6 }, { ""board_id"": ""J8"", ""operation_index"": 2, ""station_id"": 1, ""processing_time"": 12 }, { ""board_id"": ""J8"", ""operation_index"": 3, ""station_id"": 5, ""processing_time"": 49 }, { ""board_id"": ""J8"", ""operation_index"": 4, ""station_id"": 4, ""processing_time"": 82 }, { ""board_id"": ""J9"", ""operation_index"": 0, ""station_id"": 4, ""processing_time"": 9 }, { ""board_id"": ""J9"", ""operation_index"": 1, ""station_id"": 1, ""processing_time"": 1 }, { ""board_id"": ""J9"", ""operation_index"": 2, ""station_id"": 5, ""processing_time"": 19 }, { ""board_id"": ""J9"", ""operation_index"": 3, ""station_id"": 2, ""processing_time"": 94 }, { ""board_id"": ""J9"", ""operation_index"": 4, ""station_id"": 3, ""processing_time"": 14 }, { ""board_id"": ""J10"", ""operation_index"": 0, ""station_id"": 2, ""processing_time"": 15 }, { ""board_id"": ""J10"", ""operation_index"": 1, ""station_id"": 4, ""processing_time"": 1 }, { ""board_id"": ""J10"", ""operation_index"": 2, ""station_id"": 5, ""processing_time"": 43 }, { ""board_id"": ""J10"", ""operation_index"": 3, ""station_id"": 1, ""processing_time"": 54 }, { ""board_id"": ""J10"", ""operation_index"": 4, ""station_id"": 3, ""processing_time"": 87 }, { ""board_id"": ""J11"", ""operation_index"": 0, ""station_id"": 2, ""processing_time"": 69 }, { ""board_id"": ""J11"", ""operation_index"": 1, ""station_id"": 1, ""processing_time"": 23 }, { ""board_id"": ""J11"", ""operation_index"": 2, ""station_id"": 4, ""processing_time"": 55 }, { ""board_id"": ""J11"", ""operation_index"": 3, ""station_id"": 5, ""processing_time"": 67 }, { ""board_id"": ""J11"", ""operation_index"": 4, ""station_id"": 3, ""processing_time"": 48 }, { ""board_id"": ""J12"", ""operation_index"": 0, ""station_id"": 3, ""processing_time"": 49 }, { ""board_id"": ""J12"", ""operation_index"": 1, ""station_id"": 4, ""processing_time"": 73 }, { ""board_id"": ""J12"", ""operation_index"": 2, ""station_id"": 5, ""processing_time"": 17 }, { ""board_id"": ""J12"", ""operation_index"": 3, ""station_id"": 1, ""processing_time"": 82 }, { ""board_id"": ""J12"", ""operation_index"": 4, ""station_id"": 2, ""processing_time"": 45 } ] } Also, when you send the actual schedule back, please stick to this JSON layout so everything lines up cleanly — nothing fancy, just that shape. { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of this like a simple form: ""solution"" is a list of boards (jobs). Each board entry has a job identifier and a list of its tasks. For each task you give the task index (which step it is for that board), the start time you schedule it, which machine/station it runs on, and how long it runs. Super casual — just fill in those fields for every job and task. This JSON is only a sketch of the expected shape, not the actual schedule — fill it with the real numbers and ids when you submit the solution. Make sure all identifiers match the instance input exactly — do not rename or invent labels. For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 12, 'jobs': [[[2, 1], [1, 50], [4, 7], [3, 15], [0, 37]], [[1, 48], [2, 68], [3, 69], [4, 72], [0, 28]], [[4, 86], [1, 61], [2, 37], [0, 97], [3, 5]], [[3, 20], [4, 26], [1, 44], [2, 85], [0, 81]], [[4, 79], [2, 15], [0, 57], [1, 4], [3, 23]], [[2, 4], [0, 24], [1, 28], [4, 71], [3, 96]], [[3, 88], [0, 45], [2, 96], [1, 70], [4, 95]], [[1, 71], [2, 6], [0, 12], [4, 49], [3, 82]], [[3, 9], [0, 1], [4, 19], [1, 94], [2, 14]], [[1, 15], [3, 1], [4, 43], [0, 54], [2, 87]], [[1, 69], [0, 23], [3, 55], [4, 67], [2, 48]], [[2, 49], [3, 73], [4, 17], [0, 82], [1, 45]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 121, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 451, 'machine': 1, 'duration': 50}, {'task': 2, 'start': 529, 'machine': 4, 'duration': 7}, {'task': 3, 'start': 567, 'machine': 3, 'duration': 15}, {'task': 4, 'start': 594, 'machine': 0, 'duration': 37}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 48}, {'task': 1, 'start': 49, 'machine': 2, 'duration': 68}, {'task': 2, 'start': 237, 'machine': 3, 'duration': 69}, {'task': 3, 'start': 457, 'machine': 4, 'duration': 72}, {'task': 4, 'start': 566, 'machine': 0, 'duration': 28}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 86}, {'task': 1, 'start': 203, 'machine': 1, 'duration': 61}, {'task': 2, 'start': 305, 'machine': 2, 'duration': 37}, {'task': 3, 'start': 388, 'machine': 0, 'duration': 97}, {'task': 4, 'start': 582, 'machine': 3, 'duration': 5}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 161, 'machine': 3, 'duration': 20}, {'task': 1, 'start': 182, 'machine': 4, 'duration': 26}, {'task': 2, 'start': 292, 'machine': 1, 'duration': 44}, {'task': 3, 'start': 390, 'machine': 2, 'duration': 85}, {'task': 4, 'start': 485, 'machine': 0, 'duration': 81}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 86, 'machine': 4, 'duration': 79}, {'task': 1, 'start': 165, 'machine': 2, 'duration': 15}, {'task': 2, 'start': 264, 'machine': 0, 'duration': 57}, {'task': 3, 'start': 501, 'machine': 1, 'duration': 4}, {'task': 4, 'start': 587, 'machine': 3, 'duration': 23}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 117, 'machine': 2, 'duration': 4}, {'task': 1, 'start': 133, 'machine': 0, 'duration': 24}, {'task': 2, 'start': 264, 'machine': 1, 'duration': 28}, {'task': 3, 'start': 318, 'machine': 4, 'duration': 71}, {'task': 4, 'start': 389, 'machine': 3, 'duration': 96}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 88}, {'task': 1, 'start': 88, 'machine': 0, 'duration': 45}, {'task': 2, 'start': 209, 'machine': 2, 'duration': 96}, {'task': 3, 'start': 381, 'machine': 1, 'duration': 70}, {'task': 4, 'start': 536, 'machine': 4, 'duration': 95}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 132, 'machine': 1, 'duration': 71}, {'task': 1, 'start': 203, 'machine': 2, 'duration': 6}, {'task': 2, 'start': 321, 'machine': 0, 'duration': 12}, {'task': 3, 'start': 389, 'machine': 4, 'duration': 49}, {'task': 4, 'start': 485, 'machine': 3, 'duration': 82}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 306, 'machine': 3, 'duration': 9}, {'task': 1, 'start': 387, 'machine': 0, 'duration': 1}, {'task': 2, 'start': 438, 'machine': 4, 'duration': 19}, {'task': 3, 'start': 505, 'machine': 1, 'duration': 94}, {'task': 4, 'start': 599, 'machine': 2, 'duration': 14}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 117, 'machine': 1, 'duration': 15}, {'task': 1, 'start': 181, 'machine': 3, 'duration': 1}, {'task': 2, 'start': 208, 'machine': 4, 'duration': 43}, {'task': 3, 'start': 333, 'machine': 0, 'duration': 54}, {'task': 4, 'start': 475, 'machine': 2, 'duration': 87}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 48, 'machine': 1, 'duration': 69}, {'task': 1, 'start': 157, 'machine': 0, 'duration': 23}, {'task': 2, 'start': 182, 'machine': 3, 'duration': 55}, {'task': 3, 'start': 251, 'machine': 4, 'duration': 67}, {'task': 4, 'start': 342, 'machine': 2, 'duration': 48}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 49}, {'task': 1, 'start': 88, 'machine': 3, 'duration': 73}, {'task': 2, 'start': 165, 'machine': 4, 'duration': 17}, {'task': 3, 'start': 182, 'machine': 0, 'duration': 82}, {'task': 4, 'start': 336, 'machine': 1, 'duration': 45}]}]",631.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 50}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 5, 'duration': 7}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 15}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 37}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 48}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 68}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 4, 'duration': 69}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 5, 'duration': 72}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 28}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 5, 'duration': 86}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 61}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 3, 'duration': 37}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 97}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 5}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 20}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 5, 'duration': 26}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 2, 'duration': 44}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 3, 'duration': 85}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 1, 'duration': 81}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 5, 'duration': 79}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 15}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 57}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 4}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 4, 'duration': 23}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 3, 'duration': 4}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 24}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 2, 'duration': 28}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 5, 'duration': 71}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 96}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 4, 'duration': 88}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 45}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 3, 'duration': 96}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 70}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 5, 'duration': 95}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 2, 'duration': 71}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 6}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 1, 'duration': 12}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 5, 'duration': 49}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 82}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 9}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 1}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 5, 'duration': 19}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 94}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 3, 'duration': 14}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 2, 'duration': 15}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 4, 'duration': 1}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 5, 'duration': 43}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 1, 'duration': 54}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 87}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 2, 'duration': 69}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 1, 'duration': 23}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 4, 'duration': 55}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 5, 'duration': 67}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 3, 'duration': 48}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 3, 'duration': 49}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 4, 'duration': 73}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 5, 'duration': 17}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 1, 'duration': 82}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 2, 'duration': 45}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 121, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 451, 'machine': 2, 'duration': 50}, {'task': 2, 'start': 529, 'machine': 5, 'duration': 7}, {'task': 3, 'start': 567, 'machine': 4, 'duration': 15}, {'task': 4, 'start': 594, 'machine': 1, 'duration': 37}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 48}, {'task': 1, 'start': 49, 'machine': 3, 'duration': 68}, {'task': 2, 'start': 237, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 457, 'machine': 5, 'duration': 72}, {'task': 4, 'start': 566, 'machine': 1, 'duration': 28}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 86}, {'task': 1, 'start': 203, 'machine': 2, 'duration': 61}, {'task': 2, 'start': 305, 'machine': 3, 'duration': 37}, {'task': 3, 'start': 388, 'machine': 1, 'duration': 97}, {'task': 4, 'start': 582, 'machine': 4, 'duration': 5}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 161, 'machine': 4, 'duration': 20}, {'task': 1, 'start': 182, 'machine': 5, 'duration': 26}, {'task': 2, 'start': 292, 'machine': 2, 'duration': 44}, {'task': 3, 'start': 390, 'machine': 3, 'duration': 85}, {'task': 4, 'start': 485, 'machine': 1, 'duration': 81}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 86, 'machine': 5, 'duration': 79}, {'task': 1, 'start': 165, 'machine': 3, 'duration': 15}, {'task': 2, 'start': 264, 'machine': 1, 'duration': 57}, {'task': 3, 'start': 501, 'machine': 2, 'duration': 4}, {'task': 4, 'start': 587, 'machine': 4, 'duration': 23}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 117, 'machine': 3, 'duration': 4}, {'task': 1, 'start': 133, 'machine': 1, 'duration': 24}, {'task': 2, 'start': 264, 'machine': 2, 'duration': 28}, {'task': 3, 'start': 318, 'machine': 5, 'duration': 71}, {'task': 4, 'start': 389, 'machine': 4, 'duration': 96}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 88}, {'task': 1, 'start': 88, 'machine': 1, 'duration': 45}, {'task': 2, 'start': 209, 'machine': 3, 'duration': 96}, {'task': 3, 'start': 381, 'machine': 2, 'duration': 70}, {'task': 4, 'start': 536, 'machine': 5, 'duration': 95}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 132, 'machine': 2, 'duration': 71}, {'task': 1, 'start': 203, 'machine': 3, 'duration': 6}, {'task': 2, 'start': 321, 'machine': 1, 'duration': 12}, {'task': 3, 'start': 389, 'machine': 5, 'duration': 49}, {'task': 4, 'start': 485, 'machine': 4, 'duration': 82}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 306, 'machine': 4, 'duration': 9}, {'task': 1, 'start': 387, 'machine': 1, 'duration': 1}, {'task': 2, 'start': 438, 'machine': 5, 'duration': 19}, {'task': 3, 'start': 505, 'machine': 2, 'duration': 94}, {'task': 4, 'start': 599, 'machine': 3, 'duration': 14}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 117, 'machine': 2, 'duration': 15}, {'task': 1, 'start': 181, 'machine': 4, 'duration': 1}, {'task': 2, 'start': 208, 'machine': 5, 'duration': 43}, {'task': 3, 'start': 333, 'machine': 1, 'duration': 54}, {'task': 4, 'start': 475, 'machine': 3, 'duration': 87}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 48, 'machine': 2, 'duration': 69}, {'task': 1, 'start': 157, 'machine': 1, 'duration': 23}, {'task': 2, 'start': 182, 'machine': 4, 'duration': 55}, {'task': 3, 'start': 251, 'machine': 5, 'duration': 67}, {'task': 4, 'start': 342, 'machine': 3, 'duration': 48}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 49}, {'task': 1, 'start': 88, 'machine': 4, 'duration': 73}, {'task': 2, 'start': 165, 'machine': 5, 'duration': 17}, {'task': 3, 'start': 182, 'machine': 1, 'duration': 82}, {'task': 4, 'start': 336, 'machine': 2, 'duration': 45}]}]",16,json,1 JSP,JSP,"We juggle a bunch of tabletops and chairs through three stations: saw, sander, and finishing bench. The choice to make is when to start each cut, sand, and finish so every operation uses its designated machine for its full time, follows the piece’s required order, and never shares a machine with another overlapping job. A good plan gets everything off the floor fast — judged by the moment the final job is completed; lower is better. Concrete details about items and times appear below. We have 11 pieces and 6 stations; the pieces are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and the stations are 0, 1, 2, 3, 4, 5. Piece J1, step 0 needs 2 for 1 time units. Piece J1, step 1 needs 1 for 63 time units. Piece J1, step 2 needs 4 for 82 time units. Piece J1, step 3 needs 3 for 60 time units. Piece J1, step 4 needs 5 for 90 time units. Piece J1, step 5 needs 0 for 70 time units. Piece J2, step 0 needs 2 for 73 time units. Piece J2, step 1 needs 3 for 38 time units. Piece J2, step 2 needs 5 for 40 time units. Piece J2, step 3 needs 4 for 22 time units. Piece J2, step 4 needs 0 for 25 time units. Piece J2, step 5 needs 1 for 13 time units. Piece J3, step 0 needs 0 for 20 time units. Piece J3, step 1 needs 4 for 1 time units. Piece J3, step 2 needs 2 for 10 time units. Piece J3, step 3 needs 3 for 72 time units. Piece J3, step 4 needs 5 for 92 time units. Piece J3, step 5 needs 1 for 45 time units. Piece J4, step 0 needs 5 for 24 time units. Piece J4, step 1 needs 0 for 87 time units. Piece J4, step 2 needs 3 for 22 time units. Piece J4, step 3 needs 1 for 83 time units. Piece J4, step 4 needs 2 for 16 time units. Piece J4, step 5 needs 4 for 96 time units. Piece J5, step 0 needs 4 for 8 time units. Piece J5, step 1 needs 1 for 56 time units. Piece J5, step 2 needs 5 for 34 time units. Piece J5, step 3 needs 3 for 92 time units. Piece J5, step 4 needs 2 for 13 time units. Piece J5, step 5 needs 0 for 67 time units. Piece J6, step 0 needs 2 for 80 time units. Piece J6, step 1 needs 1 for 21 time units. Piece J6, step 2 needs 3 for 23 time units. Piece J6, step 3 needs 0 for 75 time units. Piece J6, step 4 needs 4 for 69 time units. Piece J6, step 5 needs 5 for 4 time units. Piece J7, step 0 needs 4 for 69 time units. Piece J7, step 1 needs 2 for 87 time units. Piece J7, step 2 needs 1 for 48 time units. Piece J7, step 3 needs 3 for 19 time units. Piece J7, step 4 needs 5 for 33 time units. Piece J7, step 5 needs 0 for 98 time units. Piece J8, step 0 needs 4 for 91 time units. Piece J8, step 1 needs 1 for 69 time units. Piece J8, step 2 needs 5 for 79 time units. Piece J8, step 3 needs 3 for 22 time units. Piece J8, step 4 needs 0 for 63 time units. Piece J8, step 5 needs 2 for 31 time units. Piece J9, step 0 needs 3 for 81 time units. Piece J9, step 1 needs 1 for 31 time units. Piece J9, step 2 needs 0 for 46 time units. Piece J9, step 3 needs 5 for 71 time units. Piece J9, step 4 needs 2 for 79 time units. Piece J9, step 5 needs 4 for 94 time units. Piece J10, step 0 needs 3 for 83 time units. Piece J10, step 1 needs 5 for 66 time units. Piece J10, step 2 needs 2 for 22 time units. Piece J10, step 3 needs 1 for 7 time units. Piece J10, step 4 needs 4 for 73 time units. Piece J10, step 5 needs 0 for 51 time units. Piece J11, step 0 needs 1 for 47 time units. Piece J11, step 1 needs 3 for 26 time units. Piece J11, step 2 needs 4 for 94 time units. Piece J11, step 3 needs 5 for 50 time units. Piece J11, step 4 needs 0 for 23 time units. Piece J11, step 5 needs 2 for 65 time units. We keep start times conflict-free and aim to clear the shop as fast as possible. Also, when you send the schedule back, just drop it in this JSON shape — easy to read and easy to check. Here's the exact layout I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Quick, informal guide to the fields: ""solution"" is a list of pieces we need to schedule. Each item has a ""job"" id and a ""tasks"" list. Each task entry says which step of the job it is (""task""), when that step begins (""start""), which machine it runs on (""machine""), and how long it takes (""duration""). Think of it like filling out a simple form for each operation. This JSON is just the sketch of the shape I want — fill it with the actual ids and numbers from the instance when you respond. Make sure all identifiers are used exactly as they appear in the instance input — no renaming and no new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 11, 'jobs': [[[2, 1], [1, 63], [4, 82], [3, 60], [5, 90], [0, 70]], [[2, 73], [3, 38], [5, 40], [4, 22], [0, 25], [1, 13]], [[0, 20], [4, 1], [2, 10], [3, 72], [5, 92], [1, 45]], [[5, 24], [0, 87], [3, 22], [1, 83], [2, 16], [4, 96]], [[4, 8], [1, 56], [5, 34], [3, 92], [2, 13], [0, 67]], [[2, 80], [1, 21], [3, 23], [0, 75], [4, 69], [5, 4]], [[4, 69], [2, 87], [1, 48], [3, 19], [5, 33], [0, 98]], [[4, 91], [1, 69], [5, 79], [3, 22], [0, 63], [2, 31]], [[3, 81], [1, 31], [0, 46], [5, 71], [2, 79], [4, 94]], [[3, 83], [5, 66], [2, 22], [1, 7], [4, 73], [0, 51]], [[1, 47], [3, 26], [4, 94], [5, 50], [0, 23], [2, 65]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 80, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 257, 'machine': 1, 'duration': 63}, {'task': 2, 'start': 331, 'machine': 4, 'duration': 82}, {'task': 3, 'start': 413, 'machine': 3, 'duration': 60}, {'task': 4, 'start': 477, 'machine': 5, 'duration': 90}, {'task': 5, 'start': 630, 'machine': 0, 'duration': 70}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 81, 'machine': 2, 'duration': 73}, {'task': 1, 'start': 213, 'machine': 3, 'duration': 38}, {'task': 2, 'start': 437, 'machine': 5, 'duration': 40}, {'task': 3, 'start': 487, 'machine': 4, 'duration': 22}, {'task': 4, 'start': 605, 'machine': 0, 'duration': 25}, {'task': 5, 'start': 630, 'machine': 1, 'duration': 13}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 20}, {'task': 1, 'start': 413, 'machine': 4, 'duration': 1}, {'task': 2, 'start': 485, 'machine': 2, 'duration': 10}, {'task': 3, 'start': 495, 'machine': 3, 'duration': 72}, {'task': 4, 'start': 567, 'machine': 5, 'duration': 92}, {'task': 5, 'start': 659, 'machine': 1, 'duration': 45}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 24}, {'task': 1, 'start': 24, 'machine': 0, 'duration': 87}, {'task': 2, 'start': 473, 'machine': 3, 'duration': 22}, {'task': 3, 'start': 495, 'machine': 1, 'duration': 83}, {'task': 4, 'start': 578, 'machine': 2, 'duration': 16}, {'task': 5, 'start': 603, 'machine': 4, 'duration': 96}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 8}, {'task': 1, 'start': 170, 'machine': 1, 'duration': 56}, {'task': 2, 'start': 249, 'machine': 5, 'duration': 34}, {'task': 3, 'start': 283, 'machine': 3, 'duration': 92}, {'task': 4, 'start': 375, 'machine': 2, 'duration': 13}, {'task': 5, 'start': 389, 'machine': 0, 'duration': 67}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 80}, {'task': 1, 'start': 80, 'machine': 1, 'duration': 21}, {'task': 2, 'start': 109, 'machine': 3, 'duration': 23}, {'task': 3, 'start': 180, 'machine': 0, 'duration': 75}, {'task': 4, 'start': 262, 'machine': 4, 'duration': 69}, {'task': 5, 'start': 659, 'machine': 5, 'duration': 4}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 99, 'machine': 4, 'duration': 69}, {'task': 1, 'start': 246, 'machine': 2, 'duration': 87}, {'task': 2, 'start': 333, 'machine': 1, 'duration': 48}, {'task': 3, 'start': 381, 'machine': 3, 'duration': 19}, {'task': 4, 'start': 404, 'machine': 5, 'duration': 33}, {'task': 5, 'start': 456, 'machine': 0, 'duration': 98}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 8, 'machine': 4, 'duration': 91}, {'task': 1, 'start': 101, 'machine': 1, 'duration': 69}, {'task': 2, 'start': 170, 'machine': 5, 'duration': 79}, {'task': 3, 'start': 251, 'machine': 3, 'duration': 22}, {'task': 4, 'start': 303, 'machine': 0, 'duration': 63}, {'task': 5, 'start': 495, 'machine': 2, 'duration': 31}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 132, 'machine': 3, 'duration': 81}, {'task': 1, 'start': 226, 'machine': 1, 'duration': 31}, {'task': 2, 'start': 257, 'machine': 0, 'duration': 46}, {'task': 3, 'start': 333, 'machine': 5, 'duration': 71}, {'task': 4, 'start': 404, 'machine': 2, 'duration': 79}, {'task': 5, 'start': 509, 'machine': 4, 'duration': 94}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 83}, {'task': 1, 'start': 83, 'machine': 5, 'duration': 66}, {'task': 2, 'start': 154, 'machine': 2, 'duration': 22}, {'task': 3, 'start': 320, 'machine': 1, 'duration': 7}, {'task': 4, 'start': 414, 'machine': 4, 'duration': 73}, {'task': 5, 'start': 554, 'machine': 0, 'duration': 51}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 1, 'machine': 1, 'duration': 47}, {'task': 1, 'start': 83, 'machine': 3, 'duration': 26}, {'task': 2, 'start': 168, 'machine': 4, 'duration': 94}, {'task': 3, 'start': 283, 'machine': 5, 'duration': 50}, {'task': 4, 'start': 366, 'machine': 0, 'duration': 23}, {'task': 5, 'start': 617, 'machine': 2, 'duration': 65}]}]",704.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': [0, 1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 2, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 1, 'duration': 63}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 4, 'duration': 82}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 3, 'duration': 60}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 5, 'duration': 90}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 0, 'duration': 70}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 73}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 38}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 5, 'duration': 40}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 22}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 0, 'duration': 25}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 1, 'duration': 13}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 0, 'duration': 20}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 4, 'duration': 1}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 2, 'duration': 10}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 72}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 5, 'duration': 92}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 1, 'duration': 45}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 5, 'duration': 24}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 0, 'duration': 87}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 3, 'duration': 22}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 1, 'duration': 83}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 2, 'duration': 16}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 4, 'duration': 96}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 8}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 56}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 5, 'duration': 34}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 3, 'duration': 92}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 13}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 0, 'duration': 67}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 80}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 21}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 23}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 0, 'duration': 75}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 69}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 5, 'duration': 4}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 4, 'duration': 69}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 2, 'duration': 87}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 1, 'duration': 48}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 3, 'duration': 19}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 5, 'duration': 33}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 0, 'duration': 98}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 4, 'duration': 91}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 69}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 5, 'duration': 79}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 3, 'duration': 22}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 0, 'duration': 63}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 2, 'duration': 31}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 3, 'duration': 81}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 31}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 0, 'duration': 46}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 71}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 2, 'duration': 79}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 4, 'duration': 94}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 3, 'duration': 83}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 5, 'duration': 66}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 2, 'duration': 22}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 1, 'duration': 7}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 4, 'duration': 73}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 0, 'duration': 51}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 1, 'duration': 47}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 3, 'duration': 26}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 4, 'duration': 94}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 5, 'duration': 50}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 0, 'duration': 23}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 2, 'duration': 65}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 80, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 257, 'machine': 1, 'duration': 63}, {'task': 2, 'start': 331, 'machine': 4, 'duration': 82}, {'task': 3, 'start': 413, 'machine': 3, 'duration': 60}, {'task': 4, 'start': 477, 'machine': 5, 'duration': 90}, {'task': 5, 'start': 630, 'machine': 0, 'duration': 70}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 81, 'machine': 2, 'duration': 73}, {'task': 1, 'start': 213, 'machine': 3, 'duration': 38}, {'task': 2, 'start': 437, 'machine': 5, 'duration': 40}, {'task': 3, 'start': 487, 'machine': 4, 'duration': 22}, {'task': 4, 'start': 605, 'machine': 0, 'duration': 25}, {'task': 5, 'start': 630, 'machine': 1, 'duration': 13}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 20}, {'task': 1, 'start': 413, 'machine': 4, 'duration': 1}, {'task': 2, 'start': 485, 'machine': 2, 'duration': 10}, {'task': 3, 'start': 495, 'machine': 3, 'duration': 72}, {'task': 4, 'start': 567, 'machine': 5, 'duration': 92}, {'task': 5, 'start': 659, 'machine': 1, 'duration': 45}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 24}, {'task': 1, 'start': 24, 'machine': 0, 'duration': 87}, {'task': 2, 'start': 473, 'machine': 3, 'duration': 22}, {'task': 3, 'start': 495, 'machine': 1, 'duration': 83}, {'task': 4, 'start': 578, 'machine': 2, 'duration': 16}, {'task': 5, 'start': 603, 'machine': 4, 'duration': 96}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 8}, {'task': 1, 'start': 170, 'machine': 1, 'duration': 56}, {'task': 2, 'start': 249, 'machine': 5, 'duration': 34}, {'task': 3, 'start': 283, 'machine': 3, 'duration': 92}, {'task': 4, 'start': 375, 'machine': 2, 'duration': 13}, {'task': 5, 'start': 389, 'machine': 0, 'duration': 67}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 80}, {'task': 1, 'start': 80, 'machine': 1, 'duration': 21}, {'task': 2, 'start': 109, 'machine': 3, 'duration': 23}, {'task': 3, 'start': 180, 'machine': 0, 'duration': 75}, {'task': 4, 'start': 262, 'machine': 4, 'duration': 69}, {'task': 5, 'start': 659, 'machine': 5, 'duration': 4}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 99, 'machine': 4, 'duration': 69}, {'task': 1, 'start': 246, 'machine': 2, 'duration': 87}, {'task': 2, 'start': 333, 'machine': 1, 'duration': 48}, {'task': 3, 'start': 381, 'machine': 3, 'duration': 19}, {'task': 4, 'start': 404, 'machine': 5, 'duration': 33}, {'task': 5, 'start': 456, 'machine': 0, 'duration': 98}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 8, 'machine': 4, 'duration': 91}, {'task': 1, 'start': 101, 'machine': 1, 'duration': 69}, {'task': 2, 'start': 170, 'machine': 5, 'duration': 79}, {'task': 3, 'start': 251, 'machine': 3, 'duration': 22}, {'task': 4, 'start': 303, 'machine': 0, 'duration': 63}, {'task': 5, 'start': 495, 'machine': 2, 'duration': 31}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 132, 'machine': 3, 'duration': 81}, {'task': 1, 'start': 226, 'machine': 1, 'duration': 31}, {'task': 2, 'start': 257, 'machine': 0, 'duration': 46}, {'task': 3, 'start': 333, 'machine': 5, 'duration': 71}, {'task': 4, 'start': 404, 'machine': 2, 'duration': 79}, {'task': 5, 'start': 509, 'machine': 4, 'duration': 94}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 83}, {'task': 1, 'start': 83, 'machine': 5, 'duration': 66}, {'task': 2, 'start': 154, 'machine': 2, 'duration': 22}, {'task': 3, 'start': 320, 'machine': 1, 'duration': 7}, {'task': 4, 'start': 414, 'machine': 4, 'duration': 73}, {'task': 5, 'start': 554, 'machine': 0, 'duration': 51}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 1, 'machine': 1, 'duration': 47}, {'task': 1, 'start': 83, 'machine': 3, 'duration': 26}, {'task': 2, 'start': 168, 'machine': 4, 'duration': 94}, {'task': 3, 'start': 283, 'machine': 5, 'duration': 50}, {'task': 4, 'start': 366, 'machine': 0, 'duration': 23}, {'task': 5, 'start': 617, 'machine': 2, 'duration': 65}]}]",17,nl,0 JSP,JSP,"We’re juggling a pile of parcels through a handful of pieces of equipment; each parcel has its own to-do list of scans and handling actions that must happen one after another on specific gear for set amounts of time. The decision is about the order and timing: arrange those actions so the moment the final parcel leaves the line is as early as possible — in other words, minimize the finish time of the last parcel. Every required step for each parcel must be done exactly once, and a machine can only run one step at a time. The exact parcel steps and timings are listed below. We have 11 parcels (J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11) and 5 pieces of equipment (1, 2, 3, 4, 5). | parcel_id | step_index | equipment_id | operation_duration | |---|---|---|---| | J1 | 0 | 4 | 1 | | J1 | 1 | 3 | 76 | | J1 | 2 | 2 | 58 | | J1 | 3 | 5 | 6 | | J1 | 4 | 1 | 43 | | J2 | 0 | 4 | 91 | | J2 | 1 | 2 | 77 | | J2 | 2 | 5 | 6 | | J2 | 3 | 3 | 8 | | J2 | 4 | 1 | 15 | | J3 | 0 | 4 | 63 | | J3 | 1 | 3 | 64 | | J3 | 2 | 2 | 3 | | J3 | 3 | 5 | 4 | | J3 | 4 | 1 | 16 | | J4 | 0 | 2 | 25 | | J4 | 1 | 1 | 60 | | J4 | 2 | 3 | 45 | | J4 | 3 | 5 | 62 | | J4 | 4 | 4 | 94 | | J5 | 0 | 4 | 63 | | J5 | 1 | 5 | 52 | | J5 | 2 | 3 | 75 | | J5 | 3 | 2 | 89 | | J5 | 4 | 1 | 92 | | J6 | 0 | 5 | 9 | | J6 | 1 | 4 | 43 | | J6 | 2 | 2 | 58 | | J6 | 3 | 1 | 54 | | J6 | 4 | 3 | 37 | | J7 | 0 | 5 | 71 | | J7 | 1 | 4 | 96 | | J7 | 2 | 1 | 48 | | J7 | 3 | 2 | 80 | | J7 | 4 | 3 | 43 | | J8 | 0 | 1 | 37 | | J8 | 1 | 4 | 33 | | J8 | 2 | 5 | 63 | | J8 | 3 | 2 | 47 | | J8 | 4 | 3 | 55 | | J9 | 0 | 3 | 57 | | J9 | 1 | 4 | 97 | | J9 | 2 | 5 | 64 | | J9 | 3 | 2 | 45 | | J9 | 4 | 1 | 44 | | J10 | 0 | 1 | 29 | | J10 | 1 | 2 | 27 | | J10 | 2 | 5 | 20 | | J10 | 3 | 3 | 9 | | J10 | 4 | 4 | 75 | | J11 | 0 | 4 | 23 | | J11 | 1 | 3 | 19 | | J11 | 2 | 1 | 3 | | J11 | 3 | 2 | 22 | | J11 | 4 | 5 | 20 | We’ll schedule these listed steps so the moment the final parcel leaves the line is as early as possible. Also, when you send back the schedule, please use this simple JSON shape so everything lines up with the rest of the system: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it as a little form: ""solution"" is a list of the parcels (jobs) and, for each one, the ""tasks"" array lists its ordered steps. Each task entry just says which step it is (""task""), when it starts (""start""), which piece of equipment it uses (""machine""), and how long it runs (""duration""). Super simple — this block is just the expected shape, not the actual schedule. Please make sure to use the exact identifiers from the instance input — don’t rename them or invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[3, 1], [2, 76], [1, 58], [4, 6], [0, 43]], [[3, 91], [1, 77], [4, 6], [2, 8], [0, 15]], [[3, 63], [2, 64], [1, 3], [4, 4], [0, 16]], [[1, 25], [0, 60], [2, 45], [4, 62], [3, 94]], [[3, 63], [4, 52], [2, 75], [1, 89], [0, 92]], [[4, 9], [3, 43], [1, 58], [0, 54], [2, 37]], [[4, 71], [3, 96], [0, 48], [1, 80], [2, 43]], [[0, 37], [3, 33], [4, 63], [1, 47], [2, 55]], [[2, 57], [3, 97], [4, 64], [1, 45], [0, 44]], [[0, 29], [1, 27], [4, 20], [2, 9], [3, 75]], [[3, 23], [2, 19], [0, 3], [1, 22], [4, 20]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 423, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 424, 'machine': 2, 'duration': 76}, {'task': 2, 'start': 502, 'machine': 1, 'duration': 58}, {'task': 3, 'start': 560, 'machine': 4, 'duration': 6}, {'task': 4, 'start': 566, 'machine': 0, 'duration': 43}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 235, 'machine': 3, 'duration': 91}, {'task': 1, 'start': 378, 'machine': 1, 'duration': 77}, {'task': 2, 'start': 455, 'machine': 4, 'duration': 6}, {'task': 3, 'start': 500, 'machine': 2, 'duration': 8}, {'task': 4, 'start': 508, 'machine': 0, 'duration': 15}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 424, 'machine': 3, 'duration': 63}, {'task': 1, 'start': 508, 'machine': 2, 'duration': 64}, {'task': 2, 'start': 605, 'machine': 1, 'duration': 3}, {'task': 3, 'start': 608, 'machine': 4, 'duration': 4}, {'task': 4, 'start': 612, 'machine': 0, 'duration': 16}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 25}, {'task': 1, 'start': 29, 'machine': 0, 'duration': 60}, {'task': 2, 'start': 89, 'machine': 2, 'duration': 45}, {'task': 3, 'start': 134, 'machine': 4, 'duration': 62}, {'task': 4, 'start': 487, 'machine': 3, 'duration': 94}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 63}, {'task': 1, 'start': 80, 'machine': 4, 'duration': 52}, {'task': 2, 'start': 134, 'machine': 2, 'duration': 75}, {'task': 3, 'start': 209, 'machine': 1, 'duration': 89}, {'task': 4, 'start': 298, 'machine': 0, 'duration': 92}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 9}, {'task': 1, 'start': 63, 'machine': 3, 'duration': 43}, {'task': 2, 'start': 106, 'machine': 1, 'duration': 58}, {'task': 3, 'start': 164, 'machine': 0, 'duration': 54}, {'task': 4, 'start': 225, 'machine': 2, 'duration': 37}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 9, 'machine': 4, 'duration': 71}, {'task': 1, 'start': 106, 'machine': 3, 'duration': 96}, {'task': 2, 'start': 218, 'machine': 0, 'duration': 48}, {'task': 3, 'start': 298, 'machine': 1, 'duration': 80}, {'task': 4, 'start': 378, 'machine': 2, 'duration': 43}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 89, 'machine': 0, 'duration': 37}, {'task': 1, 'start': 202, 'machine': 3, 'duration': 33}, {'task': 2, 'start': 235, 'machine': 4, 'duration': 63}, {'task': 3, 'start': 455, 'machine': 1, 'duration': 47}, {'task': 4, 'start': 623, 'machine': 2, 'duration': 55}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 57}, {'task': 1, 'start': 326, 'machine': 3, 'duration': 97}, {'task': 2, 'start': 461, 'machine': 4, 'duration': 64}, {'task': 3, 'start': 560, 'machine': 1, 'duration': 45}, {'task': 4, 'start': 631, 'machine': 0, 'duration': 44}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 29}, {'task': 1, 'start': 29, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 196, 'machine': 4, 'duration': 20}, {'task': 3, 'start': 216, 'machine': 2, 'duration': 9}, {'task': 4, 'start': 604, 'machine': 3, 'duration': 75}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 581, 'machine': 3, 'duration': 23}, {'task': 1, 'start': 604, 'machine': 2, 'duration': 19}, {'task': 2, 'start': 628, 'machine': 0, 'duration': 3}, {'task': 3, 'start': 631, 'machine': 1, 'duration': 22}, {'task': 4, 'start': 653, 'machine': 4, 'duration': 20}]}]",679.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 4, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 3, 'duration': 76}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 58}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 6}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 43}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 4, 'duration': 91}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 2, 'duration': 77}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 5, 'duration': 6}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 8}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 15}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 4, 'duration': 63}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 3, 'duration': 64}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 2, 'duration': 3}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 5, 'duration': 4}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 1, 'duration': 16}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 2, 'duration': 25}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 1, 'duration': 60}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 3, 'duration': 45}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 5, 'duration': 62}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 4, 'duration': 94}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 63}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 5, 'duration': 52}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 3, 'duration': 75}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 89}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 1, 'duration': 92}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 5, 'duration': 9}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 4, 'duration': 43}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 2, 'duration': 58}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 1, 'duration': 54}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 3, 'duration': 37}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 5, 'duration': 71}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 4, 'duration': 96}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 1, 'duration': 48}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 80}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 3, 'duration': 43}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 37}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 4, 'duration': 33}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 5, 'duration': 63}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 2, 'duration': 47}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 55}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 3, 'duration': 57}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 4, 'duration': 97}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 5, 'duration': 64}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 45}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 44}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 1, 'duration': 29}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 2, 'duration': 27}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 5, 'duration': 20}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 3, 'duration': 9}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 4, 'duration': 75}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 4, 'duration': 23}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 3, 'duration': 19}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 1, 'duration': 3}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 2, 'duration': 22}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 5, 'duration': 20}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 423, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 424, 'machine': 3, 'duration': 76}, {'task': 2, 'start': 502, 'machine': 2, 'duration': 58}, {'task': 3, 'start': 560, 'machine': 5, 'duration': 6}, {'task': 4, 'start': 566, 'machine': 1, 'duration': 43}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 235, 'machine': 4, 'duration': 91}, {'task': 1, 'start': 378, 'machine': 2, 'duration': 77}, {'task': 2, 'start': 455, 'machine': 5, 'duration': 6}, {'task': 3, 'start': 500, 'machine': 3, 'duration': 8}, {'task': 4, 'start': 508, 'machine': 1, 'duration': 15}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 424, 'machine': 4, 'duration': 63}, {'task': 1, 'start': 508, 'machine': 3, 'duration': 64}, {'task': 2, 'start': 605, 'machine': 2, 'duration': 3}, {'task': 3, 'start': 608, 'machine': 5, 'duration': 4}, {'task': 4, 'start': 612, 'machine': 1, 'duration': 16}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 25}, {'task': 1, 'start': 29, 'machine': 1, 'duration': 60}, {'task': 2, 'start': 89, 'machine': 3, 'duration': 45}, {'task': 3, 'start': 134, 'machine': 5, 'duration': 62}, {'task': 4, 'start': 487, 'machine': 4, 'duration': 94}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 63}, {'task': 1, 'start': 80, 'machine': 5, 'duration': 52}, {'task': 2, 'start': 134, 'machine': 3, 'duration': 75}, {'task': 3, 'start': 209, 'machine': 2, 'duration': 89}, {'task': 4, 'start': 298, 'machine': 1, 'duration': 92}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 9}, {'task': 1, 'start': 63, 'machine': 4, 'duration': 43}, {'task': 2, 'start': 106, 'machine': 2, 'duration': 58}, {'task': 3, 'start': 164, 'machine': 1, 'duration': 54}, {'task': 4, 'start': 225, 'machine': 3, 'duration': 37}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 9, 'machine': 5, 'duration': 71}, {'task': 1, 'start': 106, 'machine': 4, 'duration': 96}, {'task': 2, 'start': 218, 'machine': 1, 'duration': 48}, {'task': 3, 'start': 298, 'machine': 2, 'duration': 80}, {'task': 4, 'start': 378, 'machine': 3, 'duration': 43}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 89, 'machine': 1, 'duration': 37}, {'task': 1, 'start': 202, 'machine': 4, 'duration': 33}, {'task': 2, 'start': 235, 'machine': 5, 'duration': 63}, {'task': 3, 'start': 455, 'machine': 2, 'duration': 47}, {'task': 4, 'start': 623, 'machine': 3, 'duration': 55}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 57}, {'task': 1, 'start': 326, 'machine': 4, 'duration': 97}, {'task': 2, 'start': 461, 'machine': 5, 'duration': 64}, {'task': 3, 'start': 560, 'machine': 2, 'duration': 45}, {'task': 4, 'start': 631, 'machine': 1, 'duration': 44}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 29}, {'task': 1, 'start': 29, 'machine': 2, 'duration': 27}, {'task': 2, 'start': 196, 'machine': 5, 'duration': 20}, {'task': 3, 'start': 216, 'machine': 3, 'duration': 9}, {'task': 4, 'start': 604, 'machine': 4, 'duration': 75}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 581, 'machine': 4, 'duration': 23}, {'task': 1, 'start': 604, 'machine': 3, 'duration': 19}, {'task': 2, 'start': 628, 'machine': 1, 'duration': 3}, {'task': 3, 'start': 631, 'machine': 2, 'duration': 22}, {'task': 4, 'start': 653, 'machine': 5, 'duration': 20}]}]",18,markdown_table,1 JSP,JSP,"Recently the setup team needed a clear plan: each booth has a fixed run of assembly jobs, every job uses a named lift or tool for a fixed time, and no two jobs can use the same gear at once. The task was to set start times so every booth’s steps stay in order, nothing’s missed or duplicated, and the entire exhibition is ready as fast as possible — judged by the instant the last booth is finished. The concrete booth-task lists and durations follow below. # num_booths=12 # num_tools_lifts=5 # booth_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 # tool_lift_ids=1, 2, 3, 4, 5 booth_id,step_index,tool_or_lift_id,assembly_duration J1,0,3,1 J1,1,5,89 J1,2,4,34 J1,3,2,52 J1,4,1,96 J2,0,2,14 J2,1,5,82 J2,2,1,73 J2,3,3,76 J2,4,4,9 J3,0,2,2 J3,1,3,17 J3,2,5,85 J3,3,1,8 J3,4,4,21 J4,0,1,78 J4,1,2,27 J4,2,5,46 J4,3,4,1 J4,4,3,2 J5,0,5,5 J5,1,3,21 J5,2,1,34 J5,3,2,82 J5,4,4,77 J6,0,2,61 J6,1,3,52 J6,2,1,24 J6,3,4,96 J6,4,5,8 J7,0,2,62 J7,1,5,73 J7,2,1,74 J7,3,4,84 J7,4,3,17 J8,0,1,69 J8,1,2,95 J8,2,3,39 J8,3,4,46 J8,4,5,92 J9,0,4,82 J9,1,1,95 J9,2,3,36 J9,3,5,20 J9,4,2,10 J10,0,4,36 J10,1,1,89 J10,2,3,9 J10,3,5,36 J10,4,2,19 J11,0,1,98 J11,1,4,66 J11,2,3,27 J11,3,5,49 J11,4,2,56 J12,0,5,99 J12,1,3,19 J12,2,4,86 J12,3,1,55 J12,4,2,63 Also, when you send the actual schedule back, please use this simple JSON layout so it’s easy to parse and check: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a sketch of the shape I need. In plain terms: each entry in ""solution"" is one booth/job; ""tasks"" is the ordered list of steps for that job; ""task"" is the step index within the job; ""start"" is the planned start time for that step; ""machine"" is which lift/tool it needs; and ""duration"" is how long that step runs. Keep it informal — think of it as filling out a little form for each job. Please make sure you use the exact identifiers from the instance input — don’t rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 12, 'jobs': [[[2, 1], [4, 89], [3, 34], [1, 52], [0, 96]], [[1, 14], [4, 82], [0, 73], [2, 76], [3, 9]], [[1, 2], [2, 17], [4, 85], [0, 8], [3, 21]], [[0, 78], [1, 27], [4, 46], [3, 1], [2, 2]], [[4, 5], [2, 21], [0, 34], [1, 82], [3, 77]], [[1, 61], [2, 52], [0, 24], [3, 96], [4, 8]], [[1, 62], [4, 73], [0, 74], [3, 84], [2, 17]], [[0, 69], [1, 95], [2, 39], [3, 46], [4, 92]], [[3, 82], [0, 95], [2, 36], [4, 20], [1, 10]], [[3, 36], [0, 89], [2, 9], [4, 36], [1, 19]], [[0, 98], [3, 66], [2, 27], [4, 49], [1, 56]], [[4, 99], [2, 19], [3, 86], [0, 55], [1, 63]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 99, 'machine': 4, 'duration': 89}, {'task': 2, 'start': 270, 'machine': 3, 'duration': 34}, {'task': 3, 'start': 304, 'machine': 1, 'duration': 52}, {'task': 4, 'start': 697, 'machine': 0, 'duration': 96}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 62, 'machine': 1, 'duration': 14}, {'task': 1, 'start': 261, 'machine': 4, 'duration': 82}, {'task': 2, 'start': 448, 'machine': 0, 'duration': 73}, {'task': 3, 'start': 521, 'machine': 2, 'duration': 76}, {'task': 4, 'start': 607, 'machine': 3, 'duration': 9}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 232, 'machine': 1, 'duration': 2}, {'task': 1, 'start': 311, 'machine': 2, 'duration': 17}, {'task': 2, 'start': 348, 'machine': 4, 'duration': 85}, {'task': 3, 'start': 689, 'machine': 0, 'duration': 8}, {'task': 4, 'start': 730, 'machine': 3, 'duration': 21}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 336, 'machine': 0, 'duration': 78}, {'task': 1, 'start': 414, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 574, 'machine': 4, 'duration': 46}, {'task': 3, 'start': 620, 'machine': 3, 'duration': 1}, {'task': 4, 'start': 621, 'machine': 2, 'duration': 2}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 343, 'machine': 4, 'duration': 5}, {'task': 1, 'start': 364, 'machine': 2, 'duration': 21}, {'task': 2, 'start': 414, 'machine': 0, 'duration': 34}, {'task': 3, 'start': 448, 'machine': 1, 'duration': 82}, {'task': 4, 'start': 530, 'machine': 3, 'duration': 77}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 171, 'machine': 1, 'duration': 61}, {'task': 1, 'start': 232, 'machine': 2, 'duration': 52}, {'task': 2, 'start': 610, 'machine': 0, 'duration': 24}, {'task': 3, 'start': 634, 'machine': 3, 'duration': 96}, {'task': 4, 'start': 730, 'machine': 4, 'duration': 8}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 62}, {'task': 1, 'start': 188, 'machine': 4, 'duration': 73}, {'task': 2, 'start': 262, 'machine': 0, 'duration': 74}, {'task': 3, 'start': 350, 'machine': 3, 'duration': 84}, {'task': 4, 'start': 434, 'machine': 2, 'duration': 17}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 69}, {'task': 1, 'start': 76, 'machine': 1, 'duration': 95}, {'task': 2, 'start': 171, 'machine': 2, 'duration': 39}, {'task': 3, 'start': 304, 'machine': 3, 'duration': 46}, {'task': 4, 'start': 482, 'machine': 4, 'duration': 92}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 82}, {'task': 1, 'start': 167, 'machine': 0, 'duration': 95}, {'task': 2, 'start': 328, 'machine': 2, 'duration': 36}, {'task': 3, 'start': 656, 'machine': 4, 'duration': 20}, {'task': 4, 'start': 676, 'machine': 1, 'duration': 10}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 82, 'machine': 3, 'duration': 36}, {'task': 1, 'start': 521, 'machine': 0, 'duration': 89}, {'task': 2, 'start': 610, 'machine': 2, 'duration': 9}, {'task': 3, 'start': 620, 'machine': 4, 'duration': 36}, {'task': 4, 'start': 656, 'machine': 1, 'duration': 19}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 69, 'machine': 0, 'duration': 98}, {'task': 1, 'start': 204, 'machine': 3, 'duration': 66}, {'task': 2, 'start': 284, 'machine': 2, 'duration': 27}, {'task': 3, 'start': 433, 'machine': 4, 'duration': 49}, {'task': 4, 'start': 530, 'machine': 1, 'duration': 56}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 99}, {'task': 1, 'start': 99, 'machine': 2, 'duration': 19}, {'task': 2, 'start': 118, 'machine': 3, 'duration': 86}, {'task': 3, 'start': 634, 'machine': 0, 'duration': 55}, {'task': 4, 'start': 689, 'machine': 1, 'duration': 63}]}]",793.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 5, 'duration': 89}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 4, 'duration': 34}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 52}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 96}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 14}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 82}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 73}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 76}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 4, 'duration': 9}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 2, 'duration': 2}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 3, 'duration': 17}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 5, 'duration': 85}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 8}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 21}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 1, 'duration': 78}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 2, 'duration': 27}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 5, 'duration': 46}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 4, 'duration': 1}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 2}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 5, 'duration': 5}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 21}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 34}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 82}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 4, 'duration': 77}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 61}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 52}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 24}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 4, 'duration': 96}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 5, 'duration': 8}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 2, 'duration': 62}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 5, 'duration': 73}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 1, 'duration': 74}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 4, 'duration': 84}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 3, 'duration': 17}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 69}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 2, 'duration': 95}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 3, 'duration': 39}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 4, 'duration': 46}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 5, 'duration': 92}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 82}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 95}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 36}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 20}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 2, 'duration': 10}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 4, 'duration': 36}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 89}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 3, 'duration': 9}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 5, 'duration': 36}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 2, 'duration': 19}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 1, 'duration': 98}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 4, 'duration': 66}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 3, 'duration': 27}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 5, 'duration': 49}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 2, 'duration': 56}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 5, 'duration': 99}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 3, 'duration': 19}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 4, 'duration': 86}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 1, 'duration': 55}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 2, 'duration': 63}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 99, 'machine': 5, 'duration': 89}, {'task': 2, 'start': 270, 'machine': 4, 'duration': 34}, {'task': 3, 'start': 304, 'machine': 2, 'duration': 52}, {'task': 4, 'start': 697, 'machine': 1, 'duration': 96}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 62, 'machine': 2, 'duration': 14}, {'task': 1, 'start': 261, 'machine': 5, 'duration': 82}, {'task': 2, 'start': 448, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 521, 'machine': 3, 'duration': 76}, {'task': 4, 'start': 607, 'machine': 4, 'duration': 9}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 232, 'machine': 2, 'duration': 2}, {'task': 1, 'start': 311, 'machine': 3, 'duration': 17}, {'task': 2, 'start': 348, 'machine': 5, 'duration': 85}, {'task': 3, 'start': 689, 'machine': 1, 'duration': 8}, {'task': 4, 'start': 730, 'machine': 4, 'duration': 21}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 336, 'machine': 1, 'duration': 78}, {'task': 1, 'start': 414, 'machine': 2, 'duration': 27}, {'task': 2, 'start': 574, 'machine': 5, 'duration': 46}, {'task': 3, 'start': 620, 'machine': 4, 'duration': 1}, {'task': 4, 'start': 621, 'machine': 3, 'duration': 2}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 343, 'machine': 5, 'duration': 5}, {'task': 1, 'start': 364, 'machine': 3, 'duration': 21}, {'task': 2, 'start': 414, 'machine': 1, 'duration': 34}, {'task': 3, 'start': 448, 'machine': 2, 'duration': 82}, {'task': 4, 'start': 530, 'machine': 4, 'duration': 77}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 171, 'machine': 2, 'duration': 61}, {'task': 1, 'start': 232, 'machine': 3, 'duration': 52}, {'task': 2, 'start': 610, 'machine': 1, 'duration': 24}, {'task': 3, 'start': 634, 'machine': 4, 'duration': 96}, {'task': 4, 'start': 730, 'machine': 5, 'duration': 8}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 62}, {'task': 1, 'start': 188, 'machine': 5, 'duration': 73}, {'task': 2, 'start': 262, 'machine': 1, 'duration': 74}, {'task': 3, 'start': 350, 'machine': 4, 'duration': 84}, {'task': 4, 'start': 434, 'machine': 3, 'duration': 17}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 69}, {'task': 1, 'start': 76, 'machine': 2, 'duration': 95}, {'task': 2, 'start': 171, 'machine': 3, 'duration': 39}, {'task': 3, 'start': 304, 'machine': 4, 'duration': 46}, {'task': 4, 'start': 482, 'machine': 5, 'duration': 92}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 82}, {'task': 1, 'start': 167, 'machine': 1, 'duration': 95}, {'task': 2, 'start': 328, 'machine': 3, 'duration': 36}, {'task': 3, 'start': 656, 'machine': 5, 'duration': 20}, {'task': 4, 'start': 676, 'machine': 2, 'duration': 10}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 82, 'machine': 4, 'duration': 36}, {'task': 1, 'start': 521, 'machine': 1, 'duration': 89}, {'task': 2, 'start': 610, 'machine': 3, 'duration': 9}, {'task': 3, 'start': 620, 'machine': 5, 'duration': 36}, {'task': 4, 'start': 656, 'machine': 2, 'duration': 19}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 69, 'machine': 1, 'duration': 98}, {'task': 1, 'start': 204, 'machine': 4, 'duration': 66}, {'task': 2, 'start': 284, 'machine': 3, 'duration': 27}, {'task': 3, 'start': 433, 'machine': 5, 'duration': 49}, {'task': 4, 'start': 530, 'machine': 2, 'duration': 56}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 99}, {'task': 1, 'start': 99, 'machine': 3, 'duration': 19}, {'task': 2, 'start': 118, 'machine': 4, 'duration': 86}, {'task': 3, 'start': 634, 'machine': 1, 'duration': 55}, {'task': 4, 'start': 689, 'machine': 2, 'duration': 63}]}]",19,csv,1 JSP,JSP,"I once tried to get three different dinners out of a tiny kitchen at the same time: each recipe has its own list of steps that must happen in order, and each step needs a certain appliance for a set amount of time. The choice to make is who uses which appliance when so all dishes finish as soon as possible — the success of a plan is simply the time when the last dish is done (so the lower that time, the better). Every step has to be done exactly once, in its recipe order, and an appliance can only run one step at a time. The exact recipes, step times, and appliance availability are listed below. { ""nr_recipes"": 12, ""nr_appliances"": 5, ""recipe_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"", ""J11"", ""J12"" ], ""appliance_ids"": [ 0, 1, 2, 3, 4 ], ""tasks"": [ { ""recipe_id"": ""J1"", ""step_index"": 0, ""required_appliance_id"": 3, ""step_duration"": 1 }, { ""recipe_id"": ""J1"", ""step_index"": 1, ""required_appliance_id"": 2, ""step_duration"": 3 }, { ""recipe_id"": ""J1"", ""step_index"": 2, ""required_appliance_id"": 4, ""step_duration"": 10 }, { ""recipe_id"": ""J1"", ""step_index"": 3, ""required_appliance_id"": 1, ""step_duration"": 97 }, { ""recipe_id"": ""J1"", ""step_index"": 4, ""required_appliance_id"": 0, ""step_duration"": 50 }, { ""recipe_id"": ""J2"", ""step_index"": 0, ""required_appliance_id"": 1, ""step_duration"": 36 }, { ""recipe_id"": ""J2"", ""step_index"": 1, ""required_appliance_id"": 2, ""step_duration"": 87 }, { ""recipe_id"": ""J2"", ""step_index"": 2, ""required_appliance_id"": 4, ""step_duration"": 41 }, { ""recipe_id"": ""J2"", ""step_index"": 3, ""required_appliance_id"": 3, ""step_duration"": 44 }, { ""recipe_id"": ""J2"", ""step_index"": 4, ""required_appliance_id"": 0, ""step_duration"": 2 }, { ""recipe_id"": ""J3"", ""step_index"": 0, ""required_appliance_id"": 0, ""step_duration"": 39 }, { ""recipe_id"": ""J3"", ""step_index"": 1, ""required_appliance_id"": 4, ""step_duration"": 68 }, { ""recipe_id"": ""J3"", ""step_index"": 2, ""required_appliance_id"": 1, ""step_duration"": 69 }, { ""recipe_id"": ""J3"", ""step_index"": 3, ""required_appliance_id"": 3, ""step_duration"": 11 }, { ""recipe_id"": ""J3"", ""step_index"": 4, ""required_appliance_id"": 2, ""step_duration"": 26 }, { ""recipe_id"": ""J4"", ""step_index"": 0, ""required_appliance_id"": 4, ""step_duration"": 31 }, { ""recipe_id"": ""J4"", ""step_index"": 1, ""required_appliance_id"": 0, ""step_duration"": 94 }, { ""recipe_id"": ""J4"", ""step_index"": 2, ""required_appliance_id"": 2, ""step_duration"": 47 }, { ""recipe_id"": ""J4"", ""step_index"": 3, ""required_appliance_id"": 3, ""step_duration"": 39 }, { ""recipe_id"": ""J4"", ""step_index"": 4, ""required_appliance_id"": 1, ""step_duration"": 8 }, { ""recipe_id"": ""J5"", ""step_index"": 0, ""required_appliance_id"": 4, ""step_duration"": 47 }, { ""recipe_id"": ""J5"", ""step_index"": 1, ""required_appliance_id"": 0, ""step_duration"": 89 }, { ""recipe_id"": ""J5"", ""step_index"": 2, ""required_appliance_id"": 3, ""step_duration"": 92 }, { ""recipe_id"": ""J5"", ""step_index"": 3, ""required_appliance_id"": 1, ""step_duration"": 75 }, { ""recipe_id"": ""J5"", ""step_index"": 4, ""required_appliance_id"": 2, ""step_duration"": 62 }, { ""recipe_id"": ""J6"", ""step_index"": 0, ""required_appliance_id"": 4, ""step_duration"": 15 }, { ""recipe_id"": ""J6"", ""step_index"": 1, ""required_appliance_id"": 0, ""step_duration"": 61 }, { ""recipe_id"": ""J6"", ""step_index"": 2, ""required_appliance_id"": 3, ""step_duration"": 89 }, { ""recipe_id"": ""J6"", ""step_index"": 3, ""required_appliance_id"": 2, ""step_duration"": 38 }, { ""recipe_id"": ""J6"", ""step_index"": 4, ""required_appliance_id"": 1, ""step_duration"": 77 }, { ""recipe_id"": ""J7"", ""step_index"": 0, ""required_appliance_id"": 3, ""step_duration"": 53 }, { ""recipe_id"": ""J7"", ""step_index"": 1, ""required_appliance_id"": 2, ""step_duration"": 49 }, { ""recipe_id"": ""J7"", ""step_index"": 2, ""required_appliance_id"": 0, ""step_duration"": 1 }, { ""recipe_id"": ""J7"", ""step_index"": 3, ""required_appliance_id"": 4, ""step_duration"": 89 }, { ""recipe_id"": ""J7"", ""step_index"": 4, ""required_appliance_id"": 1, ""step_duration"": 90 }, { ""recipe_id"": ""J8"", ""step_index"": 0, ""required_appliance_id"": 4, ""step_duration"": 3 }, { ""recipe_id"": ""J8"", ""step_index"": 1, ""required_appliance_id"": 0, ""step_duration"": 59 }, { ""recipe_id"": ""J8"", ""step_index"": 2, ""required_appliance_id"": 3, ""step_duration"": 14 }, { ""recipe_id"": ""J8"", ""step_index"": 3, ""required_appliance_id"": 2, ""step_duration"": 45 }, { ""recipe_id"": ""J8"", ""step_index"": 4, ""required_appliance_id"": 1, ""step_duration"": 29 }, { ""recipe_id"": ""J9"", ""step_index"": 0, ""required_appliance_id"": 1, ""step_duration"": 7 }, { ""recipe_id"": ""J9"", ""step_index"": 1, ""required_appliance_id"": 0, ""step_duration"": 93 }, { ""recipe_id"": ""J9"", ""step_index"": 2, ""required_appliance_id"": 3, ""step_duration"": 9 }, { ""recipe_id"": ""J9"", ""step_index"": 3, ""required_appliance_id"": 4, ""step_duration"": 95 }, { ""recipe_id"": ""J9"", ""step_index"": 4, ""required_appliance_id"": 2, ""step_duration"": 74 }, { ""recipe_id"": ""J10"", ""step_index"": 0, ""required_appliance_id"": 3, ""step_duration"": 43 }, { ""recipe_id"": ""J10"", ""step_index"": 1, ""required_appliance_id"": 1, ""step_duration"": 53 }, { ""recipe_id"": ""J10"", ""step_index"": 2, ""required_appliance_id"": 2, ""step_duration"": 96 }, { ""recipe_id"": ""J10"", ""step_index"": 3, ""required_appliance_id"": 0, ""step_duration"": 63 }, { ""recipe_id"": ""J10"", ""step_index"": 4, ""required_appliance_id"": 4, ""step_duration"": 62 }, { ""recipe_id"": ""J11"", ""step_index"": 0, ""required_appliance_id"": 0, ""step_duration"": 75 }, { ""recipe_id"": ""J11"", ""step_index"": 1, ""required_appliance_id"": 3, ""step_duration"": 15 }, { ""recipe_id"": ""J11"", ""step_index"": 2, ""required_appliance_id"": 4, ""step_duration"": 50 }, { ""recipe_id"": ""J11"", ""step_index"": 3, ""required_appliance_id"": 1, ""step_duration"": 77 }, { ""recipe_id"": ""J11"", ""step_index"": 4, ""required_appliance_id"": 2, ""step_duration"": 91 }, { ""recipe_id"": ""J12"", ""step_index"": 0, ""required_appliance_id"": 3, ""step_duration"": 16 }, { ""recipe_id"": ""J12"", ""step_index"": 1, ""required_appliance_id"": 0, ""step_duration"": 68 }, { ""recipe_id"": ""J12"", ""step_index"": 2, ""required_appliance_id"": 2, ""step_duration"": 75 }, { ""recipe_id"": ""J12"", ""step_index"": 3, ""required_appliance_id"": 1, ""step_duration"": 46 }, { ""recipe_id"": ""J12"", ""step_index"": 4, ""required_appliance_id"": 4, ""step_duration"": 69 } ] } Oh, and when you send the schedule back, a little JSON like this is perfect — just a simple shape to fill in: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a sketch of the shape I’m expecting, not the actual schedule. In plain terms: the top-level ""solution"" is a list of dishes (jobs). Each dish object says which job it is and then lists its steps. Each step has the step number (""task""), when that step starts (""start""), which appliance it needs (""machine""), and how long it runs (""duration""). Keep it simple and human-readable. Please use the exact identifiers from the instance input — don’t rename anything or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 12, 'jobs': [[[3, 1], [2, 3], [4, 10], [1, 97], [0, 50]], [[1, 36], [2, 87], [4, 41], [3, 44], [0, 2]], [[0, 39], [4, 68], [1, 69], [3, 11], [2, 26]], [[4, 31], [0, 94], [2, 47], [3, 39], [1, 8]], [[4, 47], [0, 89], [3, 92], [1, 75], [2, 62]], [[4, 15], [0, 61], [3, 89], [2, 38], [1, 77]], [[3, 53], [2, 49], [0, 1], [4, 89], [1, 90]], [[4, 3], [0, 59], [3, 14], [2, 45], [1, 29]], [[1, 7], [0, 93], [3, 9], [4, 95], [2, 74]], [[3, 43], [1, 53], [2, 96], [0, 63], [4, 62]], [[0, 75], [3, 15], [4, 50], [1, 77], [2, 91]], [[3, 16], [0, 68], [2, 75], [1, 46], [4, 69]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 2, 'duration': 3}, {'task': 2, 'start': 96, 'machine': 4, 'duration': 10}, {'task': 3, 'start': 113, 'machine': 1, 'duration': 97}, {'task': 4, 'start': 644, 'machine': 0, 'duration': 50}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 36}, {'task': 1, 'start': 36, 'machine': 2, 'duration': 87}, {'task': 2, 'start': 174, 'machine': 4, 'duration': 41}, {'task': 3, 'start': 397, 'machine': 3, 'duration': 44}, {'task': 4, 'start': 642, 'machine': 0, 'duration': 2}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 39}, {'task': 1, 'start': 106, 'machine': 4, 'duration': 68}, {'task': 2, 'start': 210, 'machine': 1, 'duration': 69}, {'task': 3, 'start': 288, 'machine': 3, 'duration': 11}, {'task': 4, 'start': 343, 'machine': 2, 'duration': 26}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 62, 'machine': 4, 'duration': 31}, {'task': 1, 'start': 485, 'machine': 0, 'duration': 94}, {'task': 2, 'start': 588, 'machine': 2, 'duration': 47}, {'task': 3, 'start': 635, 'machine': 3, 'duration': 39}, {'task': 4, 'start': 704, 'machine': 1, 'duration': 8}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 47}, {'task': 1, 'start': 107, 'machine': 0, 'duration': 89}, {'task': 2, 'start': 196, 'machine': 3, 'duration': 92}, {'task': 3, 'start': 288, 'machine': 1, 'duration': 75}, {'task': 4, 'start': 369, 'machine': 2, 'duration': 62}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 47, 'machine': 4, 'duration': 15}, {'task': 1, 'start': 197, 'machine': 0, 'duration': 61}, {'task': 2, 'start': 299, 'machine': 3, 'duration': 89}, {'task': 3, 'start': 431, 'machine': 2, 'duration': 38}, {'task': 4, 'start': 627, 'machine': 1, 'duration': 77}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 60, 'machine': 3, 'duration': 53}, {'task': 1, 'start': 123, 'machine': 2, 'duration': 49}, {'task': 2, 'start': 196, 'machine': 0, 'duration': 1}, {'task': 3, 'start': 215, 'machine': 4, 'duration': 89}, {'task': 4, 'start': 409, 'machine': 1, 'duration': 90}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 93, 'machine': 4, 'duration': 3}, {'task': 1, 'start': 351, 'machine': 0, 'duration': 59}, {'task': 2, 'start': 441, 'machine': 3, 'duration': 14}, {'task': 3, 'start': 469, 'machine': 2, 'duration': 45}, {'task': 4, 'start': 514, 'machine': 1, 'duration': 29}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 36, 'machine': 1, 'duration': 7}, {'task': 1, 'start': 258, 'machine': 0, 'duration': 93}, {'task': 2, 'start': 388, 'machine': 3, 'duration': 9}, {'task': 3, 'start': 397, 'machine': 4, 'duration': 95}, {'task': 4, 'start': 514, 'machine': 2, 'duration': 74}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 17, 'machine': 3, 'duration': 43}, {'task': 1, 'start': 60, 'machine': 1, 'duration': 53}, {'task': 2, 'start': 172, 'machine': 2, 'duration': 96}, {'task': 3, 'start': 579, 'machine': 0, 'duration': 63}, {'task': 4, 'start': 655, 'machine': 4, 'duration': 62}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 410, 'machine': 0, 'duration': 75}, {'task': 1, 'start': 485, 'machine': 3, 'duration': 15}, {'task': 2, 'start': 500, 'machine': 4, 'duration': 50}, {'task': 3, 'start': 550, 'machine': 1, 'duration': 77}, {'task': 4, 'start': 635, 'machine': 2, 'duration': 91}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 1, 'machine': 3, 'duration': 16}, {'task': 1, 'start': 39, 'machine': 0, 'duration': 68}, {'task': 2, 'start': 268, 'machine': 2, 'duration': 75}, {'task': 3, 'start': 363, 'machine': 1, 'duration': 46}, {'task': 4, 'start': 586, 'machine': 4, 'duration': 69}]}]",726.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 3}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 4, 'duration': 10}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 1, 'duration': 97}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 50}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 1, 'duration': 36}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 2, 'duration': 87}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 4, 'duration': 41}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 44}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 0, 'duration': 2}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 0, 'duration': 39}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 4, 'duration': 68}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 1, 'duration': 69}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 11}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 26}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 31}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 0, 'duration': 94}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 2, 'duration': 47}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 3, 'duration': 39}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 1, 'duration': 8}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 47}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 0, 'duration': 89}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 3, 'duration': 92}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 75}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 62}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 15}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 0, 'duration': 61}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 89}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 2, 'duration': 38}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 1, 'duration': 77}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 3, 'duration': 53}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 2, 'duration': 49}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 0, 'duration': 1}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 4, 'duration': 89}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 1, 'duration': 90}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 4, 'duration': 3}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 0, 'duration': 59}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 3, 'duration': 14}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 2, 'duration': 45}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 1, 'duration': 29}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 1, 'duration': 7}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 0, 'duration': 93}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 9}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 4, 'duration': 95}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 2, 'duration': 74}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 3, 'duration': 43}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 53}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 2, 'duration': 96}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 0, 'duration': 63}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 4, 'duration': 62}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 0, 'duration': 75}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 3, 'duration': 15}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 4, 'duration': 50}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 1, 'duration': 77}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 2, 'duration': 91}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 3, 'duration': 16}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 0, 'duration': 68}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 2, 'duration': 75}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 1, 'duration': 46}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 4, 'duration': 69}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 2, 'duration': 3}, {'task': 2, 'start': 96, 'machine': 4, 'duration': 10}, {'task': 3, 'start': 113, 'machine': 1, 'duration': 97}, {'task': 4, 'start': 644, 'machine': 0, 'duration': 50}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 36}, {'task': 1, 'start': 36, 'machine': 2, 'duration': 87}, {'task': 2, 'start': 174, 'machine': 4, 'duration': 41}, {'task': 3, 'start': 397, 'machine': 3, 'duration': 44}, {'task': 4, 'start': 642, 'machine': 0, 'duration': 2}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 39}, {'task': 1, 'start': 106, 'machine': 4, 'duration': 68}, {'task': 2, 'start': 210, 'machine': 1, 'duration': 69}, {'task': 3, 'start': 288, 'machine': 3, 'duration': 11}, {'task': 4, 'start': 343, 'machine': 2, 'duration': 26}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 62, 'machine': 4, 'duration': 31}, {'task': 1, 'start': 485, 'machine': 0, 'duration': 94}, {'task': 2, 'start': 588, 'machine': 2, 'duration': 47}, {'task': 3, 'start': 635, 'machine': 3, 'duration': 39}, {'task': 4, 'start': 704, 'machine': 1, 'duration': 8}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 47}, {'task': 1, 'start': 107, 'machine': 0, 'duration': 89}, {'task': 2, 'start': 196, 'machine': 3, 'duration': 92}, {'task': 3, 'start': 288, 'machine': 1, 'duration': 75}, {'task': 4, 'start': 369, 'machine': 2, 'duration': 62}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 47, 'machine': 4, 'duration': 15}, {'task': 1, 'start': 197, 'machine': 0, 'duration': 61}, {'task': 2, 'start': 299, 'machine': 3, 'duration': 89}, {'task': 3, 'start': 431, 'machine': 2, 'duration': 38}, {'task': 4, 'start': 627, 'machine': 1, 'duration': 77}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 60, 'machine': 3, 'duration': 53}, {'task': 1, 'start': 123, 'machine': 2, 'duration': 49}, {'task': 2, 'start': 196, 'machine': 0, 'duration': 1}, {'task': 3, 'start': 215, 'machine': 4, 'duration': 89}, {'task': 4, 'start': 409, 'machine': 1, 'duration': 90}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 93, 'machine': 4, 'duration': 3}, {'task': 1, 'start': 351, 'machine': 0, 'duration': 59}, {'task': 2, 'start': 441, 'machine': 3, 'duration': 14}, {'task': 3, 'start': 469, 'machine': 2, 'duration': 45}, {'task': 4, 'start': 514, 'machine': 1, 'duration': 29}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 36, 'machine': 1, 'duration': 7}, {'task': 1, 'start': 258, 'machine': 0, 'duration': 93}, {'task': 2, 'start': 388, 'machine': 3, 'duration': 9}, {'task': 3, 'start': 397, 'machine': 4, 'duration': 95}, {'task': 4, 'start': 514, 'machine': 2, 'duration': 74}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 17, 'machine': 3, 'duration': 43}, {'task': 1, 'start': 60, 'machine': 1, 'duration': 53}, {'task': 2, 'start': 172, 'machine': 2, 'duration': 96}, {'task': 3, 'start': 579, 'machine': 0, 'duration': 63}, {'task': 4, 'start': 655, 'machine': 4, 'duration': 62}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 410, 'machine': 0, 'duration': 75}, {'task': 1, 'start': 485, 'machine': 3, 'duration': 15}, {'task': 2, 'start': 500, 'machine': 4, 'duration': 50}, {'task': 3, 'start': 550, 'machine': 1, 'duration': 77}, {'task': 4, 'start': 635, 'machine': 2, 'duration': 91}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 1, 'machine': 3, 'duration': 16}, {'task': 1, 'start': 39, 'machine': 0, 'duration': 68}, {'task': 2, 'start': 268, 'machine': 2, 'duration': 75}, {'task': 3, 'start': 363, 'machine': 1, 'duration': 46}, {'task': 4, 'start': 586, 'machine': 4, 'duration': 69}]}]",20,json,0 JSP,JSP,"Recently the team wondered how to tighten up turnover: each patient has a set list of stages to go through, every stage takes a fixed amount of time, and rooms can’t be double-booked. The question is how to slot everyone into the rooms over the day so the whole group is done with recovery as soon as possible — the plan is judged by the time the last person finishes recovery — and every required stage must occur once for each patient, in sequence, with no overlaps in a room. The full case and timing details are shown below. It specifies 11 patients and 6 rooms, listed as J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and A, B, C, D, E, F. | patient_id | stage_index | required_room_id | stage_duration | |---|---|---|---| | J1 | 0 | F | 1 | | J1 | 1 | B | 16 | | J1 | 2 | E | 84 | | J1 | 3 | D | 44 | | J1 | 4 | C | 4 | | J1 | 5 | A | 57 | | J2 | 0 | D | 91 | | J2 | 1 | E | 9 | | J2 | 2 | A | 12 | | J2 | 3 | C | 95 | | J2 | 4 | F | 77 | | J2 | 5 | B | 21 | | J3 | 0 | D | 52 | | J3 | 1 | F | 15 | | J3 | 2 | C | 32 | | J3 | 3 | A | 84 | | J3 | 4 | B | 61 | | J3 | 5 | E | 48 | | J4 | 0 | E | 77 | | J4 | 1 | D | 15 | | J4 | 2 | C | 88 | | J4 | 3 | B | 58 | | J4 | 4 | A | 52 | | J4 | 5 | F | 69 | | J5 | 0 | D | 46 | | J5 | 1 | C | 67 | | J5 | 2 | A | 70 | | J5 | 3 | F | 54 | | J5 | 4 | B | 79 | | J5 | 5 | E | 47 | | J6 | 0 | E | 44 | | J6 | 1 | A | 26 | | J6 | 2 | D | 27 | | J6 | 3 | C | 94 | | J6 | 4 | B | 64 | | J6 | 5 | F | 35 | | J7 | 0 | C | 23 | | J7 | 1 | A | 89 | | J7 | 2 | E | 44 | | J7 | 3 | F | 65 | | J7 | 4 | B | 32 | | J7 | 5 | D | 91 | | J8 | 0 | B | 80 | | J8 | 1 | F | 71 | | J8 | 2 | C | 40 | | J8 | 3 | A | 51 | | J8 | 4 | D | 16 | | J8 | 5 | E | 85 | | J9 | 0 | F | 90 | | J9 | 1 | D | 6 | | J9 | 2 | A | 52 | | J9 | 3 | B | 62 | | J9 | 4 | C | 74 | | J9 | 5 | E | 5 | | J10 | 0 | B | 28 | | J10 | 1 | E | 33 | | J10 | 2 | A | 17 | | J10 | 3 | D | 65 | | J10 | 4 | F | 37 | | J10 | 5 | C | 75 | | J11 | 0 | F | 9 | | J11 | 1 | D | 28 | | J11 | 2 | A | 2 | | J11 | 3 | B | 78 | | J11 | 4 | E | 18 | | J11 | 5 | C | 63 | Each listed stage must occur once per patient in sequence, and rooms cannot be double-booked. If you want the schedule back in a tidy, machine-friendly way, just send it in this little JSON shape — nothing fancy, just a list of each job and its tasks with start times and machines. Here's the shape I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a simple form: ""solution"" is a list of patients (jobs), each patient entry has a ""tasks"" list, and each task says which step it is, when it starts, which room (machine) it's in, and how long it lasts. This is just a sketch of the shape I need — not the real schedule yet. Please use the exact identifiers from the instance input — don't rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 11, 'jobs': [[[5, 1], [1, 16], [4, 84], [3, 44], [2, 4], [0, 57]], [[3, 91], [4, 9], [0, 12], [2, 95], [5, 77], [1, 21]], [[3, 52], [5, 15], [2, 32], [0, 84], [1, 61], [4, 48]], [[4, 77], [3, 15], [2, 88], [1, 58], [0, 52], [5, 69]], [[3, 46], [2, 67], [0, 70], [5, 54], [1, 79], [4, 47]], [[4, 44], [0, 26], [3, 27], [2, 94], [1, 64], [5, 35]], [[2, 23], [0, 89], [4, 44], [5, 65], [1, 32], [3, 91]], [[1, 80], [5, 71], [2, 40], [0, 51], [3, 16], [4, 85]], [[5, 90], [3, 6], [0, 52], [1, 62], [2, 74], [4, 5]], [[1, 28], [4, 33], [0, 17], [3, 65], [5, 37], [2, 75]], [[5, 9], [3, 28], [0, 2], [1, 78], [4, 18], [2, 63]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 185, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 186, 'machine': 1, 'duration': 16}, {'task': 2, 'start': 202, 'machine': 4, 'duration': 84}, {'task': 3, 'start': 330, 'machine': 3, 'duration': 44}, {'task': 4, 'start': 611, 'machine': 2, 'duration': 4}, {'task': 5, 'start': 615, 'machine': 0, 'duration': 57}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 113, 'machine': 3, 'duration': 91}, {'task': 1, 'start': 286, 'machine': 4, 'duration': 9}, {'task': 2, 'start': 362, 'machine': 0, 'duration': 12}, {'task': 3, 'start': 441, 'machine': 2, 'duration': 95}, {'task': 4, 'start': 548, 'machine': 5, 'duration': 77}, {'task': 5, 'start': 636, 'machine': 1, 'duration': 21}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 46, 'machine': 3, 'duration': 52}, {'task': 1, 'start': 161, 'machine': 5, 'duration': 15}, {'task': 2, 'start': 201, 'machine': 2, 'duration': 32}, {'task': 3, 'start': 278, 'machine': 0, 'duration': 84}, {'task': 4, 'start': 511, 'machine': 1, 'duration': 61}, {'task': 5, 'start': 588, 'machine': 4, 'duration': 48}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 77}, {'task': 1, 'start': 98, 'machine': 3, 'duration': 15}, {'task': 2, 'start': 113, 'machine': 2, 'duration': 88}, {'task': 3, 'start': 202, 'machine': 1, 'duration': 58}, {'task': 4, 'start': 427, 'machine': 0, 'duration': 52}, {'task': 5, 'start': 479, 'machine': 5, 'duration': 69}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 46}, {'task': 1, 'start': 46, 'machine': 2, 'duration': 67}, {'task': 2, 'start': 113, 'machine': 0, 'duration': 70}, {'task': 3, 'start': 251, 'machine': 5, 'duration': 54}, {'task': 4, 'start': 354, 'machine': 1, 'duration': 79}, {'task': 5, 'start': 433, 'machine': 4, 'duration': 47}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 77, 'machine': 4, 'duration': 44}, {'task': 1, 'start': 183, 'machine': 0, 'duration': 26}, {'task': 2, 'start': 210, 'machine': 3, 'duration': 27}, {'task': 3, 'start': 273, 'machine': 2, 'duration': 94}, {'task': 4, 'start': 572, 'machine': 1, 'duration': 64}, {'task': 5, 'start': 636, 'machine': 5, 'duration': 35}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 23}, {'task': 1, 'start': 23, 'machine': 0, 'duration': 89}, {'task': 2, 'start': 121, 'machine': 4, 'duration': 44}, {'task': 3, 'start': 186, 'machine': 5, 'duration': 65}, {'task': 4, 'start': 260, 'machine': 1, 'duration': 32}, {'task': 5, 'start': 374, 'machine': 3, 'duration': 91}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 80}, {'task': 1, 'start': 90, 'machine': 5, 'duration': 71}, {'task': 2, 'start': 233, 'machine': 2, 'duration': 40}, {'task': 3, 'start': 376, 'machine': 0, 'duration': 51}, {'task': 4, 'start': 465, 'machine': 3, 'duration': 16}, {'task': 5, 'start': 485, 'machine': 4, 'duration': 85}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 90}, {'task': 1, 'start': 204, 'machine': 3, 'duration': 6}, {'task': 2, 'start': 226, 'machine': 0, 'duration': 52}, {'task': 3, 'start': 292, 'machine': 1, 'duration': 62}, {'task': 4, 'start': 367, 'machine': 2, 'duration': 74}, {'task': 5, 'start': 480, 'machine': 4, 'duration': 5}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 80, 'machine': 1, 'duration': 28}, {'task': 1, 'start': 165, 'machine': 4, 'duration': 33}, {'task': 2, 'start': 209, 'machine': 0, 'duration': 17}, {'task': 3, 'start': 265, 'machine': 3, 'duration': 65}, {'task': 4, 'start': 330, 'machine': 5, 'duration': 37}, {'task': 5, 'start': 536, 'machine': 2, 'duration': 75}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 176, 'machine': 5, 'duration': 9}, {'task': 1, 'start': 237, 'machine': 3, 'duration': 28}, {'task': 2, 'start': 374, 'machine': 0, 'duration': 2}, {'task': 3, 'start': 433, 'machine': 1, 'duration': 78}, {'task': 4, 'start': 570, 'machine': 4, 'duration': 18}, {'task': 5, 'start': 615, 'machine': 2, 'duration': 63}]}]",678.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'F', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 16}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'E', 'duration': 84}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'D', 'duration': 44}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'C', 'duration': 4}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 57}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'D', 'duration': 91}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'E', 'duration': 9}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'A', 'duration': 12}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'C', 'duration': 95}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'F', 'duration': 77}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'B', 'duration': 21}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'D', 'duration': 52}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'F', 'duration': 15}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'C', 'duration': 32}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'A', 'duration': 84}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'B', 'duration': 61}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'E', 'duration': 48}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 77}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 15}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'C', 'duration': 88}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 58}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 52}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'F', 'duration': 69}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'D', 'duration': 46}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'C', 'duration': 67}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'A', 'duration': 70}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'F', 'duration': 54}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'B', 'duration': 79}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'E', 'duration': 47}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'E', 'duration': 44}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'A', 'duration': 26}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 27}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'C', 'duration': 94}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'B', 'duration': 64}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'F', 'duration': 35}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'C', 'duration': 23}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'A', 'duration': 89}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'E', 'duration': 44}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'F', 'duration': 65}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'B', 'duration': 32}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'D', 'duration': 91}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'B', 'duration': 80}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'F', 'duration': 71}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 40}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 51}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'D', 'duration': 16}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'E', 'duration': 85}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'F', 'duration': 90}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'D', 'duration': 6}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'A', 'duration': 52}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'B', 'duration': 62}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'C', 'duration': 74}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'E', 'duration': 5}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'B', 'duration': 28}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'E', 'duration': 33}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'A', 'duration': 17}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'D', 'duration': 65}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'F', 'duration': 37}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'C', 'duration': 75}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'F', 'duration': 9}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'D', 'duration': 28}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'A', 'duration': 2}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'B', 'duration': 78}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 'C', 'duration': 63}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 185, 'machine': 'F', 'duration': 1}, {'task': 1, 'start': 186, 'machine': 'B', 'duration': 16}, {'task': 2, 'start': 202, 'machine': 'E', 'duration': 84}, {'task': 3, 'start': 330, 'machine': 'D', 'duration': 44}, {'task': 4, 'start': 611, 'machine': 'C', 'duration': 4}, {'task': 5, 'start': 615, 'machine': 'A', 'duration': 57}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 113, 'machine': 'D', 'duration': 91}, {'task': 1, 'start': 286, 'machine': 'E', 'duration': 9}, {'task': 2, 'start': 362, 'machine': 'A', 'duration': 12}, {'task': 3, 'start': 441, 'machine': 'C', 'duration': 95}, {'task': 4, 'start': 548, 'machine': 'F', 'duration': 77}, {'task': 5, 'start': 636, 'machine': 'B', 'duration': 21}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 46, 'machine': 'D', 'duration': 52}, {'task': 1, 'start': 161, 'machine': 'F', 'duration': 15}, {'task': 2, 'start': 201, 'machine': 'C', 'duration': 32}, {'task': 3, 'start': 278, 'machine': 'A', 'duration': 84}, {'task': 4, 'start': 511, 'machine': 'B', 'duration': 61}, {'task': 5, 'start': 588, 'machine': 'E', 'duration': 48}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 77}, {'task': 1, 'start': 98, 'machine': 'D', 'duration': 15}, {'task': 2, 'start': 113, 'machine': 'C', 'duration': 88}, {'task': 3, 'start': 202, 'machine': 'B', 'duration': 58}, {'task': 4, 'start': 427, 'machine': 'A', 'duration': 52}, {'task': 5, 'start': 479, 'machine': 'F', 'duration': 69}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 46}, {'task': 1, 'start': 46, 'machine': 'C', 'duration': 67}, {'task': 2, 'start': 113, 'machine': 'A', 'duration': 70}, {'task': 3, 'start': 251, 'machine': 'F', 'duration': 54}, {'task': 4, 'start': 354, 'machine': 'B', 'duration': 79}, {'task': 5, 'start': 433, 'machine': 'E', 'duration': 47}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 77, 'machine': 'E', 'duration': 44}, {'task': 1, 'start': 183, 'machine': 'A', 'duration': 26}, {'task': 2, 'start': 210, 'machine': 'D', 'duration': 27}, {'task': 3, 'start': 273, 'machine': 'C', 'duration': 94}, {'task': 4, 'start': 572, 'machine': 'B', 'duration': 64}, {'task': 5, 'start': 636, 'machine': 'F', 'duration': 35}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 23}, {'task': 1, 'start': 23, 'machine': 'A', 'duration': 89}, {'task': 2, 'start': 121, 'machine': 'E', 'duration': 44}, {'task': 3, 'start': 186, 'machine': 'F', 'duration': 65}, {'task': 4, 'start': 260, 'machine': 'B', 'duration': 32}, {'task': 5, 'start': 374, 'machine': 'D', 'duration': 91}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 80}, {'task': 1, 'start': 90, 'machine': 'F', 'duration': 71}, {'task': 2, 'start': 233, 'machine': 'C', 'duration': 40}, {'task': 3, 'start': 376, 'machine': 'A', 'duration': 51}, {'task': 4, 'start': 465, 'machine': 'D', 'duration': 16}, {'task': 5, 'start': 485, 'machine': 'E', 'duration': 85}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 90}, {'task': 1, 'start': 204, 'machine': 'D', 'duration': 6}, {'task': 2, 'start': 226, 'machine': 'A', 'duration': 52}, {'task': 3, 'start': 292, 'machine': 'B', 'duration': 62}, {'task': 4, 'start': 367, 'machine': 'C', 'duration': 74}, {'task': 5, 'start': 480, 'machine': 'E', 'duration': 5}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 80, 'machine': 'B', 'duration': 28}, {'task': 1, 'start': 165, 'machine': 'E', 'duration': 33}, {'task': 2, 'start': 209, 'machine': 'A', 'duration': 17}, {'task': 3, 'start': 265, 'machine': 'D', 'duration': 65}, {'task': 4, 'start': 330, 'machine': 'F', 'duration': 37}, {'task': 5, 'start': 536, 'machine': 'C', 'duration': 75}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 176, 'machine': 'F', 'duration': 9}, {'task': 1, 'start': 237, 'machine': 'D', 'duration': 28}, {'task': 2, 'start': 374, 'machine': 'A', 'duration': 2}, {'task': 3, 'start': 433, 'machine': 'B', 'duration': 78}, {'task': 4, 'start': 570, 'machine': 'E', 'duration': 18}, {'task': 5, 'start': 615, 'machine': 'C', 'duration': 63}]}]",21,markdown_table,names JSP,JSP,"We had to map out the crew and equipment so several construction units could get finished without wasting time: each operation on a unit has a fixed duration, machines can’t split themselves between tasks, and the steps for every unit must happen in the order they’re laid out. The decision is the sequence and timing of assignments across crews and machines so the last unit is completed as soon as possible — the key metric is the time stamp when the final job ends. The exact numbers and tasks are listed below. We listed 10 construction units (J1, J2, J3, J4, J5, J6, J7, J8, J9, J10) and 5 heavy equipment pieces (A, B, C, D, E) to schedule. | unit_id | step_index | required_equipment_id | operation_duration | |---|---|---|---| | J1 | 0 | D | 1 | | J1 | 1 | E | 29 | | J1 | 2 | B | 60 | | J1 | 3 | C | 89 | | J1 | 4 | A | 56 | | J2 | 0 | C | 79 | | J2 | 1 | A | 96 | | J2 | 2 | D | 77 | | J2 | 3 | E | 79 | | J2 | 4 | B | 88 | | J3 | 0 | C | 16 | | J3 | 1 | B | 72 | | J3 | 2 | A | 35 | | J3 | 3 | E | 18 | | J3 | 4 | D | 37 | | J4 | 0 | B | 37 | | J4 | 1 | E | 28 | | J4 | 2 | C | 49 | | J4 | 3 | D | 16 | | J4 | 4 | A | 21 | | J5 | 0 | C | 30 | | J5 | 1 | E | 27 | | J5 | 2 | A | 11 | | J5 | 3 | B | 62 | | J5 | 4 | D | 31 | | J6 | 0 | E | 20 | | J6 | 1 | B | 79 | | J6 | 2 | C | 20 | | J6 | 3 | D | 21 | | J6 | 4 | A | 18 | | J7 | 0 | C | 35 | | J7 | 1 | A | 2 | | J7 | 2 | D | 53 | | J7 | 3 | B | 99 | | J7 | 4 | E | 37 | | J8 | 0 | D | 68 | | J8 | 1 | C | 85 | | J8 | 2 | E | 65 | | J8 | 3 | A | 44 | | J8 | 4 | B | 2 | | J9 | 0 | B | 56 | | J9 | 1 | D | 90 | | J9 | 2 | E | 53 | | J9 | 3 | C | 46 | | J9 | 4 | A | 5 | | J10 | 0 | E | 58 | | J10 | 1 | A | 79 | | J10 | 2 | C | 73 | | J10 | 3 | D | 18 | | J10 | 4 | B | 49 | We prioritized finishing the last unit as early as possible. Also, to keep things tidy, please return the planned schedule in this simple JSON shape when you submit the solution: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a small form: ""solution"" is a list of jobs, each job entry names which job it is and then lists its tasks; every task line just says which step it is, when it starts, which machine it runs on, and how long it takes. Super casual — it's just the shape I need, not the actual schedule yet. This JSON is only a sketch of the expected format, not the final answer. Please make sure all identifiers are used exactly as they appear in the instance input — no renaming and no new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 10, 'jobs': [[[3, 1], [4, 29], [1, 60], [2, 89], [0, 56]], [[2, 79], [0, 96], [3, 77], [4, 79], [1, 88]], [[2, 16], [1, 72], [0, 35], [4, 18], [3, 37]], [[1, 37], [4, 28], [2, 49], [3, 16], [0, 21]], [[2, 30], [4, 27], [0, 11], [1, 62], [3, 31]], [[4, 20], [1, 79], [2, 20], [3, 21], [0, 18]], [[2, 35], [0, 2], [3, 53], [1, 99], [4, 37]], [[3, 68], [2, 85], [4, 65], [0, 44], [1, 2]], [[1, 56], [3, 90], [4, 53], [2, 46], [0, 5]], [[4, 58], [0, 79], [2, 73], [3, 18], [1, 49]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 68, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 78, 'machine': 4, 'duration': 29}, {'task': 2, 'start': 172, 'machine': 1, 'duration': 60}, {'task': 3, 'start': 245, 'machine': 2, 'duration': 89}, {'task': 4, 'start': 367, 'machine': 0, 'duration': 56}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 79}, {'task': 1, 'start': 137, 'machine': 0, 'duration': 96}, {'task': 2, 'start': 288, 'machine': 3, 'duration': 77}, {'task': 3, 'start': 365, 'machine': 4, 'duration': 79}, {'task': 4, 'start': 465, 'machine': 1, 'duration': 88}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 199, 'machine': 2, 'duration': 16}, {'task': 1, 'start': 232, 'machine': 1, 'duration': 72}, {'task': 2, 'start': 332, 'machine': 0, 'duration': 35}, {'task': 3, 'start': 444, 'machine': 4, 'duration': 18}, {'task': 4, 'start': 472, 'machine': 3, 'duration': 37}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 56, 'machine': 1, 'duration': 37}, {'task': 1, 'start': 107, 'machine': 4, 'duration': 28}, {'task': 2, 'start': 407, 'machine': 2, 'duration': 49}, {'task': 3, 'start': 456, 'machine': 3, 'duration': 16}, {'task': 4, 'start': 472, 'machine': 0, 'duration': 21}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 215, 'machine': 2, 'duration': 30}, {'task': 1, 'start': 277, 'machine': 4, 'duration': 27}, {'task': 2, 'start': 321, 'machine': 0, 'duration': 11}, {'task': 3, 'start': 403, 'machine': 1, 'duration': 62}, {'task': 4, 'start': 530, 'machine': 3, 'duration': 31}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 58, 'machine': 4, 'duration': 20}, {'task': 1, 'start': 93, 'machine': 1, 'duration': 79}, {'task': 2, 'start': 456, 'machine': 2, 'duration': 20}, {'task': 3, 'start': 509, 'machine': 3, 'duration': 21}, {'task': 4, 'start': 530, 'machine': 0, 'duration': 18}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 79, 'machine': 2, 'duration': 35}, {'task': 1, 'start': 233, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 235, 'machine': 3, 'duration': 53}, {'task': 3, 'start': 304, 'machine': 1, 'duration': 99}, {'task': 4, 'start': 462, 'machine': 4, 'duration': 37}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 68}, {'task': 1, 'start': 114, 'machine': 2, 'duration': 85}, {'task': 2, 'start': 212, 'machine': 4, 'duration': 65}, {'task': 3, 'start': 277, 'machine': 0, 'duration': 44}, {'task': 4, 'start': 602, 'machine': 1, 'duration': 2}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 56}, {'task': 1, 'start': 69, 'machine': 3, 'duration': 90}, {'task': 2, 'start': 159, 'machine': 4, 'duration': 53}, {'task': 3, 'start': 476, 'machine': 2, 'duration': 46}, {'task': 4, 'start': 522, 'machine': 0, 'duration': 5}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 58}, {'task': 1, 'start': 58, 'machine': 0, 'duration': 79}, {'task': 2, 'start': 334, 'machine': 2, 'duration': 73}, {'task': 3, 'start': 407, 'machine': 3, 'duration': 18}, {'task': 4, 'start': 553, 'machine': 1, 'duration': 49}]}]",604.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 29}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 60}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 89}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 56}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'C', 'duration': 79}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'A', 'duration': 96}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'D', 'duration': 77}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'E', 'duration': 79}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'B', 'duration': 88}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'C', 'duration': 16}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'B', 'duration': 72}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'A', 'duration': 35}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'D', 'duration': 37}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'B', 'duration': 37}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'E', 'duration': 28}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'C', 'duration': 49}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'D', 'duration': 16}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 21}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'C', 'duration': 30}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'E', 'duration': 27}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'A', 'duration': 11}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 62}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 31}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'E', 'duration': 20}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'B', 'duration': 79}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'C', 'duration': 20}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'D', 'duration': 21}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'A', 'duration': 18}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'C', 'duration': 35}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'A', 'duration': 2}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'D', 'duration': 53}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'B', 'duration': 99}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'E', 'duration': 37}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'D', 'duration': 68}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'C', 'duration': 85}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'E', 'duration': 65}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 44}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'B', 'duration': 2}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'B', 'duration': 56}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'D', 'duration': 90}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'E', 'duration': 53}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'C', 'duration': 46}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'A', 'duration': 5}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'E', 'duration': 58}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'A', 'duration': 79}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'C', 'duration': 73}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'D', 'duration': 18}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'B', 'duration': 49}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 68, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 78, 'machine': 'E', 'duration': 29}, {'task': 2, 'start': 172, 'machine': 'B', 'duration': 60}, {'task': 3, 'start': 245, 'machine': 'C', 'duration': 89}, {'task': 4, 'start': 367, 'machine': 'A', 'duration': 56}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 79}, {'task': 1, 'start': 137, 'machine': 'A', 'duration': 96}, {'task': 2, 'start': 288, 'machine': 'D', 'duration': 77}, {'task': 3, 'start': 365, 'machine': 'E', 'duration': 79}, {'task': 4, 'start': 465, 'machine': 'B', 'duration': 88}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 199, 'machine': 'C', 'duration': 16}, {'task': 1, 'start': 232, 'machine': 'B', 'duration': 72}, {'task': 2, 'start': 332, 'machine': 'A', 'duration': 35}, {'task': 3, 'start': 444, 'machine': 'E', 'duration': 18}, {'task': 4, 'start': 472, 'machine': 'D', 'duration': 37}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 56, 'machine': 'B', 'duration': 37}, {'task': 1, 'start': 107, 'machine': 'E', 'duration': 28}, {'task': 2, 'start': 407, 'machine': 'C', 'duration': 49}, {'task': 3, 'start': 456, 'machine': 'D', 'duration': 16}, {'task': 4, 'start': 472, 'machine': 'A', 'duration': 21}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 215, 'machine': 'C', 'duration': 30}, {'task': 1, 'start': 277, 'machine': 'E', 'duration': 27}, {'task': 2, 'start': 321, 'machine': 'A', 'duration': 11}, {'task': 3, 'start': 403, 'machine': 'B', 'duration': 62}, {'task': 4, 'start': 530, 'machine': 'D', 'duration': 31}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 58, 'machine': 'E', 'duration': 20}, {'task': 1, 'start': 93, 'machine': 'B', 'duration': 79}, {'task': 2, 'start': 456, 'machine': 'C', 'duration': 20}, {'task': 3, 'start': 509, 'machine': 'D', 'duration': 21}, {'task': 4, 'start': 530, 'machine': 'A', 'duration': 18}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 79, 'machine': 'C', 'duration': 35}, {'task': 1, 'start': 233, 'machine': 'A', 'duration': 2}, {'task': 2, 'start': 235, 'machine': 'D', 'duration': 53}, {'task': 3, 'start': 304, 'machine': 'B', 'duration': 99}, {'task': 4, 'start': 462, 'machine': 'E', 'duration': 37}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 68}, {'task': 1, 'start': 114, 'machine': 'C', 'duration': 85}, {'task': 2, 'start': 212, 'machine': 'E', 'duration': 65}, {'task': 3, 'start': 277, 'machine': 'A', 'duration': 44}, {'task': 4, 'start': 602, 'machine': 'B', 'duration': 2}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 56}, {'task': 1, 'start': 69, 'machine': 'D', 'duration': 90}, {'task': 2, 'start': 159, 'machine': 'E', 'duration': 53}, {'task': 3, 'start': 476, 'machine': 'C', 'duration': 46}, {'task': 4, 'start': 522, 'machine': 'A', 'duration': 5}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 58}, {'task': 1, 'start': 58, 'machine': 'A', 'duration': 79}, {'task': 2, 'start': 334, 'machine': 'C', 'duration': 73}, {'task': 3, 'start': 407, 'machine': 'D', 'duration': 18}, {'task': 4, 'start': 553, 'machine': 'B', 'duration': 49}]}]",22,markdown_table,names JSP,JSP,"I’m juggling a stack of feature builds, each one made of a fixed line-up of steps that have to happen in order. Each step needs a specific server and a known amount of time, and a server can only handle one step at a time. The job is to pick when and in what order those steps run so the whole batch is done as early as possible — measured by the time the last feature finishes (so look at every feature’s completion time and the biggest one is the score). Nothing can be skipped or done twice, every step must run on its assigned server, and the steps for a feature must keep their given order. The exact servers, step times, and feature sequences are listed below. { ""nr_features"": 9, ""nr_servers"": 5, ""features_list"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"" ], ""servers_list"": [ 0, 1, 2, 3, 4 ], ""tasks"": [ { ""feature_id"": ""J1"", ""step_index"": 0, ""server_id"": 4, ""step_duration"": 1 }, { ""feature_id"": ""J1"", ""step_index"": 1, ""server_id"": 2, ""step_duration"": 42 }, { ""feature_id"": ""J1"", ""step_index"": 2, ""server_id"": 1, ""step_duration"": 36 }, { ""feature_id"": ""J1"", ""step_index"": 3, ""server_id"": 3, ""step_duration"": 36 }, { ""feature_id"": ""J1"", ""step_index"": 4, ""server_id"": 0, ""step_duration"": 10 }, { ""feature_id"": ""J2"", ""step_index"": 0, ""server_id"": 4, ""step_duration"": 2 }, { ""feature_id"": ""J2"", ""step_index"": 1, ""server_id"": 0, ""step_duration"": 2 }, { ""feature_id"": ""J2"", ""step_index"": 2, ""server_id"": 1, ""step_duration"": 45 }, { ""feature_id"": ""J2"", ""step_index"": 3, ""server_id"": 2, ""step_duration"": 48 }, { ""feature_id"": ""J2"", ""step_index"": 4, ""server_id"": 3, ""step_duration"": 82 }, { ""feature_id"": ""J3"", ""step_index"": 0, ""server_id"": 3, ""step_duration"": 54 }, { ""feature_id"": ""J3"", ""step_index"": 1, ""server_id"": 0, ""step_duration"": 25 }, { ""feature_id"": ""J3"", ""step_index"": 2, ""server_id"": 1, ""step_duration"": 18 }, { ""feature_id"": ""J3"", ""step_index"": 3, ""server_id"": 4, ""step_duration"": 22 }, { ""feature_id"": ""J3"", ""step_index"": 4, ""server_id"": 2, ""step_duration"": 42 }, { ""feature_id"": ""J4"", ""step_index"": 0, ""server_id"": 2, ""step_duration"": 90 }, { ""feature_id"": ""J4"", ""step_index"": 1, ""server_id"": 1, ""step_duration"": 95 }, { ""feature_id"": ""J4"", ""step_index"": 2, ""server_id"": 0, ""step_duration"": 49 }, { ""feature_id"": ""J4"", ""step_index"": 3, ""server_id"": 3, ""step_duration"": 54 }, { ""feature_id"": ""J4"", ""step_index"": 4, ""server_id"": 4, ""step_duration"": 28 }, { ""feature_id"": ""J5"", ""step_index"": 0, ""server_id"": 0, ""step_duration"": 72 }, { ""feature_id"": ""J5"", ""step_index"": 1, ""server_id"": 3, ""step_duration"": 95 }, { ""feature_id"": ""J5"", ""step_index"": 2, ""server_id"": 4, ""step_duration"": 69 }, { ""feature_id"": ""J5"", ""step_index"": 3, ""server_id"": 1, ""step_duration"": 55 }, { ""feature_id"": ""J5"", ""step_index"": 4, ""server_id"": 2, ""step_duration"": 16 }, { ""feature_id"": ""J6"", ""step_index"": 0, ""server_id"": 0, ""step_duration"": 72 }, { ""feature_id"": ""J6"", ""step_index"": 1, ""server_id"": 3, ""step_duration"": 88 }, { ""feature_id"": ""J6"", ""step_index"": 2, ""server_id"": 1, ""step_duration"": 85 }, { ""feature_id"": ""J6"", ""step_index"": 3, ""server_id"": 4, ""step_duration"": 62 }, { ""feature_id"": ""J6"", ""step_index"": 4, ""server_id"": 2, ""step_duration"": 87 }, { ""feature_id"": ""J7"", ""step_index"": 0, ""server_id"": 2, ""step_duration"": 26 }, { ""feature_id"": ""J7"", ""step_index"": 1, ""server_id"": 3, ""step_duration"": 78 }, { ""feature_id"": ""J7"", ""step_index"": 2, ""server_id"": 1, ""step_duration"": 79 }, { ""feature_id"": ""J7"", ""step_index"": 3, ""server_id"": 0, ""step_duration"": 4 }, { ""feature_id"": ""J7"", ""step_index"": 4, ""server_id"": 4, ""step_duration"": 11 }, { ""feature_id"": ""J8"", ""step_index"": 0, ""server_id"": 0, ""step_duration"": 1 }, { ""feature_id"": ""J8"", ""step_index"": 1, ""server_id"": 2, ""step_duration"": 49 }, { ""feature_id"": ""J8"", ""step_index"": 2, ""server_id"": 1, ""step_duration"": 41 }, { ""feature_id"": ""J8"", ""step_index"": 3, ""server_id"": 4, ""step_duration"": 43 }, { ""feature_id"": ""J8"", ""step_index"": 4, ""server_id"": 3, ""step_duration"": 38 }, { ""feature_id"": ""J9"", ""step_index"": 0, ""server_id"": 4, ""step_duration"": 81 }, { ""feature_id"": ""J9"", ""step_index"": 1, ""server_id"": 0, ""step_duration"": 88 }, { ""feature_id"": ""J9"", ""step_index"": 2, ""server_id"": 3, ""step_duration"": 25 }, { ""feature_id"": ""J9"", ""step_index"": 3, ""server_id"": 2, ""step_duration"": 22 }, { ""feature_id"": ""J9"", ""step_index"": 4, ""server_id"": 1, ""step_duration"": 70 } ] } Also, when you send back a schedule, it'd be great if you follow a simple JSON layout so I can read it reliably. Something like this shows the shape I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it as a little form: ""solution"" is the list of features (jobs), each entry names the job and lists its steps (tasks). For each step you give which step index it is, when it starts, which server (machine) it runs on, and how long it takes. Super casual — just the fields shown, nothing fancy. This block is just a sketch of the expected shape, not the actual schedule — I'll need the real numbers and the exact job/machine identifiers from the instance. Please use the identifiers exactly as they appear in the instance input — no renaming and no new labels. For example: Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[4, 1], [2, 42], [1, 36], [3, 36], [0, 10]], [[4, 2], [0, 2], [1, 45], [2, 48], [3, 82]], [[3, 54], [0, 25], [1, 18], [4, 22], [2, 42]], [[2, 90], [1, 95], [0, 49], [3, 54], [4, 28]], [[0, 72], [3, 95], [4, 69], [1, 55], [2, 16]], [[0, 72], [3, 88], [1, 85], [4, 62], [2, 87]], [[2, 26], [3, 78], [1, 79], [0, 4], [4, 11]], [[0, 1], [2, 49], [1, 41], [4, 43], [3, 38]], [[4, 81], [0, 88], [3, 25], [2, 22], [1, 70]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 2, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 26, 'machine': 2, 'duration': 42}, {'task': 2, 'start': 68, 'machine': 1, 'duration': 36}, {'task': 3, 'start': 476, 'machine': 3, 'duration': 36}, {'task': 4, 'start': 512, 'machine': 0, 'duration': 10}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 2}, {'task': 1, 'start': 2, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 4, 'machine': 1, 'duration': 45}, {'task': 3, 'start': 68, 'machine': 2, 'duration': 48}, {'task': 4, 'start': 340, 'machine': 3, 'duration': 82}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 54}, {'task': 1, 'start': 76, 'machine': 0, 'duration': 25}, {'task': 2, 'start': 104, 'machine': 1, 'duration': 18}, {'task': 3, 'start': 122, 'machine': 4, 'duration': 22}, {'task': 4, 'start': 255, 'machine': 2, 'duration': 42}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 116, 'machine': 2, 'duration': 90}, {'task': 1, 'start': 211, 'machine': 1, 'duration': 95}, {'task': 2, 'start': 306, 'machine': 0, 'duration': 49}, {'task': 3, 'start': 422, 'machine': 3, 'duration': 54}, {'task': 4, 'start': 507, 'machine': 4, 'duration': 28}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 101, 'machine': 0, 'duration': 72}, {'task': 1, 'start': 220, 'machine': 3, 'duration': 95}, {'task': 2, 'start': 315, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 432, 'machine': 1, 'duration': 55}, {'task': 4, 'start': 540, 'machine': 2, 'duration': 16}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 4, 'machine': 0, 'duration': 72}, {'task': 1, 'start': 132, 'machine': 3, 'duration': 88}, {'task': 2, 'start': 306, 'machine': 1, 'duration': 85}, {'task': 3, 'start': 391, 'machine': 4, 'duration': 62}, {'task': 4, 'start': 453, 'machine': 2, 'duration': 87}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 26}, {'task': 1, 'start': 54, 'machine': 3, 'duration': 78}, {'task': 2, 'start': 132, 'machine': 1, 'duration': 79}, {'task': 3, 'start': 420, 'machine': 0, 'duration': 4}, {'task': 4, 'start': 453, 'machine': 4, 'duration': 11}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 1}, {'task': 1, 'start': 206, 'machine': 2, 'duration': 49}, {'task': 2, 'start': 391, 'machine': 1, 'duration': 41}, {'task': 3, 'start': 464, 'machine': 4, 'duration': 43}, {'task': 4, 'start': 512, 'machine': 3, 'duration': 38}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 3, 'machine': 4, 'duration': 81}, {'task': 1, 'start': 173, 'machine': 0, 'duration': 88}, {'task': 2, 'start': 315, 'machine': 3, 'duration': 25}, {'task': 3, 'start': 340, 'machine': 2, 'duration': 22}, {'task': 4, 'start': 487, 'machine': 1, 'duration': 70}]}]",557.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 4, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 42}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 1, 'duration': 36}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 3, 'duration': 36}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 10}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 4, 'duration': 2}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 0, 'duration': 2}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 45}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 48}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 82}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 3, 'duration': 54}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 0, 'duration': 25}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 1, 'duration': 18}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 4, 'duration': 22}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 42}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 2, 'duration': 90}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 1, 'duration': 95}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 49}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 3, 'duration': 54}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 4, 'duration': 28}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 0, 'duration': 72}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 95}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 4, 'duration': 69}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 55}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 16}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 0, 'duration': 72}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 88}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 85}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 4, 'duration': 62}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 2, 'duration': 87}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 2, 'duration': 26}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 78}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 1, 'duration': 79}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 0, 'duration': 4}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 4, 'duration': 11}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 0, 'duration': 1}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 2, 'duration': 49}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 1, 'duration': 41}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 4, 'duration': 43}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 38}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 81}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 0, 'duration': 88}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 25}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 22}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 70}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 2, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 26, 'machine': 2, 'duration': 42}, {'task': 2, 'start': 68, 'machine': 1, 'duration': 36}, {'task': 3, 'start': 476, 'machine': 3, 'duration': 36}, {'task': 4, 'start': 512, 'machine': 0, 'duration': 10}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 2}, {'task': 1, 'start': 2, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 4, 'machine': 1, 'duration': 45}, {'task': 3, 'start': 68, 'machine': 2, 'duration': 48}, {'task': 4, 'start': 340, 'machine': 3, 'duration': 82}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 54}, {'task': 1, 'start': 76, 'machine': 0, 'duration': 25}, {'task': 2, 'start': 104, 'machine': 1, 'duration': 18}, {'task': 3, 'start': 122, 'machine': 4, 'duration': 22}, {'task': 4, 'start': 255, 'machine': 2, 'duration': 42}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 116, 'machine': 2, 'duration': 90}, {'task': 1, 'start': 211, 'machine': 1, 'duration': 95}, {'task': 2, 'start': 306, 'machine': 0, 'duration': 49}, {'task': 3, 'start': 422, 'machine': 3, 'duration': 54}, {'task': 4, 'start': 507, 'machine': 4, 'duration': 28}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 101, 'machine': 0, 'duration': 72}, {'task': 1, 'start': 220, 'machine': 3, 'duration': 95}, {'task': 2, 'start': 315, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 432, 'machine': 1, 'duration': 55}, {'task': 4, 'start': 540, 'machine': 2, 'duration': 16}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 4, 'machine': 0, 'duration': 72}, {'task': 1, 'start': 132, 'machine': 3, 'duration': 88}, {'task': 2, 'start': 306, 'machine': 1, 'duration': 85}, {'task': 3, 'start': 391, 'machine': 4, 'duration': 62}, {'task': 4, 'start': 453, 'machine': 2, 'duration': 87}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 26}, {'task': 1, 'start': 54, 'machine': 3, 'duration': 78}, {'task': 2, 'start': 132, 'machine': 1, 'duration': 79}, {'task': 3, 'start': 420, 'machine': 0, 'duration': 4}, {'task': 4, 'start': 453, 'machine': 4, 'duration': 11}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 1}, {'task': 1, 'start': 206, 'machine': 2, 'duration': 49}, {'task': 2, 'start': 391, 'machine': 1, 'duration': 41}, {'task': 3, 'start': 464, 'machine': 4, 'duration': 43}, {'task': 4, 'start': 512, 'machine': 3, 'duration': 38}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 3, 'machine': 4, 'duration': 81}, {'task': 1, 'start': 173, 'machine': 0, 'duration': 88}, {'task': 2, 'start': 315, 'machine': 3, 'duration': 25}, {'task': 3, 'start': 340, 'machine': 2, 'duration': 22}, {'task': 4, 'start': 487, 'machine': 1, 'duration': 70}]}]",23,json,0 JSP,JSP,"Many people think of it like a relay: each garment carries a list of operations, each operation takes a set time on a particular station, and the goal is to pass everything through the stations so the final runner crosses the line as early as possible. That means deciding which operation runs when on each machine so the time when the last garment finishes is as small as possible — compare schedules by that finishing time. Stations can’t handle two pieces at once, and every garment’s chain of steps must be followed exactly, no omissions or repeats. The concrete details are shown below. They are: there are 11 garments and 5 stations; garment identifiers: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11; station identifiers: 1, 2, 3, 4, 5. Garment J1, operation 0 requires 1 time on station 2. Garment J1, operation 1 requires 55 time on station 3. Garment J1, operation 2 requires 12 time on station 5. Garment J1, operation 3 requires 81 time on station 4. Garment J1, operation 4 requires 63 time on station 1. Garment J2, operation 0 requires 24 time on station 1. Garment J2, operation 1 requires 6 time on station 3. Garment J2, operation 2 requires 13 time on station 5. Garment J2, operation 3 requires 16 time on station 4. Garment J2, operation 4 requires 75 time on station 2. Garment J3, operation 0 requires 92 time on station 5. Garment J3, operation 1 requires 76 time on station 2. Garment J3, operation 2 requires 2 time on station 4. Garment J3, operation 3 requires 25 time on station 3. Garment J3, operation 4 requires 48 time on station 1. Garment J4, operation 0 requires 43 time on station 2. Garment J4, operation 1 requires 62 time on station 3. Garment J4, operation 2 requires 50 time on station 1. Garment J4, operation 3 requires 92 time on station 5. Garment J4, operation 4 requires 35 time on station 4. Garment J5, operation 0 requires 14 time on station 3. Garment J5, operation 1 requires 64 time on station 4. Garment J5, operation 2 requires 29 time on station 5. Garment J5, operation 3 requires 48 time on station 2. Garment J5, operation 4 requires 1 time on station 1. Garment J6, operation 0 requires 25 time on station 3. Garment J6, operation 1 requires 97 time on station 4. Garment J6, operation 2 requires 50 time on station 1. Garment J6, operation 3 requires 4 time on station 2. Garment J6, operation 4 requires 58 time on station 5. Garment J7, operation 0 requires 17 time on station 1. Garment J7, operation 1 requires 54 time on station 5. Garment J7, operation 2 requires 6 time on station 2. Garment J7, operation 3 requires 9 time on station 3. Garment J7, operation 4 requires 84 time on station 4. Garment J8, operation 0 requires 34 time on station 5. Garment J8, operation 1 requires 13 time on station 3. Garment J8, operation 2 requires 17 time on station 4. Garment J8, operation 3 requires 42 time on station 2. Garment J8, operation 4 requires 74 time on station 1. Garment J9, operation 0 requires 6 time on station 1. Garment J9, operation 1 requires 86 time on station 4. Garment J9, operation 2 requires 97 time on station 2. Garment J9, operation 3 requires 96 time on station 5. Garment J9, operation 4 requires 35 time on station 3. Garment J10, operation 0 requires 72 time on station 4. Garment J10, operation 1 requires 6 time on station 1. Garment J10, operation 2 requires 51 time on station 5. Garment J10, operation 3 requires 72 time on station 2. Garment J10, operation 4 requires 37 time on station 3. Garment J11, operation 0 requires 82 time on station 1. Garment J11, operation 1 requires 6 time on station 5. Garment J11, operation 2 requires 46 time on station 4. Garment J11, operation 3 requires 87 time on station 2. Garment J11, operation 4 requires 35 time on station 3. Compare schedules by the finishing time of the last garment. Oh, and when you give the actual schedule, please follow this simple JSON layout so everything's easy to parse and compare: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a sketch of the shape I expect: each top-level item is one job (think of it as one garment), and inside each job there's a list of tasks with the task index, the start time you plan for that task, which machine/station it runs on, and how long it takes. Super casual — fill in the actual numbers and IDs when you send the schedule. Please use the identifiers exactly as they appear in the instance input — no renaming and no new labels. For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[1, 1], [2, 55], [4, 12], [3, 81], [0, 63]], [[0, 24], [2, 6], [4, 13], [3, 16], [1, 75]], [[4, 92], [1, 76], [3, 2], [2, 25], [0, 48]], [[1, 43], [2, 62], [0, 50], [4, 92], [3, 35]], [[2, 14], [3, 64], [4, 29], [1, 48], [0, 1]], [[2, 25], [3, 97], [0, 50], [1, 4], [4, 58]], [[0, 17], [4, 54], [1, 6], [2, 9], [3, 84]], [[4, 34], [2, 13], [3, 17], [1, 42], [0, 74]], [[0, 6], [3, 86], [1, 97], [4, 96], [2, 35]], [[3, 72], [0, 6], [4, 51], [1, 72], [2, 37]], [[0, 82], [4, 6], [3, 46], [1, 87], [2, 35]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 43, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 105, 'machine': 2, 'duration': 55}, {'task': 2, 'start': 186, 'machine': 4, 'duration': 12}, {'task': 3, 'start': 400, 'machine': 3, 'duration': 81}, {'task': 4, 'start': 526, 'machine': 0, 'duration': 63}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 161, 'machine': 0, 'duration': 24}, {'task': 1, 'start': 185, 'machine': 2, 'duration': 6}, {'task': 2, 'start': 290, 'machine': 4, 'duration': 13}, {'task': 3, 'start': 318, 'machine': 3, 'duration': 16}, {'task': 4, 'start': 404, 'machine': 1, 'duration': 75}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 92}, {'task': 1, 'start': 92, 'machine': 1, 'duration': 76}, {'task': 2, 'start': 398, 'machine': 3, 'duration': 2}, {'task': 3, 'start': 434, 'machine': 2, 'duration': 25}, {'task': 4, 'start': 478, 'machine': 0, 'duration': 48}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 43}, {'task': 1, 'start': 43, 'machine': 2, 'duration': 62}, {'task': 2, 'start': 105, 'machine': 0, 'duration': 50}, {'task': 3, 'start': 198, 'machine': 4, 'duration': 92}, {'task': 4, 'start': 565, 'machine': 3, 'duration': 35}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 25, 'machine': 2, 'duration': 14}, {'task': 1, 'start': 334, 'machine': 3, 'duration': 64}, {'task': 2, 'start': 450, 'machine': 4, 'duration': 29}, {'task': 3, 'start': 551, 'machine': 1, 'duration': 48}, {'task': 4, 'start': 599, 'machine': 0, 'duration': 1}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 25}, {'task': 1, 'start': 204, 'machine': 3, 'duration': 97}, {'task': 2, 'start': 301, 'machine': 0, 'duration': 50}, {'task': 3, 'start': 358, 'machine': 1, 'duration': 4}, {'task': 4, 'start': 479, 'machine': 4, 'duration': 58}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 88, 'machine': 0, 'duration': 17}, {'task': 1, 'start': 132, 'machine': 4, 'duration': 54}, {'task': 2, 'start': 352, 'machine': 1, 'duration': 6}, {'task': 3, 'start': 387, 'machine': 2, 'duration': 9}, {'task': 4, 'start': 481, 'machine': 3, 'duration': 84}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 92, 'machine': 4, 'duration': 34}, {'task': 1, 'start': 160, 'machine': 2, 'duration': 13}, {'task': 2, 'start': 301, 'machine': 3, 'duration': 17}, {'task': 3, 'start': 362, 'machine': 1, 'duration': 42}, {'task': 4, 'start': 404, 'machine': 0, 'duration': 74}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 6}, {'task': 1, 'start': 72, 'machine': 3, 'duration': 86}, {'task': 2, 'start': 168, 'machine': 1, 'duration': 97}, {'task': 3, 'start': 303, 'machine': 4, 'duration': 96}, {'task': 4, 'start': 399, 'machine': 2, 'duration': 35}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 72}, {'task': 1, 'start': 155, 'machine': 0, 'duration': 6}, {'task': 2, 'start': 399, 'machine': 4, 'duration': 51}, {'task': 3, 'start': 479, 'machine': 1, 'duration': 72}, {'task': 4, 'start': 551, 'machine': 2, 'duration': 37}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 6, 'machine': 0, 'duration': 82}, {'task': 1, 'start': 126, 'machine': 4, 'duration': 6}, {'task': 2, 'start': 158, 'machine': 3, 'duration': 46}, {'task': 3, 'start': 265, 'machine': 1, 'duration': 87}, {'task': 4, 'start': 352, 'machine': 2, 'duration': 35}]}]",600.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 2, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 3, 'duration': 55}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 5, 'duration': 12}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 81}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 63}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 1, 'duration': 24}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 6}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 5, 'duration': 13}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 16}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 2, 'duration': 75}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 5, 'duration': 92}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 76}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 4, 'duration': 2}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 25}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 1, 'duration': 48}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 2, 'duration': 43}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 3, 'duration': 62}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 50}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 5, 'duration': 92}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 4, 'duration': 35}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 3, 'duration': 14}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 4, 'duration': 64}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 5, 'duration': 29}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 48}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 1, 'duration': 1}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 3, 'duration': 25}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 4, 'duration': 97}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 50}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 2, 'duration': 4}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 5, 'duration': 58}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 17}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 5, 'duration': 54}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 2, 'duration': 6}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 3, 'duration': 9}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 4, 'duration': 84}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 5, 'duration': 34}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 13}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 17}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 2, 'duration': 42}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 1, 'duration': 74}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 1, 'duration': 6}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 4, 'duration': 86}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 2, 'duration': 97}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 96}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 3, 'duration': 35}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 4, 'duration': 72}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 6}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 5, 'duration': 51}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 2, 'duration': 72}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 37}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 1, 'duration': 82}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 5, 'duration': 6}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 4, 'duration': 46}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 2, 'duration': 87}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 3, 'duration': 35}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 43, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 105, 'machine': 3, 'duration': 55}, {'task': 2, 'start': 186, 'machine': 5, 'duration': 12}, {'task': 3, 'start': 400, 'machine': 4, 'duration': 81}, {'task': 4, 'start': 526, 'machine': 1, 'duration': 63}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 161, 'machine': 1, 'duration': 24}, {'task': 1, 'start': 185, 'machine': 3, 'duration': 6}, {'task': 2, 'start': 290, 'machine': 5, 'duration': 13}, {'task': 3, 'start': 318, 'machine': 4, 'duration': 16}, {'task': 4, 'start': 404, 'machine': 2, 'duration': 75}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 92}, {'task': 1, 'start': 92, 'machine': 2, 'duration': 76}, {'task': 2, 'start': 398, 'machine': 4, 'duration': 2}, {'task': 3, 'start': 434, 'machine': 3, 'duration': 25}, {'task': 4, 'start': 478, 'machine': 1, 'duration': 48}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 43}, {'task': 1, 'start': 43, 'machine': 3, 'duration': 62}, {'task': 2, 'start': 105, 'machine': 1, 'duration': 50}, {'task': 3, 'start': 198, 'machine': 5, 'duration': 92}, {'task': 4, 'start': 565, 'machine': 4, 'duration': 35}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 25, 'machine': 3, 'duration': 14}, {'task': 1, 'start': 334, 'machine': 4, 'duration': 64}, {'task': 2, 'start': 450, 'machine': 5, 'duration': 29}, {'task': 3, 'start': 551, 'machine': 2, 'duration': 48}, {'task': 4, 'start': 599, 'machine': 1, 'duration': 1}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 25}, {'task': 1, 'start': 204, 'machine': 4, 'duration': 97}, {'task': 2, 'start': 301, 'machine': 1, 'duration': 50}, {'task': 3, 'start': 358, 'machine': 2, 'duration': 4}, {'task': 4, 'start': 479, 'machine': 5, 'duration': 58}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 88, 'machine': 1, 'duration': 17}, {'task': 1, 'start': 132, 'machine': 5, 'duration': 54}, {'task': 2, 'start': 352, 'machine': 2, 'duration': 6}, {'task': 3, 'start': 387, 'machine': 3, 'duration': 9}, {'task': 4, 'start': 481, 'machine': 4, 'duration': 84}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 92, 'machine': 5, 'duration': 34}, {'task': 1, 'start': 160, 'machine': 3, 'duration': 13}, {'task': 2, 'start': 301, 'machine': 4, 'duration': 17}, {'task': 3, 'start': 362, 'machine': 2, 'duration': 42}, {'task': 4, 'start': 404, 'machine': 1, 'duration': 74}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 6}, {'task': 1, 'start': 72, 'machine': 4, 'duration': 86}, {'task': 2, 'start': 168, 'machine': 2, 'duration': 97}, {'task': 3, 'start': 303, 'machine': 5, 'duration': 96}, {'task': 4, 'start': 399, 'machine': 3, 'duration': 35}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 72}, {'task': 1, 'start': 155, 'machine': 1, 'duration': 6}, {'task': 2, 'start': 399, 'machine': 5, 'duration': 51}, {'task': 3, 'start': 479, 'machine': 2, 'duration': 72}, {'task': 4, 'start': 551, 'machine': 3, 'duration': 37}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 6, 'machine': 1, 'duration': 82}, {'task': 1, 'start': 126, 'machine': 5, 'duration': 6}, {'task': 2, 'start': 158, 'machine': 4, 'duration': 46}, {'task': 3, 'start': 265, 'machine': 2, 'duration': 87}, {'task': 4, 'start': 352, 'machine': 3, 'duration': 35}]}]",24,nl,1 JSP,JSP,"Imagine a tiny workflow where each customer’s basket has a fixed recipe: one cycle after another on particular machines, each taking a fixed span of time. The question is how to slot those cycles onto the washers and dryers to get the whole pile finished in the least calendar time. The winner is the plan that makes the last basket come out sooner — that finishing moment is the measure of success. Every required cycle must be run exactly once and in the prescribed order, and machines can’t do two cycles at once. The concrete details are shown below. { ""num_customer_loads"": 10, ""num_machines"": 5, ""load_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"" ], ""appliance_ids"": [ ""A"", ""B"", ""C"", ""D"", ""E"" ], ""tasks"": [ { ""load_id"": ""J1"", ""cycle_index"": 0, ""appliance_id"": ""D"", ""cycle_duration"": 1 }, { ""load_id"": ""J1"", ""cycle_index"": 1, ""appliance_id"": ""B"", ""cycle_duration"": 68 }, { ""load_id"": ""J1"", ""cycle_index"": 2, ""appliance_id"": ""C"", ""cycle_duration"": 87 }, { ""load_id"": ""J1"", ""cycle_index"": 3, ""appliance_id"": ""E"", ""cycle_duration"": 27 }, { ""load_id"": ""J1"", ""cycle_index"": 4, ""appliance_id"": ""A"", ""cycle_duration"": 17 }, { ""load_id"": ""J2"", ""cycle_index"": 0, ""appliance_id"": ""C"", ""cycle_duration"": 45 }, { ""load_id"": ""J2"", ""cycle_index"": 1, ""appliance_id"": ""D"", ""cycle_duration"": 11 }, { ""load_id"": ""J2"", ""cycle_index"": 2, ""appliance_id"": ""B"", ""cycle_duration"": 80 }, { ""load_id"": ""J2"", ""cycle_index"": 3, ""appliance_id"": ""A"", ""cycle_duration"": 83 }, { ""load_id"": ""J2"", ""cycle_index"": 4, ""appliance_id"": ""E"", ""cycle_duration"": 69 }, { ""load_id"": ""J3"", ""cycle_index"": 0, ""appliance_id"": ""B"", ""cycle_duration"": 31 }, { ""load_id"": ""J3"", ""cycle_index"": 1, ""appliance_id"": ""E"", ""cycle_duration"": 28 }, { ""load_id"": ""J3"", ""cycle_index"": 2, ""appliance_id"": ""A"", ""cycle_duration"": 84 }, { ""load_id"": ""J3"", ""cycle_index"": 3, ""appliance_id"": ""C"", ""cycle_duration"": 28 }, { ""load_id"": ""J3"", ""cycle_index"": 4, ""appliance_id"": ""D"", ""cycle_duration"": 53 }, { ""load_id"": ""J4"", ""cycle_index"": 0, ""appliance_id"": ""E"", ""cycle_duration"": 96 }, { ""load_id"": ""J4"", ""cycle_index"": 1, ""appliance_id"": ""B"", ""cycle_duration"": 30 }, { ""load_id"": ""J4"", ""cycle_index"": 2, ""appliance_id"": ""D"", ""cycle_duration"": 51 }, { ""load_id"": ""J4"", ""cycle_index"": 3, ""appliance_id"": ""A"", ""cycle_duration"": 31 }, { ""load_id"": ""J4"", ""cycle_index"": 4, ""appliance_id"": ""C"", ""cycle_duration"": 41 }, { ""load_id"": ""J5"", ""cycle_index"": 0, ""appliance_id"": ""A"", ""cycle_duration"": 55 }, { ""load_id"": ""J5"", ""cycle_index"": 1, ""appliance_id"": ""C"", ""cycle_duration"": 33 }, { ""load_id"": ""J5"", ""cycle_index"": 2, ""appliance_id"": ""E"", ""cycle_duration"": 87 }, { ""load_id"": ""J5"", ""cycle_index"": 3, ""appliance_id"": ""B"", ""cycle_duration"": 41 }, { ""load_id"": ""J5"", ""cycle_index"": 4, ""appliance_id"": ""D"", ""cycle_duration"": 84 }, { ""load_id"": ""J6"", ""cycle_index"": 0, ""appliance_id"": ""D"", ""cycle_duration"": 77 }, { ""load_id"": ""J6"", ""cycle_index"": 1, ""appliance_id"": ""E"", ""cycle_duration"": 7 }, { ""load_id"": ""J6"", ""cycle_index"": 2, ""appliance_id"": ""B"", ""cycle_duration"": 16 }, { ""load_id"": ""J6"", ""cycle_index"": 3, ""appliance_id"": ""A"", ""cycle_duration"": 46 }, { ""load_id"": ""J6"", ""cycle_index"": 4, ""appliance_id"": ""C"", ""cycle_duration"": 28 }, { ""load_id"": ""J7"", ""cycle_index"": 0, ""appliance_id"": ""B"", ""cycle_duration"": 9 }, { ""load_id"": ""J7"", ""cycle_index"": 1, ""appliance_id"": ""D"", ""cycle_duration"": 31 }, { ""load_id"": ""J7"", ""cycle_index"": 2, ""appliance_id"": ""E"", ""cycle_duration"": 32 }, { ""load_id"": ""J7"", ""cycle_index"": 3, ""appliance_id"": ""A"", ""cycle_duration"": 14 }, { ""load_id"": ""J7"", ""cycle_index"": 4, ""appliance_id"": ""C"", ""cycle_duration"": 58 }, { ""load_id"": ""J8"", ""cycle_index"": 0, ""appliance_id"": ""B"", ""cycle_duration"": 66 }, { ""load_id"": ""J8"", ""cycle_index"": 1, ""appliance_id"": ""E"", ""cycle_duration"": 75 }, { ""load_id"": ""J8"", ""cycle_index"": 2, ""appliance_id"": ""D"", ""cycle_duration"": 92 }, { ""load_id"": ""J8"", ""cycle_index"": 3, ""appliance_id"": ""A"", ""cycle_duration"": 41 }, { ""load_id"": ""J8"", ""cycle_index"": 4, ""appliance_id"": ""C"", ""cycle_duration"": 12 }, { ""load_id"": ""J9"", ""cycle_index"": 0, ""appliance_id"": ""C"", ""cycle_duration"": 31 }, { ""load_id"": ""J9"", ""cycle_index"": 1, ""appliance_id"": ""A"", ""cycle_duration"": 84 }, { ""load_id"": ""J9"", ""cycle_index"": 2, ""appliance_id"": ""B"", ""cycle_duration"": 69 }, { ""load_id"": ""J9"", ""cycle_index"": 3, ""appliance_id"": ""D"", ""cycle_duration"": 72 }, { ""load_id"": ""J9"", ""cycle_index"": 4, ""appliance_id"": ""E"", ""cycle_duration"": 1 }, { ""load_id"": ""J10"", ""cycle_index"": 0, ""appliance_id"": ""B"", ""cycle_duration"": 79 }, { ""load_id"": ""J10"", ""cycle_index"": 1, ""appliance_id"": ""D"", ""cycle_duration"": 69 }, { ""load_id"": ""J10"", ""cycle_index"": 2, ""appliance_id"": ""C"", ""cycle_duration"": 39 }, { ""load_id"": ""J10"", ""cycle_index"": 3, ""appliance_id"": ""E"", ""cycle_duration"": 99 }, { ""load_id"": ""J10"", ""cycle_index"": 4, ""appliance_id"": ""A"", ""cycle_duration"": 80 } ] } You can hand the schedule back to me in a small JSON form so it's easy to check. Something like this is perfect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it as a simple form: ""solution"" holds a list of jobs; each job entry names the job and then lists its tasks in order. Each task record just says which task number it is, when that task starts, which machine it runs on, and how long it takes. Super informal — just enough structure so I can read your plan. This JSON is only a sketch of the shape I expect, not the actual schedule answer. Please be careful to use the exact identifiers from the instance input — do not rename them or invent new labels. For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 10, 'jobs': [[[3, 1], [1, 68], [2, 87], [4, 27], [0, 17]], [[2, 45], [3, 11], [1, 80], [0, 83], [4, 69]], [[1, 31], [4, 28], [0, 84], [2, 28], [3, 53]], [[4, 96], [1, 30], [3, 51], [0, 31], [2, 41]], [[0, 55], [2, 33], [4, 87], [1, 41], [3, 84]], [[3, 77], [4, 7], [1, 16], [0, 46], [2, 28]], [[1, 9], [3, 31], [4, 32], [0, 14], [2, 58]], [[1, 66], [4, 75], [3, 92], [0, 41], [2, 12]], [[2, 31], [0, 84], [1, 69], [3, 72], [4, 1]], [[1, 79], [3, 69], [2, 39], [4, 99], [0, 80]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 88, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 352, 'machine': 1, 'duration': 68}, {'task': 2, 'start': 420, 'machine': 2, 'duration': 87}, {'task': 3, 'start': 507, 'machine': 4, 'duration': 27}, {'task': 4, 'start': 545, 'machine': 0, 'duration': 17}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 31, 'machine': 2, 'duration': 45}, {'task': 1, 'start': 77, 'machine': 3, 'duration': 11}, {'task': 2, 'start': 231, 'machine': 1, 'duration': 80}, {'task': 3, 'start': 339, 'machine': 0, 'duration': 83}, {'task': 4, 'start': 435, 'machine': 4, 'duration': 69}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 31}, {'task': 1, 'start': 103, 'machine': 4, 'duration': 28}, {'task': 2, 'start': 139, 'machine': 0, 'duration': 84}, {'task': 3, 'start': 228, 'machine': 2, 'duration': 28}, {'task': 4, 'start': 256, 'machine': 3, 'duration': 53}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 96}, {'task': 1, 'start': 119, 'machine': 1, 'duration': 30}, {'task': 2, 'start': 189, 'machine': 3, 'duration': 51}, {'task': 3, 'start': 277, 'machine': 0, 'duration': 31}, {'task': 4, 'start': 309, 'machine': 2, 'duration': 41}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 55}, {'task': 1, 'start': 76, 'machine': 2, 'duration': 33}, {'task': 2, 'start': 131, 'machine': 4, 'duration': 87}, {'task': 3, 'start': 311, 'machine': 1, 'duration': 41}, {'task': 4, 'start': 401, 'machine': 3, 'duration': 84}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 77}, {'task': 1, 'start': 96, 'machine': 4, 'duration': 7}, {'task': 2, 'start': 215, 'machine': 1, 'duration': 16}, {'task': 3, 'start': 231, 'machine': 0, 'duration': 46}, {'task': 4, 'start': 277, 'machine': 2, 'duration': 28}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 31, 'machine': 1, 'duration': 9}, {'task': 1, 'start': 89, 'machine': 3, 'duration': 31}, {'task': 2, 'start': 293, 'machine': 4, 'duration': 32}, {'task': 3, 'start': 325, 'machine': 0, 'duration': 14}, {'task': 4, 'start': 351, 'machine': 2, 'duration': 58}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 149, 'machine': 1, 'duration': 66}, {'task': 1, 'start': 218, 'machine': 4, 'duration': 75}, {'task': 2, 'start': 309, 'machine': 3, 'duration': 92}, {'task': 3, 'start': 504, 'machine': 0, 'duration': 41}, {'task': 4, 'start': 545, 'machine': 2, 'duration': 12}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 31}, {'task': 1, 'start': 55, 'machine': 0, 'duration': 84}, {'task': 2, 'start': 420, 'machine': 1, 'duration': 69}, {'task': 3, 'start': 489, 'machine': 3, 'duration': 72}, {'task': 4, 'start': 561, 'machine': 4, 'duration': 1}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 40, 'machine': 1, 'duration': 79}, {'task': 1, 'start': 120, 'machine': 3, 'duration': 69}, {'task': 2, 'start': 189, 'machine': 2, 'duration': 39}, {'task': 3, 'start': 325, 'machine': 4, 'duration': 99}, {'task': 4, 'start': 424, 'machine': 0, 'duration': 80}]}]",562.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 68}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'C', 'duration': 87}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'E', 'duration': 27}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 17}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'C', 'duration': 45}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'D', 'duration': 11}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'B', 'duration': 80}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'A', 'duration': 83}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'E', 'duration': 69}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'B', 'duration': 31}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'E', 'duration': 28}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'A', 'duration': 84}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'C', 'duration': 28}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'D', 'duration': 53}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 96}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'B', 'duration': 30}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'D', 'duration': 51}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'A', 'duration': 31}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'C', 'duration': 41}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'A', 'duration': 55}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'C', 'duration': 33}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'E', 'duration': 87}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 41}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 84}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'D', 'duration': 77}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 7}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'B', 'duration': 16}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'A', 'duration': 46}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 28}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'B', 'duration': 9}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 31}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'E', 'duration': 32}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'A', 'duration': 14}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'C', 'duration': 58}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'B', 'duration': 66}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 75}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'D', 'duration': 92}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 41}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'C', 'duration': 12}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 31}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'A', 'duration': 84}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'B', 'duration': 69}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'D', 'duration': 72}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'E', 'duration': 1}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'B', 'duration': 79}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'D', 'duration': 69}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'C', 'duration': 39}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'E', 'duration': 99}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'A', 'duration': 80}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 88, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 352, 'machine': 'B', 'duration': 68}, {'task': 2, 'start': 420, 'machine': 'C', 'duration': 87}, {'task': 3, 'start': 507, 'machine': 'E', 'duration': 27}, {'task': 4, 'start': 545, 'machine': 'A', 'duration': 17}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 31, 'machine': 'C', 'duration': 45}, {'task': 1, 'start': 77, 'machine': 'D', 'duration': 11}, {'task': 2, 'start': 231, 'machine': 'B', 'duration': 80}, {'task': 3, 'start': 339, 'machine': 'A', 'duration': 83}, {'task': 4, 'start': 435, 'machine': 'E', 'duration': 69}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 31}, {'task': 1, 'start': 103, 'machine': 'E', 'duration': 28}, {'task': 2, 'start': 139, 'machine': 'A', 'duration': 84}, {'task': 3, 'start': 228, 'machine': 'C', 'duration': 28}, {'task': 4, 'start': 256, 'machine': 'D', 'duration': 53}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 96}, {'task': 1, 'start': 119, 'machine': 'B', 'duration': 30}, {'task': 2, 'start': 189, 'machine': 'D', 'duration': 51}, {'task': 3, 'start': 277, 'machine': 'A', 'duration': 31}, {'task': 4, 'start': 309, 'machine': 'C', 'duration': 41}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 55}, {'task': 1, 'start': 76, 'machine': 'C', 'duration': 33}, {'task': 2, 'start': 131, 'machine': 'E', 'duration': 87}, {'task': 3, 'start': 311, 'machine': 'B', 'duration': 41}, {'task': 4, 'start': 401, 'machine': 'D', 'duration': 84}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 77}, {'task': 1, 'start': 96, 'machine': 'E', 'duration': 7}, {'task': 2, 'start': 215, 'machine': 'B', 'duration': 16}, {'task': 3, 'start': 231, 'machine': 'A', 'duration': 46}, {'task': 4, 'start': 277, 'machine': 'C', 'duration': 28}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 31, 'machine': 'B', 'duration': 9}, {'task': 1, 'start': 89, 'machine': 'D', 'duration': 31}, {'task': 2, 'start': 293, 'machine': 'E', 'duration': 32}, {'task': 3, 'start': 325, 'machine': 'A', 'duration': 14}, {'task': 4, 'start': 351, 'machine': 'C', 'duration': 58}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 149, 'machine': 'B', 'duration': 66}, {'task': 1, 'start': 218, 'machine': 'E', 'duration': 75}, {'task': 2, 'start': 309, 'machine': 'D', 'duration': 92}, {'task': 3, 'start': 504, 'machine': 'A', 'duration': 41}, {'task': 4, 'start': 545, 'machine': 'C', 'duration': 12}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 31}, {'task': 1, 'start': 55, 'machine': 'A', 'duration': 84}, {'task': 2, 'start': 420, 'machine': 'B', 'duration': 69}, {'task': 3, 'start': 489, 'machine': 'D', 'duration': 72}, {'task': 4, 'start': 561, 'machine': 'E', 'duration': 1}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 40, 'machine': 'B', 'duration': 79}, {'task': 1, 'start': 120, 'machine': 'D', 'duration': 69}, {'task': 2, 'start': 189, 'machine': 'C', 'duration': 39}, {'task': 3, 'start': 325, 'machine': 'E', 'duration': 99}, {'task': 4, 'start': 424, 'machine': 'A', 'duration': 80}]}]",25,json,names JSP,JSP,"Recently the team at a detailing garage noticed their workflow was messy: every car follows a particular sequence of services, each service runs for a fixed duration in a specific bay, and bays can only take one car at a time. The problem to solve was how to schedule those services so the whole set of cars would be completed quickly — the better schedule is the one that makes the time when the last car is finished as small as possible; you find that time by looking at each car’s finish moment and picking the latest. Steps can’t be skipped or reshuffled, and every listed service must be performed once. The detailed list of cars, bays, and times appears below. There are 12 cars to schedule across 6 bays; car identifiers: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12; bay identifiers: A, B, C, D, E, F. Car J1, service 0: assigned to bay B for 1 time units. Car J1, service 1: assigned to bay D for 81 time units. Car J1, service 2: assigned to bay E for 62 time units. Car J1, service 3: assigned to bay C for 73 time units. Car J1, service 4: assigned to bay F for 69 time units. Car J1, service 5: assigned to bay A for 67 time units. Car J2, service 0: assigned to bay D for 16 time units. Car J2, service 1: assigned to bay E for 48 time units. Car J2, service 2: assigned to bay F for 51 time units. Car J2, service 3: assigned to bay A for 62 time units. Car J2, service 4: assigned to bay C for 69 time units. Car J2, service 5: assigned to bay B for 80 time units. Car J3, service 0: assigned to bay D for 67 time units. Car J3, service 1: assigned to bay C for 32 time units. Car J3, service 2: assigned to bay A for 58 time units. Car J3, service 3: assigned to bay B for 49 time units. Car J3, service 4: assigned to bay F for 96 time units. Car J3, service 5: assigned to bay E for 52 time units. Car J4, service 0: assigned to bay A for 69 time units. Car J4, service 1: assigned to bay D for 48 time units. Car J4, service 2: assigned to bay E for 97 time units. Car J4, service 3: assigned to bay B for 2 time units. Car J4, service 4: assigned to bay F for 46 time units. Car J4, service 5: assigned to bay C for 34 time units. Car J5, service 0: assigned to bay B for 69 time units. Car J5, service 1: assigned to bay F for 31 time units. Car J5, service 2: assigned to bay C for 17 time units. Car J5, service 3: assigned to bay A for 81 time units. Car J5, service 4: assigned to bay D for 87 time units. Car J5, service 5: assigned to bay E for 97 time units. Car J6, service 0: assigned to bay F for 99 time units. Car J6, service 1: assigned to bay B for 7 time units. Car J6, service 2: assigned to bay C for 58 time units. Car J6, service 3: assigned to bay A for 18 time units. Car J6, service 4: assigned to bay E for 32 time units. Car J6, service 5: assigned to bay D for 99 time units. Car J7, service 0: assigned to bay F for 39 time units. Car J7, service 1: assigned to bay D for 68 time units. Car J7, service 2: assigned to bay C for 40 time units. Car J7, service 3: assigned to bay E for 48 time units. Car J7, service 4: assigned to bay A for 55 time units. Car J7, service 5: assigned to bay B for 83 time units. Car J8, service 0: assigned to bay A for 42 time units. Car J8, service 1: assigned to bay B for 48 time units. Car J8, service 2: assigned to bay F for 65 time units. Car J8, service 3: assigned to bay E for 87 time units. Car J8, service 4: assigned to bay D for 32 time units. Car J8, service 5: assigned to bay C for 28 time units. Car J9, service 0: assigned to bay C for 27 time units. Car J9, service 1: assigned to bay E for 24 time units. Car J9, service 2: assigned to bay D for 36 time units. Car J9, service 3: assigned to bay A for 1 time units. Car J9, service 4: assigned to bay B for 93 time units. Car J9, service 5: assigned to bay F for 42 time units. Car J10, service 0: assigned to bay C for 8 time units. Car J10, service 1: assigned to bay A for 16 time units. Car J10, service 2: assigned to bay F for 60 time units. Car J10, service 3: assigned to bay B for 15 time units. Car J10, service 4: assigned to bay D for 91 time units. Car J10, service 5: assigned to bay E for 6 time units. Car J11, service 0: assigned to bay A for 61 time units. Car J11, service 1: assigned to bay D for 80 time units. Car J11, service 2: assigned to bay E for 59 time units. Car J11, service 3: assigned to bay C for 38 time units. Car J11, service 4: assigned to bay F for 11 time units. Car J11, service 5: assigned to bay B for 10 time units. Car J12, service 0: assigned to bay A for 83 time units. Car J12, service 1: assigned to bay F for 8 time units. Car J12, service 2: assigned to bay E for 50 time units. Car J12, service 3: assigned to bay C for 94 time units. Car J12, service 4: assigned to bay D for 55 time units. Car J12, service 5: assigned to bay B for 74 time units. All listed services must be performed once and in the given order; bays cannot host overlapping services and the objective is to minimize the time when the last car finishes. Also, when you send the actual schedule back, just use this simple JSON layout so it's easy to read and parse: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: ""solution"" is a list of cars, each car has a job id and a list of services (tasks). For each service you say which step it is, what time it starts, which bay (machine) it uses, and how long it runs. This block is just a sketch of the shape I expect, not the actual schedule — I'll need the real values for each item from the instance. Please make sure you use the exact identifiers from the instance input — do not rename them or invent new labels. - for example: ""Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".""","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[1, 1], [3, 81], [4, 62], [2, 73], [5, 69], [0, 67]], [[3, 16], [4, 48], [5, 51], [0, 62], [2, 69], [1, 80]], [[3, 67], [2, 32], [0, 58], [1, 49], [5, 96], [4, 52]], [[0, 69], [3, 48], [4, 97], [1, 2], [5, 46], [2, 34]], [[1, 69], [5, 31], [2, 17], [0, 81], [3, 87], [4, 97]], [[5, 99], [1, 7], [2, 58], [0, 18], [4, 32], [3, 99]], [[5, 39], [3, 68], [2, 40], [4, 48], [0, 55], [1, 83]], [[0, 42], [1, 48], [5, 65], [4, 87], [3, 32], [2, 28]], [[2, 27], [4, 24], [3, 36], [0, 1], [1, 93], [5, 42]], [[2, 8], [0, 16], [5, 60], [1, 15], [3, 91], [4, 6]], [[0, 61], [3, 80], [4, 59], [2, 38], [5, 11], [1, 10]], [[0, 83], [5, 8], [4, 50], [2, 94], [3, 55], [1, 74]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 69, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 83, 'machine': 3, 'duration': 81}, {'task': 2, 'start': 164, 'machine': 4, 'duration': 62}, {'task': 3, 'start': 378, 'machine': 2, 'duration': 73}, {'task': 4, 'start': 514, 'machine': 5, 'duration': 69}, {'task': 5, 'start': 686, 'machine': 0, 'duration': 67}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 67, 'machine': 3, 'duration': 16}, {'task': 1, 'start': 83, 'machine': 4, 'duration': 48}, {'task': 2, 'start': 242, 'machine': 5, 'duration': 51}, {'task': 3, 'start': 431, 'machine': 0, 'duration': 62}, {'task': 4, 'start': 493, 'machine': 2, 'duration': 69}, {'task': 5, 'start': 678, 'machine': 1, 'duration': 80}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 67}, {'task': 1, 'start': 67, 'machine': 2, 'duration': 32}, {'task': 2, 'start': 186, 'machine': 0, 'duration': 58}, {'task': 3, 'start': 244, 'machine': 1, 'duration': 49}, {'task': 4, 'start': 353, 'machine': 5, 'duration': 96}, {'task': 5, 'start': 700, 'machine': 4, 'duration': 52}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 260, 'machine': 0, 'duration': 69}, {'task': 1, 'start': 348, 'machine': 3, 'duration': 48}, {'task': 2, 'start': 411, 'machine': 4, 'duration': 97}, {'task': 3, 'start': 546, 'machine': 1, 'duration': 2}, {'task': 4, 'start': 583, 'machine': 5, 'duration': 46}, {'task': 5, 'start': 641, 'machine': 2, 'duration': 34}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 69}, {'task': 1, 'start': 138, 'machine': 5, 'duration': 31}, {'task': 2, 'start': 169, 'machine': 2, 'duration': 17}, {'task': 3, 'start': 350, 'machine': 0, 'duration': 81}, {'task': 4, 'start': 451, 'machine': 3, 'duration': 87}, {'task': 5, 'start': 603, 'machine': 4, 'duration': 97}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 39, 'machine': 5, 'duration': 99}, {'task': 1, 'start': 173, 'machine': 1, 'duration': 7}, {'task': 2, 'start': 186, 'machine': 2, 'duration': 58}, {'task': 3, 'start': 329, 'machine': 0, 'duration': 18}, {'task': 4, 'start': 512, 'machine': 4, 'duration': 32}, {'task': 5, 'start': 661, 'machine': 3, 'duration': 99}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 39}, {'task': 1, 'start': 164, 'machine': 3, 'duration': 68}, {'task': 2, 'start': 244, 'machine': 2, 'duration': 40}, {'task': 3, 'start': 363, 'machine': 4, 'duration': 48}, {'task': 4, 'start': 493, 'machine': 0, 'duration': 55}, {'task': 5, 'start': 548, 'machine': 1, 'duration': 83}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 83, 'machine': 0, 'duration': 42}, {'task': 1, 'start': 125, 'machine': 1, 'duration': 48}, {'task': 2, 'start': 177, 'machine': 5, 'duration': 65}, {'task': 3, 'start': 276, 'machine': 4, 'duration': 87}, {'task': 4, 'start': 538, 'machine': 3, 'duration': 32}, {'task': 5, 'start': 570, 'machine': 2, 'duration': 28}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 27}, {'task': 1, 'start': 27, 'machine': 4, 'duration': 24}, {'task': 2, 'start': 312, 'machine': 3, 'duration': 36}, {'task': 3, 'start': 349, 'machine': 0, 'duration': 1}, {'task': 4, 'start': 379, 'machine': 1, 'duration': 93}, {'task': 5, 'start': 472, 'machine': 5, 'duration': 42}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 27, 'machine': 2, 'duration': 8}, {'task': 1, 'start': 244, 'machine': 0, 'duration': 16}, {'task': 2, 'start': 293, 'machine': 5, 'duration': 60}, {'task': 3, 'start': 353, 'machine': 1, 'duration': 15}, {'task': 4, 'start': 570, 'machine': 3, 'duration': 91}, {'task': 5, 'start': 752, 'machine': 4, 'duration': 6}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 125, 'machine': 0, 'duration': 61}, {'task': 1, 'start': 232, 'machine': 3, 'duration': 80}, {'task': 2, 'start': 544, 'machine': 4, 'duration': 59}, {'task': 3, 'start': 603, 'machine': 2, 'duration': 38}, {'task': 4, 'start': 641, 'machine': 5, 'duration': 11}, {'task': 5, 'start': 652, 'machine': 1, 'duration': 10}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 83}, {'task': 1, 'start': 169, 'machine': 5, 'duration': 8}, {'task': 2, 'start': 226, 'machine': 4, 'duration': 50}, {'task': 3, 'start': 284, 'machine': 2, 'duration': 94}, {'task': 4, 'start': 396, 'machine': 3, 'duration': 55}, {'task': 5, 'start': 472, 'machine': 1, 'duration': 74}]}]",760.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'B', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'D', 'duration': 81}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'E', 'duration': 62}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 73}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'F', 'duration': 69}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 67}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'D', 'duration': 16}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'E', 'duration': 48}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'F', 'duration': 51}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'A', 'duration': 62}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'C', 'duration': 69}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'B', 'duration': 80}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'D', 'duration': 67}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'C', 'duration': 32}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'A', 'duration': 58}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'B', 'duration': 49}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'F', 'duration': 96}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'E', 'duration': 52}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'A', 'duration': 69}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 48}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'E', 'duration': 97}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 2}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'F', 'duration': 46}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'C', 'duration': 34}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'B', 'duration': 69}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'F', 'duration': 31}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'C', 'duration': 17}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'A', 'duration': 81}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 87}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'E', 'duration': 97}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'F', 'duration': 99}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'B', 'duration': 7}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'C', 'duration': 58}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'A', 'duration': 18}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'E', 'duration': 32}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'D', 'duration': 99}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'F', 'duration': 39}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 68}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'C', 'duration': 40}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 48}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'A', 'duration': 55}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'B', 'duration': 83}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'A', 'duration': 42}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'B', 'duration': 48}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'F', 'duration': 65}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'E', 'duration': 87}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'C', 'duration': 28}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 27}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'E', 'duration': 24}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'D', 'duration': 36}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'A', 'duration': 1}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'B', 'duration': 93}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'F', 'duration': 42}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'C', 'duration': 8}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'A', 'duration': 16}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'F', 'duration': 60}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'B', 'duration': 15}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'D', 'duration': 91}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'E', 'duration': 6}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'A', 'duration': 61}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'D', 'duration': 80}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'E', 'duration': 59}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'C', 'duration': 38}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'F', 'duration': 11}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 'B', 'duration': 10}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 'A', 'duration': 83}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 'F', 'duration': 8}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 'E', 'duration': 50}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 'C', 'duration': 94}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 'D', 'duration': 55}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 'B', 'duration': 74}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 69, 'machine': 'B', 'duration': 1}, {'task': 1, 'start': 83, 'machine': 'D', 'duration': 81}, {'task': 2, 'start': 164, 'machine': 'E', 'duration': 62}, {'task': 3, 'start': 378, 'machine': 'C', 'duration': 73}, {'task': 4, 'start': 514, 'machine': 'F', 'duration': 69}, {'task': 5, 'start': 686, 'machine': 'A', 'duration': 67}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 67, 'machine': 'D', 'duration': 16}, {'task': 1, 'start': 83, 'machine': 'E', 'duration': 48}, {'task': 2, 'start': 242, 'machine': 'F', 'duration': 51}, {'task': 3, 'start': 431, 'machine': 'A', 'duration': 62}, {'task': 4, 'start': 493, 'machine': 'C', 'duration': 69}, {'task': 5, 'start': 678, 'machine': 'B', 'duration': 80}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 67}, {'task': 1, 'start': 67, 'machine': 'C', 'duration': 32}, {'task': 2, 'start': 186, 'machine': 'A', 'duration': 58}, {'task': 3, 'start': 244, 'machine': 'B', 'duration': 49}, {'task': 4, 'start': 353, 'machine': 'F', 'duration': 96}, {'task': 5, 'start': 700, 'machine': 'E', 'duration': 52}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 260, 'machine': 'A', 'duration': 69}, {'task': 1, 'start': 348, 'machine': 'D', 'duration': 48}, {'task': 2, 'start': 411, 'machine': 'E', 'duration': 97}, {'task': 3, 'start': 546, 'machine': 'B', 'duration': 2}, {'task': 4, 'start': 583, 'machine': 'F', 'duration': 46}, {'task': 5, 'start': 641, 'machine': 'C', 'duration': 34}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 69}, {'task': 1, 'start': 138, 'machine': 'F', 'duration': 31}, {'task': 2, 'start': 169, 'machine': 'C', 'duration': 17}, {'task': 3, 'start': 350, 'machine': 'A', 'duration': 81}, {'task': 4, 'start': 451, 'machine': 'D', 'duration': 87}, {'task': 5, 'start': 603, 'machine': 'E', 'duration': 97}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 39, 'machine': 'F', 'duration': 99}, {'task': 1, 'start': 173, 'machine': 'B', 'duration': 7}, {'task': 2, 'start': 186, 'machine': 'C', 'duration': 58}, {'task': 3, 'start': 329, 'machine': 'A', 'duration': 18}, {'task': 4, 'start': 512, 'machine': 'E', 'duration': 32}, {'task': 5, 'start': 661, 'machine': 'D', 'duration': 99}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 39}, {'task': 1, 'start': 164, 'machine': 'D', 'duration': 68}, {'task': 2, 'start': 244, 'machine': 'C', 'duration': 40}, {'task': 3, 'start': 363, 'machine': 'E', 'duration': 48}, {'task': 4, 'start': 493, 'machine': 'A', 'duration': 55}, {'task': 5, 'start': 548, 'machine': 'B', 'duration': 83}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 83, 'machine': 'A', 'duration': 42}, {'task': 1, 'start': 125, 'machine': 'B', 'duration': 48}, {'task': 2, 'start': 177, 'machine': 'F', 'duration': 65}, {'task': 3, 'start': 276, 'machine': 'E', 'duration': 87}, {'task': 4, 'start': 538, 'machine': 'D', 'duration': 32}, {'task': 5, 'start': 570, 'machine': 'C', 'duration': 28}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 27}, {'task': 1, 'start': 27, 'machine': 'E', 'duration': 24}, {'task': 2, 'start': 312, 'machine': 'D', 'duration': 36}, {'task': 3, 'start': 349, 'machine': 'A', 'duration': 1}, {'task': 4, 'start': 379, 'machine': 'B', 'duration': 93}, {'task': 5, 'start': 472, 'machine': 'F', 'duration': 42}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 27, 'machine': 'C', 'duration': 8}, {'task': 1, 'start': 244, 'machine': 'A', 'duration': 16}, {'task': 2, 'start': 293, 'machine': 'F', 'duration': 60}, {'task': 3, 'start': 353, 'machine': 'B', 'duration': 15}, {'task': 4, 'start': 570, 'machine': 'D', 'duration': 91}, {'task': 5, 'start': 752, 'machine': 'E', 'duration': 6}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 125, 'machine': 'A', 'duration': 61}, {'task': 1, 'start': 232, 'machine': 'D', 'duration': 80}, {'task': 2, 'start': 544, 'machine': 'E', 'duration': 59}, {'task': 3, 'start': 603, 'machine': 'C', 'duration': 38}, {'task': 4, 'start': 641, 'machine': 'F', 'duration': 11}, {'task': 5, 'start': 652, 'machine': 'B', 'duration': 10}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 83}, {'task': 1, 'start': 169, 'machine': 'F', 'duration': 8}, {'task': 2, 'start': 226, 'machine': 'E', 'duration': 50}, {'task': 3, 'start': 284, 'machine': 'C', 'duration': 94}, {'task': 4, 'start': 396, 'machine': 'D', 'duration': 55}, {'task': 5, 'start': 472, 'machine': 'B', 'duration': 74}]}]",26,nl,names JSP,JSP,"I was watching a small metal shop the other day where each part needs a handful of machining and finishing steps in a certain order. The day’s problem is deciding which part goes to which machine and when, so every required step happens once and in the right sequence on the correct machine. The better plan is the one that gets the entire batch finished sooner — you can tell by the clock time when the last part leaves the bench. Concrete details about the parts, machines, and how long each step takes are listed below. # total_parts=12 # total_machines=6 # parts_list=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 # machine_ids=1, 2, 3, 4, 5, 6 part_id,operation_index,required_machine_id,processing_time J1,0,6,1 J1,1,4,94 J1,2,3,38 J1,3,5,19 J1,4,2,23 J1,5,1,89 J2,0,2,20 J2,1,6,17 J2,2,1,20 J2,3,5,56 J2,4,4,8 J2,5,3,32 J3,0,2,51 J3,1,5,35 J3,2,4,63 J3,3,6,2 J3,4,3,64 J3,5,1,52 J4,0,4,8 J4,1,2,54 J4,2,5,39 J4,3,3,70 J4,4,6,5 J4,5,1,27 J5,0,5,54 J5,1,1,83 J5,2,6,26 J5,3,4,47 J5,4,3,29 J5,5,2,68 J6,0,4,90 J6,1,2,83 J6,2,6,84 J6,3,3,23 J6,4,5,6 J6,5,1,32 J7,0,6,2 J7,1,4,44 J7,2,3,39 J7,3,2,84 J7,4,5,80 J7,5,1,81 J8,0,2,14 J8,1,1,23 J8,2,6,31 J8,3,5,94 J8,4,3,95 J8,5,4,16 J9,0,5,54 J9,1,1,67 J9,2,4,13 J9,3,3,49 J9,4,6,17 J9,5,2,69 J10,0,4,43 J10,1,3,32 J10,2,6,9 J10,3,1,5 J10,4,2,82 J10,5,5,12 J11,0,2,52 J11,1,6,31 J11,2,3,11 J11,3,4,69 J11,4,5,10 J11,5,1,59 J12,0,1,10 J12,1,5,17 J12,2,4,45 J12,3,6,2 J12,4,2,5 J12,5,3,13 If you want to hand me a candidate plan (or if you're expecting the output back from me), it's easiest if it's shaped like a little JSON snippet — nothing fancy, just a tidy list of jobs with their tasks and times. Here’s the sketch of the shape I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of ""solution"" as the whole batch. Each entry under it is a job (one of the parts on the shop floor). Inside a job, ""tasks"" is the sequence of steps for that part; each step records which task number it is, when it starts, which machine it uses, and how long it runs. That's just the form — a sketch of the expected shape, not the filled-in schedule. Please make sure to use the exact identifiers from the instance input — don't rename anything or invent new labels. Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[5, 1], [3, 94], [2, 38], [4, 19], [1, 23], [0, 89]], [[1, 20], [5, 17], [0, 20], [4, 56], [3, 8], [2, 32]], [[1, 51], [4, 35], [3, 63], [5, 2], [2, 64], [0, 52]], [[3, 8], [1, 54], [4, 39], [2, 70], [5, 5], [0, 27]], [[4, 54], [0, 83], [5, 26], [3, 47], [2, 29], [1, 68]], [[3, 90], [1, 83], [5, 84], [2, 23], [4, 6], [0, 32]], [[5, 2], [3, 44], [2, 39], [1, 84], [4, 80], [0, 81]], [[1, 14], [0, 23], [5, 31], [4, 94], [2, 95], [3, 16]], [[4, 54], [0, 67], [3, 13], [2, 49], [5, 17], [1, 69]], [[3, 43], [2, 32], [5, 9], [0, 5], [1, 82], [4, 12]], [[1, 52], [5, 31], [2, 11], [3, 69], [4, 10], [0, 59]], [[0, 10], [4, 17], [3, 45], [5, 2], [1, 5], [2, 13]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 2, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 52, 'machine': 3, 'duration': 94}, {'task': 2, 'start': 146, 'machine': 2, 'duration': 38}, {'task': 3, 'start': 202, 'machine': 4, 'duration': 19}, {'task': 4, 'start': 223, 'machine': 1, 'duration': 23}, {'task': 5, 'start': 246, 'machine': 0, 'duration': 89}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 14, 'machine': 1, 'duration': 20}, {'task': 1, 'start': 68, 'machine': 5, 'duration': 17}, {'task': 2, 'start': 204, 'machine': 0, 'duration': 20}, {'task': 3, 'start': 392, 'machine': 4, 'duration': 56}, {'task': 4, 'start': 532, 'machine': 3, 'duration': 8}, {'task': 5, 'start': 557, 'machine': 2, 'duration': 32}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 88, 'machine': 1, 'duration': 51}, {'task': 1, 'start': 238, 'machine': 4, 'duration': 35}, {'task': 2, 'start': 292, 'machine': 3, 'duration': 63}, {'task': 3, 'start': 355, 'machine': 5, 'duration': 2}, {'task': 4, 'start': 371, 'machine': 2, 'duration': 64}, {'task': 5, 'start': 435, 'machine': 0, 'duration': 52}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 8}, {'task': 1, 'start': 34, 'machine': 1, 'duration': 54}, {'task': 2, 'start': 353, 'machine': 4, 'duration': 39}, {'task': 3, 'start': 435, 'machine': 2, 'duration': 70}, {'task': 4, 'start': 505, 'machine': 5, 'duration': 5}, {'task': 5, 'start': 546, 'machine': 0, 'duration': 27}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 54, 'machine': 4, 'duration': 54}, {'task': 1, 'start': 121, 'machine': 0, 'duration': 83}, {'task': 2, 'start': 204, 'machine': 5, 'duration': 26}, {'task': 3, 'start': 355, 'machine': 3, 'duration': 47}, {'task': 4, 'start': 505, 'machine': 2, 'duration': 29}, {'task': 5, 'start': 537, 'machine': 1, 'duration': 68}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 202, 'machine': 3, 'duration': 90}, {'task': 1, 'start': 298, 'machine': 1, 'duration': 83}, {'task': 2, 'start': 382, 'machine': 5, 'duration': 84}, {'task': 3, 'start': 534, 'machine': 2, 'duration': 23}, {'task': 4, 'start': 557, 'machine': 4, 'duration': 6}, {'task': 5, 'start': 573, 'machine': 0, 'duration': 32}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 2}, {'task': 1, 'start': 8, 'machine': 3, 'duration': 44}, {'task': 2, 'start': 52, 'machine': 2, 'duration': 39}, {'task': 3, 'start': 139, 'machine': 1, 'duration': 84}, {'task': 4, 'start': 273, 'machine': 4, 'duration': 80}, {'task': 5, 'start': 353, 'machine': 0, 'duration': 81}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 14}, {'task': 1, 'start': 14, 'machine': 0, 'duration': 23}, {'task': 2, 'start': 37, 'machine': 5, 'duration': 31}, {'task': 3, 'start': 108, 'machine': 4, 'duration': 94}, {'task': 4, 'start': 265, 'machine': 2, 'duration': 95}, {'task': 5, 'start': 516, 'machine': 3, 'duration': 16}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 54}, {'task': 1, 'start': 54, 'machine': 0, 'duration': 67}, {'task': 2, 'start': 146, 'machine': 3, 'duration': 13}, {'task': 3, 'start': 184, 'machine': 2, 'duration': 49}, {'task': 4, 'start': 233, 'machine': 5, 'duration': 17}, {'task': 5, 'start': 463, 'machine': 1, 'duration': 69}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 159, 'machine': 3, 'duration': 43}, {'task': 1, 'start': 233, 'machine': 2, 'duration': 32}, {'task': 2, 'start': 265, 'machine': 5, 'duration': 9}, {'task': 3, 'start': 335, 'machine': 0, 'duration': 5}, {'task': 4, 'start': 381, 'machine': 1, 'duration': 82}, {'task': 5, 'start': 481, 'machine': 4, 'duration': 12}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 246, 'machine': 1, 'duration': 52}, {'task': 1, 'start': 298, 'machine': 5, 'duration': 31}, {'task': 2, 'start': 360, 'machine': 2, 'duration': 11}, {'task': 3, 'start': 402, 'machine': 3, 'duration': 69}, {'task': 4, 'start': 471, 'machine': 4, 'duration': 10}, {'task': 5, 'start': 487, 'machine': 0, 'duration': 59}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 10}, {'task': 1, 'start': 221, 'machine': 4, 'duration': 17}, {'task': 2, 'start': 471, 'machine': 3, 'duration': 45}, {'task': 3, 'start': 516, 'machine': 5, 'duration': 2}, {'task': 4, 'start': 532, 'machine': 1, 'duration': 5}, {'task': 5, 'start': 589, 'machine': 2, 'duration': 13}]}]",605.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [1, 2, 3, 4, 5, 6], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 6, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 94}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 38}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 19}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 2, 'duration': 23}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 1, 'duration': 89}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 20}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 6, 'duration': 17}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 20}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 5, 'duration': 56}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 4, 'duration': 8}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 3, 'duration': 32}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 2, 'duration': 51}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 5, 'duration': 35}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 4, 'duration': 63}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 6, 'duration': 2}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 64}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 1, 'duration': 52}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 8}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 2, 'duration': 54}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 5, 'duration': 39}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 3, 'duration': 70}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 6, 'duration': 5}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 1, 'duration': 27}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 5, 'duration': 54}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 83}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 6, 'duration': 26}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 4, 'duration': 47}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 3, 'duration': 29}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 2, 'duration': 68}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 90}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 2, 'duration': 83}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 6, 'duration': 84}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 3, 'duration': 23}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 5, 'duration': 6}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 1, 'duration': 32}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 6, 'duration': 2}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 4, 'duration': 44}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 3, 'duration': 39}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 84}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 5, 'duration': 80}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 1, 'duration': 81}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 2, 'duration': 14}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 23}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 6, 'duration': 31}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 5, 'duration': 94}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 95}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 4, 'duration': 16}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 5, 'duration': 54}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 67}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 4, 'duration': 13}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 49}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 6, 'duration': 17}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 2, 'duration': 69}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 4, 'duration': 43}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 3, 'duration': 32}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 6, 'duration': 9}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 1, 'duration': 5}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 2, 'duration': 82}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 5, 'duration': 12}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 2, 'duration': 52}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 6, 'duration': 31}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 3, 'duration': 11}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 4, 'duration': 69}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 5, 'duration': 10}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 1, 'duration': 59}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 1, 'duration': 10}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 5, 'duration': 17}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 4, 'duration': 45}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 6, 'duration': 2}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 2, 'duration': 5}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 3, 'duration': 13}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 2, 'machine': 6, 'duration': 1}, {'task': 1, 'start': 52, 'machine': 4, 'duration': 94}, {'task': 2, 'start': 146, 'machine': 3, 'duration': 38}, {'task': 3, 'start': 202, 'machine': 5, 'duration': 19}, {'task': 4, 'start': 223, 'machine': 2, 'duration': 23}, {'task': 5, 'start': 246, 'machine': 1, 'duration': 89}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 14, 'machine': 2, 'duration': 20}, {'task': 1, 'start': 68, 'machine': 6, 'duration': 17}, {'task': 2, 'start': 204, 'machine': 1, 'duration': 20}, {'task': 3, 'start': 392, 'machine': 5, 'duration': 56}, {'task': 4, 'start': 532, 'machine': 4, 'duration': 8}, {'task': 5, 'start': 557, 'machine': 3, 'duration': 32}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 88, 'machine': 2, 'duration': 51}, {'task': 1, 'start': 238, 'machine': 5, 'duration': 35}, {'task': 2, 'start': 292, 'machine': 4, 'duration': 63}, {'task': 3, 'start': 355, 'machine': 6, 'duration': 2}, {'task': 4, 'start': 371, 'machine': 3, 'duration': 64}, {'task': 5, 'start': 435, 'machine': 1, 'duration': 52}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 8}, {'task': 1, 'start': 34, 'machine': 2, 'duration': 54}, {'task': 2, 'start': 353, 'machine': 5, 'duration': 39}, {'task': 3, 'start': 435, 'machine': 3, 'duration': 70}, {'task': 4, 'start': 505, 'machine': 6, 'duration': 5}, {'task': 5, 'start': 546, 'machine': 1, 'duration': 27}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 54, 'machine': 5, 'duration': 54}, {'task': 1, 'start': 121, 'machine': 1, 'duration': 83}, {'task': 2, 'start': 204, 'machine': 6, 'duration': 26}, {'task': 3, 'start': 355, 'machine': 4, 'duration': 47}, {'task': 4, 'start': 505, 'machine': 3, 'duration': 29}, {'task': 5, 'start': 537, 'machine': 2, 'duration': 68}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 202, 'machine': 4, 'duration': 90}, {'task': 1, 'start': 298, 'machine': 2, 'duration': 83}, {'task': 2, 'start': 382, 'machine': 6, 'duration': 84}, {'task': 3, 'start': 534, 'machine': 3, 'duration': 23}, {'task': 4, 'start': 557, 'machine': 5, 'duration': 6}, {'task': 5, 'start': 573, 'machine': 1, 'duration': 32}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 6, 'duration': 2}, {'task': 1, 'start': 8, 'machine': 4, 'duration': 44}, {'task': 2, 'start': 52, 'machine': 3, 'duration': 39}, {'task': 3, 'start': 139, 'machine': 2, 'duration': 84}, {'task': 4, 'start': 273, 'machine': 5, 'duration': 80}, {'task': 5, 'start': 353, 'machine': 1, 'duration': 81}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 14}, {'task': 1, 'start': 14, 'machine': 1, 'duration': 23}, {'task': 2, 'start': 37, 'machine': 6, 'duration': 31}, {'task': 3, 'start': 108, 'machine': 5, 'duration': 94}, {'task': 4, 'start': 265, 'machine': 3, 'duration': 95}, {'task': 5, 'start': 516, 'machine': 4, 'duration': 16}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 54}, {'task': 1, 'start': 54, 'machine': 1, 'duration': 67}, {'task': 2, 'start': 146, 'machine': 4, 'duration': 13}, {'task': 3, 'start': 184, 'machine': 3, 'duration': 49}, {'task': 4, 'start': 233, 'machine': 6, 'duration': 17}, {'task': 5, 'start': 463, 'machine': 2, 'duration': 69}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 159, 'machine': 4, 'duration': 43}, {'task': 1, 'start': 233, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 265, 'machine': 6, 'duration': 9}, {'task': 3, 'start': 335, 'machine': 1, 'duration': 5}, {'task': 4, 'start': 381, 'machine': 2, 'duration': 82}, {'task': 5, 'start': 481, 'machine': 5, 'duration': 12}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 246, 'machine': 2, 'duration': 52}, {'task': 1, 'start': 298, 'machine': 6, 'duration': 31}, {'task': 2, 'start': 360, 'machine': 3, 'duration': 11}, {'task': 3, 'start': 402, 'machine': 4, 'duration': 69}, {'task': 4, 'start': 471, 'machine': 5, 'duration': 10}, {'task': 5, 'start': 487, 'machine': 1, 'duration': 59}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 10}, {'task': 1, 'start': 221, 'machine': 5, 'duration': 17}, {'task': 2, 'start': 471, 'machine': 4, 'duration': 45}, {'task': 3, 'start': 516, 'machine': 6, 'duration': 2}, {'task': 4, 'start': 532, 'machine': 2, 'duration': 5}, {'task': 5, 'start': 589, 'machine': 3, 'duration': 13}]}]",27,csv,1 JSP,JSP,"Someone in charge of the assembly line needs to decide the order bouquets visit the stations — each bouquet has a fixed chain of steps and each step has a fixed duration at a particular table or wrapping bench. Since each workstation can serve only one bouquet at a time and steps can’t be rearranged within a bouquet, the goal is to get all bouquets finished quickly; measure success by the time when the final bouquet is ready, and try to make that time as early as possible. The full list of tasks, stations and times appears below. They are listed here: 10 bouquets, 6 stations, bouquet ids J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, and station ids 0, 1, 2, 3, 4, 5. Bouquet J1, step 0 requires station 1 for 1 time units. Bouquet J1, step 1 requires station 4 for 8 time units. Bouquet J1, step 2 requires station 3 for 14 time units. Bouquet J1, step 3 requires station 5 for 65 time units. Bouquet J1, step 4 requires station 2 for 76 time units. Bouquet J1, step 5 requires station 0 for 11 time units. Bouquet J2, step 0 requires station 5 for 25 time units. Bouquet J2, step 1 requires station 0 for 84 time units. Bouquet J2, step 2 requires station 2 for 87 time units. Bouquet J2, step 3 requires station 1 for 49 time units. Bouquet J2, step 4 requires station 3 for 46 time units. Bouquet J2, step 5 requires station 4 for 84 time units. Bouquet J3, step 0 requires station 1 for 34 time units. Bouquet J3, step 1 requires station 5 for 39 time units. Bouquet J3, step 2 requires station 4 for 69 time units. Bouquet J3, step 3 requires station 3 for 55 time units. Bouquet J3, step 4 requires station 0 for 31 time units. Bouquet J3, step 5 requires station 2 for 53 time units. Bouquet J4, step 0 requires station 5 for 46 time units. Bouquet J4, step 1 requires station 0 for 61 time units. Bouquet J4, step 2 requires station 1 for 80 time units. Bouquet J4, step 3 requires station 2 for 39 time units. Bouquet J4, step 4 requires station 4 for 64 time units. Bouquet J4, step 5 requires station 3 for 20 time units. Bouquet J5, step 0 requires station 2 for 39 time units. Bouquet J5, step 1 requires station 4 for 36 time units. Bouquet J5, step 2 requires station 5 for 35 time units. Bouquet J5, step 3 requires station 1 for 12 time units. Bouquet J5, step 4 requires station 0 for 70 time units. Bouquet J5, step 5 requires station 3 for 38 time units. Bouquet J6, step 0 requires station 5 for 81 time units. Bouquet J6, step 1 requires station 0 for 59 time units. Bouquet J6, step 2 requires station 2 for 11 time units. Bouquet J6, step 3 requires station 1 for 28 time units. Bouquet J6, step 4 requires station 4 for 79 time units. Bouquet J6, step 5 requires station 3 for 65 time units. Bouquet J7, step 0 requires station 5 for 65 time units. Bouquet J7, step 1 requires station 1 for 20 time units. Bouquet J7, step 2 requires station 3 for 38 time units. Bouquet J7, step 3 requires station 4 for 21 time units. Bouquet J7, step 4 requires station 2 for 5 time units. Bouquet J7, step 5 requires station 0 for 79 time units. Bouquet J8, step 0 requires station 4 for 86 time units. Bouquet J8, step 1 requires station 3 for 98 time units. Bouquet J8, step 2 requires station 2 for 95 time units. Bouquet J8, step 3 requires station 1 for 2 time units. Bouquet J8, step 4 requires station 0 for 58 time units. Bouquet J8, step 5 requires station 5 for 5 time units. Bouquet J9, step 0 requires station 5 for 81 time units. Bouquet J9, step 1 requires station 0 for 12 time units. Bouquet J9, step 2 requires station 3 for 88 time units. Bouquet J9, step 3 requires station 4 for 96 time units. Bouquet J9, step 4 requires station 1 for 41 time units. Bouquet J9, step 5 requires station 2 for 96 time units. Bouquet J10, step 0 requires station 1 for 79 time units. Bouquet J10, step 1 requires station 3 for 49 time units. Bouquet J10, step 2 requires station 2 for 57 time units. Bouquet J10, step 3 requires station 0 for 93 time units. Bouquet J10, step 4 requires station 4 for 73 time units. Bouquet J10, step 5 requires station 5 for 18 time units. They should sequence these ordered steps to minimize the time when the final bouquet is ready. Oh, and if you want to give me a schedule or get one back, it's easiest if we stick to a tiny JSON layout like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that as a simple form: ""solution"" holds a list of bouquets (jobs). Each bouquet entry names the job id and a list of its steps; each step lists which task in the sequence it is, when that step should start, which station (machine) it uses, and how long it takes. That block is just the shape I expect — a sketch, not the finished schedule. Please make sure to use the exact identifiers from the instance input — don't rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[1, 1], [4, 8], [3, 14], [5, 65], [2, 76], [0, 11]], [[5, 25], [0, 84], [2, 87], [1, 49], [3, 46], [4, 84]], [[1, 34], [5, 39], [4, 69], [3, 55], [0, 31], [2, 53]], [[5, 46], [0, 61], [1, 80], [2, 39], [4, 64], [3, 20]], [[2, 39], [4, 36], [5, 35], [1, 12], [0, 70], [3, 38]], [[5, 81], [0, 59], [2, 11], [1, 28], [4, 79], [3, 65]], [[5, 65], [1, 20], [3, 38], [4, 21], [2, 5], [0, 79]], [[4, 86], [3, 98], [2, 95], [1, 2], [0, 58], [5, 5]], [[5, 81], [0, 12], [3, 88], [4, 96], [1, 41], [2, 96]], [[1, 79], [3, 49], [2, 57], [0, 93], [4, 73], [5, 18]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 113, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 114, 'machine': 4, 'duration': 8}, {'task': 2, 'start': 128, 'machine': 3, 'duration': 14}, {'task': 3, 'start': 337, 'machine': 5, 'duration': 65}, {'task': 4, 'start': 422, 'machine': 2, 'duration': 76}, {'task': 5, 'start': 539, 'machine': 0, 'duration': 11}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 166, 'machine': 5, 'duration': 25}, {'task': 1, 'start': 191, 'machine': 0, 'duration': 84}, {'task': 2, 'start': 335, 'machine': 2, 'duration': 87}, {'task': 3, 'start': 449, 'machine': 1, 'duration': 49}, {'task': 4, 'start': 498, 'machine': 3, 'duration': 46}, {'task': 5, 'start': 568, 'machine': 4, 'duration': 84}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 79, 'machine': 1, 'duration': 34}, {'task': 1, 'start': 127, 'machine': 5, 'duration': 39}, {'task': 2, 'start': 166, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 375, 'machine': 3, 'duration': 55}, {'task': 4, 'start': 438, 'machine': 0, 'duration': 31}, {'task': 5, 'start': 498, 'machine': 2, 'duration': 53}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 46}, {'task': 1, 'start': 46, 'machine': 0, 'duration': 61}, {'task': 2, 'start': 114, 'machine': 1, 'duration': 80}, {'task': 3, 'start': 197, 'machine': 2, 'duration': 39}, {'task': 4, 'start': 314, 'machine': 4, 'duration': 64}, {'task': 5, 'start': 468, 'machine': 3, 'duration': 20}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 39}, {'task': 1, 'start': 122, 'machine': 4, 'duration': 36}, {'task': 2, 'start': 402, 'machine': 5, 'duration': 35}, {'task': 3, 'start': 437, 'machine': 1, 'duration': 12}, {'task': 4, 'start': 469, 'machine': 0, 'duration': 70}, {'task': 5, 'start': 544, 'machine': 3, 'duration': 38}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 46, 'machine': 5, 'duration': 81}, {'task': 1, 'start': 127, 'machine': 0, 'duration': 59}, {'task': 2, 'start': 186, 'machine': 2, 'duration': 11}, {'task': 3, 'start': 197, 'machine': 1, 'duration': 28}, {'task': 4, 'start': 235, 'machine': 4, 'duration': 79}, {'task': 5, 'start': 582, 'machine': 3, 'duration': 65}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 272, 'machine': 5, 'duration': 65}, {'task': 1, 'start': 337, 'machine': 1, 'duration': 20}, {'task': 2, 'start': 430, 'machine': 3, 'duration': 38}, {'task': 3, 'start': 474, 'machine': 4, 'duration': 21}, {'task': 4, 'start': 551, 'machine': 2, 'duration': 5}, {'task': 5, 'start': 556, 'machine': 0, 'duration': 79}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 86}, {'task': 1, 'start': 142, 'machine': 3, 'duration': 98}, {'task': 2, 'start': 240, 'machine': 2, 'duration': 95}, {'task': 3, 'start': 335, 'machine': 1, 'duration': 2}, {'task': 4, 'start': 380, 'machine': 0, 'duration': 58}, {'task': 5, 'start': 469, 'machine': 5, 'duration': 5}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 191, 'machine': 5, 'duration': 81}, {'task': 1, 'start': 275, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 287, 'machine': 3, 'duration': 88}, {'task': 3, 'start': 378, 'machine': 4, 'duration': 96}, {'task': 4, 'start': 498, 'machine': 1, 'duration': 41}, {'task': 5, 'start': 556, 'machine': 2, 'duration': 96}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 79}, {'task': 1, 'start': 79, 'machine': 3, 'duration': 49}, {'task': 2, 'start': 128, 'machine': 2, 'duration': 57}, {'task': 3, 'start': 287, 'machine': 0, 'duration': 93}, {'task': 4, 'start': 495, 'machine': 4, 'duration': 73}, {'task': 5, 'start': 573, 'machine': 5, 'duration': 18}]}]",652.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': [0, 1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 1, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 8}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 14}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 65}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 2, 'duration': 76}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 0, 'duration': 11}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 25}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 0, 'duration': 84}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 2, 'duration': 87}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 1, 'duration': 49}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 46}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 4, 'duration': 84}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 1, 'duration': 34}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 5, 'duration': 39}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 4, 'duration': 69}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 55}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 0, 'duration': 31}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 2, 'duration': 53}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 5, 'duration': 46}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 0, 'duration': 61}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 80}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 39}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 4, 'duration': 64}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 3, 'duration': 20}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 2, 'duration': 39}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 4, 'duration': 36}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 5, 'duration': 35}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 12}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 0, 'duration': 70}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 3, 'duration': 38}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 5, 'duration': 81}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 0, 'duration': 59}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 2, 'duration': 11}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 1, 'duration': 28}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 79}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 3, 'duration': 65}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 5, 'duration': 65}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 20}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 3, 'duration': 38}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 4, 'duration': 21}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 5}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 0, 'duration': 79}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 4, 'duration': 86}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 98}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 95}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 2}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 0, 'duration': 58}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 5, 'duration': 5}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 5, 'duration': 81}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 0, 'duration': 12}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 88}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 4, 'duration': 96}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 41}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 2, 'duration': 96}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 1, 'duration': 79}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 3, 'duration': 49}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 2, 'duration': 57}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 0, 'duration': 93}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 4, 'duration': 73}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 5, 'duration': 18}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 113, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 114, 'machine': 4, 'duration': 8}, {'task': 2, 'start': 128, 'machine': 3, 'duration': 14}, {'task': 3, 'start': 337, 'machine': 5, 'duration': 65}, {'task': 4, 'start': 422, 'machine': 2, 'duration': 76}, {'task': 5, 'start': 539, 'machine': 0, 'duration': 11}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 166, 'machine': 5, 'duration': 25}, {'task': 1, 'start': 191, 'machine': 0, 'duration': 84}, {'task': 2, 'start': 335, 'machine': 2, 'duration': 87}, {'task': 3, 'start': 449, 'machine': 1, 'duration': 49}, {'task': 4, 'start': 498, 'machine': 3, 'duration': 46}, {'task': 5, 'start': 568, 'machine': 4, 'duration': 84}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 79, 'machine': 1, 'duration': 34}, {'task': 1, 'start': 127, 'machine': 5, 'duration': 39}, {'task': 2, 'start': 166, 'machine': 4, 'duration': 69}, {'task': 3, 'start': 375, 'machine': 3, 'duration': 55}, {'task': 4, 'start': 438, 'machine': 0, 'duration': 31}, {'task': 5, 'start': 498, 'machine': 2, 'duration': 53}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 46}, {'task': 1, 'start': 46, 'machine': 0, 'duration': 61}, {'task': 2, 'start': 114, 'machine': 1, 'duration': 80}, {'task': 3, 'start': 197, 'machine': 2, 'duration': 39}, {'task': 4, 'start': 314, 'machine': 4, 'duration': 64}, {'task': 5, 'start': 468, 'machine': 3, 'duration': 20}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 39}, {'task': 1, 'start': 122, 'machine': 4, 'duration': 36}, {'task': 2, 'start': 402, 'machine': 5, 'duration': 35}, {'task': 3, 'start': 437, 'machine': 1, 'duration': 12}, {'task': 4, 'start': 469, 'machine': 0, 'duration': 70}, {'task': 5, 'start': 544, 'machine': 3, 'duration': 38}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 46, 'machine': 5, 'duration': 81}, {'task': 1, 'start': 127, 'machine': 0, 'duration': 59}, {'task': 2, 'start': 186, 'machine': 2, 'duration': 11}, {'task': 3, 'start': 197, 'machine': 1, 'duration': 28}, {'task': 4, 'start': 235, 'machine': 4, 'duration': 79}, {'task': 5, 'start': 582, 'machine': 3, 'duration': 65}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 272, 'machine': 5, 'duration': 65}, {'task': 1, 'start': 337, 'machine': 1, 'duration': 20}, {'task': 2, 'start': 430, 'machine': 3, 'duration': 38}, {'task': 3, 'start': 474, 'machine': 4, 'duration': 21}, {'task': 4, 'start': 551, 'machine': 2, 'duration': 5}, {'task': 5, 'start': 556, 'machine': 0, 'duration': 79}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 86}, {'task': 1, 'start': 142, 'machine': 3, 'duration': 98}, {'task': 2, 'start': 240, 'machine': 2, 'duration': 95}, {'task': 3, 'start': 335, 'machine': 1, 'duration': 2}, {'task': 4, 'start': 380, 'machine': 0, 'duration': 58}, {'task': 5, 'start': 469, 'machine': 5, 'duration': 5}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 191, 'machine': 5, 'duration': 81}, {'task': 1, 'start': 275, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 287, 'machine': 3, 'duration': 88}, {'task': 3, 'start': 378, 'machine': 4, 'duration': 96}, {'task': 4, 'start': 498, 'machine': 1, 'duration': 41}, {'task': 5, 'start': 556, 'machine': 2, 'duration': 96}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 79}, {'task': 1, 'start': 79, 'machine': 3, 'duration': 49}, {'task': 2, 'start': 128, 'machine': 2, 'duration': 57}, {'task': 3, 'start': 287, 'machine': 0, 'duration': 93}, {'task': 4, 'start': 495, 'machine': 4, 'duration': 73}, {'task': 5, 'start': 573, 'machine': 5, 'duration': 18}]}]",28,nl,0 JSP,JSP,"There's this familiar scramble before air: a stack of segments, each with its own line of work to pass through, known durations for those jobs, and a handful of rooms that can only do one thing at a time. The decision is how to funnel the segments through those rooms so the final show can be handed off as early as possible. The measure that matters is the time on the clock when the final segment is done — the earlier that finish time, the better the plan. Every segment must complete every step in the given sequence; nothing gets left out or duplicated. The specific rundown and timings are listed below. There are 11 segments to route through 5 rooms; the segment identifiers are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and the room identifiers are A, B, C, D, E. Segment J1, step 0, requires room E for 1. Segment J1, step 1, requires room B for 21. Segment J1, step 2, requires room D for 89. Segment J1, step 3, requires room C for 11. Segment J1, step 4, requires room A for 30. Segment J2, step 0, requires room B for 33. Segment J2, step 1, requires room A for 30. Segment J2, step 2, requires room C for 52. Segment J2, step 3, requires room D for 55. Segment J2, step 4, requires room E for 43. Segment J3, step 0, requires room A for 84. Segment J3, step 1, requires room D for 36. Segment J3, step 2, requires room E for 17. Segment J3, step 3, requires room B for 42. Segment J3, step 4, requires room C for 74. Segment J4, step 0, requires room C for 8. Segment J4, step 1, requires room D for 98. Segment J4, step 2, requires room B for 54. Segment J4, step 3, requires room A for 84. Segment J4, step 4, requires room E for 68. Segment J5, step 0, requires room B for 23. Segment J5, step 1, requires room A for 8. Segment J5, step 2, requires room D for 23. Segment J5, step 3, requires room E for 13. Segment J5, step 4, requires room C for 23. Segment J6, step 0, requires room B for 88. Segment J6, step 1, requires room E for 44. Segment J6, step 2, requires room C for 77. Segment J6, step 3, requires room D for 12. Segment J6, step 4, requires room A for 9. Segment J7, step 0, requires room C for 72. Segment J7, step 1, requires room B for 36. Segment J7, step 2, requires room D for 37. Segment J7, step 3, requires room A for 32. Segment J7, step 4, requires room E for 53. Segment J8, step 0, requires room B for 97. Segment J8, step 1, requires room E for 29. Segment J8, step 2, requires room C for 94. Segment J8, step 3, requires room D for 37. Segment J8, step 4, requires room A for 57. Segment J9, step 0, requires room C for 29. Segment J9, step 1, requires room A for 78. Segment J9, step 2, requires room B for 59. Segment J9, step 3, requires room D for 73. Segment J9, step 4, requires room E for 61. Segment J10, step 0, requires room E for 9. Segment J10, step 1, requires room B for 22. Segment J10, step 2, requires room C for 93. Segment J10, step 3, requires room A for 9. Segment J10, step 4, requires room D for 55. Segment J11, step 0, requires room E for 65. Segment J11, step 1, requires room C for 44. Segment J11, step 2, requires room A for 64. Segment J11, step 3, requires room B for 25. Segment J11, step 4, requires room D for 15. Keep the plan aimed at getting the final segment handed off as early as possible. Oh, and a handy way to send the plan back is as a little JSON sketch — nothing fancy, just the shape I expect to see: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that as a simple form: ""solution"" holds a list of jobs, each job entry names the job and then lists its tasks; for each task you provide the task index (which step it is), the start time, the machine it runs on, and how long it takes. It's just the expected shape — not the actual filled-in answer. Please use the identifiers exactly as they appear in the instance input — do not rename them or invent new ones. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[4, 1], [1, 21], [3, 89], [2, 11], [0, 30]], [[1, 33], [0, 30], [2, 52], [3, 55], [4, 43]], [[0, 84], [3, 36], [4, 17], [1, 42], [2, 74]], [[2, 8], [3, 98], [1, 54], [0, 84], [4, 68]], [[1, 23], [0, 8], [3, 23], [4, 13], [2, 23]], [[1, 88], [4, 44], [2, 77], [3, 12], [0, 9]], [[2, 72], [1, 36], [3, 37], [0, 32], [4, 53]], [[1, 97], [4, 29], [2, 94], [3, 37], [0, 57]], [[2, 29], [0, 78], [1, 59], [3, 73], [4, 61]], [[4, 9], [1, 22], [2, 93], [0, 9], [3, 55]], [[4, 65], [2, 44], [0, 64], [1, 25], [3, 15]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 37, 'machine': 1, 'duration': 21}, {'task': 2, 'start': 109, 'machine': 3, 'duration': 89}, {'task': 3, 'start': 254, 'machine': 2, 'duration': 11}, {'task': 4, 'start': 481, 'machine': 0, 'duration': 30}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 4, 'machine': 1, 'duration': 33}, {'task': 1, 'start': 133, 'machine': 0, 'duration': 30}, {'task': 2, 'start': 202, 'machine': 2, 'duration': 52}, {'task': 3, 'start': 271, 'machine': 3, 'duration': 55}, {'task': 4, 'start': 326, 'machine': 4, 'duration': 43}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 84}, {'task': 1, 'start': 235, 'machine': 3, 'duration': 36}, {'task': 2, 'start': 426, 'machine': 4, 'duration': 17}, {'task': 3, 'start': 443, 'machine': 1, 'duration': 42}, {'task': 4, 'start': 503, 'machine': 2, 'duration': 74}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 8}, {'task': 1, 'start': 11, 'machine': 3, 'duration': 98}, {'task': 2, 'start': 240, 'machine': 1, 'duration': 54}, {'task': 3, 'start': 333, 'machine': 0, 'duration': 84}, {'task': 4, 'start': 443, 'machine': 4, 'duration': 68}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 58, 'machine': 1, 'duration': 23}, {'task': 1, 'start': 282, 'machine': 0, 'duration': 8}, {'task': 2, 'start': 328, 'machine': 3, 'duration': 23}, {'task': 3, 'start': 369, 'machine': 4, 'duration': 13}, {'task': 4, 'start': 403, 'machine': 2, 'duration': 23}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 294, 'machine': 1, 'duration': 88}, {'task': 1, 'start': 382, 'machine': 4, 'duration': 44}, {'task': 2, 'start': 426, 'machine': 2, 'duration': 77}, {'task': 3, 'start': 556, 'machine': 3, 'duration': 12}, {'task': 4, 'start': 568, 'machine': 0, 'duration': 9}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 8, 'machine': 2, 'duration': 72}, {'task': 1, 'start': 103, 'machine': 1, 'duration': 36}, {'task': 2, 'start': 198, 'machine': 3, 'duration': 37}, {'task': 3, 'start': 241, 'machine': 0, 'duration': 32}, {'task': 4, 'start': 273, 'machine': 4, 'duration': 53}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 139, 'machine': 1, 'duration': 97}, {'task': 1, 'start': 236, 'machine': 4, 'duration': 29}, {'task': 2, 'start': 265, 'machine': 2, 'duration': 94}, {'task': 3, 'start': 406, 'machine': 3, 'duration': 37}, {'task': 4, 'start': 511, 'machine': 0, 'duration': 57}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 80, 'machine': 2, 'duration': 29}, {'task': 1, 'start': 163, 'machine': 0, 'duration': 78}, {'task': 2, 'start': 384, 'machine': 1, 'duration': 59}, {'task': 3, 'start': 443, 'machine': 3, 'duration': 73}, {'task': 4, 'start': 516, 'machine': 4, 'duration': 61}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 72, 'machine': 4, 'duration': 9}, {'task': 1, 'start': 81, 'machine': 1, 'duration': 22}, {'task': 2, 'start': 109, 'machine': 2, 'duration': 93}, {'task': 3, 'start': 273, 'machine': 0, 'duration': 9}, {'task': 4, 'start': 351, 'machine': 3, 'duration': 55}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 65}, {'task': 1, 'start': 359, 'machine': 2, 'duration': 44}, {'task': 2, 'start': 417, 'machine': 0, 'duration': 64}, {'task': 3, 'start': 516, 'machine': 1, 'duration': 25}, {'task': 4, 'start': 541, 'machine': 3, 'duration': 15}]}]",577.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'E', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 21}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'D', 'duration': 89}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 11}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 30}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'B', 'duration': 33}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'A', 'duration': 30}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'C', 'duration': 52}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'D', 'duration': 55}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'E', 'duration': 43}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'A', 'duration': 84}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'D', 'duration': 36}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'E', 'duration': 17}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'B', 'duration': 42}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'C', 'duration': 74}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'C', 'duration': 8}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 98}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 54}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'A', 'duration': 84}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'E', 'duration': 68}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'B', 'duration': 23}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'A', 'duration': 8}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'D', 'duration': 23}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'E', 'duration': 13}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'C', 'duration': 23}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'B', 'duration': 88}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 44}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'C', 'duration': 77}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'D', 'duration': 12}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'A', 'duration': 9}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'C', 'duration': 72}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'B', 'duration': 36}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'D', 'duration': 37}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'A', 'duration': 32}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'E', 'duration': 53}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'B', 'duration': 97}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 29}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 94}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'D', 'duration': 37}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'A', 'duration': 57}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 29}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'A', 'duration': 78}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'B', 'duration': 59}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'D', 'duration': 73}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'E', 'duration': 61}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'E', 'duration': 9}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'B', 'duration': 22}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'C', 'duration': 93}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'A', 'duration': 9}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'D', 'duration': 55}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'E', 'duration': 65}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'C', 'duration': 44}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'A', 'duration': 64}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'B', 'duration': 25}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'D', 'duration': 15}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 1}, {'task': 1, 'start': 37, 'machine': 'B', 'duration': 21}, {'task': 2, 'start': 109, 'machine': 'D', 'duration': 89}, {'task': 3, 'start': 254, 'machine': 'C', 'duration': 11}, {'task': 4, 'start': 481, 'machine': 'A', 'duration': 30}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 4, 'machine': 'B', 'duration': 33}, {'task': 1, 'start': 133, 'machine': 'A', 'duration': 30}, {'task': 2, 'start': 202, 'machine': 'C', 'duration': 52}, {'task': 3, 'start': 271, 'machine': 'D', 'duration': 55}, {'task': 4, 'start': 326, 'machine': 'E', 'duration': 43}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 84}, {'task': 1, 'start': 235, 'machine': 'D', 'duration': 36}, {'task': 2, 'start': 426, 'machine': 'E', 'duration': 17}, {'task': 3, 'start': 443, 'machine': 'B', 'duration': 42}, {'task': 4, 'start': 503, 'machine': 'C', 'duration': 74}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 8}, {'task': 1, 'start': 11, 'machine': 'D', 'duration': 98}, {'task': 2, 'start': 240, 'machine': 'B', 'duration': 54}, {'task': 3, 'start': 333, 'machine': 'A', 'duration': 84}, {'task': 4, 'start': 443, 'machine': 'E', 'duration': 68}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 58, 'machine': 'B', 'duration': 23}, {'task': 1, 'start': 282, 'machine': 'A', 'duration': 8}, {'task': 2, 'start': 328, 'machine': 'D', 'duration': 23}, {'task': 3, 'start': 369, 'machine': 'E', 'duration': 13}, {'task': 4, 'start': 403, 'machine': 'C', 'duration': 23}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 294, 'machine': 'B', 'duration': 88}, {'task': 1, 'start': 382, 'machine': 'E', 'duration': 44}, {'task': 2, 'start': 426, 'machine': 'C', 'duration': 77}, {'task': 3, 'start': 556, 'machine': 'D', 'duration': 12}, {'task': 4, 'start': 568, 'machine': 'A', 'duration': 9}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 8, 'machine': 'C', 'duration': 72}, {'task': 1, 'start': 103, 'machine': 'B', 'duration': 36}, {'task': 2, 'start': 198, 'machine': 'D', 'duration': 37}, {'task': 3, 'start': 241, 'machine': 'A', 'duration': 32}, {'task': 4, 'start': 273, 'machine': 'E', 'duration': 53}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 139, 'machine': 'B', 'duration': 97}, {'task': 1, 'start': 236, 'machine': 'E', 'duration': 29}, {'task': 2, 'start': 265, 'machine': 'C', 'duration': 94}, {'task': 3, 'start': 406, 'machine': 'D', 'duration': 37}, {'task': 4, 'start': 511, 'machine': 'A', 'duration': 57}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 80, 'machine': 'C', 'duration': 29}, {'task': 1, 'start': 163, 'machine': 'A', 'duration': 78}, {'task': 2, 'start': 384, 'machine': 'B', 'duration': 59}, {'task': 3, 'start': 443, 'machine': 'D', 'duration': 73}, {'task': 4, 'start': 516, 'machine': 'E', 'duration': 61}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 72, 'machine': 'E', 'duration': 9}, {'task': 1, 'start': 81, 'machine': 'B', 'duration': 22}, {'task': 2, 'start': 109, 'machine': 'C', 'duration': 93}, {'task': 3, 'start': 273, 'machine': 'A', 'duration': 9}, {'task': 4, 'start': 351, 'machine': 'D', 'duration': 55}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 1, 'machine': 'E', 'duration': 65}, {'task': 1, 'start': 359, 'machine': 'C', 'duration': 44}, {'task': 2, 'start': 417, 'machine': 'A', 'duration': 64}, {'task': 3, 'start': 516, 'machine': 'B', 'duration': 25}, {'task': 4, 'start': 541, 'machine': 'D', 'duration': 15}]}]",29,nl,names JSP,JSP,"I run the little packaging line and need to figure out the best way to send every batch out fast. Each batch has a fixed string of steps — fill, cap, label, pack — and each step always takes the same amount of time. The choices are about who goes where and when on the different machines, but the trick is that each machine can only handle one thing at once and every batch must go through its steps in order, never skipping or repeating a step. A better plan is simply the one that gets the very last batch out sooner — measure that by looking at when each batch finishes and taking the latest finish time; that latest time is what to make as small as possible. The exact line layout, machine list and times are shown below. { ""nr_batches"": 11, ""nr_stations"": 5, ""batch_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"", ""J11"" ], ""station_ids"": [ ""A"", ""B"", ""C"", ""D"", ""E"" ], ""tasks"": [ { ""batch_id"": ""J1"", ""step_index"": 0, ""station_id"": ""B"", ""step_duration"": 1 }, { ""batch_id"": ""J1"", ""step_index"": 1, ""station_id"": ""E"", ""step_duration"": 34 }, { ""batch_id"": ""J1"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 65 }, { ""batch_id"": ""J1"", ""step_index"": 3, ""station_id"": ""C"", ""step_duration"": 56 }, { ""batch_id"": ""J1"", ""step_index"": 4, ""station_id"": ""A"", ""step_duration"": 82 }, { ""batch_id"": ""J2"", ""step_index"": 0, ""station_id"": ""D"", ""step_duration"": 55 }, { ""batch_id"": ""J2"", ""step_index"": 1, ""station_id"": ""B"", ""step_duration"": 34 }, { ""batch_id"": ""J2"", ""step_index"": 2, ""station_id"": ""E"", ""step_duration"": 20 }, { ""batch_id"": ""J2"", ""step_index"": 3, ""station_id"": ""A"", ""step_duration"": 23 }, { ""batch_id"": ""J2"", ""step_index"": 4, ""station_id"": ""C"", ""step_duration"": 36 }, { ""batch_id"": ""J3"", ""step_index"": 0, ""station_id"": ""D"", ""step_duration"": 23 }, { ""batch_id"": ""J3"", ""step_index"": 1, ""station_id"": ""C"", ""step_duration"": 87 }, { ""batch_id"": ""J3"", ""step_index"": 2, ""station_id"": ""E"", ""step_duration"": 99 }, { ""batch_id"": ""J3"", ""step_index"": 3, ""station_id"": ""B"", ""step_duration"": 46 }, { ""batch_id"": ""J3"", ""step_index"": 4, ""station_id"": ""A"", ""step_duration"": 79 }, { ""batch_id"": ""J4"", ""step_index"": 0, ""station_id"": ""E"", ""step_duration"": 61 }, { ""batch_id"": ""J4"", ""step_index"": 1, ""station_id"": ""C"", ""step_duration"": 65 }, { ""batch_id"": ""J4"", ""step_index"": 2, ""station_id"": ""B"", ""step_duration"": 55 }, { ""batch_id"": ""J4"", ""step_index"": 3, ""station_id"": ""A"", ""step_duration"": 23 }, { ""batch_id"": ""J4"", ""step_index"": 4, ""station_id"": ""D"", ""step_duration"": 74 }, { ""batch_id"": ""J5"", ""step_index"": 0, ""station_id"": ""D"", ""step_duration"": 64 }, { ""batch_id"": ""J5"", ""step_index"": 1, ""station_id"": ""E"", ""step_duration"": 76 }, { ""batch_id"": ""J5"", ""step_index"": 2, ""station_id"": ""B"", ""step_duration"": 81 }, { ""batch_id"": ""J5"", ""step_index"": 3, ""station_id"": ""C"", ""step_duration"": 7 }, { ""batch_id"": ""J5"", ""step_index"": 4, ""station_id"": ""A"", ""step_duration"": 8 }, { ""batch_id"": ""J6"", ""step_index"": 0, ""station_id"": ""E"", ""step_duration"": 41 }, { ""batch_id"": ""J6"", ""step_index"": 1, ""station_id"": ""A"", ""step_duration"": 53 }, { ""batch_id"": ""J6"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 43 }, { ""batch_id"": ""J6"", ""step_index"": 3, ""station_id"": ""B"", ""step_duration"": 54 }, { ""batch_id"": ""J6"", ""step_index"": 4, ""station_id"": ""C"", ""step_duration"": 78 }, { ""batch_id"": ""J7"", ""step_index"": 0, ""station_id"": ""E"", ""step_duration"": 63 }, { ""batch_id"": ""J7"", ""step_index"": 1, ""station_id"": ""B"", ""step_duration"": 12 }, { ""batch_id"": ""J7"", ""step_index"": 2, ""station_id"": ""A"", ""step_duration"": 63 }, { ""batch_id"": ""J7"", ""step_index"": 3, ""station_id"": ""C"", ""step_duration"": 37 }, { ""batch_id"": ""J7"", ""step_index"": 4, ""station_id"": ""D"", ""step_duration"": 26 }, { ""batch_id"": ""J8"", ""step_index"": 0, ""station_id"": ""B"", ""step_duration"": 31 }, { ""batch_id"": ""J8"", ""step_index"": 1, ""station_id"": ""A"", ""step_duration"": 91 }, { ""batch_id"": ""J8"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 70 }, { ""batch_id"": ""J8"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 37 }, { ""batch_id"": ""J8"", ""step_index"": 4, ""station_id"": ""C"", ""step_duration"": 93 }, { ""batch_id"": ""J9"", ""step_index"": 0, ""station_id"": ""C"", ""step_duration"": 54 }, { ""batch_id"": ""J9"", ""step_index"": 1, ""station_id"": ""B"", ""step_duration"": 76 }, { ""batch_id"": ""J9"", ""step_index"": 2, ""station_id"": ""D"", ""step_duration"": 31 }, { ""batch_id"": ""J9"", ""step_index"": 3, ""station_id"": ""E"", ""step_duration"": 49 }, { ""batch_id"": ""J9"", ""step_index"": 4, ""station_id"": ""A"", ""step_duration"": 26 }, { ""batch_id"": ""J10"", ""step_index"": 0, ""station_id"": ""E"", ""step_duration"": 16 }, { ""batch_id"": ""J10"", ""step_index"": 1, ""station_id"": ""A"", ""step_duration"": 84 }, { ""batch_id"": ""J10"", ""step_index"": 2, ""station_id"": ""C"", ""step_duration"": 81 }, { ""batch_id"": ""J10"", ""step_index"": 3, ""station_id"": ""D"", ""step_duration"": 36 }, { ""batch_id"": ""J10"", ""step_index"": 4, ""station_id"": ""B"", ""step_duration"": 98 }, { ""batch_id"": ""J11"", ""step_index"": 0, ""station_id"": ""D"", ""step_duration"": 42 }, { ""batch_id"": ""J11"", ""step_index"": 1, ""station_id"": ""A"", ""step_duration"": 91 }, { ""batch_id"": ""J11"", ""step_index"": 2, ""station_id"": ""C"", ""step_duration"": 88 }, { ""batch_id"": ""J11"", ""step_index"": 3, ""station_id"": ""B"", ""step_duration"": 52 }, { ""batch_id"": ""J11"", ""step_index"": 4, ""station_id"": ""E"", ""step_duration"": 51 } ] } Also, when you send the actual plan back, please use this simple JSON layout so I can read the schedule easily: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: the top-level ""solution"" is a list of batches (jobs). Each batch lists its tasks in order, and for each task you give the task index (which step it is), the time it starts, what machine it runs on, and how long it takes. Super casual — just fill in the fields for each job. This JSON is only a sketch of the shape I expect, not the actual answer. Please make sure you use the exact identifiers from the instance input — do not rename them or invent new labels. for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[1, 1], [4, 34], [3, 65], [2, 56], [0, 82]], [[3, 55], [1, 34], [4, 20], [0, 23], [2, 36]], [[3, 23], [2, 87], [4, 99], [1, 46], [0, 79]], [[4, 61], [2, 65], [1, 55], [0, 23], [3, 74]], [[3, 64], [4, 76], [1, 81], [2, 7], [0, 8]], [[4, 41], [0, 53], [3, 43], [1, 54], [2, 78]], [[4, 63], [1, 12], [0, 63], [2, 37], [3, 26]], [[1, 31], [0, 91], [3, 70], [4, 37], [2, 93]], [[2, 54], [1, 76], [3, 31], [4, 49], [0, 26]], [[4, 16], [0, 84], [2, 81], [3, 36], [1, 98]], [[3, 42], [0, 91], [2, 88], [1, 52], [4, 51]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 31, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 118, 'machine': 4, 'duration': 34}, {'task': 2, 'start': 184, 'machine': 3, 'duration': 65}, {'task': 3, 'start': 468, 'machine': 2, 'duration': 56}, {'task': 4, 'start': 531, 'machine': 0, 'duration': 82}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 129, 'machine': 3, 'duration': 55}, {'task': 1, 'start': 184, 'machine': 1, 'duration': 34}, {'task': 2, 'start': 427, 'machine': 4, 'duration': 20}, {'task': 3, 'start': 508, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 646, 'machine': 2, 'duration': 36}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 23}, {'task': 1, 'start': 54, 'machine': 2, 'duration': 87}, {'task': 2, 'start': 152, 'machine': 4, 'duration': 99}, {'task': 3, 'start': 251, 'machine': 1, 'duration': 46}, {'task': 4, 'start': 335, 'machine': 0, 'duration': 79}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 16, 'machine': 4, 'duration': 61}, {'task': 1, 'start': 222, 'machine': 2, 'duration': 65}, {'task': 2, 'start': 297, 'machine': 1, 'duration': 55}, {'task': 3, 'start': 414, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 437, 'machine': 3, 'duration': 74}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 65, 'machine': 3, 'duration': 64}, {'task': 1, 'start': 251, 'machine': 4, 'duration': 76}, {'task': 2, 'start': 352, 'machine': 1, 'duration': 81}, {'task': 3, 'start': 639, 'machine': 2, 'duration': 7}, {'task': 4, 'start': 646, 'machine': 0, 'duration': 8}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 77, 'machine': 4, 'duration': 41}, {'task': 1, 'start': 282, 'machine': 0, 'duration': 53}, {'task': 2, 'start': 355, 'machine': 3, 'duration': 43}, {'task': 3, 'start': 445, 'machine': 1, 'duration': 54}, {'task': 4, 'start': 524, 'machine': 2, 'duration': 78}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 364, 'machine': 4, 'duration': 63}, {'task': 1, 'start': 433, 'machine': 1, 'duration': 12}, {'task': 2, 'start': 445, 'machine': 0, 'duration': 63}, {'task': 3, 'start': 602, 'machine': 2, 'duration': 37}, {'task': 4, 'start': 639, 'machine': 3, 'duration': 26}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 31}, {'task': 1, 'start': 100, 'machine': 0, 'duration': 91}, {'task': 2, 'start': 249, 'machine': 3, 'duration': 70}, {'task': 3, 'start': 327, 'machine': 4, 'duration': 37}, {'task': 4, 'start': 375, 'machine': 2, 'duration': 93}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 54}, {'task': 1, 'start': 54, 'machine': 1, 'duration': 76}, {'task': 2, 'start': 398, 'machine': 3, 'duration': 31}, {'task': 3, 'start': 447, 'machine': 4, 'duration': 49}, {'task': 4, 'start': 613, 'machine': 0, 'duration': 26}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 16}, {'task': 1, 'start': 16, 'machine': 0, 'duration': 84}, {'task': 2, 'start': 141, 'machine': 2, 'duration': 81}, {'task': 3, 'start': 319, 'machine': 3, 'duration': 36}, {'task': 4, 'start': 551, 'machine': 1, 'duration': 98}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 23, 'machine': 3, 'duration': 42}, {'task': 1, 'start': 191, 'machine': 0, 'duration': 91}, {'task': 2, 'start': 287, 'machine': 2, 'duration': 88}, {'task': 3, 'start': 499, 'machine': 1, 'duration': 52}, {'task': 4, 'start': 551, 'machine': 4, 'duration': 51}]}]",682.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'B', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 34}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'D', 'duration': 65}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'C', 'duration': 56}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 82}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'D', 'duration': 55}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'B', 'duration': 34}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'E', 'duration': 20}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'A', 'duration': 23}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'C', 'duration': 36}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'D', 'duration': 23}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'C', 'duration': 87}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'E', 'duration': 99}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'B', 'duration': 46}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'A', 'duration': 79}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 61}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'C', 'duration': 65}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 55}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'A', 'duration': 23}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'D', 'duration': 74}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'D', 'duration': 64}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'E', 'duration': 76}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'B', 'duration': 81}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'C', 'duration': 7}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'A', 'duration': 8}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'E', 'duration': 41}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'A', 'duration': 53}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 43}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'B', 'duration': 54}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 78}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'E', 'duration': 63}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'B', 'duration': 12}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 63}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'C', 'duration': 37}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'D', 'duration': 26}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'B', 'duration': 31}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'A', 'duration': 91}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'D', 'duration': 70}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'E', 'duration': 37}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'C', 'duration': 93}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 54}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'B', 'duration': 76}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'D', 'duration': 31}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'E', 'duration': 49}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'A', 'duration': 26}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'E', 'duration': 16}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'A', 'duration': 84}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'C', 'duration': 81}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'D', 'duration': 36}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'B', 'duration': 98}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'D', 'duration': 42}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'A', 'duration': 91}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'C', 'duration': 88}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'B', 'duration': 52}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'E', 'duration': 51}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 31, 'machine': 'B', 'duration': 1}, {'task': 1, 'start': 118, 'machine': 'E', 'duration': 34}, {'task': 2, 'start': 184, 'machine': 'D', 'duration': 65}, {'task': 3, 'start': 468, 'machine': 'C', 'duration': 56}, {'task': 4, 'start': 531, 'machine': 'A', 'duration': 82}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 129, 'machine': 'D', 'duration': 55}, {'task': 1, 'start': 184, 'machine': 'B', 'duration': 34}, {'task': 2, 'start': 427, 'machine': 'E', 'duration': 20}, {'task': 3, 'start': 508, 'machine': 'A', 'duration': 23}, {'task': 4, 'start': 646, 'machine': 'C', 'duration': 36}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 23}, {'task': 1, 'start': 54, 'machine': 'C', 'duration': 87}, {'task': 2, 'start': 152, 'machine': 'E', 'duration': 99}, {'task': 3, 'start': 251, 'machine': 'B', 'duration': 46}, {'task': 4, 'start': 335, 'machine': 'A', 'duration': 79}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 16, 'machine': 'E', 'duration': 61}, {'task': 1, 'start': 222, 'machine': 'C', 'duration': 65}, {'task': 2, 'start': 297, 'machine': 'B', 'duration': 55}, {'task': 3, 'start': 414, 'machine': 'A', 'duration': 23}, {'task': 4, 'start': 437, 'machine': 'D', 'duration': 74}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 65, 'machine': 'D', 'duration': 64}, {'task': 1, 'start': 251, 'machine': 'E', 'duration': 76}, {'task': 2, 'start': 352, 'machine': 'B', 'duration': 81}, {'task': 3, 'start': 639, 'machine': 'C', 'duration': 7}, {'task': 4, 'start': 646, 'machine': 'A', 'duration': 8}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 77, 'machine': 'E', 'duration': 41}, {'task': 1, 'start': 282, 'machine': 'A', 'duration': 53}, {'task': 2, 'start': 355, 'machine': 'D', 'duration': 43}, {'task': 3, 'start': 445, 'machine': 'B', 'duration': 54}, {'task': 4, 'start': 524, 'machine': 'C', 'duration': 78}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 364, 'machine': 'E', 'duration': 63}, {'task': 1, 'start': 433, 'machine': 'B', 'duration': 12}, {'task': 2, 'start': 445, 'machine': 'A', 'duration': 63}, {'task': 3, 'start': 602, 'machine': 'C', 'duration': 37}, {'task': 4, 'start': 639, 'machine': 'D', 'duration': 26}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 31}, {'task': 1, 'start': 100, 'machine': 'A', 'duration': 91}, {'task': 2, 'start': 249, 'machine': 'D', 'duration': 70}, {'task': 3, 'start': 327, 'machine': 'E', 'duration': 37}, {'task': 4, 'start': 375, 'machine': 'C', 'duration': 93}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 54}, {'task': 1, 'start': 54, 'machine': 'B', 'duration': 76}, {'task': 2, 'start': 398, 'machine': 'D', 'duration': 31}, {'task': 3, 'start': 447, 'machine': 'E', 'duration': 49}, {'task': 4, 'start': 613, 'machine': 'A', 'duration': 26}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 16}, {'task': 1, 'start': 16, 'machine': 'A', 'duration': 84}, {'task': 2, 'start': 141, 'machine': 'C', 'duration': 81}, {'task': 3, 'start': 319, 'machine': 'D', 'duration': 36}, {'task': 4, 'start': 551, 'machine': 'B', 'duration': 98}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 23, 'machine': 'D', 'duration': 42}, {'task': 1, 'start': 191, 'machine': 'A', 'duration': 91}, {'task': 2, 'start': 287, 'machine': 'C', 'duration': 88}, {'task': 3, 'start': 499, 'machine': 'B', 'duration': 52}, {'task': 4, 'start': 551, 'machine': 'E', 'duration': 51}]}]",30,json,names JSP,JSP,"Recently the coordinator was tasked with arranging all class sessions so each class follows its list of sessions in order, every session runs for a fixed period, and no room gets two things at the same time. The aim is practical and simple: make the time when the final session across the school ends as early as possible — for each plan, check when each class ends and take the latest of those times. No session can be left out or duplicated; specific session lengths and room assignments are listed below. { ""total_classes"": 10, ""total_rooms"": 5, ""class_identifiers"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"" ], ""room_identifiers"": [ ""A"", ""B"", ""C"", ""D"", ""E"" ], ""tasks"": [ { ""class_id"": ""J1"", ""session_index"": 0, ""room_id"": ""E"", ""session_length"": 1 }, { ""class_id"": ""J1"", ""session_index"": 1, ""room_id"": ""C"", ""session_length"": 47 }, { ""class_id"": ""J1"", ""session_index"": 2, ""room_id"": ""B"", ""session_length"": 40 }, { ""class_id"": ""J1"", ""session_index"": 3, ""room_id"": ""D"", ""session_length"": 3 }, { ""class_id"": ""J1"", ""session_index"": 4, ""room_id"": ""A"", ""session_length"": 36 }, { ""class_id"": ""J2"", ""session_index"": 0, ""room_id"": ""E"", ""session_length"": 76 }, { ""class_id"": ""J2"", ""session_index"": 1, ""room_id"": ""D"", ""session_length"": 39 }, { ""class_id"": ""J2"", ""session_index"": 2, ""room_id"": ""C"", ""session_length"": 87 }, { ""class_id"": ""J2"", ""session_index"": 3, ""room_id"": ""B"", ""session_length"": 91 }, { ""class_id"": ""J2"", ""session_index"": 4, ""room_id"": ""A"", ""session_length"": 30 }, { ""class_id"": ""J3"", ""session_index"": 0, ""room_id"": ""D"", ""session_length"": 61 }, { ""class_id"": ""J3"", ""session_index"": 1, ""room_id"": ""C"", ""session_length"": 40 }, { ""class_id"": ""J3"", ""session_index"": 2, ""room_id"": ""B"", ""session_length"": 83 }, { ""class_id"": ""J3"", ""session_index"": 3, ""room_id"": ""A"", ""session_length"": 49 }, { ""class_id"": ""J3"", ""session_index"": 4, ""room_id"": ""E"", ""session_length"": 85 }, { ""class_id"": ""J4"", ""session_index"": 0, ""room_id"": ""E"", ""session_length"": 14 }, { ""class_id"": ""J4"", ""session_index"": 1, ""room_id"": ""D"", ""session_length"": 32 }, { ""class_id"": ""J4"", ""session_index"": 2, ""room_id"": ""B"", ""session_length"": 55 }, { ""class_id"": ""J4"", ""session_index"": 3, ""room_id"": ""A"", ""session_length"": 60 }, { ""class_id"": ""J4"", ""session_index"": 4, ""room_id"": ""C"", ""session_length"": 81 }, { ""class_id"": ""J5"", ""session_index"": 0, ""room_id"": ""B"", ""session_length"": 6 }, { ""class_id"": ""J5"", ""session_index"": 1, ""room_id"": ""A"", ""session_length"": 45 }, { ""class_id"": ""J5"", ""session_index"": 2, ""room_id"": ""D"", ""session_length"": 41 }, { ""class_id"": ""J5"", ""session_index"": 3, ""room_id"": ""C"", ""session_length"": 99 }, { ""class_id"": ""J5"", ""session_index"": 4, ""room_id"": ""E"", ""session_length"": 92 }, { ""class_id"": ""J6"", ""session_index"": 0, ""room_id"": ""B"", ""session_length"": 93 }, { ""class_id"": ""J6"", ""session_index"": 1, ""room_id"": ""C"", ""session_length"": 62 }, { ""class_id"": ""J6"", ""session_index"": 2, ""room_id"": ""D"", ""session_length"": 9 }, { ""class_id"": ""J6"", ""session_index"": 3, ""room_id"": ""A"", ""session_length"": 95 }, { ""class_id"": ""J6"", ""session_index"": 4, ""room_id"": ""E"", ""session_length"": 49 }, { ""class_id"": ""J7"", ""session_index"": 0, ""room_id"": ""B"", ""session_length"": 54 }, { ""class_id"": ""J7"", ""session_index"": 1, ""room_id"": ""E"", ""session_length"": 87 }, { ""class_id"": ""J7"", ""session_index"": 2, ""room_id"": ""D"", ""session_length"": 89 }, { ""class_id"": ""J7"", ""session_index"": 3, ""room_id"": ""A"", ""session_length"": 42 }, { ""class_id"": ""J7"", ""session_index"": 4, ""room_id"": ""C"", ""session_length"": 99 }, { ""class_id"": ""J8"", ""session_index"": 0, ""room_id"": ""A"", ""session_length"": 63 }, { ""class_id"": ""J8"", ""session_index"": 1, ""room_id"": ""D"", ""session_length"": 55 }, { ""class_id"": ""J8"", ""session_index"": 2, ""room_id"": ""C"", ""session_length"": 46 }, { ""class_id"": ""J8"", ""session_index"": 3, ""room_id"": ""B"", ""session_length"": 36 }, { ""class_id"": ""J8"", ""session_index"": 4, ""room_id"": ""E"", ""session_length"": 31 }, { ""class_id"": ""J9"", ""session_index"": 0, ""room_id"": ""D"", ""session_length"": 78 }, { ""class_id"": ""J9"", ""session_index"": 1, ""room_id"": ""B"", ""session_length"": 74 }, { ""class_id"": ""J9"", ""session_index"": 2, ""room_id"": ""E"", ""session_length"": 4 }, { ""class_id"": ""J9"", ""session_index"": 3, ""room_id"": ""A"", ""session_length"": 24 }, { ""class_id"": ""J9"", ""session_index"": 4, ""room_id"": ""C"", ""session_length"": 91 }, { ""class_id"": ""J10"", ""session_index"": 0, ""room_id"": ""A"", ""session_length"": 24 }, { ""class_id"": ""J10"", ""session_index"": 1, ""room_id"": ""B"", ""session_length"": 48 }, { ""class_id"": ""J10"", ""session_index"": 2, ""room_id"": ""D"", ""session_length"": 70 }, { ""class_id"": ""J10"", ""session_index"": 3, ""room_id"": ""C"", ""session_length"": 63 }, { ""class_id"": ""J10"", ""session_index"": 4, ""room_id"": ""E"", ""session_length"": 42 } ] } Also, when you send back a plan, please use this JSON layout so it's easy to read and check: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a simple sketch of the shape I expect. Think of it like a form: ""solution"" holds a list of classes; each entry's job is the class identifier, and its tasks list describes each session in order. For each session you give the task index (which session number it is), the start time, which room (machine) it's in, and how long it lasts. The JSON above is an example structure only — not the actual schedule. Please make sure to use the identifiers exactly as they appear in the instance input — do not rename them or invent new ones. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 10, 'jobs': [[[4, 1], [2, 47], [1, 40], [3, 3], [0, 36]], [[4, 76], [3, 39], [2, 87], [1, 91], [0, 30]], [[3, 61], [2, 40], [1, 83], [0, 49], [4, 85]], [[4, 14], [3, 32], [1, 55], [0, 60], [2, 81]], [[1, 6], [0, 45], [3, 41], [2, 99], [4, 92]], [[1, 93], [2, 62], [3, 9], [0, 95], [4, 49]], [[1, 54], [4, 87], [3, 89], [0, 42], [2, 99]], [[0, 63], [3, 55], [2, 46], [1, 36], [4, 31]], [[3, 78], [1, 74], [4, 4], [0, 24], [2, 91]], [[0, 24], [1, 48], [3, 70], [2, 63], [4, 42]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 2, 'duration': 47}, {'task': 2, 'start': 504, 'machine': 1, 'duration': 40}, {'task': 3, 'start': 544, 'machine': 3, 'duration': 3}, {'task': 4, 'start': 547, 'machine': 0, 'duration': 36}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 76}, {'task': 1, 'start': 118, 'machine': 3, 'duration': 39}, {'task': 2, 'start': 163, 'machine': 2, 'duration': 87}, {'task': 3, 'start': 413, 'machine': 1, 'duration': 91}, {'task': 4, 'start': 583, 'machine': 0, 'duration': 30}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 61}, {'task': 1, 'start': 61, 'machine': 2, 'duration': 40}, {'task': 2, 'start': 153, 'machine': 1, 'duration': 83}, {'task': 3, 'start': 236, 'machine': 0, 'duration': 49}, {'task': 4, 'start': 362, 'machine': 4, 'duration': 85}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 77, 'machine': 4, 'duration': 14}, {'task': 1, 'start': 285, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 358, 'machine': 1, 'duration': 55}, {'task': 3, 'start': 413, 'machine': 0, 'duration': 60}, {'task': 4, 'start': 648, 'machine': 2, 'duration': 81}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 93, 'machine': 1, 'duration': 6}, {'task': 1, 'start': 99, 'machine': 0, 'duration': 45}, {'task': 2, 'start': 157, 'machine': 3, 'duration': 41}, {'task': 3, 'start': 250, 'machine': 2, 'duration': 99}, {'task': 4, 'start': 447, 'machine': 4, 'duration': 92}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 93}, {'task': 1, 'start': 101, 'machine': 2, 'duration': 62}, {'task': 2, 'start': 276, 'machine': 3, 'duration': 9}, {'task': 3, 'start': 285, 'machine': 0, 'duration': 95}, {'task': 4, 'start': 581, 'machine': 4, 'duration': 49}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 99, 'machine': 1, 'duration': 54}, {'task': 1, 'start': 153, 'machine': 4, 'duration': 87}, {'task': 2, 'start': 387, 'machine': 3, 'duration': 89}, {'task': 3, 'start': 476, 'machine': 0, 'duration': 42}, {'task': 4, 'start': 549, 'machine': 2, 'duration': 99}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 63}, {'task': 1, 'start': 63, 'machine': 3, 'duration': 55}, {'task': 2, 'start': 349, 'machine': 2, 'duration': 46}, {'task': 3, 'start': 544, 'machine': 1, 'duration': 36}, {'task': 4, 'start': 630, 'machine': 4, 'duration': 31}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 198, 'machine': 3, 'duration': 78}, {'task': 1, 'start': 284, 'machine': 1, 'duration': 74}, {'task': 2, 'start': 358, 'machine': 4, 'duration': 4}, {'task': 3, 'start': 380, 'machine': 0, 'duration': 24}, {'task': 4, 'start': 458, 'machine': 2, 'duration': 91}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 63, 'machine': 0, 'duration': 24}, {'task': 1, 'start': 236, 'machine': 1, 'duration': 48}, {'task': 2, 'start': 317, 'machine': 3, 'duration': 70}, {'task': 3, 'start': 395, 'machine': 2, 'duration': 63}, {'task': 4, 'start': 539, 'machine': 4, 'duration': 42}]}]",729.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'E', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'C', 'duration': 47}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 40}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'D', 'duration': 3}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 36}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'E', 'duration': 76}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'D', 'duration': 39}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'C', 'duration': 87}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'B', 'duration': 91}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'A', 'duration': 30}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'D', 'duration': 61}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'C', 'duration': 40}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'B', 'duration': 83}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'A', 'duration': 49}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'E', 'duration': 85}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'E', 'duration': 14}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 55}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'A', 'duration': 60}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'C', 'duration': 81}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'B', 'duration': 6}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'A', 'duration': 45}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'D', 'duration': 41}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'C', 'duration': 99}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'E', 'duration': 92}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'B', 'duration': 93}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'C', 'duration': 62}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 9}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'A', 'duration': 95}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'E', 'duration': 49}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'B', 'duration': 54}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'E', 'duration': 87}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'D', 'duration': 89}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'A', 'duration': 42}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'C', 'duration': 99}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'A', 'duration': 63}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'D', 'duration': 55}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 46}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'B', 'duration': 36}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'E', 'duration': 31}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'D', 'duration': 78}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'B', 'duration': 74}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'E', 'duration': 4}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'A', 'duration': 24}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'C', 'duration': 91}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'A', 'duration': 24}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'B', 'duration': 48}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'D', 'duration': 70}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'C', 'duration': 63}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'E', 'duration': 42}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 1}, {'task': 1, 'start': 1, 'machine': 'C', 'duration': 47}, {'task': 2, 'start': 504, 'machine': 'B', 'duration': 40}, {'task': 3, 'start': 544, 'machine': 'D', 'duration': 3}, {'task': 4, 'start': 547, 'machine': 'A', 'duration': 36}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 1, 'machine': 'E', 'duration': 76}, {'task': 1, 'start': 118, 'machine': 'D', 'duration': 39}, {'task': 2, 'start': 163, 'machine': 'C', 'duration': 87}, {'task': 3, 'start': 413, 'machine': 'B', 'duration': 91}, {'task': 4, 'start': 583, 'machine': 'A', 'duration': 30}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 61}, {'task': 1, 'start': 61, 'machine': 'C', 'duration': 40}, {'task': 2, 'start': 153, 'machine': 'B', 'duration': 83}, {'task': 3, 'start': 236, 'machine': 'A', 'duration': 49}, {'task': 4, 'start': 362, 'machine': 'E', 'duration': 85}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 77, 'machine': 'E', 'duration': 14}, {'task': 1, 'start': 285, 'machine': 'D', 'duration': 32}, {'task': 2, 'start': 358, 'machine': 'B', 'duration': 55}, {'task': 3, 'start': 413, 'machine': 'A', 'duration': 60}, {'task': 4, 'start': 648, 'machine': 'C', 'duration': 81}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 93, 'machine': 'B', 'duration': 6}, {'task': 1, 'start': 99, 'machine': 'A', 'duration': 45}, {'task': 2, 'start': 157, 'machine': 'D', 'duration': 41}, {'task': 3, 'start': 250, 'machine': 'C', 'duration': 99}, {'task': 4, 'start': 447, 'machine': 'E', 'duration': 92}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 93}, {'task': 1, 'start': 101, 'machine': 'C', 'duration': 62}, {'task': 2, 'start': 276, 'machine': 'D', 'duration': 9}, {'task': 3, 'start': 285, 'machine': 'A', 'duration': 95}, {'task': 4, 'start': 581, 'machine': 'E', 'duration': 49}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 99, 'machine': 'B', 'duration': 54}, {'task': 1, 'start': 153, 'machine': 'E', 'duration': 87}, {'task': 2, 'start': 387, 'machine': 'D', 'duration': 89}, {'task': 3, 'start': 476, 'machine': 'A', 'duration': 42}, {'task': 4, 'start': 549, 'machine': 'C', 'duration': 99}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 63}, {'task': 1, 'start': 63, 'machine': 'D', 'duration': 55}, {'task': 2, 'start': 349, 'machine': 'C', 'duration': 46}, {'task': 3, 'start': 544, 'machine': 'B', 'duration': 36}, {'task': 4, 'start': 630, 'machine': 'E', 'duration': 31}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 198, 'machine': 'D', 'duration': 78}, {'task': 1, 'start': 284, 'machine': 'B', 'duration': 74}, {'task': 2, 'start': 358, 'machine': 'E', 'duration': 4}, {'task': 3, 'start': 380, 'machine': 'A', 'duration': 24}, {'task': 4, 'start': 458, 'machine': 'C', 'duration': 91}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 63, 'machine': 'A', 'duration': 24}, {'task': 1, 'start': 236, 'machine': 'B', 'duration': 48}, {'task': 2, 'start': 317, 'machine': 'D', 'duration': 70}, {'task': 3, 'start': 395, 'machine': 'C', 'duration': 63}, {'task': 4, 'start': 539, 'machine': 'E', 'duration': 42}]}]",31,json,names JSP,JSP,"On a busy morning the radiology scheduler picks start times so every patient’s imaging sequence flows: each scan sits on the scanner it’s supposed to, takes the exact time it needs, follows the previous scan for that patient, and never clashes with another scan on the same machine — success is simply how early the entire set of patients is done, measured by when the last scheduled scan ends. The specific case details are listed below. There are 10 patients and 6 scanners; patient IDs: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10; scanner IDs: 0, 1, 2, 3, 4, 5. | patient_id | scan_sequence_index | scanner_id | scan_duration | |---|---|---|---| | J1 | 0 | 3 | 1 | | J1 | 1 | 1 | 60 | | J1 | 2 | 2 | 16 | | J1 | 3 | 5 | 48 | | J1 | 4 | 4 | 89 | | J1 | 5 | 0 | 98 | | J2 | 0 | 2 | 43 | | J2 | 1 | 5 | 56 | | J2 | 2 | 1 | 59 | | J2 | 3 | 0 | 24 | | J2 | 4 | 4 | 99 | | J2 | 5 | 3 | 91 | | J3 | 0 | 2 | 66 | | J3 | 1 | 3 | 52 | | J3 | 2 | 4 | 90 | | J3 | 3 | 1 | 67 | | J3 | 4 | 5 | 99 | | J3 | 5 | 0 | 56 | | J4 | 0 | 1 | 98 | | J4 | 1 | 3 | 88 | | J4 | 2 | 0 | 48 | | J4 | 3 | 5 | 14 | | J4 | 4 | 2 | 99 | | J4 | 5 | 4 | 92 | | J5 | 0 | 1 | 77 | | J5 | 1 | 5 | 47 | | J5 | 2 | 0 | 71 | | J5 | 3 | 3 | 73 | | J5 | 4 | 4 | 37 | | J5 | 5 | 2 | 19 | | J6 | 0 | 2 | 45 | | J6 | 1 | 0 | 64 | | J6 | 2 | 5 | 16 | | J6 | 3 | 3 | 47 | | J6 | 4 | 1 | 73 | | J6 | 5 | 4 | 96 | | J7 | 0 | 4 | 19 | | J7 | 1 | 1 | 22 | | J7 | 2 | 0 | 35 | | J7 | 3 | 2 | 67 | | J7 | 4 | 5 | 4 | | J7 | 5 | 3 | 72 | | J8 | 0 | 3 | 75 | | J8 | 1 | 0 | 99 | | J8 | 2 | 4 | 56 | | J8 | 3 | 5 | 31 | | J8 | 4 | 2 | 11 | | J8 | 5 | 1 | 58 | | J9 | 0 | 0 | 90 | | J9 | 1 | 5 | 85 | | J9 | 2 | 3 | 95 | | J9 | 3 | 4 | 87 | | J9 | 4 | 1 | 36 | | J9 | 5 | 2 | 7 | | J10 | 0 | 3 | 23 | | J10 | 1 | 1 | 16 | | J10 | 2 | 5 | 52 | | J10 | 3 | 4 | 53 | | J10 | 4 | 2 | 37 | | J10 | 5 | 0 | 42 | These entries list every required scan so the scheduler can minimize when the last scan finishes. If you'd like to return the schedule in a nice, machine-friendly way (and still keep things readable for a human), just follow this simple JSON shape when you reply: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that as a lightweight form: ""solution"" is the list of all jobs (each patient or imaging sequence), each job entry names the job id and then a list of its tasks; each task line says which step it is, when that scan starts, which scanner/machine it uses, and how long it runs. It’s just a sketch of the shape I need, not the actual scheduled times. Please make sure to use the exact identifiers from the instance input — no renaming and no new labels. For example: - ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[3, 1], [1, 60], [2, 16], [5, 48], [4, 89], [0, 98]], [[2, 43], [5, 56], [1, 59], [0, 24], [4, 99], [3, 91]], [[2, 66], [3, 52], [4, 90], [1, 67], [5, 99], [0, 56]], [[1, 98], [3, 88], [0, 48], [5, 14], [2, 99], [4, 92]], [[1, 77], [5, 47], [0, 71], [3, 73], [4, 37], [2, 19]], [[2, 45], [0, 64], [5, 16], [3, 47], [1, 73], [4, 96]], [[4, 19], [1, 22], [0, 35], [2, 67], [5, 4], [3, 72]], [[3, 75], [0, 99], [4, 56], [5, 31], [2, 11], [1, 58]], [[0, 90], [5, 85], [3, 95], [4, 87], [1, 36], [2, 7]], [[3, 23], [1, 16], [5, 52], [4, 53], [2, 37], [0, 42]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 23, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 39, 'machine': 1, 'duration': 60}, {'task': 2, 'start': 109, 'machine': 2, 'duration': 16}, {'task': 3, 'start': 176, 'machine': 5, 'duration': 48}, {'task': 4, 'start': 234, 'machine': 4, 'duration': 89}, {'task': 5, 'start': 511, 'machine': 0, 'duration': 98}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 66, 'machine': 2, 'duration': 43}, {'task': 1, 'start': 224, 'machine': 5, 'duration': 56}, {'task': 2, 'start': 341, 'machine': 1, 'duration': 59}, {'task': 3, 'start': 404, 'machine': 0, 'duration': 24}, {'task': 4, 'start': 466, 'machine': 4, 'duration': 99}, {'task': 5, 'start': 565, 'machine': 3, 'duration': 91}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 66}, {'task': 1, 'start': 66, 'machine': 3, 'duration': 52}, {'task': 2, 'start': 144, 'machine': 4, 'duration': 90}, {'task': 3, 'start': 274, 'machine': 1, 'duration': 67}, {'task': 4, 'start': 343, 'machine': 5, 'duration': 99}, {'task': 5, 'start': 609, 'machine': 0, 'duration': 56}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 99, 'machine': 1, 'duration': 98}, {'task': 1, 'start': 288, 'machine': 3, 'duration': 88}, {'task': 2, 'start': 428, 'machine': 0, 'duration': 48}, {'task': 3, 'start': 497, 'machine': 5, 'duration': 14}, {'task': 4, 'start': 511, 'machine': 2, 'duration': 99}, {'task': 5, 'start': 698, 'machine': 4, 'duration': 92}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 197, 'machine': 1, 'duration': 77}, {'task': 1, 'start': 280, 'machine': 5, 'duration': 47}, {'task': 2, 'start': 333, 'machine': 0, 'duration': 71}, {'task': 3, 'start': 423, 'machine': 3, 'duration': 73}, {'task': 4, 'start': 661, 'machine': 4, 'duration': 37}, {'task': 5, 'start': 698, 'machine': 2, 'duration': 19}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 125, 'machine': 2, 'duration': 45}, {'task': 1, 'start': 170, 'machine': 0, 'duration': 64}, {'task': 2, 'start': 327, 'machine': 5, 'duration': 16}, {'task': 3, 'start': 376, 'machine': 3, 'duration': 47}, {'task': 4, 'start': 458, 'machine': 1, 'duration': 73}, {'task': 5, 'start': 565, 'machine': 4, 'duration': 96}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 19}, {'task': 1, 'start': 400, 'machine': 1, 'duration': 22}, {'task': 2, 'start': 476, 'machine': 0, 'duration': 35}, {'task': 3, 'start': 610, 'machine': 2, 'duration': 67}, {'task': 4, 'start': 677, 'machine': 5, 'duration': 4}, {'task': 5, 'start': 681, 'machine': 3, 'duration': 72}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 118, 'machine': 3, 'duration': 75}, {'task': 1, 'start': 234, 'machine': 0, 'duration': 99}, {'task': 2, 'start': 410, 'machine': 4, 'duration': 56}, {'task': 3, 'start': 466, 'machine': 5, 'duration': 31}, {'task': 4, 'start': 497, 'machine': 2, 'duration': 11}, {'task': 5, 'start': 531, 'machine': 1, 'duration': 58}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 90}, {'task': 1, 'start': 91, 'machine': 5, 'duration': 85}, {'task': 2, 'start': 193, 'machine': 3, 'duration': 95}, {'task': 3, 'start': 323, 'machine': 4, 'duration': 87}, {'task': 4, 'start': 422, 'machine': 1, 'duration': 36}, {'task': 5, 'start': 458, 'machine': 2, 'duration': 7}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 23}, {'task': 1, 'start': 23, 'machine': 1, 'duration': 16}, {'task': 2, 'start': 39, 'machine': 5, 'duration': 52}, {'task': 3, 'start': 91, 'machine': 4, 'duration': 53}, {'task': 4, 'start': 170, 'machine': 2, 'duration': 37}, {'task': 5, 'start': 665, 'machine': 0, 'duration': 42}]}]",790.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': [0, 1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 1, 'duration': 60}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 16}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 48}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 4, 'duration': 89}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 0, 'duration': 98}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 43}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 56}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 59}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 0, 'duration': 24}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 4, 'duration': 99}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 3, 'duration': 91}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 2, 'duration': 66}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 3, 'duration': 52}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 4, 'duration': 90}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 67}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 5, 'duration': 99}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 0, 'duration': 56}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 1, 'duration': 98}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 3, 'duration': 88}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 48}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 5, 'duration': 14}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 2, 'duration': 99}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 4, 'duration': 92}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 1, 'duration': 77}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 5, 'duration': 47}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 0, 'duration': 71}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 3, 'duration': 73}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 4, 'duration': 37}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 2, 'duration': 19}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 45}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 0, 'duration': 64}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 5, 'duration': 16}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 3, 'duration': 47}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 1, 'duration': 73}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 4, 'duration': 96}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 4, 'duration': 19}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 22}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 0, 'duration': 35}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 67}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 5, 'duration': 4}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 3, 'duration': 72}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 3, 'duration': 75}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 0, 'duration': 99}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 56}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 5, 'duration': 31}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 2, 'duration': 11}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 1, 'duration': 58}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 0, 'duration': 90}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 5, 'duration': 85}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 95}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 4, 'duration': 87}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 36}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 2, 'duration': 7}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 3, 'duration': 23}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 1, 'duration': 16}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 5, 'duration': 52}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 4, 'duration': 53}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 2, 'duration': 37}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 0, 'duration': 42}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 23, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 39, 'machine': 1, 'duration': 60}, {'task': 2, 'start': 109, 'machine': 2, 'duration': 16}, {'task': 3, 'start': 176, 'machine': 5, 'duration': 48}, {'task': 4, 'start': 234, 'machine': 4, 'duration': 89}, {'task': 5, 'start': 511, 'machine': 0, 'duration': 98}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 66, 'machine': 2, 'duration': 43}, {'task': 1, 'start': 224, 'machine': 5, 'duration': 56}, {'task': 2, 'start': 341, 'machine': 1, 'duration': 59}, {'task': 3, 'start': 404, 'machine': 0, 'duration': 24}, {'task': 4, 'start': 466, 'machine': 4, 'duration': 99}, {'task': 5, 'start': 565, 'machine': 3, 'duration': 91}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 66}, {'task': 1, 'start': 66, 'machine': 3, 'duration': 52}, {'task': 2, 'start': 144, 'machine': 4, 'duration': 90}, {'task': 3, 'start': 274, 'machine': 1, 'duration': 67}, {'task': 4, 'start': 343, 'machine': 5, 'duration': 99}, {'task': 5, 'start': 609, 'machine': 0, 'duration': 56}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 99, 'machine': 1, 'duration': 98}, {'task': 1, 'start': 288, 'machine': 3, 'duration': 88}, {'task': 2, 'start': 428, 'machine': 0, 'duration': 48}, {'task': 3, 'start': 497, 'machine': 5, 'duration': 14}, {'task': 4, 'start': 511, 'machine': 2, 'duration': 99}, {'task': 5, 'start': 698, 'machine': 4, 'duration': 92}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 197, 'machine': 1, 'duration': 77}, {'task': 1, 'start': 280, 'machine': 5, 'duration': 47}, {'task': 2, 'start': 333, 'machine': 0, 'duration': 71}, {'task': 3, 'start': 423, 'machine': 3, 'duration': 73}, {'task': 4, 'start': 661, 'machine': 4, 'duration': 37}, {'task': 5, 'start': 698, 'machine': 2, 'duration': 19}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 125, 'machine': 2, 'duration': 45}, {'task': 1, 'start': 170, 'machine': 0, 'duration': 64}, {'task': 2, 'start': 327, 'machine': 5, 'duration': 16}, {'task': 3, 'start': 376, 'machine': 3, 'duration': 47}, {'task': 4, 'start': 458, 'machine': 1, 'duration': 73}, {'task': 5, 'start': 565, 'machine': 4, 'duration': 96}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 19}, {'task': 1, 'start': 400, 'machine': 1, 'duration': 22}, {'task': 2, 'start': 476, 'machine': 0, 'duration': 35}, {'task': 3, 'start': 610, 'machine': 2, 'duration': 67}, {'task': 4, 'start': 677, 'machine': 5, 'duration': 4}, {'task': 5, 'start': 681, 'machine': 3, 'duration': 72}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 118, 'machine': 3, 'duration': 75}, {'task': 1, 'start': 234, 'machine': 0, 'duration': 99}, {'task': 2, 'start': 410, 'machine': 4, 'duration': 56}, {'task': 3, 'start': 466, 'machine': 5, 'duration': 31}, {'task': 4, 'start': 497, 'machine': 2, 'duration': 11}, {'task': 5, 'start': 531, 'machine': 1, 'duration': 58}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 90}, {'task': 1, 'start': 91, 'machine': 5, 'duration': 85}, {'task': 2, 'start': 193, 'machine': 3, 'duration': 95}, {'task': 3, 'start': 323, 'machine': 4, 'duration': 87}, {'task': 4, 'start': 422, 'machine': 1, 'duration': 36}, {'task': 5, 'start': 458, 'machine': 2, 'duration': 7}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 23}, {'task': 1, 'start': 23, 'machine': 1, 'duration': 16}, {'task': 2, 'start': 39, 'machine': 5, 'duration': 52}, {'task': 3, 'start': 91, 'machine': 4, 'duration': 53}, {'task': 4, 'start': 170, 'machine': 2, 'duration': 37}, {'task': 5, 'start': 665, 'machine': 0, 'duration': 42}]}]",32,markdown_table,0 JSP,JSP,"There’s a small studio where projects must pass through editing, then color grading, then sound mixing, and those three steps are fixed for every project. The task at hand is to assign start times on the proper workstations so each step takes its allotted time, no workstation is double-booked, and every step happens exactly once in order. The goal is to bring the time when the very last project finishes as low as possible — compute each project’s finish time and the schedule’s result is the latest finish among them. The exact list of projects and durations appears below. Instance: 12 projects, 6 workstations; project IDs J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12; workstation IDs A, B, C, D, E, F. | project_id | step_index | workstation_id | processing_duration | |---|---|---|---| | J1 | 0 | C | 1 | | J1 | 1 | E | 73 | | J1 | 2 | B | 91 | | J1 | 3 | D | 94 | | J1 | 4 | F | 43 | | J1 | 5 | A | 21 | | J2 | 0 | B | 48 | | J2 | 1 | C | 24 | | J2 | 2 | A | 27 | | J2 | 3 | D | 17 | | J2 | 4 | F | 38 | | J2 | 5 | E | 44 | | J3 | 0 | F | 49 | | J3 | 1 | B | 56 | | J3 | 2 | E | 95 | | J3 | 3 | A | 20 | | J3 | 4 | D | 66 | | J3 | 5 | C | 57 | | J4 | 0 | D | 37 | | J4 | 1 | E | 94 | | J4 | 2 | F | 89 | | J4 | 3 | C | 82 | | J4 | 4 | A | 58 | | J4 | 5 | B | 85 | | J5 | 0 | D | 62 | | J5 | 1 | F | 99 | | J5 | 2 | A | 80 | | J5 | 3 | B | 39 | | J5 | 4 | C | 78 | | J5 | 5 | E | 88 | | J6 | 0 | A | 37 | | J6 | 1 | F | 40 | | J6 | 2 | D | 42 | | J6 | 3 | E | 51 | | J6 | 4 | C | 47 | | J6 | 5 | B | 29 | | J7 | 0 | E | 81 | | J7 | 1 | C | 97 | | J7 | 2 | A | 34 | | J7 | 3 | F | 4 | | J7 | 4 | B | 28 | | J7 | 5 | D | 71 | | J8 | 0 | E | 48 | | J8 | 1 | F | 75 | | J8 | 2 | C | 22 | | J8 | 3 | A | 38 | | J8 | 4 | B | 74 | | J8 | 5 | D | 47 | | J9 | 0 | F | 18 | | J9 | 1 | C | 30 | | J9 | 2 | D | 72 | | J9 | 3 | A | 35 | | J9 | 4 | B | 59 | | J9 | 5 | E | 34 | | J10 | 0 | F | 58 | | J10 | 1 | D | 32 | | J10 | 2 | E | 1 | | J10 | 3 | C | 43 | | J10 | 4 | A | 28 | | J10 | 5 | B | 48 | | J11 | 0 | C | 94 | | J11 | 1 | A | 34 | | J11 | 2 | F | 21 | | J11 | 3 | B | 61 | | J11 | 4 | D | 2 | | J11 | 5 | E | 55 | | J12 | 0 | F | 69 | | J12 | 1 | E | 71 | | J12 | 2 | B | 14 | | J12 | 3 | D | 46 | | J12 | 4 | A | 6 | | J12 | 5 | C | 43 | Place each step so every task occurs once in order and the latest project finish is minimized. Also, I'll return the schedule in a simple JSON shape so it's easy to check or load into other tools. Something like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it as a little form: each top-level entry is a project (""job""), and inside you list its ordered steps (""tasks""). For each step you say which step number it is (""task""), when it starts (""start""), which workstation it uses (""machine""), and how long it runs (""duration""). This block is just a sketch of the expected shape — I’ll fill in the actual numbers and IDs for the instance itself. Please keep all job and machine identifiers exactly as they appear in the instance input — no renaming and no new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[2, 1], [4, 73], [1, 91], [3, 94], [5, 43], [0, 21]], [[1, 48], [2, 24], [0, 27], [3, 17], [5, 38], [4, 44]], [[5, 49], [1, 56], [4, 95], [0, 20], [3, 66], [2, 57]], [[3, 37], [4, 94], [5, 89], [2, 82], [0, 58], [1, 85]], [[3, 62], [5, 99], [0, 80], [1, 39], [2, 78], [4, 88]], [[0, 37], [5, 40], [3, 42], [4, 51], [2, 47], [1, 29]], [[4, 81], [2, 97], [0, 34], [5, 4], [1, 28], [3, 71]], [[4, 48], [5, 75], [2, 22], [0, 38], [1, 74], [3, 47]], [[5, 18], [2, 30], [3, 72], [0, 35], [1, 59], [4, 34]], [[5, 58], [3, 32], [4, 1], [2, 43], [0, 28], [1, 48]], [[2, 94], [0, 34], [5, 21], [1, 61], [3, 2], [4, 55]], [[5, 69], [4, 71], [1, 14], [3, 46], [0, 6], [2, 43]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 81, 'machine': 4, 'duration': 73}, {'task': 2, 'start': 154, 'machine': 1, 'duration': 91}, {'task': 3, 'start': 365, 'machine': 3, 'duration': 94}, {'task': 4, 'start': 560, 'machine': 5, 'duration': 43}, {'task': 5, 'start': 641, 'machine': 0, 'duration': 21}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 48}, {'task': 1, 'start': 95, 'machine': 2, 'duration': 24}, {'task': 2, 'start': 129, 'machine': 0, 'duration': 27}, {'task': 3, 'start': 221, 'machine': 3, 'duration': 17}, {'task': 4, 'start': 501, 'machine': 5, 'duration': 38}, {'task': 5, 'start': 602, 'machine': 4, 'duration': 44}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 18, 'machine': 5, 'duration': 49}, {'task': 1, 'start': 67, 'machine': 1, 'duration': 56}, {'task': 2, 'start': 419, 'machine': 4, 'duration': 95}, {'task': 3, 'start': 526, 'machine': 0, 'duration': 20}, {'task': 4, 'start': 578, 'machine': 3, 'duration': 66}, {'task': 5, 'start': 647, 'machine': 2, 'duration': 57}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 62, 'machine': 3, 'duration': 37}, {'task': 1, 'start': 154, 'machine': 4, 'duration': 94}, {'task': 2, 'start': 412, 'machine': 5, 'duration': 89}, {'task': 3, 'start': 501, 'machine': 2, 'duration': 82}, {'task': 4, 'start': 583, 'machine': 0, 'duration': 58}, {'task': 5, 'start': 646, 'machine': 1, 'duration': 85}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 62}, {'task': 1, 'start': 67, 'machine': 5, 'duration': 99}, {'task': 2, 'start': 166, 'machine': 0, 'duration': 80}, {'task': 3, 'start': 246, 'machine': 1, 'duration': 39}, {'task': 4, 'start': 285, 'machine': 2, 'duration': 78}, {'task': 5, 'start': 514, 'machine': 4, 'duration': 88}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 37}, {'task': 1, 'start': 166, 'machine': 5, 'duration': 40}, {'task': 2, 'start': 238, 'machine': 3, 'duration': 42}, {'task': 3, 'start': 296, 'machine': 4, 'duration': 51}, {'task': 4, 'start': 434, 'machine': 2, 'duration': 47}, {'task': 5, 'start': 482, 'machine': 1, 'duration': 29}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 81}, {'task': 1, 'start': 149, 'machine': 2, 'duration': 97}, {'task': 2, 'start': 281, 'machine': 0, 'duration': 34}, {'task': 3, 'start': 333, 'machine': 5, 'duration': 4}, {'task': 4, 'start': 358, 'machine': 1, 'duration': 28}, {'task': 5, 'start': 507, 'machine': 3, 'duration': 71}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 248, 'machine': 4, 'duration': 48}, {'task': 1, 'start': 337, 'machine': 5, 'duration': 75}, {'task': 2, 'start': 412, 'machine': 2, 'duration': 22}, {'task': 3, 'start': 434, 'machine': 0, 'duration': 38}, {'task': 4, 'start': 511, 'machine': 1, 'duration': 74}, {'task': 5, 'start': 648, 'machine': 3, 'duration': 47}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 18}, {'task': 1, 'start': 119, 'machine': 2, 'duration': 30}, {'task': 2, 'start': 149, 'machine': 3, 'duration': 72}, {'task': 3, 'start': 246, 'machine': 0, 'duration': 35}, {'task': 4, 'start': 285, 'machine': 1, 'duration': 59}, {'task': 5, 'start': 646, 'machine': 4, 'duration': 34}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 206, 'machine': 5, 'duration': 58}, {'task': 1, 'start': 280, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 347, 'machine': 4, 'duration': 1}, {'task': 3, 'start': 363, 'machine': 2, 'duration': 43}, {'task': 4, 'start': 406, 'machine': 0, 'duration': 28}, {'task': 5, 'start': 434, 'machine': 1, 'duration': 48}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 1, 'machine': 2, 'duration': 94}, {'task': 1, 'start': 95, 'machine': 0, 'duration': 34}, {'task': 2, 'start': 539, 'machine': 5, 'duration': 21}, {'task': 3, 'start': 585, 'machine': 1, 'duration': 61}, {'task': 4, 'start': 646, 'machine': 3, 'duration': 2}, {'task': 5, 'start': 680, 'machine': 4, 'duration': 55}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 264, 'machine': 5, 'duration': 69}, {'task': 1, 'start': 348, 'machine': 4, 'duration': 71}, {'task': 2, 'start': 419, 'machine': 1, 'duration': 14}, {'task': 3, 'start': 459, 'machine': 3, 'duration': 46}, {'task': 4, 'start': 505, 'machine': 0, 'duration': 6}, {'task': 5, 'start': 604, 'machine': 2, 'duration': 43}]}]",735.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'C', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 73}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 91}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'D', 'duration': 94}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'F', 'duration': 43}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 21}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'B', 'duration': 48}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'C', 'duration': 24}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'A', 'duration': 27}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'D', 'duration': 17}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'F', 'duration': 38}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'E', 'duration': 44}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'F', 'duration': 49}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'B', 'duration': 56}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'E', 'duration': 95}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'A', 'duration': 20}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'D', 'duration': 66}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'C', 'duration': 57}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'D', 'duration': 37}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'E', 'duration': 94}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'F', 'duration': 89}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'C', 'duration': 82}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 58}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'B', 'duration': 85}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'D', 'duration': 62}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'F', 'duration': 99}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'A', 'duration': 80}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'B', 'duration': 39}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'C', 'duration': 78}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'E', 'duration': 88}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'A', 'duration': 37}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'F', 'duration': 40}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 42}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'E', 'duration': 51}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 47}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'B', 'duration': 29}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'E', 'duration': 81}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'C', 'duration': 97}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 34}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'F', 'duration': 4}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'B', 'duration': 28}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'D', 'duration': 71}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'E', 'duration': 48}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'F', 'duration': 75}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 22}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 38}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'B', 'duration': 74}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'D', 'duration': 47}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'F', 'duration': 18}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'C', 'duration': 30}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'D', 'duration': 72}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'A', 'duration': 35}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'B', 'duration': 59}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'E', 'duration': 34}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'F', 'duration': 58}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'E', 'duration': 1}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'C', 'duration': 43}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'A', 'duration': 28}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'B', 'duration': 48}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'C', 'duration': 94}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'A', 'duration': 34}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'F', 'duration': 21}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'B', 'duration': 61}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'D', 'duration': 2}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 'E', 'duration': 55}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 'F', 'duration': 69}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 'E', 'duration': 71}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 'B', 'duration': 14}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 'D', 'duration': 46}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 'A', 'duration': 6}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 'C', 'duration': 43}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 1}, {'task': 1, 'start': 81, 'machine': 'E', 'duration': 73}, {'task': 2, 'start': 154, 'machine': 'B', 'duration': 91}, {'task': 3, 'start': 365, 'machine': 'D', 'duration': 94}, {'task': 4, 'start': 560, 'machine': 'F', 'duration': 43}, {'task': 5, 'start': 641, 'machine': 'A', 'duration': 21}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 48}, {'task': 1, 'start': 95, 'machine': 'C', 'duration': 24}, {'task': 2, 'start': 129, 'machine': 'A', 'duration': 27}, {'task': 3, 'start': 221, 'machine': 'D', 'duration': 17}, {'task': 4, 'start': 501, 'machine': 'F', 'duration': 38}, {'task': 5, 'start': 602, 'machine': 'E', 'duration': 44}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 18, 'machine': 'F', 'duration': 49}, {'task': 1, 'start': 67, 'machine': 'B', 'duration': 56}, {'task': 2, 'start': 419, 'machine': 'E', 'duration': 95}, {'task': 3, 'start': 526, 'machine': 'A', 'duration': 20}, {'task': 4, 'start': 578, 'machine': 'D', 'duration': 66}, {'task': 5, 'start': 647, 'machine': 'C', 'duration': 57}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 62, 'machine': 'D', 'duration': 37}, {'task': 1, 'start': 154, 'machine': 'E', 'duration': 94}, {'task': 2, 'start': 412, 'machine': 'F', 'duration': 89}, {'task': 3, 'start': 501, 'machine': 'C', 'duration': 82}, {'task': 4, 'start': 583, 'machine': 'A', 'duration': 58}, {'task': 5, 'start': 646, 'machine': 'B', 'duration': 85}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 62}, {'task': 1, 'start': 67, 'machine': 'F', 'duration': 99}, {'task': 2, 'start': 166, 'machine': 'A', 'duration': 80}, {'task': 3, 'start': 246, 'machine': 'B', 'duration': 39}, {'task': 4, 'start': 285, 'machine': 'C', 'duration': 78}, {'task': 5, 'start': 514, 'machine': 'E', 'duration': 88}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 37}, {'task': 1, 'start': 166, 'machine': 'F', 'duration': 40}, {'task': 2, 'start': 238, 'machine': 'D', 'duration': 42}, {'task': 3, 'start': 296, 'machine': 'E', 'duration': 51}, {'task': 4, 'start': 434, 'machine': 'C', 'duration': 47}, {'task': 5, 'start': 482, 'machine': 'B', 'duration': 29}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 81}, {'task': 1, 'start': 149, 'machine': 'C', 'duration': 97}, {'task': 2, 'start': 281, 'machine': 'A', 'duration': 34}, {'task': 3, 'start': 333, 'machine': 'F', 'duration': 4}, {'task': 4, 'start': 358, 'machine': 'B', 'duration': 28}, {'task': 5, 'start': 507, 'machine': 'D', 'duration': 71}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 248, 'machine': 'E', 'duration': 48}, {'task': 1, 'start': 337, 'machine': 'F', 'duration': 75}, {'task': 2, 'start': 412, 'machine': 'C', 'duration': 22}, {'task': 3, 'start': 434, 'machine': 'A', 'duration': 38}, {'task': 4, 'start': 511, 'machine': 'B', 'duration': 74}, {'task': 5, 'start': 648, 'machine': 'D', 'duration': 47}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 18}, {'task': 1, 'start': 119, 'machine': 'C', 'duration': 30}, {'task': 2, 'start': 149, 'machine': 'D', 'duration': 72}, {'task': 3, 'start': 246, 'machine': 'A', 'duration': 35}, {'task': 4, 'start': 285, 'machine': 'B', 'duration': 59}, {'task': 5, 'start': 646, 'machine': 'E', 'duration': 34}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 206, 'machine': 'F', 'duration': 58}, {'task': 1, 'start': 280, 'machine': 'D', 'duration': 32}, {'task': 2, 'start': 347, 'machine': 'E', 'duration': 1}, {'task': 3, 'start': 363, 'machine': 'C', 'duration': 43}, {'task': 4, 'start': 406, 'machine': 'A', 'duration': 28}, {'task': 5, 'start': 434, 'machine': 'B', 'duration': 48}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 1, 'machine': 'C', 'duration': 94}, {'task': 1, 'start': 95, 'machine': 'A', 'duration': 34}, {'task': 2, 'start': 539, 'machine': 'F', 'duration': 21}, {'task': 3, 'start': 585, 'machine': 'B', 'duration': 61}, {'task': 4, 'start': 646, 'machine': 'D', 'duration': 2}, {'task': 5, 'start': 680, 'machine': 'E', 'duration': 55}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 264, 'machine': 'F', 'duration': 69}, {'task': 1, 'start': 348, 'machine': 'E', 'duration': 71}, {'task': 2, 'start': 419, 'machine': 'B', 'duration': 14}, {'task': 3, 'start': 459, 'machine': 'D', 'duration': 46}, {'task': 4, 'start': 505, 'machine': 'A', 'duration': 6}, {'task': 5, 'start': 604, 'machine': 'C', 'duration': 43}]}]",33,markdown_table,names JSP,JSP,"There’s a pile of bookings with each client asking for a string of photos and then retouches, and it’s up to the studio to slot those tasks into the available sets and editing stations. Each item in a session needs a dedicated space for a fixed stretch, the steps must be done in order, and no set or station can handle two things at the same time — everything must be scheduled once, no repeats. The way to tell which schedule is better is to look at when the final session finishes; the earlier that finishing time, the better the plan. Concrete session details are listed below. { ""num_sessions"": 10, ""num_sets_and_stations"": 6, ""session_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"", ""J10"" ], ""resource_ids"": [ 0, 1, 2, 3, 4, 5 ], ""tasks"": [ { ""session_id"": ""J1"", ""step_index"": 0, ""resource_id"": 5, ""duration_minutes"": 1 }, { ""session_id"": ""J1"", ""step_index"": 1, ""resource_id"": 4, ""duration_minutes"": 86 }, { ""session_id"": ""J1"", ""step_index"": 2, ""resource_id"": 3, ""duration_minutes"": 67 }, { ""session_id"": ""J1"", ""step_index"": 3, ""resource_id"": 2, ""duration_minutes"": 40 }, { ""session_id"": ""J1"", ""step_index"": 4, ""resource_id"": 1, ""duration_minutes"": 95 }, { ""session_id"": ""J1"", ""step_index"": 5, ""resource_id"": 0, ""duration_minutes"": 42 }, { ""session_id"": ""J2"", ""step_index"": 0, ""resource_id"": 1, ""duration_minutes"": 53 }, { ""session_id"": ""J2"", ""step_index"": 1, ""resource_id"": 5, ""duration_minutes"": 91 }, { ""session_id"": ""J2"", ""step_index"": 2, ""resource_id"": 3, ""duration_minutes"": 94 }, { ""session_id"": ""J2"", ""step_index"": 3, ""resource_id"": 2, ""duration_minutes"": 11 }, { ""session_id"": ""J2"", ""step_index"": 4, ""resource_id"": 4, ""duration_minutes"": 76 }, { ""session_id"": ""J2"", ""step_index"": 5, ""resource_id"": 0, ""duration_minutes"": 95 }, { ""session_id"": ""J3"", ""step_index"": 0, ""resource_id"": 2, ""duration_minutes"": 32 }, { ""session_id"": ""J3"", ""step_index"": 1, ""resource_id"": 1, ""duration_minutes"": 59 }, { ""session_id"": ""J3"", ""step_index"": 2, ""resource_id"": 5, ""duration_minutes"": 1 }, { ""session_id"": ""J3"", ""step_index"": 3, ""resource_id"": 3, ""duration_minutes"": 73 }, { ""session_id"": ""J3"", ""step_index"": 4, ""resource_id"": 0, ""duration_minutes"": 34 }, { ""session_id"": ""J3"", ""step_index"": 5, ""resource_id"": 4, ""duration_minutes"": 58 }, { ""session_id"": ""J4"", ""step_index"": 0, ""resource_id"": 1, ""duration_minutes"": 75 }, { ""session_id"": ""J4"", ""step_index"": 1, ""resource_id"": 0, ""duration_minutes"": 2 }, { ""session_id"": ""J4"", ""step_index"": 2, ""resource_id"": 3, ""duration_minutes"": 31 }, { ""session_id"": ""J4"", ""step_index"": 3, ""resource_id"": 2, ""duration_minutes"": 51 }, { ""session_id"": ""J4"", ""step_index"": 4, ""resource_id"": 5, ""duration_minutes"": 18 }, { ""session_id"": ""J4"", ""step_index"": 5, ""resource_id"": 4, ""duration_minutes"": 78 }, { ""session_id"": ""J5"", ""step_index"": 0, ""resource_id"": 4, ""duration_minutes"": 46 }, { ""session_id"": ""J5"", ""step_index"": 1, ""resource_id"": 2, ""duration_minutes"": 52 }, { ""session_id"": ""J5"", ""step_index"": 2, ""resource_id"": 0, ""duration_minutes"": 89 }, { ""session_id"": ""J5"", ""step_index"": 3, ""resource_id"": 3, ""duration_minutes"": 5 }, { ""session_id"": ""J5"", ""step_index"": 4, ""resource_id"": 5, ""duration_minutes"": 20 }, { ""session_id"": ""J5"", ""step_index"": 5, ""resource_id"": 1, ""duration_minutes"": 59 }, { ""session_id"": ""J6"", ""step_index"": 0, ""resource_id"": 1, ""duration_minutes"": 28 }, { ""session_id"": ""J6"", ""step_index"": 1, ""resource_id"": 5, ""duration_minutes"": 17 }, { ""session_id"": ""J6"", ""step_index"": 2, ""resource_id"": 3, ""duration_minutes"": 68 }, { ""session_id"": ""J6"", ""step_index"": 3, ""resource_id"": 0, ""duration_minutes"": 56 }, { ""session_id"": ""J6"", ""step_index"": 4, ""resource_id"": 2, ""duration_minutes"": 21 }, { ""session_id"": ""J6"", ""step_index"": 5, ""resource_id"": 4, ""duration_minutes"": 62 }, { ""session_id"": ""J7"", ""step_index"": 0, ""resource_id"": 1, ""duration_minutes"": 45 }, { ""session_id"": ""J7"", ""step_index"": 1, ""resource_id"": 5, ""duration_minutes"": 73 }, { ""session_id"": ""J7"", ""step_index"": 2, ""resource_id"": 3, ""duration_minutes"": 33 }, { ""session_id"": ""J7"", ""step_index"": 3, ""resource_id"": 4, ""duration_minutes"": 40 }, { ""session_id"": ""J7"", ""step_index"": 4, ""resource_id"": 0, ""duration_minutes"": 53 }, { ""session_id"": ""J7"", ""step_index"": 5, ""resource_id"": 2, ""duration_minutes"": 69 }, { ""session_id"": ""J8"", ""step_index"": 0, ""resource_id"": 0, ""duration_minutes"": 20 }, { ""session_id"": ""J8"", ""step_index"": 1, ""resource_id"": 1, ""duration_minutes"": 50 }, { ""session_id"": ""J8"", ""step_index"": 2, ""resource_id"": 2, ""duration_minutes"": 86 }, { ""session_id"": ""J8"", ""step_index"": 3, ""resource_id"": 3, ""duration_minutes"": 45 }, { ""session_id"": ""J8"", ""step_index"": 4, ""resource_id"": 4, ""duration_minutes"": 37 }, { ""session_id"": ""J8"", ""step_index"": 5, ""resource_id"": 5, ""duration_minutes"": 35 }, { ""session_id"": ""J9"", ""step_index"": 0, ""resource_id"": 1, ""duration_minutes"": 45 }, { ""session_id"": ""J9"", ""step_index"": 1, ""resource_id"": 2, ""duration_minutes"": 73 }, { ""session_id"": ""J9"", ""step_index"": 2, ""resource_id"": 4, ""duration_minutes"": 49 }, { ""session_id"": ""J9"", ""step_index"": 3, ""resource_id"": 3, ""duration_minutes"": 83 }, { ""session_id"": ""J9"", ""step_index"": 4, ""resource_id"": 0, ""duration_minutes"": 83 }, { ""session_id"": ""J9"", ""step_index"": 5, ""resource_id"": 5, ""duration_minutes"": 62 }, { ""session_id"": ""J10"", ""step_index"": 0, ""resource_id"": 0, ""duration_minutes"": 94 }, { ""session_id"": ""J10"", ""step_index"": 1, ""resource_id"": 2, ""duration_minutes"": 49 }, { ""session_id"": ""J10"", ""step_index"": 2, ""resource_id"": 4, ""duration_minutes"": 49 }, { ""session_id"": ""J10"", ""step_index"": 3, ""resource_id"": 5, ""duration_minutes"": 33 }, { ""session_id"": ""J10"", ""step_index"": 4, ""resource_id"": 3, ""duration_minutes"": 19 }, { ""session_id"": ""J10"", ""step_index"": 5, ""resource_id"": 1, ""duration_minutes"": 54 } ] } If you'd like the schedule in a tidy, copy-pasteable form, I usually return it as JSON like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just the shape I expect: ""solution"" is a list of sessions, each item has a ""job"" (the session id), and a ""tasks"" list where every task shows which step it is, when it starts, which set or editing station it uses, and how long it runs. Treat it like a simple form—fill in the IDs and numbers in those slots. Note that this JSON is only a sketch of the expected shape, not the actual schedule. Please use the exact identifiers from the instance input — do not rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[5, 1], [4, 86], [3, 67], [2, 40], [1, 95], [0, 42]], [[1, 53], [5, 91], [3, 94], [2, 11], [4, 76], [0, 95]], [[2, 32], [1, 59], [5, 1], [3, 73], [0, 34], [4, 58]], [[1, 75], [0, 2], [3, 31], [2, 51], [5, 18], [4, 78]], [[4, 46], [2, 52], [0, 89], [3, 5], [5, 20], [1, 59]], [[1, 28], [5, 17], [3, 68], [0, 56], [2, 21], [4, 62]], [[1, 45], [5, 73], [3, 33], [4, 40], [0, 53], [2, 69]], [[0, 20], [1, 50], [2, 86], [3, 45], [4, 37], [5, 35]], [[1, 45], [2, 73], [4, 49], [3, 83], [0, 83], [5, 62]], [[0, 94], [2, 49], [4, 49], [5, 33], [3, 19], [1, 54]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 4, 'duration': 86}, {'task': 2, 'start': 113, 'machine': 3, 'duration': 67}, {'task': 3, 'start': 247, 'machine': 2, 'duration': 40}, {'task': 4, 'start': 355, 'machine': 1, 'duration': 95}, {'task': 5, 'start': 450, 'machine': 0, 'duration': 42}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 193, 'machine': 1, 'duration': 53}, {'task': 1, 'start': 246, 'machine': 5, 'duration': 91}, {'task': 2, 'start': 343, 'machine': 3, 'duration': 94}, {'task': 3, 'start': 445, 'machine': 2, 'duration': 11}, {'task': 4, 'start': 462, 'machine': 4, 'duration': 76}, {'task': 5, 'start': 544, 'machine': 0, 'duration': 95}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 32}, {'task': 1, 'start': 246, 'machine': 1, 'duration': 59}, {'task': 2, 'start': 337, 'machine': 5, 'duration': 1}, {'task': 3, 'start': 437, 'machine': 3, 'duration': 73}, {'task': 4, 'start': 510, 'machine': 0, 'duration': 34}, {'task': 5, 'start': 592, 'machine': 4, 'duration': 58}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 118, 'machine': 1, 'duration': 75}, {'task': 1, 'start': 219, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 224, 'machine': 3, 'duration': 31}, {'task': 3, 'start': 308, 'machine': 2, 'duration': 51}, {'task': 4, 'start': 363, 'machine': 5, 'duration': 18}, {'task': 5, 'start': 384, 'machine': 4, 'duration': 78}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 87, 'machine': 4, 'duration': 46}, {'task': 1, 'start': 146, 'machine': 2, 'duration': 52}, {'task': 2, 'start': 221, 'machine': 0, 'duration': 89}, {'task': 3, 'start': 338, 'machine': 3, 'duration': 5}, {'task': 4, 'start': 343, 'machine': 5, 'duration': 20}, {'task': 5, 'start': 450, 'machine': 1, 'duration': 59}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 28}, {'task': 1, 'start': 28, 'machine': 5, 'duration': 17}, {'task': 2, 'start': 45, 'machine': 3, 'duration': 68}, {'task': 3, 'start': 114, 'machine': 0, 'duration': 56}, {'task': 4, 'start': 287, 'machine': 2, 'duration': 21}, {'task': 5, 'start': 313, 'machine': 4, 'duration': 62}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 73, 'machine': 1, 'duration': 45}, {'task': 1, 'start': 118, 'machine': 5, 'duration': 73}, {'task': 2, 'start': 191, 'machine': 3, 'duration': 33}, {'task': 3, 'start': 224, 'machine': 4, 'duration': 40}, {'task': 4, 'start': 310, 'machine': 0, 'duration': 53}, {'task': 5, 'start': 456, 'machine': 2, 'duration': 69}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 94, 'machine': 0, 'duration': 20}, {'task': 1, 'start': 305, 'machine': 1, 'duration': 50}, {'task': 2, 'start': 359, 'machine': 2, 'duration': 86}, {'task': 3, 'start': 510, 'machine': 3, 'duration': 45}, {'task': 4, 'start': 555, 'machine': 4, 'duration': 37}, {'task': 5, 'start': 592, 'machine': 5, 'duration': 35}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 28, 'machine': 1, 'duration': 45}, {'task': 1, 'start': 73, 'machine': 2, 'duration': 73}, {'task': 2, 'start': 146, 'machine': 4, 'duration': 49}, {'task': 3, 'start': 255, 'machine': 3, 'duration': 83}, {'task': 4, 'start': 363, 'machine': 0, 'duration': 83}, {'task': 5, 'start': 446, 'machine': 5, 'duration': 62}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 94}, {'task': 1, 'start': 198, 'machine': 2, 'duration': 49}, {'task': 2, 'start': 264, 'machine': 4, 'duration': 49}, {'task': 3, 'start': 381, 'machine': 5, 'duration': 33}, {'task': 4, 'start': 555, 'machine': 3, 'duration': 19}, {'task': 5, 'start': 574, 'machine': 1, 'duration': 54}]}]",650.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': [0, 1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 5, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 86}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 67}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 40}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 95}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 0, 'duration': 42}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 1, 'duration': 53}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 91}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 3, 'duration': 94}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 11}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 4, 'duration': 76}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 0, 'duration': 95}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 2, 'duration': 32}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 1, 'duration': 59}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 5, 'duration': 1}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 3, 'duration': 73}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 0, 'duration': 34}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 4, 'duration': 58}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 1, 'duration': 75}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 0, 'duration': 2}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 3, 'duration': 31}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 51}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 5, 'duration': 18}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 4, 'duration': 78}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 46}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 2, 'duration': 52}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 0, 'duration': 89}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 3, 'duration': 5}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 5, 'duration': 20}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 1, 'duration': 59}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 1, 'duration': 28}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 5, 'duration': 17}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 68}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 0, 'duration': 56}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 2, 'duration': 21}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 4, 'duration': 62}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 45}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 5, 'duration': 73}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 3, 'duration': 33}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 4, 'duration': 40}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 0, 'duration': 53}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 2, 'duration': 69}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 0, 'duration': 20}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 50}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 86}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 3, 'duration': 45}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 37}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 5, 'duration': 35}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 1, 'duration': 45}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 2, 'duration': 73}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 4, 'duration': 49}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 83}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 0, 'duration': 83}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 5, 'duration': 62}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 0, 'duration': 94}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 2, 'duration': 49}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 4, 'duration': 49}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 5, 'duration': 33}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 19}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 1, 'duration': 54}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 4, 'duration': 86}, {'task': 2, 'start': 113, 'machine': 3, 'duration': 67}, {'task': 3, 'start': 247, 'machine': 2, 'duration': 40}, {'task': 4, 'start': 355, 'machine': 1, 'duration': 95}, {'task': 5, 'start': 450, 'machine': 0, 'duration': 42}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 193, 'machine': 1, 'duration': 53}, {'task': 1, 'start': 246, 'machine': 5, 'duration': 91}, {'task': 2, 'start': 343, 'machine': 3, 'duration': 94}, {'task': 3, 'start': 445, 'machine': 2, 'duration': 11}, {'task': 4, 'start': 462, 'machine': 4, 'duration': 76}, {'task': 5, 'start': 544, 'machine': 0, 'duration': 95}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 32}, {'task': 1, 'start': 246, 'machine': 1, 'duration': 59}, {'task': 2, 'start': 337, 'machine': 5, 'duration': 1}, {'task': 3, 'start': 437, 'machine': 3, 'duration': 73}, {'task': 4, 'start': 510, 'machine': 0, 'duration': 34}, {'task': 5, 'start': 592, 'machine': 4, 'duration': 58}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 118, 'machine': 1, 'duration': 75}, {'task': 1, 'start': 219, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 224, 'machine': 3, 'duration': 31}, {'task': 3, 'start': 308, 'machine': 2, 'duration': 51}, {'task': 4, 'start': 363, 'machine': 5, 'duration': 18}, {'task': 5, 'start': 384, 'machine': 4, 'duration': 78}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 87, 'machine': 4, 'duration': 46}, {'task': 1, 'start': 146, 'machine': 2, 'duration': 52}, {'task': 2, 'start': 221, 'machine': 0, 'duration': 89}, {'task': 3, 'start': 338, 'machine': 3, 'duration': 5}, {'task': 4, 'start': 343, 'machine': 5, 'duration': 20}, {'task': 5, 'start': 450, 'machine': 1, 'duration': 59}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 28}, {'task': 1, 'start': 28, 'machine': 5, 'duration': 17}, {'task': 2, 'start': 45, 'machine': 3, 'duration': 68}, {'task': 3, 'start': 114, 'machine': 0, 'duration': 56}, {'task': 4, 'start': 287, 'machine': 2, 'duration': 21}, {'task': 5, 'start': 313, 'machine': 4, 'duration': 62}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 73, 'machine': 1, 'duration': 45}, {'task': 1, 'start': 118, 'machine': 5, 'duration': 73}, {'task': 2, 'start': 191, 'machine': 3, 'duration': 33}, {'task': 3, 'start': 224, 'machine': 4, 'duration': 40}, {'task': 4, 'start': 310, 'machine': 0, 'duration': 53}, {'task': 5, 'start': 456, 'machine': 2, 'duration': 69}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 94, 'machine': 0, 'duration': 20}, {'task': 1, 'start': 305, 'machine': 1, 'duration': 50}, {'task': 2, 'start': 359, 'machine': 2, 'duration': 86}, {'task': 3, 'start': 510, 'machine': 3, 'duration': 45}, {'task': 4, 'start': 555, 'machine': 4, 'duration': 37}, {'task': 5, 'start': 592, 'machine': 5, 'duration': 35}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 28, 'machine': 1, 'duration': 45}, {'task': 1, 'start': 73, 'machine': 2, 'duration': 73}, {'task': 2, 'start': 146, 'machine': 4, 'duration': 49}, {'task': 3, 'start': 255, 'machine': 3, 'duration': 83}, {'task': 4, 'start': 363, 'machine': 0, 'duration': 83}, {'task': 5, 'start': 446, 'machine': 5, 'duration': 62}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 94}, {'task': 1, 'start': 198, 'machine': 2, 'duration': 49}, {'task': 2, 'start': 264, 'machine': 4, 'duration': 49}, {'task': 3, 'start': 381, 'machine': 5, 'duration': 33}, {'task': 4, 'start': 555, 'machine': 3, 'duration': 19}, {'task': 5, 'start': 574, 'machine': 1, 'duration': 54}]}]",34,json,0 JSP,JSP,"We run a fleet of delivery drones and every morning they need a fixed lineup of checks and charging sessions, each tied to a specific pad or bench and lasting a known amount of time. The decision is how to schedule those checks so no pad is double-booked, nothing is skipped or repeated, and each drone’s steps happen in their required order. A schedule that finishes the whole fleet sooner is preferable — measure that by the time the last drone wraps up its final required activity. The concrete list of drones, required steps, pad assignments, and durations follows below. { ""nr_drones"": 9, ""nr_pads"": 5, ""drones"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"" ], ""pads"": [ 1, 2, 3, 4, 5 ], ""tasks"": [ { ""drone_id"": ""J1"", ""step_index"": 0, ""pad_id"": 3, ""duration_minutes"": 1 }, { ""drone_id"": ""J1"", ""step_index"": 1, ""pad_id"": 5, ""duration_minutes"": 99 }, { ""drone_id"": ""J1"", ""step_index"": 2, ""pad_id"": 4, ""duration_minutes"": 43 }, { ""drone_id"": ""J1"", ""step_index"": 3, ""pad_id"": 2, ""duration_minutes"": 85 }, { ""drone_id"": ""J1"", ""step_index"": 4, ""pad_id"": 1, ""duration_minutes"": 49 }, { ""drone_id"": ""J2"", ""step_index"": 0, ""pad_id"": 2, ""duration_minutes"": 64 }, { ""drone_id"": ""J2"", ""step_index"": 1, ""pad_id"": 3, ""duration_minutes"": 57 }, { ""drone_id"": ""J2"", ""step_index"": 2, ""pad_id"": 4, ""duration_minutes"": 59 }, { ""drone_id"": ""J2"", ""step_index"": 3, ""pad_id"": 5, ""duration_minutes"": 63 }, { ""drone_id"": ""J2"", ""step_index"": 4, ""pad_id"": 1, ""duration_minutes"": 4 }, { ""drone_id"": ""J3"", ""step_index"": 0, ""pad_id"": 5, ""duration_minutes"": 15 }, { ""drone_id"": ""J3"", ""step_index"": 1, ""pad_id"": 2, ""duration_minutes"": 48 }, { ""drone_id"": ""J3"", ""step_index"": 2, ""pad_id"": 1, ""duration_minutes"": 16 }, { ""drone_id"": ""J3"", ""step_index"": 3, ""pad_id"": 4, ""duration_minutes"": 63 }, { ""drone_id"": ""J3"", ""step_index"": 4, ""pad_id"": 3, ""duration_minutes"": 7 }, { ""drone_id"": ""J4"", ""step_index"": 0, ""pad_id"": 4, ""duration_minutes"": 26 }, { ""drone_id"": ""J4"", ""step_index"": 1, ""pad_id"": 1, ""duration_minutes"": 1 }, { ""drone_id"": ""J4"", ""step_index"": 2, ""pad_id"": 3, ""duration_minutes"": 58 }, { ""drone_id"": ""J4"", ""step_index"": 3, ""pad_id"": 2, ""duration_minutes"": 14 }, { ""drone_id"": ""J4"", ""step_index"": 4, ""pad_id"": 5, ""duration_minutes"": 8 }, { ""drone_id"": ""J5"", ""step_index"": 0, ""pad_id"": 4, ""duration_minutes"": 73 }, { ""drone_id"": ""J5"", ""step_index"": 1, ""pad_id"": 2, ""duration_minutes"": 20 }, { ""drone_id"": ""J5"", ""step_index"": 2, ""pad_id"": 1, ""duration_minutes"": 76 }, { ""drone_id"": ""J5"", ""step_index"": 3, ""pad_id"": 5, ""duration_minutes"": 71 }, { ""drone_id"": ""J5"", ""step_index"": 4, ""pad_id"": 3, ""duration_minutes"": 31 }, { ""drone_id"": ""J6"", ""step_index"": 0, ""pad_id"": 5, ""duration_minutes"": 5 }, { ""drone_id"": ""J6"", ""step_index"": 1, ""pad_id"": 1, ""duration_minutes"": 98 }, { ""drone_id"": ""J6"", ""step_index"": 2, ""pad_id"": 2, ""duration_minutes"": 70 }, { ""drone_id"": ""J6"", ""step_index"": 3, ""pad_id"": 4, ""duration_minutes"": 61 }, { ""drone_id"": ""J6"", ""step_index"": 4, ""pad_id"": 3, ""duration_minutes"": 29 }, { ""drone_id"": ""J7"", ""step_index"": 0, ""pad_id"": 1, ""duration_minutes"": 19 }, { ""drone_id"": ""J7"", ""step_index"": 1, ""pad_id"": 3, ""duration_minutes"": 92 }, { ""drone_id"": ""J7"", ""step_index"": 2, ""pad_id"": 4, ""duration_minutes"": 94 }, { ""drone_id"": ""J7"", ""step_index"": 3, ""pad_id"": 2, ""duration_minutes"": 61 }, { ""drone_id"": ""J7"", ""step_index"": 4, ""pad_id"": 5, ""duration_minutes"": 94 }, { ""drone_id"": ""J8"", ""step_index"": 0, ""pad_id"": 5, ""duration_minutes"": 94 }, { ""drone_id"": ""J8"", ""step_index"": 1, ""pad_id"": 3, ""duration_minutes"": 8 }, { ""drone_id"": ""J8"", ""step_index"": 2, ""pad_id"": 2, ""duration_minutes"": 49 }, { ""drone_id"": ""J8"", ""step_index"": 3, ""pad_id"": 1, ""duration_minutes"": 32 }, { ""drone_id"": ""J8"", ""step_index"": 4, ""pad_id"": 4, ""duration_minutes"": 76 }, { ""drone_id"": ""J9"", ""step_index"": 0, ""pad_id"": 4, ""duration_minutes"": 77 }, { ""drone_id"": ""J9"", ""step_index"": 1, ""pad_id"": 1, ""duration_minutes"": 67 }, { ""drone_id"": ""J9"", ""step_index"": 2, ""pad_id"": 5, ""duration_minutes"": 92 }, { ""drone_id"": ""J9"", ""step_index"": 3, ""pad_id"": 2, ""duration_minutes"": 26 }, { ""drone_id"": ""J9"", ""step_index"": 4, ""pad_id"": 3, ""duration_minutes"": 52 } ] } Also, when you hand me the schedule, please follow a simple JSON layout — nothing fancy, just the shape I'll parse. Here's the sketch I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Quick, informal guide to the fields so it’s clear what goes where: - ""solution"" is a list with one entry per drone (job). - ""job"" is the drone identifier. - ""tasks"" is the ordered list of that drone’s required steps. - each task has ""task"" (which step it is in the sequence), ""start"" (when it begins), ""machine"" (which pad or bench it uses), and ""duration"" (how long it runs). This JSON is just a template of the shape I want — not the actual schedule itself. Please make sure you use the exact identifiers from the instance input, do not rename or invent labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[2, 1], [4, 99], [3, 43], [1, 85], [0, 49]], [[1, 64], [2, 57], [3, 59], [4, 63], [0, 4]], [[4, 15], [1, 48], [0, 16], [3, 63], [2, 7]], [[3, 26], [0, 1], [2, 58], [1, 14], [4, 8]], [[3, 73], [1, 20], [0, 76], [4, 71], [2, 31]], [[4, 5], [0, 98], [1, 70], [3, 61], [2, 29]], [[0, 19], [2, 92], [3, 94], [1, 61], [4, 94]], [[4, 94], [2, 8], [1, 49], [0, 32], [3, 76]], [[3, 77], [0, 67], [4, 92], [1, 26], [2, 52]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 5, 'machine': 4, 'duration': 99}, {'task': 2, 'start': 244, 'machine': 3, 'duration': 43}, {'task': 3, 'start': 365, 'machine': 1, 'duration': 85}, {'task': 4, 'start': 450, 'machine': 0, 'duration': 49}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 64}, {'task': 1, 'start': 111, 'machine': 2, 'duration': 57}, {'task': 2, 'start': 287, 'machine': 3, 'duration': 59}, {'task': 3, 'start': 470, 'machine': 4, 'duration': 63}, {'task': 4, 'start': 533, 'machine': 0, 'duration': 4}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 290, 'machine': 4, 'duration': 15}, {'task': 1, 'start': 317, 'machine': 1, 'duration': 48}, {'task': 2, 'start': 365, 'machine': 0, 'duration': 16}, {'task': 3, 'start': 433, 'machine': 3, 'duration': 63}, {'task': 4, 'start': 546, 'machine': 2, 'duration': 7}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 346, 'machine': 3, 'duration': 26}, {'task': 1, 'start': 381, 'machine': 0, 'duration': 1}, {'task': 2, 'start': 407, 'machine': 2, 'duration': 58}, {'task': 3, 'start': 476, 'machine': 1, 'duration': 14}, {'task': 4, 'start': 533, 'machine': 4, 'duration': 8}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 77, 'machine': 3, 'duration': 73}, {'task': 1, 'start': 187, 'machine': 1, 'duration': 20}, {'task': 2, 'start': 207, 'machine': 0, 'duration': 76}, {'task': 3, 'start': 305, 'machine': 4, 'duration': 71}, {'task': 4, 'start': 376, 'machine': 2, 'duration': 31}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 5}, {'task': 1, 'start': 19, 'machine': 0, 'duration': 98}, {'task': 2, 'start': 117, 'machine': 1, 'duration': 70}, {'task': 3, 'start': 372, 'machine': 3, 'duration': 61}, {'task': 4, 'start': 465, 'machine': 2, 'duration': 29}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 19}, {'task': 1, 'start': 19, 'machine': 2, 'duration': 92}, {'task': 2, 'start': 150, 'machine': 3, 'duration': 94}, {'task': 3, 'start': 256, 'machine': 1, 'duration': 61}, {'task': 4, 'start': 376, 'machine': 4, 'duration': 94}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 104, 'machine': 4, 'duration': 94}, {'task': 1, 'start': 198, 'machine': 2, 'duration': 8}, {'task': 2, 'start': 207, 'machine': 1, 'duration': 49}, {'task': 3, 'start': 283, 'machine': 0, 'duration': 32}, {'task': 4, 'start': 496, 'machine': 3, 'duration': 76}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 77}, {'task': 1, 'start': 117, 'machine': 0, 'duration': 67}, {'task': 2, 'start': 198, 'machine': 4, 'duration': 92}, {'task': 3, 'start': 450, 'machine': 1, 'duration': 26}, {'task': 4, 'start': 494, 'machine': 2, 'duration': 52}]}]",572.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 5, 'duration': 99}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 4, 'duration': 43}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 85}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 49}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 64}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 57}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 4, 'duration': 59}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 5, 'duration': 63}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 4}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 5, 'duration': 15}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 48}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 1, 'duration': 16}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 4, 'duration': 63}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 7}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 26}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 1, 'duration': 1}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 3, 'duration': 58}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 14}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 5, 'duration': 8}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 73}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 2, 'duration': 20}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 76}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 5, 'duration': 71}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 3, 'duration': 31}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 5, 'duration': 5}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 98}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 2, 'duration': 70}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 4, 'duration': 61}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 3, 'duration': 29}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 19}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 92}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 94}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 2, 'duration': 61}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 5, 'duration': 94}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 5, 'duration': 94}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 8}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 49}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 32}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 76}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 77}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 67}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 5, 'duration': 92}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 26}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 3, 'duration': 52}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 5, 'machine': 5, 'duration': 99}, {'task': 2, 'start': 244, 'machine': 4, 'duration': 43}, {'task': 3, 'start': 365, 'machine': 2, 'duration': 85}, {'task': 4, 'start': 450, 'machine': 1, 'duration': 49}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 64}, {'task': 1, 'start': 111, 'machine': 3, 'duration': 57}, {'task': 2, 'start': 287, 'machine': 4, 'duration': 59}, {'task': 3, 'start': 470, 'machine': 5, 'duration': 63}, {'task': 4, 'start': 533, 'machine': 1, 'duration': 4}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 290, 'machine': 5, 'duration': 15}, {'task': 1, 'start': 317, 'machine': 2, 'duration': 48}, {'task': 2, 'start': 365, 'machine': 1, 'duration': 16}, {'task': 3, 'start': 433, 'machine': 4, 'duration': 63}, {'task': 4, 'start': 546, 'machine': 3, 'duration': 7}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 346, 'machine': 4, 'duration': 26}, {'task': 1, 'start': 381, 'machine': 1, 'duration': 1}, {'task': 2, 'start': 407, 'machine': 3, 'duration': 58}, {'task': 3, 'start': 476, 'machine': 2, 'duration': 14}, {'task': 4, 'start': 533, 'machine': 5, 'duration': 8}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 77, 'machine': 4, 'duration': 73}, {'task': 1, 'start': 187, 'machine': 2, 'duration': 20}, {'task': 2, 'start': 207, 'machine': 1, 'duration': 76}, {'task': 3, 'start': 305, 'machine': 5, 'duration': 71}, {'task': 4, 'start': 376, 'machine': 3, 'duration': 31}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 5}, {'task': 1, 'start': 19, 'machine': 1, 'duration': 98}, {'task': 2, 'start': 117, 'machine': 2, 'duration': 70}, {'task': 3, 'start': 372, 'machine': 4, 'duration': 61}, {'task': 4, 'start': 465, 'machine': 3, 'duration': 29}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 19}, {'task': 1, 'start': 19, 'machine': 3, 'duration': 92}, {'task': 2, 'start': 150, 'machine': 4, 'duration': 94}, {'task': 3, 'start': 256, 'machine': 2, 'duration': 61}, {'task': 4, 'start': 376, 'machine': 5, 'duration': 94}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 104, 'machine': 5, 'duration': 94}, {'task': 1, 'start': 198, 'machine': 3, 'duration': 8}, {'task': 2, 'start': 207, 'machine': 2, 'duration': 49}, {'task': 3, 'start': 283, 'machine': 1, 'duration': 32}, {'task': 4, 'start': 496, 'machine': 4, 'duration': 76}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 77}, {'task': 1, 'start': 117, 'machine': 1, 'duration': 67}, {'task': 2, 'start': 198, 'machine': 5, 'duration': 92}, {'task': 3, 'start': 450, 'machine': 2, 'duration': 26}, {'task': 4, 'start': 494, 'machine': 3, 'duration': 52}]}]",35,json,1 JSP,JSP,"At the port the challenge is to sequence loading and inspection for all outbound containers so every container follows its prescribed sequence on specific docks and inspection lanes for set time slots. Each operation needs its assigned dock or lane and takes a fixed amount of time, and docks are single-tasked — they can’t run simultaneous operations. The whole plan is judged by how early the last container departs; the sooner that departure time, the better the schedule. No step can be skipped or repeated, order matters, and the exact container operations and timings are provided below. Below are the 9 containers to schedule across the 6 stations: containers J1, J2, J3, J4, J5, J6, J7, J8, J9; stations A, B, C, D, E, F. Container J1, operation 0, requires station D for 1 time units. Container J1, operation 1, requires station B for 13 time units. Container J1, operation 2, requires station E for 18 time units. Container J1, operation 3, requires station F for 32 time units. Container J1, operation 4, requires station C for 3 time units. Container J1, operation 5, requires station A for 86 time units. Container J2, operation 0, requires station F for 62 time units. Container J2, operation 1, requires station B for 27 time units. Container J2, operation 2, requires station E for 31 time units. Container J2, operation 3, requires station D for 97 time units. Container J2, operation 4, requires station A for 53 time units. Container J2, operation 5, requires station C for 99 time units. Container J3, operation 0, requires station E for 98 time units. Container J3, operation 1, requires station F for 66 time units. Container J3, operation 2, requires station B for 12 time units. Container J3, operation 3, requires station C for 78 time units. Container J3, operation 4, requires station A for 68 time units. Container J3, operation 5, requires station D for 59 time units. Container J4, operation 0, requires station F for 52 time units. Container J4, operation 1, requires station B for 15 time units. Container J4, operation 2, requires station D for 15 time units. Container J4, operation 3, requires station C for 88 time units. Container J4, operation 4, requires station A for 35 time units. Container J4, operation 5, requires station E for 64 time units. Container J5, operation 0, requires station C for 16 time units. Container J5, operation 1, requires station B for 57 time units. Container J5, operation 2, requires station E for 9 time units. Container J5, operation 3, requires station F for 35 time units. Container J5, operation 4, requires station D for 4 time units. Container J5, operation 5, requires station A for 99 time units. Container J6, operation 0, requires station E for 10 time units. Container J6, operation 1, requires station B for 69 time units. Container J6, operation 2, requires station A for 21 time units. Container J6, operation 3, requires station C for 65 time units. Container J6, operation 4, requires station D for 68 time units. Container J6, operation 5, requires station F for 28 time units. Container J7, operation 0, requires station F for 71 time units. Container J7, operation 1, requires station E for 25 time units. Container J7, operation 2, requires station A for 31 time units. Container J7, operation 3, requires station C for 13 time units. Container J7, operation 4, requires station D for 3 time units. Container J7, operation 5, requires station B for 65 time units. Container J8, operation 0, requires station E for 64 time units. Container J8, operation 1, requires station F for 1 time units. Container J8, operation 2, requires station C for 17 time units. Container J8, operation 3, requires station B for 60 time units. Container J8, operation 4, requires station A for 63 time units. Container J8, operation 5, requires station D for 13 time units. Container J9, operation 0, requires station F for 99 time units. Container J9, operation 1, requires station D for 60 time units. Container J9, operation 2, requires station B for 2 time units. Container J9, operation 3, requires station E for 78 time units. Container J9, operation 4, requires station A for 31 time units. Container J9, operation 5, requires station C for 17 time units. The objective remains to minimize the departure time of the last container across all 6 stations for these 9 containers. You can just hand me the schedule in this simple JSON shape when you're ready — makes it easy to read and check: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: ""solution"" is a list of containers (jobs). Each job entry names the job and then lists its ordered tasks. For each task, give the task's index within that job, the planned start time, which dock or lane (machine) it uses, and how long it runs. Super casual — just fill in those fields with the actual IDs and times. This JSON is only a sketch of the expected shape, not the actual schedule — please fill in the real values from the instance. Please use the identifiers exactly as they appear in the instance input — do not rename them or invent new labels. For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 9, 'jobs': [[[3, 1], [1, 13], [4, 18], [5, 32], [2, 3], [0, 86]], [[5, 62], [1, 27], [4, 31], [3, 97], [0, 53], [2, 99]], [[4, 98], [5, 66], [1, 12], [2, 78], [0, 68], [3, 59]], [[5, 52], [1, 15], [3, 15], [2, 88], [0, 35], [4, 64]], [[2, 16], [1, 57], [4, 9], [5, 35], [3, 4], [0, 99]], [[4, 10], [1, 69], [0, 21], [2, 65], [3, 68], [5, 28]], [[5, 71], [4, 25], [0, 31], [2, 13], [3, 3], [1, 65]], [[4, 64], [5, 1], [2, 17], [1, 60], [0, 63], [3, 13]], [[5, 99], [3, 60], [1, 2], [4, 78], [0, 31], [2, 17]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 1, 'duration': 13}, {'task': 2, 'start': 14, 'machine': 4, 'duration': 18}, {'task': 3, 'start': 53, 'machine': 5, 'duration': 32}, {'task': 4, 'start': 85, 'machine': 2, 'duration': 3}, {'task': 5, 'start': 104, 'machine': 0, 'duration': 86}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 85, 'machine': 5, 'duration': 62}, {'task': 1, 'start': 162, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 189, 'machine': 4, 'duration': 31}, {'task': 3, 'start': 220, 'machine': 3, 'duration': 97}, {'task': 4, 'start': 324, 'machine': 0, 'duration': 53}, {'task': 5, 'start': 377, 'machine': 2, 'duration': 99}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 32, 'machine': 4, 'duration': 98}, {'task': 1, 'start': 184, 'machine': 5, 'duration': 66}, {'task': 2, 'start': 250, 'machine': 1, 'duration': 12}, {'task': 3, 'start': 262, 'machine': 2, 'duration': 78}, {'task': 4, 'start': 377, 'machine': 0, 'duration': 68}, {'task': 5, 'start': 445, 'machine': 3, 'duration': 59}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 1, 'machine': 5, 'duration': 52}, {'task': 1, 'start': 140, 'machine': 1, 'duration': 15}, {'task': 2, 'start': 155, 'machine': 3, 'duration': 15}, {'task': 3, 'start': 170, 'machine': 2, 'duration': 88}, {'task': 4, 'start': 289, 'machine': 0, 'duration': 35}, {'task': 5, 'start': 324, 'machine': 4, 'duration': 64}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 16}, {'task': 1, 'start': 83, 'machine': 1, 'duration': 57}, {'task': 2, 'start': 140, 'machine': 4, 'duration': 9}, {'task': 3, 'start': 149, 'machine': 5, 'duration': 35}, {'task': 4, 'start': 184, 'machine': 3, 'duration': 4}, {'task': 5, 'start': 190, 'machine': 0, 'duration': 99}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 10}, {'task': 1, 'start': 14, 'machine': 1, 'duration': 69}, {'task': 2, 'start': 83, 'machine': 0, 'duration': 21}, {'task': 3, 'start': 104, 'machine': 2, 'duration': 65}, {'task': 4, 'start': 317, 'machine': 3, 'duration': 68}, {'task': 5, 'start': 421, 'machine': 5, 'duration': 28}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 350, 'machine': 5, 'duration': 71}, {'task': 1, 'start': 421, 'machine': 4, 'duration': 25}, {'task': 2, 'start': 446, 'machine': 0, 'duration': 31}, {'task': 3, 'start': 503, 'machine': 2, 'duration': 13}, {'task': 4, 'start': 516, 'machine': 3, 'duration': 3}, {'task': 5, 'start': 519, 'machine': 1, 'duration': 65}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 220, 'machine': 4, 'duration': 64}, {'task': 1, 'start': 349, 'machine': 5, 'duration': 1}, {'task': 2, 'start': 350, 'machine': 2, 'duration': 17}, {'task': 3, 'start': 367, 'machine': 1, 'duration': 60}, {'task': 4, 'start': 477, 'machine': 0, 'duration': 63}, {'task': 5, 'start': 557, 'machine': 3, 'duration': 13}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 250, 'machine': 5, 'duration': 99}, {'task': 1, 'start': 385, 'machine': 3, 'duration': 60}, {'task': 2, 'start': 445, 'machine': 1, 'duration': 2}, {'task': 3, 'start': 447, 'machine': 4, 'duration': 78}, {'task': 4, 'start': 540, 'machine': 0, 'duration': 31}, {'task': 5, 'start': 571, 'machine': 2, 'duration': 17}]}]",588.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'B', 'duration': 13}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'F', 'duration': 32}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'C', 'duration': 3}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 86}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'F', 'duration': 62}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'B', 'duration': 27}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'E', 'duration': 31}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'D', 'duration': 97}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'A', 'duration': 53}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'C', 'duration': 99}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'E', 'duration': 98}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'F', 'duration': 66}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'B', 'duration': 12}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'C', 'duration': 78}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'A', 'duration': 68}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'D', 'duration': 59}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'F', 'duration': 52}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'B', 'duration': 15}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'D', 'duration': 15}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'C', 'duration': 88}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 35}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'E', 'duration': 64}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'C', 'duration': 16}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'B', 'duration': 57}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'E', 'duration': 9}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'F', 'duration': 35}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'D', 'duration': 4}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'A', 'duration': 99}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'E', 'duration': 10}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'B', 'duration': 69}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'A', 'duration': 21}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'C', 'duration': 65}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'D', 'duration': 68}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'F', 'duration': 28}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'F', 'duration': 71}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'E', 'duration': 25}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 31}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'C', 'duration': 13}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'D', 'duration': 3}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'B', 'duration': 65}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'E', 'duration': 64}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'F', 'duration': 1}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'C', 'duration': 17}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'B', 'duration': 60}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'A', 'duration': 63}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'D', 'duration': 13}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'F', 'duration': 99}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'D', 'duration': 60}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'B', 'duration': 2}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'E', 'duration': 78}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'A', 'duration': 31}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'C', 'duration': 17}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 1}, {'task': 1, 'start': 1, 'machine': 'B', 'duration': 13}, {'task': 2, 'start': 14, 'machine': 'E', 'duration': 18}, {'task': 3, 'start': 53, 'machine': 'F', 'duration': 32}, {'task': 4, 'start': 85, 'machine': 'C', 'duration': 3}, {'task': 5, 'start': 104, 'machine': 'A', 'duration': 86}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 85, 'machine': 'F', 'duration': 62}, {'task': 1, 'start': 162, 'machine': 'B', 'duration': 27}, {'task': 2, 'start': 189, 'machine': 'E', 'duration': 31}, {'task': 3, 'start': 220, 'machine': 'D', 'duration': 97}, {'task': 4, 'start': 324, 'machine': 'A', 'duration': 53}, {'task': 5, 'start': 377, 'machine': 'C', 'duration': 99}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 32, 'machine': 'E', 'duration': 98}, {'task': 1, 'start': 184, 'machine': 'F', 'duration': 66}, {'task': 2, 'start': 250, 'machine': 'B', 'duration': 12}, {'task': 3, 'start': 262, 'machine': 'C', 'duration': 78}, {'task': 4, 'start': 377, 'machine': 'A', 'duration': 68}, {'task': 5, 'start': 445, 'machine': 'D', 'duration': 59}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 1, 'machine': 'F', 'duration': 52}, {'task': 1, 'start': 140, 'machine': 'B', 'duration': 15}, {'task': 2, 'start': 155, 'machine': 'D', 'duration': 15}, {'task': 3, 'start': 170, 'machine': 'C', 'duration': 88}, {'task': 4, 'start': 289, 'machine': 'A', 'duration': 35}, {'task': 5, 'start': 324, 'machine': 'E', 'duration': 64}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 16}, {'task': 1, 'start': 83, 'machine': 'B', 'duration': 57}, {'task': 2, 'start': 140, 'machine': 'E', 'duration': 9}, {'task': 3, 'start': 149, 'machine': 'F', 'duration': 35}, {'task': 4, 'start': 184, 'machine': 'D', 'duration': 4}, {'task': 5, 'start': 190, 'machine': 'A', 'duration': 99}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 10}, {'task': 1, 'start': 14, 'machine': 'B', 'duration': 69}, {'task': 2, 'start': 83, 'machine': 'A', 'duration': 21}, {'task': 3, 'start': 104, 'machine': 'C', 'duration': 65}, {'task': 4, 'start': 317, 'machine': 'D', 'duration': 68}, {'task': 5, 'start': 421, 'machine': 'F', 'duration': 28}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 350, 'machine': 'F', 'duration': 71}, {'task': 1, 'start': 421, 'machine': 'E', 'duration': 25}, {'task': 2, 'start': 446, 'machine': 'A', 'duration': 31}, {'task': 3, 'start': 503, 'machine': 'C', 'duration': 13}, {'task': 4, 'start': 516, 'machine': 'D', 'duration': 3}, {'task': 5, 'start': 519, 'machine': 'B', 'duration': 65}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 220, 'machine': 'E', 'duration': 64}, {'task': 1, 'start': 349, 'machine': 'F', 'duration': 1}, {'task': 2, 'start': 350, 'machine': 'C', 'duration': 17}, {'task': 3, 'start': 367, 'machine': 'B', 'duration': 60}, {'task': 4, 'start': 477, 'machine': 'A', 'duration': 63}, {'task': 5, 'start': 557, 'machine': 'D', 'duration': 13}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 250, 'machine': 'F', 'duration': 99}, {'task': 1, 'start': 385, 'machine': 'D', 'duration': 60}, {'task': 2, 'start': 445, 'machine': 'B', 'duration': 2}, {'task': 3, 'start': 447, 'machine': 'E', 'duration': 78}, {'task': 4, 'start': 540, 'machine': 'A', 'duration': 31}, {'task': 5, 'start': 571, 'machine': 'C', 'duration': 17}]}]",36,nl,names JSP,JSP,"I’m running the grading room this term and the job is to get a bunch of exam batches through their required review steps — each batch has its own little to-do list that must happen in order, and each step needs a particular workstation for a fixed amount of time. The tricky part is deciding who goes to which table when, since a workstation can only handle one review at a time and no step can be skipped or done twice. The better plans are the ones where the last batch gets finished earlier — success is measured by the clock time when the final batch is signed off. The exact batches, steps, stations and times are shown below. Here are the 12 batches (J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12) and the 6 workstations (0, 1, 2, 3, 4, 5) that I need to coordinate. I have batch J1, step 0: it must go to workstation 1 for 1. I have batch J1, step 1: it must go to workstation 2 for 26. I have batch J1, step 2: it must go to workstation 5 for 93. I have batch J1, step 3: it must go to workstation 4 for 77. I have batch J1, step 4: it must go to workstation 3 for 56. I have batch J1, step 5: it must go to workstation 0 for 8. I have batch J2, step 0: it must go to workstation 5 for 67. I have batch J2, step 1: it must go to workstation 1 for 95. I have batch J2, step 2: it must go to workstation 3 for 98. I have batch J2, step 3: it must go to workstation 2 for 90. I have batch J2, step 4: it must go to workstation 0 for 91. I have batch J2, step 5: it must go to workstation 4 for 51. I have batch J3, step 0: it must go to workstation 0 for 81. I have batch J3, step 1: it must go to workstation 2 for 69. I have batch J3, step 2: it must go to workstation 4 for 17. I have batch J3, step 3: it must go to workstation 1 for 32. I have batch J3, step 4: it must go to workstation 3 for 35. I have batch J3, step 5: it must go to workstation 5 for 60. I have batch J4, step 0: it must go to workstation 3 for 90. I have batch J4, step 1: it must go to workstation 5 for 22. I have batch J4, step 2: it must go to workstation 0 for 56. I have batch J4, step 3: it must go to workstation 2 for 57. I have batch J4, step 4: it must go to workstation 4 for 94. I have batch J4, step 5: it must go to workstation 1 for 57. I have batch J5, step 0: it must go to workstation 0 for 1. I have batch J5, step 1: it must go to workstation 4 for 10. I have batch J5, step 2: it must go to workstation 3 for 18. I have batch J5, step 3: it must go to workstation 5 for 1. I have batch J5, step 4: it must go to workstation 1 for 45. I have batch J5, step 5: it must go to workstation 2 for 69. I have batch J6, step 0: it must go to workstation 3 for 1. I have batch J6, step 1: it must go to workstation 5 for 45. I have batch J6, step 2: it must go to workstation 1 for 47. I have batch J6, step 3: it must go to workstation 0 for 70. I have batch J6, step 4: it must go to workstation 4 for 42. I have batch J6, step 5: it must go to workstation 2 for 60. I have batch J7, step 0: it must go to workstation 4 for 35. I have batch J7, step 1: it must go to workstation 3 for 1. I have batch J7, step 2: it must go to workstation 5 for 30. I have batch J7, step 3: it must go to workstation 0 for 50. I have batch J7, step 4: it must go to workstation 2 for 27. I have batch J7, step 5: it must go to workstation 1 for 64. I have batch J8, step 0: it must go to workstation 4 for 37. I have batch J8, step 1: it must go to workstation 1 for 76. I have batch J8, step 2: it must go to workstation 2 for 82. I have batch J8, step 3: it must go to workstation 0 for 67. I have batch J8, step 4: it must go to workstation 3 for 27. I have batch J8, step 5: it must go to workstation 5 for 1. I have batch J9, step 0: it must go to workstation 1 for 27. I have batch J9, step 1: it must go to workstation 2 for 4. I have batch J9, step 2: it must go to workstation 4 for 78. I have batch J9, step 3: it must go to workstation 5 for 27. I have batch J9, step 4: it must go to workstation 0 for 55. I have batch J9, step 5: it must go to workstation 3 for 44. I have batch J10, step 0: it must go to workstation 2 for 3. I have batch J10, step 1: it must go to workstation 4 for 98. I have batch J10, step 2: it must go to workstation 1 for 94. I have batch J10, step 3: it must go to workstation 0 for 2. I have batch J10, step 4: it must go to workstation 5 for 91. I have batch J10, step 5: it must go to workstation 3 for 72. I have batch J11, step 0: it must go to workstation 0 for 56. I have batch J11, step 1: it must go to workstation 5 for 35. I have batch J11, step 2: it must go to workstation 3 for 27. I have batch J11, step 3: it must go to workstation 1 for 88. I have batch J11, step 4: it must go to workstation 2 for 95. I have batch J11, step 5: it must go to workstation 4 for 53. I have batch J12, step 0: it must go to workstation 1 for 76. I have batch J12, step 1: it must go to workstation 4 for 8. I have batch J12, step 2: it must go to workstation 3 for 92. I have batch J12, step 3: it must go to workstation 2 for 75. I have batch J12, step 4: it must go to workstation 5 for 6. I have batch J12, step 5: it must go to workstation 0 for 96. I'm aiming for a plan that finishes the final batch as early as possible. Also, when you send the schedule back, please follow this JSON layout: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of this as a simple form: ""solution"" is a list of batches (jobs), each entry has the job identifier and a list of its ordered tasks. For each task you give the task index (which step it is in that job), the planned start time, the machine/workstation to use, and how long that step takes. This block is just a sketch of the shape I expect — fill it in with the actual ids and times when you submit the schedule. Please use the identifiers exactly as they appear in the instance input — do not rename them and do not invent new labels. Valid identifiers look like plain numbers such as ""1"" or ""23"", single capital letters like ""A"" or ""B"", or a capital letter followed by digits like ""A1"" or ""X7"".","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[1, 1], [2, 26], [5, 93], [4, 77], [3, 56], [0, 8]], [[5, 67], [1, 95], [3, 98], [2, 90], [0, 91], [4, 51]], [[0, 81], [2, 69], [4, 17], [1, 32], [3, 35], [5, 60]], [[3, 90], [5, 22], [0, 56], [2, 57], [4, 94], [1, 57]], [[0, 1], [4, 10], [3, 18], [5, 1], [1, 45], [2, 69]], [[3, 1], [5, 45], [1, 47], [0, 70], [4, 42], [2, 60]], [[4, 35], [3, 1], [5, 30], [0, 50], [2, 27], [1, 64]], [[4, 37], [1, 76], [2, 82], [0, 67], [3, 27], [5, 1]], [[1, 27], [2, 4], [4, 78], [5, 27], [0, 55], [3, 44]], [[2, 3], [4, 98], [1, 94], [0, 2], [5, 91], [3, 72]], [[0, 56], [5, 35], [3, 27], [1, 88], [2, 95], [4, 53]], [[1, 76], [4, 8], [3, 92], [2, 75], [5, 6], [0, 96]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 2, 'duration': 26}, {'task': 2, 'start': 68, 'machine': 5, 'duration': 93}, {'task': 3, 'start': 288, 'machine': 4, 'duration': 77}, {'task': 4, 'start': 369, 'machine': 3, 'duration': 56}, {'task': 5, 'start': 670, 'machine': 0, 'duration': 8}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 67}, {'task': 1, 'start': 149, 'machine': 1, 'duration': 95}, {'task': 2, 'start': 244, 'machine': 3, 'duration': 98}, {'task': 3, 'start': 352, 'machine': 2, 'duration': 90}, {'task': 4, 'start': 442, 'machine': 0, 'duration': 91}, {'task': 5, 'start': 533, 'machine': 4, 'duration': 51}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 1, 'machine': 0, 'duration': 81}, {'task': 1, 'start': 82, 'machine': 2, 'duration': 69}, {'task': 2, 'start': 459, 'machine': 4, 'duration': 17}, {'task': 3, 'start': 549, 'machine': 1, 'duration': 32}, {'task': 4, 'start': 605, 'machine': 3, 'duration': 35}, {'task': 5, 'start': 640, 'machine': 5, 'duration': 60}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 29, 'machine': 3, 'duration': 90}, {'task': 1, 'start': 161, 'machine': 5, 'duration': 22}, {'task': 2, 'start': 183, 'machine': 0, 'duration': 56}, {'task': 3, 'start': 295, 'machine': 2, 'duration': 57}, {'task': 4, 'start': 365, 'machine': 4, 'duration': 94}, {'task': 5, 'start': 645, 'machine': 1, 'duration': 57}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 4, 'duration': 10}, {'task': 2, 'start': 11, 'machine': 3, 'duration': 18}, {'task': 3, 'start': 67, 'machine': 5, 'duration': 1}, {'task': 4, 'start': 104, 'machine': 1, 'duration': 45}, {'task': 5, 'start': 151, 'machine': 2, 'duration': 69}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 247, 'machine': 5, 'duration': 45}, {'task': 2, 'start': 414, 'machine': 1, 'duration': 47}, {'task': 3, 'start': 533, 'machine': 0, 'duration': 70}, {'task': 4, 'start': 603, 'machine': 4, 'duration': 42}, {'task': 5, 'start': 646, 'machine': 2, 'duration': 60}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 48, 'machine': 4, 'duration': 35}, {'task': 1, 'start': 211, 'machine': 3, 'duration': 1}, {'task': 2, 'start': 217, 'machine': 5, 'duration': 30}, {'task': 3, 'start': 294, 'machine': 0, 'duration': 50}, {'task': 4, 'start': 524, 'machine': 2, 'duration': 27}, {'task': 5, 'start': 581, 'machine': 1, 'duration': 64}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 11, 'machine': 4, 'duration': 37}, {'task': 1, 'start': 244, 'machine': 1, 'duration': 76}, {'task': 2, 'start': 442, 'machine': 2, 'duration': 82}, {'task': 3, 'start': 603, 'machine': 0, 'duration': 67}, {'task': 4, 'start': 670, 'machine': 3, 'duration': 27}, {'task': 5, 'start': 700, 'machine': 5, 'duration': 1}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 1, 'machine': 1, 'duration': 27}, {'task': 1, 'start': 30, 'machine': 2, 'duration': 4}, {'task': 2, 'start': 112, 'machine': 4, 'duration': 78}, {'task': 3, 'start': 190, 'machine': 5, 'duration': 27}, {'task': 4, 'start': 239, 'machine': 0, 'duration': 55}, {'task': 5, 'start': 425, 'machine': 3, 'duration': 44}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 27, 'machine': 2, 'duration': 3}, {'task': 1, 'start': 190, 'machine': 4, 'duration': 98}, {'task': 2, 'start': 320, 'machine': 1, 'duration': 94}, {'task': 3, 'start': 440, 'machine': 0, 'duration': 2}, {'task': 4, 'start': 442, 'machine': 5, 'duration': 91}, {'task': 5, 'start': 533, 'machine': 3, 'duration': 72}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 82, 'machine': 0, 'duration': 56}, {'task': 1, 'start': 292, 'machine': 5, 'duration': 35}, {'task': 2, 'start': 342, 'machine': 3, 'duration': 27}, {'task': 3, 'start': 461, 'machine': 1, 'duration': 88}, {'task': 4, 'start': 551, 'machine': 2, 'duration': 95}, {'task': 5, 'start': 646, 'machine': 4, 'duration': 53}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 28, 'machine': 1, 'duration': 76}, {'task': 1, 'start': 104, 'machine': 4, 'duration': 8}, {'task': 2, 'start': 119, 'machine': 3, 'duration': 92}, {'task': 3, 'start': 220, 'machine': 2, 'duration': 75}, {'task': 4, 'start': 327, 'machine': 5, 'duration': 6}, {'task': 5, 'start': 344, 'machine': 0, 'duration': 96}]}]",706.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [0, 1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 1, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 26}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 5, 'duration': 93}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 77}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 3, 'duration': 56}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 0, 'duration': 8}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 67}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 1, 'duration': 95}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 3, 'duration': 98}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 90}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 0, 'duration': 91}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 4, 'duration': 51}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 0, 'duration': 81}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 69}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 4, 'duration': 17}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 32}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 35}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 5, 'duration': 60}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 3, 'duration': 90}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 5, 'duration': 22}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 56}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 57}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 4, 'duration': 94}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 1, 'duration': 57}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 0, 'duration': 1}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 4, 'duration': 10}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 3, 'duration': 18}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 5, 'duration': 1}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 1, 'duration': 45}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 2, 'duration': 69}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 5, 'duration': 45}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 47}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 0, 'duration': 70}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 42}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 2, 'duration': 60}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 4, 'duration': 35}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 1}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 5, 'duration': 30}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 0, 'duration': 50}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 27}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 1, 'duration': 64}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 4, 'duration': 37}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 76}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 82}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 0, 'duration': 67}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 27}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 5, 'duration': 1}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 1, 'duration': 27}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 2, 'duration': 4}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 4, 'duration': 78}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 27}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 0, 'duration': 55}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 3, 'duration': 44}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 2, 'duration': 3}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 4, 'duration': 98}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 1, 'duration': 94}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 0, 'duration': 2}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 5, 'duration': 91}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 3, 'duration': 72}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 0, 'duration': 56}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 5, 'duration': 35}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 3, 'duration': 27}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 1, 'duration': 88}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 2, 'duration': 95}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 4, 'duration': 53}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 1, 'duration': 76}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 4, 'duration': 8}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 3, 'duration': 92}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 2, 'duration': 75}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 5, 'duration': 6}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 0, 'duration': 96}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 2, 'duration': 26}, {'task': 2, 'start': 68, 'machine': 5, 'duration': 93}, {'task': 3, 'start': 288, 'machine': 4, 'duration': 77}, {'task': 4, 'start': 369, 'machine': 3, 'duration': 56}, {'task': 5, 'start': 670, 'machine': 0, 'duration': 8}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 67}, {'task': 1, 'start': 149, 'machine': 1, 'duration': 95}, {'task': 2, 'start': 244, 'machine': 3, 'duration': 98}, {'task': 3, 'start': 352, 'machine': 2, 'duration': 90}, {'task': 4, 'start': 442, 'machine': 0, 'duration': 91}, {'task': 5, 'start': 533, 'machine': 4, 'duration': 51}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 1, 'machine': 0, 'duration': 81}, {'task': 1, 'start': 82, 'machine': 2, 'duration': 69}, {'task': 2, 'start': 459, 'machine': 4, 'duration': 17}, {'task': 3, 'start': 549, 'machine': 1, 'duration': 32}, {'task': 4, 'start': 605, 'machine': 3, 'duration': 35}, {'task': 5, 'start': 640, 'machine': 5, 'duration': 60}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 29, 'machine': 3, 'duration': 90}, {'task': 1, 'start': 161, 'machine': 5, 'duration': 22}, {'task': 2, 'start': 183, 'machine': 0, 'duration': 56}, {'task': 3, 'start': 295, 'machine': 2, 'duration': 57}, {'task': 4, 'start': 365, 'machine': 4, 'duration': 94}, {'task': 5, 'start': 645, 'machine': 1, 'duration': 57}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 4, 'duration': 10}, {'task': 2, 'start': 11, 'machine': 3, 'duration': 18}, {'task': 3, 'start': 67, 'machine': 5, 'duration': 1}, {'task': 4, 'start': 104, 'machine': 1, 'duration': 45}, {'task': 5, 'start': 151, 'machine': 2, 'duration': 69}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 247, 'machine': 5, 'duration': 45}, {'task': 2, 'start': 414, 'machine': 1, 'duration': 47}, {'task': 3, 'start': 533, 'machine': 0, 'duration': 70}, {'task': 4, 'start': 603, 'machine': 4, 'duration': 42}, {'task': 5, 'start': 646, 'machine': 2, 'duration': 60}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 48, 'machine': 4, 'duration': 35}, {'task': 1, 'start': 211, 'machine': 3, 'duration': 1}, {'task': 2, 'start': 217, 'machine': 5, 'duration': 30}, {'task': 3, 'start': 294, 'machine': 0, 'duration': 50}, {'task': 4, 'start': 524, 'machine': 2, 'duration': 27}, {'task': 5, 'start': 581, 'machine': 1, 'duration': 64}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 11, 'machine': 4, 'duration': 37}, {'task': 1, 'start': 244, 'machine': 1, 'duration': 76}, {'task': 2, 'start': 442, 'machine': 2, 'duration': 82}, {'task': 3, 'start': 603, 'machine': 0, 'duration': 67}, {'task': 4, 'start': 670, 'machine': 3, 'duration': 27}, {'task': 5, 'start': 700, 'machine': 5, 'duration': 1}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 1, 'machine': 1, 'duration': 27}, {'task': 1, 'start': 30, 'machine': 2, 'duration': 4}, {'task': 2, 'start': 112, 'machine': 4, 'duration': 78}, {'task': 3, 'start': 190, 'machine': 5, 'duration': 27}, {'task': 4, 'start': 239, 'machine': 0, 'duration': 55}, {'task': 5, 'start': 425, 'machine': 3, 'duration': 44}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 27, 'machine': 2, 'duration': 3}, {'task': 1, 'start': 190, 'machine': 4, 'duration': 98}, {'task': 2, 'start': 320, 'machine': 1, 'duration': 94}, {'task': 3, 'start': 440, 'machine': 0, 'duration': 2}, {'task': 4, 'start': 442, 'machine': 5, 'duration': 91}, {'task': 5, 'start': 533, 'machine': 3, 'duration': 72}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 82, 'machine': 0, 'duration': 56}, {'task': 1, 'start': 292, 'machine': 5, 'duration': 35}, {'task': 2, 'start': 342, 'machine': 3, 'duration': 27}, {'task': 3, 'start': 461, 'machine': 1, 'duration': 88}, {'task': 4, 'start': 551, 'machine': 2, 'duration': 95}, {'task': 5, 'start': 646, 'machine': 4, 'duration': 53}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 28, 'machine': 1, 'duration': 76}, {'task': 1, 'start': 104, 'machine': 4, 'duration': 8}, {'task': 2, 'start': 119, 'machine': 3, 'duration': 92}, {'task': 3, 'start': 220, 'machine': 2, 'duration': 75}, {'task': 4, 'start': 327, 'machine': 5, 'duration': 6}, {'task': 5, 'start': 344, 'machine': 0, 'duration': 96}]}]",37,nl,0 JSP,JSP,"Someone on the team needs to line up the boxing, labeling, and sealing work so all product sets flow through their three steps without collisions on the machines. The choice is about timing and order: which set starts where and when, given each operation’s fixed duration and the rule that a machine can only do one task at once. Plans are judged by how quickly the entire batch is wrapped up — basically, the time on the clock when the last job is done — and the full list of sets, machines, and times appears below. { ""nr_product_sets"": 9, ""nr_packing_machines"": 5, ""product_set_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"" ], ""machine_ids"": [ 0, 1, 2, 3, 4 ], ""tasks"": [ { ""product_set_id"": ""J1"", ""operation_index"": 0, ""assigned_machine_id"": 4, ""processing_duration"": 1 }, { ""product_set_id"": ""J1"", ""operation_index"": 1, ""assigned_machine_id"": 1, ""processing_duration"": 39 }, { ""product_set_id"": ""J1"", ""operation_index"": 2, ""assigned_machine_id"": 2, ""processing_duration"": 69 }, { ""product_set_id"": ""J1"", ""operation_index"": 3, ""assigned_machine_id"": 3, ""processing_duration"": 24 }, { ""product_set_id"": ""J1"", ""operation_index"": 4, ""assigned_machine_id"": 0, ""processing_duration"": 9 }, { ""product_set_id"": ""J2"", ""operation_index"": 0, ""assigned_machine_id"": 1, ""processing_duration"": 30 }, { ""product_set_id"": ""J2"", ""operation_index"": 1, ""assigned_machine_id"": 2, ""processing_duration"": 71 }, { ""product_set_id"": ""J2"", ""operation_index"": 2, ""assigned_machine_id"": 0, ""processing_duration"": 63 }, { ""product_set_id"": ""J2"", ""operation_index"": 3, ""assigned_machine_id"": 4, ""processing_duration"": 66 }, { ""product_set_id"": ""J2"", ""operation_index"": 4, ""assigned_machine_id"": 3, ""processing_duration"": 84 }, { ""product_set_id"": ""J3"", ""operation_index"": 0, ""assigned_machine_id"": 1, ""processing_duration"": 30 }, { ""product_set_id"": ""J3"", ""operation_index"": 1, ""assigned_machine_id"": 2, ""processing_duration"": 4 }, { ""product_set_id"": ""J3"", ""operation_index"": 2, ""assigned_machine_id"": 0, ""processing_duration"": 64 }, { ""product_set_id"": ""J3"", ""operation_index"": 3, ""assigned_machine_id"": 4, ""processing_duration"": 73 }, { ""product_set_id"": ""J3"", ""operation_index"": 4, ""assigned_machine_id"": 3, ""processing_duration"": 23 }, { ""product_set_id"": ""J4"", ""operation_index"": 0, ""assigned_machine_id"": 0, ""processing_duration"": 84 }, { ""product_set_id"": ""J4"", ""operation_index"": 1, ""assigned_machine_id"": 3, ""processing_duration"": 3 }, { ""product_set_id"": ""J4"", ""operation_index"": 2, ""assigned_machine_id"": 2, ""processing_duration"": 61 }, { ""product_set_id"": ""J4"", ""operation_index"": 3, ""assigned_machine_id"": 4, ""processing_duration"": 29 }, { ""product_set_id"": ""J4"", ""operation_index"": 4, ""assigned_machine_id"": 1, ""processing_duration"": 28 }, { ""product_set_id"": ""J5"", ""operation_index"": 0, ""assigned_machine_id"": 0, ""processing_duration"": 98 }, { ""product_set_id"": ""J5"", ""operation_index"": 1, ""assigned_machine_id"": 3, ""processing_duration"": 26 }, { ""product_set_id"": ""J5"", ""operation_index"": 2, ""assigned_machine_id"": 1, ""processing_duration"": 53 }, { ""product_set_id"": ""J5"", ""operation_index"": 3, ""assigned_machine_id"": 4, ""processing_duration"": 50 }, { ""product_set_id"": ""J5"", ""operation_index"": 4, ""assigned_machine_id"": 2, ""processing_duration"": 84 }, { ""product_set_id"": ""J6"", ""operation_index"": 0, ""assigned_machine_id"": 2, ""processing_duration"": 63 }, { ""product_set_id"": ""J6"", ""operation_index"": 1, ""assigned_machine_id"": 1, ""processing_duration"": 27 }, { ""product_set_id"": ""J6"", ""operation_index"": 2, ""assigned_machine_id"": 0, ""processing_duration"": 66 }, { ""product_set_id"": ""J6"", ""operation_index"": 3, ""assigned_machine_id"": 3, ""processing_duration"": 86 }, { ""product_set_id"": ""J6"", ""operation_index"": 4, ""assigned_machine_id"": 4, ""processing_duration"": 40 }, { ""product_set_id"": ""J7"", ""operation_index"": 0, ""assigned_machine_id"": 0, ""processing_duration"": 91 }, { ""product_set_id"": ""J7"", ""operation_index"": 1, ""assigned_machine_id"": 1, ""processing_duration"": 22 }, { ""product_set_id"": ""J7"", ""operation_index"": 2, ""assigned_machine_id"": 4, ""processing_duration"": 73 }, { ""product_set_id"": ""J7"", ""operation_index"": 3, ""assigned_machine_id"": 3, ""processing_duration"": 75 }, { ""product_set_id"": ""J7"", ""operation_index"": 4, ""assigned_machine_id"": 2, ""processing_duration"": 15 }, { ""product_set_id"": ""J8"", ""operation_index"": 0, ""assigned_machine_id"": 3, ""processing_duration"": 93 }, { ""product_set_id"": ""J8"", ""operation_index"": 1, ""assigned_machine_id"": 2, ""processing_duration"": 97 }, { ""product_set_id"": ""J8"", ""operation_index"": 2, ""assigned_machine_id"": 0, ""processing_duration"": 75 }, { ""product_set_id"": ""J8"", ""operation_index"": 3, ""assigned_machine_id"": 1, ""processing_duration"": 29 }, { ""product_set_id"": ""J8"", ""operation_index"": 4, ""assigned_machine_id"": 4, ""processing_duration"": 86 }, { ""product_set_id"": ""J9"", ""operation_index"": 0, ""assigned_machine_id"": 3, ""processing_duration"": 52 }, { ""product_set_id"": ""J9"", ""operation_index"": 1, ""assigned_machine_id"": 0, ""processing_duration"": 62 }, { ""product_set_id"": ""J9"", ""operation_index"": 2, ""assigned_machine_id"": 2, ""processing_duration"": 9 }, { ""product_set_id"": ""J9"", ""operation_index"": 3, ""assigned_machine_id"": 4, ""processing_duration"": 51 }, { ""product_set_id"": ""J9"", ""operation_index"": 4, ""assigned_machine_id"": 1, ""processing_duration"": 47 } ] } Also, when you send back the proposed schedule, please use this simple JSON layout so it's easy to check and plug into the rest of the workflow. { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a sketch of the shape I need: each object in ""solution"" is one product set (job), ""job"" is its identifier, and ""tasks"" is the ordered list of steps for that set. For each task, ""task"" is the task's index in the job, ""start"" is the clock time it begins, ""machine"" is which machine does it, and ""duration"" is how long it runs. Think of it like filling out a little form for each set and each step. Reminder: this JSON is only the expected shape — not the actual schedule. Use the exact identifiers from the instance input; do not rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[4, 1], [1, 39], [2, 69], [3, 24], [0, 9]], [[1, 30], [2, 71], [0, 63], [4, 66], [3, 84]], [[1, 30], [2, 4], [0, 64], [4, 73], [3, 23]], [[0, 84], [3, 3], [2, 61], [4, 29], [1, 28]], [[0, 98], [3, 26], [1, 53], [4, 50], [2, 84]], [[2, 63], [1, 27], [0, 66], [3, 86], [4, 40]], [[0, 91], [1, 22], [4, 73], [3, 75], [2, 15]], [[3, 93], [2, 97], [0, 75], [1, 29], [4, 86]], [[3, 52], [0, 62], [2, 9], [4, 51], [1, 47]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 60, 'machine': 1, 'duration': 39}, {'task': 2, 'start': 235, 'machine': 2, 'duration': 69}, {'task': 3, 'start': 304, 'machine': 3, 'duration': 24}, {'task': 4, 'start': 603, 'machine': 0, 'duration': 9}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 30}, {'task': 1, 'start': 63, 'machine': 2, 'duration': 71}, {'task': 2, 'start': 478, 'machine': 0, 'duration': 63}, {'task': 3, 'start': 541, 'machine': 4, 'duration': 66}, {'task': 4, 'start': 607, 'machine': 3, 'duration': 84}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 30, 'machine': 1, 'duration': 30}, {'task': 1, 'start': 231, 'machine': 2, 'duration': 4}, {'task': 2, 'start': 273, 'machine': 0, 'duration': 64}, {'task': 3, 'start': 347, 'machine': 4, 'duration': 73}, {'task': 4, 'start': 422, 'machine': 3, 'duration': 23}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 189, 'machine': 0, 'duration': 84}, {'task': 1, 'start': 273, 'machine': 3, 'duration': 3}, {'task': 2, 'start': 304, 'machine': 2, 'duration': 61}, {'task': 3, 'start': 420, 'machine': 4, 'duration': 29}, {'task': 4, 'start': 449, 'machine': 1, 'duration': 28}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 98}, {'task': 1, 'start': 145, 'machine': 3, 'duration': 26}, {'task': 2, 'start': 171, 'machine': 1, 'duration': 53}, {'task': 3, 'start': 224, 'machine': 4, 'duration': 50}, {'task': 4, 'start': 365, 'machine': 2, 'duration': 84}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 63}, {'task': 1, 'start': 99, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 412, 'machine': 0, 'duration': 66}, {'task': 3, 'start': 478, 'machine': 3, 'duration': 86}, {'task': 4, 'start': 663, 'machine': 4, 'duration': 40}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 98, 'machine': 0, 'duration': 91}, {'task': 1, 'start': 224, 'machine': 1, 'duration': 22}, {'task': 2, 'start': 274, 'machine': 4, 'duration': 73}, {'task': 3, 'start': 347, 'machine': 3, 'duration': 75}, {'task': 4, 'start': 449, 'machine': 2, 'duration': 15}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 93}, {'task': 1, 'start': 134, 'machine': 2, 'duration': 97}, {'task': 2, 'start': 337, 'machine': 0, 'duration': 75}, {'task': 3, 'start': 412, 'machine': 1, 'duration': 29}, {'task': 4, 'start': 449, 'machine': 4, 'duration': 86}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 93, 'machine': 3, 'duration': 52}, {'task': 1, 'start': 541, 'machine': 0, 'duration': 62}, {'task': 2, 'start': 603, 'machine': 2, 'duration': 9}, {'task': 3, 'start': 612, 'machine': 4, 'duration': 51}, {'task': 4, 'start': 663, 'machine': 1, 'duration': 47}]}]",710.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 4, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 1, 'duration': 39}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 69}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 3, 'duration': 24}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 9}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 1, 'duration': 30}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 2, 'duration': 71}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 0, 'duration': 63}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 66}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 84}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 1, 'duration': 30}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 4}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 0, 'duration': 64}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 4, 'duration': 73}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 23}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 0, 'duration': 84}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 3, 'duration': 3}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 2, 'duration': 61}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 4, 'duration': 29}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 1, 'duration': 28}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 0, 'duration': 98}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 26}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 53}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 4, 'duration': 50}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 84}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 63}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 27}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 0, 'duration': 66}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 3, 'duration': 86}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 40}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 0, 'duration': 91}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 22}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 73}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 3, 'duration': 75}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 15}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 3, 'duration': 93}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 2, 'duration': 97}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 0, 'duration': 75}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 29}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 86}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 3, 'duration': 52}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 0, 'duration': 62}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 2, 'duration': 9}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 4, 'duration': 51}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 47}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 60, 'machine': 1, 'duration': 39}, {'task': 2, 'start': 235, 'machine': 2, 'duration': 69}, {'task': 3, 'start': 304, 'machine': 3, 'duration': 24}, {'task': 4, 'start': 603, 'machine': 0, 'duration': 9}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 30}, {'task': 1, 'start': 63, 'machine': 2, 'duration': 71}, {'task': 2, 'start': 478, 'machine': 0, 'duration': 63}, {'task': 3, 'start': 541, 'machine': 4, 'duration': 66}, {'task': 4, 'start': 607, 'machine': 3, 'duration': 84}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 30, 'machine': 1, 'duration': 30}, {'task': 1, 'start': 231, 'machine': 2, 'duration': 4}, {'task': 2, 'start': 273, 'machine': 0, 'duration': 64}, {'task': 3, 'start': 347, 'machine': 4, 'duration': 73}, {'task': 4, 'start': 422, 'machine': 3, 'duration': 23}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 189, 'machine': 0, 'duration': 84}, {'task': 1, 'start': 273, 'machine': 3, 'duration': 3}, {'task': 2, 'start': 304, 'machine': 2, 'duration': 61}, {'task': 3, 'start': 420, 'machine': 4, 'duration': 29}, {'task': 4, 'start': 449, 'machine': 1, 'duration': 28}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 98}, {'task': 1, 'start': 145, 'machine': 3, 'duration': 26}, {'task': 2, 'start': 171, 'machine': 1, 'duration': 53}, {'task': 3, 'start': 224, 'machine': 4, 'duration': 50}, {'task': 4, 'start': 365, 'machine': 2, 'duration': 84}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 63}, {'task': 1, 'start': 99, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 412, 'machine': 0, 'duration': 66}, {'task': 3, 'start': 478, 'machine': 3, 'duration': 86}, {'task': 4, 'start': 663, 'machine': 4, 'duration': 40}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 98, 'machine': 0, 'duration': 91}, {'task': 1, 'start': 224, 'machine': 1, 'duration': 22}, {'task': 2, 'start': 274, 'machine': 4, 'duration': 73}, {'task': 3, 'start': 347, 'machine': 3, 'duration': 75}, {'task': 4, 'start': 449, 'machine': 2, 'duration': 15}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 93}, {'task': 1, 'start': 134, 'machine': 2, 'duration': 97}, {'task': 2, 'start': 337, 'machine': 0, 'duration': 75}, {'task': 3, 'start': 412, 'machine': 1, 'duration': 29}, {'task': 4, 'start': 449, 'machine': 4, 'duration': 86}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 93, 'machine': 3, 'duration': 52}, {'task': 1, 'start': 541, 'machine': 0, 'duration': 62}, {'task': 2, 'start': 603, 'machine': 2, 'duration': 9}, {'task': 3, 'start': 612, 'machine': 4, 'duration': 51}, {'task': 4, 'start': 663, 'machine': 1, 'duration': 47}]}]",38,json,0 JSP,JSP,"Back when planning a large banquet, the coordinator treated every entree like a mini assembly line: a fixed sequence of actions on named stations, each action taking a known amount of time and not to be skipped or repeated. The decision was how to schedule those actions across stations so none overlap on a single station and every recipe keeps its order. Success is measured by how soon the whole job is done — check the finish time of each dish and the latest of those finish times is the overall completion time to make as small as possible. The detailed list of dishes, stations, and durations is provided below. The list specified 11 menu items and 5 stations; menu IDs were J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and station IDs were A, B, C, D, E. Menu J1 stage 0 required station C and took 1 minutes. Menu J1 stage 1 required station E and took 52 minutes. Menu J1 stage 2 required station B and took 45 minutes. Menu J1 stage 3 required station D and took 69 minutes. Menu J1 stage 4 required station A and took 62 minutes. Menu J2 stage 0 required station C and took 52 minutes. Menu J2 stage 1 required station E and took 76 minutes. Menu J2 stage 2 required station D and took 31 minutes. Menu J2 stage 3 required station A and took 35 minutes. Menu J2 stage 4 required station B and took 77 minutes. Menu J3 stage 0 required station A and took 68 minutes. Menu J3 stage 1 required station E and took 55 minutes. Menu J3 stage 2 required station D and took 48 minutes. Menu J3 stage 3 required station C and took 76 minutes. Menu J3 stage 4 required station B and took 28 minutes. Menu J4 stage 0 required station D and took 38 minutes. Menu J4 stage 1 required station E and took 69 minutes. Menu J4 stage 2 required station C and took 61 minutes. Menu J4 stage 3 required station B and took 67 minutes. Menu J4 stage 4 required station A and took 35 minutes. Menu J5 stage 0 required station E and took 40 minutes. Menu J5 stage 1 required station B and took 94 minutes. Menu J5 stage 2 required station D and took 12 minutes. Menu J5 stage 3 required station C and took 44 minutes. Menu J5 stage 4 required station A and took 69 minutes. Menu J6 stage 0 required station A and took 16 minutes. Menu J6 stage 1 required station E and took 36 minutes. Menu J6 stage 2 required station D and took 32 minutes. Menu J6 stage 3 required station C and took 28 minutes. Menu J6 stage 4 required station B and took 10 minutes. Menu J7 stage 0 required station C and took 82 minutes. Menu J7 stage 1 required station D and took 97 minutes. Menu J7 stage 2 required station A and took 99 minutes. Menu J7 stage 3 required station E and took 79 minutes. Menu J7 stage 4 required station B and took 88 minutes. Menu J8 stage 0 required station C and took 26 minutes. Menu J8 stage 1 required station E and took 61 minutes. Menu J8 stage 2 required station D and took 51 minutes. Menu J8 stage 3 required station A and took 29 minutes. Menu J8 stage 4 required station B and took 23 minutes. Menu J9 stage 0 required station A and took 76 minutes. Menu J9 stage 1 required station D and took 60 minutes. Menu J9 stage 2 required station E and took 81 minutes. Menu J9 stage 3 required station B and took 27 minutes. Menu J9 stage 4 required station C and took 13 minutes. Menu J10 stage 0 required station A and took 81 minutes. Menu J10 stage 1 required station D and took 53 minutes. Menu J10 stage 2 required station B and took 77 minutes. Menu J10 stage 3 required station C and took 81 minutes. Menu J10 stage 4 required station E and took 91 minutes. Menu J11 stage 0 required station D and took 32 minutes. Menu J11 stage 1 required station C and took 22 minutes. Menu J11 stage 2 required station B and took 3 minutes. Menu J11 stage 3 required station E and took 99 minutes. Menu J11 stage 4 required station A and took 74 minutes. With every stage recorded this way, the coordinator could seek the schedule that minimized the banquet's overall completion time. Also, to keep things simple for me to read and for you to check, please give the schedule using this JSON shape. { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: ""solution"" is a list of the dishes (jobs). Each job object has the job id and a list of its tasks. Each task entry says which step number it is, when that step starts, which station (machine) it uses, and how long it runs. Pretty straightforward — this block is just the expected shape, not the actual schedule. Please make sure all identifiers are used exactly as they appear in the instance input — no renaming and no new labels. For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”"".","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[2, 1], [4, 52], [1, 45], [3, 69], [0, 62]], [[2, 52], [4, 76], [3, 31], [0, 35], [1, 77]], [[0, 68], [4, 55], [3, 48], [2, 76], [1, 28]], [[3, 38], [4, 69], [2, 61], [1, 67], [0, 35]], [[4, 40], [1, 94], [3, 12], [2, 44], [0, 69]], [[0, 16], [4, 36], [3, 32], [2, 28], [1, 10]], [[2, 82], [3, 97], [0, 99], [4, 79], [1, 88]], [[2, 26], [4, 61], [3, 51], [0, 29], [1, 23]], [[0, 76], [3, 60], [4, 81], [1, 27], [2, 13]], [[0, 81], [3, 53], [1, 77], [2, 81], [4, 91]], [[3, 32], [2, 22], [1, 3], [4, 99], [0, 74]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 82, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 109, 'machine': 4, 'duration': 52}, {'task': 2, 'start': 311, 'machine': 1, 'duration': 45}, {'task': 3, 'start': 370, 'machine': 3, 'duration': 69}, {'task': 4, 'start': 484, 'machine': 0, 'duration': 62}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 83, 'machine': 2, 'duration': 52}, {'task': 1, 'start': 161, 'machine': 4, 'duration': 76}, {'task': 2, 'start': 291, 'machine': 3, 'duration': 31}, {'task': 3, 'start': 340, 'machine': 0, 'duration': 35}, {'task': 4, 'start': 375, 'machine': 1, 'duration': 77}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 81, 'machine': 0, 'duration': 68}, {'task': 1, 'start': 237, 'machine': 4, 'duration': 55}, {'task': 2, 'start': 322, 'machine': 3, 'duration': 48}, {'task': 3, 'start': 370, 'machine': 2, 'duration': 76}, {'task': 4, 'start': 452, 'machine': 1, 'duration': 28}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 38}, {'task': 1, 'start': 40, 'machine': 4, 'duration': 69}, {'task': 2, 'start': 183, 'machine': 2, 'duration': 61}, {'task': 3, 'start': 244, 'machine': 1, 'duration': 67}, {'task': 4, 'start': 375, 'machine': 0, 'duration': 35}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 40}, {'task': 1, 'start': 40, 'machine': 1, 'duration': 94}, {'task': 2, 'start': 439, 'machine': 3, 'duration': 12}, {'task': 3, 'start': 451, 'machine': 2, 'duration': 44}, {'task': 4, 'start': 546, 'machine': 0, 'duration': 69}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 225, 'machine': 0, 'duration': 16}, {'task': 1, 'start': 612, 'machine': 4, 'duration': 36}, {'task': 2, 'start': 648, 'machine': 3, 'duration': 32}, {'task': 3, 'start': 680, 'machine': 2, 'duration': 28}, {'task': 4, 'start': 708, 'machine': 1, 'duration': 10}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 82}, {'task': 1, 'start': 134, 'machine': 3, 'duration': 97}, {'task': 2, 'start': 241, 'machine': 0, 'duration': 99}, {'task': 3, 'start': 391, 'machine': 4, 'duration': 79}, {'task': 4, 'start': 480, 'machine': 1, 'duration': 88}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 157, 'machine': 2, 'duration': 26}, {'task': 1, 'start': 470, 'machine': 4, 'duration': 61}, {'task': 2, 'start': 531, 'machine': 3, 'duration': 51}, {'task': 3, 'start': 615, 'machine': 0, 'duration': 29}, {'task': 4, 'start': 644, 'machine': 1, 'duration': 23}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 149, 'machine': 0, 'duration': 76}, {'task': 1, 'start': 231, 'machine': 3, 'duration': 60}, {'task': 2, 'start': 531, 'machine': 4, 'duration': 81}, {'task': 3, 'start': 612, 'machine': 1, 'duration': 27}, {'task': 4, 'start': 639, 'machine': 2, 'duration': 13}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 81}, {'task': 1, 'start': 81, 'machine': 3, 'duration': 53}, {'task': 2, 'start': 134, 'machine': 1, 'duration': 77}, {'task': 3, 'start': 244, 'machine': 2, 'duration': 81}, {'task': 4, 'start': 648, 'machine': 4, 'duration': 91}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 38, 'machine': 3, 'duration': 32}, {'task': 1, 'start': 135, 'machine': 2, 'duration': 22}, {'task': 2, 'start': 211, 'machine': 1, 'duration': 3}, {'task': 3, 'start': 292, 'machine': 4, 'duration': 99}, {'task': 4, 'start': 410, 'machine': 0, 'duration': 74}]}]",739.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': ['A', 'B', 'C', 'D', 'E'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'C', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 52}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 45}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'D', 'duration': 69}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'A', 'duration': 62}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'C', 'duration': 52}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'E', 'duration': 76}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'D', 'duration': 31}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'A', 'duration': 35}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'B', 'duration': 77}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'A', 'duration': 68}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'E', 'duration': 55}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'D', 'duration': 48}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'C', 'duration': 76}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'B', 'duration': 28}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'D', 'duration': 38}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'E', 'duration': 69}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'C', 'duration': 61}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'B', 'duration': 67}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'A', 'duration': 35}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'E', 'duration': 40}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'B', 'duration': 94}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'D', 'duration': 12}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'C', 'duration': 44}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'A', 'duration': 69}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'A', 'duration': 16}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 36}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'C', 'duration': 28}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'B', 'duration': 10}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'C', 'duration': 82}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 97}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'A', 'duration': 99}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 79}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'B', 'duration': 88}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'C', 'duration': 26}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 61}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'D', 'duration': 51}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'A', 'duration': 29}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'B', 'duration': 23}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'A', 'duration': 76}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'D', 'duration': 60}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'E', 'duration': 81}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'B', 'duration': 27}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'C', 'duration': 13}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'A', 'duration': 81}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'D', 'duration': 53}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'B', 'duration': 77}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'C', 'duration': 81}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'E', 'duration': 91}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'D', 'duration': 32}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'C', 'duration': 22}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'B', 'duration': 3}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'E', 'duration': 99}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'A', 'duration': 74}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 82, 'machine': 'C', 'duration': 1}, {'task': 1, 'start': 109, 'machine': 'E', 'duration': 52}, {'task': 2, 'start': 311, 'machine': 'B', 'duration': 45}, {'task': 3, 'start': 370, 'machine': 'D', 'duration': 69}, {'task': 4, 'start': 484, 'machine': 'A', 'duration': 62}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 83, 'machine': 'C', 'duration': 52}, {'task': 1, 'start': 161, 'machine': 'E', 'duration': 76}, {'task': 2, 'start': 291, 'machine': 'D', 'duration': 31}, {'task': 3, 'start': 340, 'machine': 'A', 'duration': 35}, {'task': 4, 'start': 375, 'machine': 'B', 'duration': 77}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 81, 'machine': 'A', 'duration': 68}, {'task': 1, 'start': 237, 'machine': 'E', 'duration': 55}, {'task': 2, 'start': 322, 'machine': 'D', 'duration': 48}, {'task': 3, 'start': 370, 'machine': 'C', 'duration': 76}, {'task': 4, 'start': 452, 'machine': 'B', 'duration': 28}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 38}, {'task': 1, 'start': 40, 'machine': 'E', 'duration': 69}, {'task': 2, 'start': 183, 'machine': 'C', 'duration': 61}, {'task': 3, 'start': 244, 'machine': 'B', 'duration': 67}, {'task': 4, 'start': 375, 'machine': 'A', 'duration': 35}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 40}, {'task': 1, 'start': 40, 'machine': 'B', 'duration': 94}, {'task': 2, 'start': 439, 'machine': 'D', 'duration': 12}, {'task': 3, 'start': 451, 'machine': 'C', 'duration': 44}, {'task': 4, 'start': 546, 'machine': 'A', 'duration': 69}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 225, 'machine': 'A', 'duration': 16}, {'task': 1, 'start': 612, 'machine': 'E', 'duration': 36}, {'task': 2, 'start': 648, 'machine': 'D', 'duration': 32}, {'task': 3, 'start': 680, 'machine': 'C', 'duration': 28}, {'task': 4, 'start': 708, 'machine': 'B', 'duration': 10}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 82}, {'task': 1, 'start': 134, 'machine': 'D', 'duration': 97}, {'task': 2, 'start': 241, 'machine': 'A', 'duration': 99}, {'task': 3, 'start': 391, 'machine': 'E', 'duration': 79}, {'task': 4, 'start': 480, 'machine': 'B', 'duration': 88}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 157, 'machine': 'C', 'duration': 26}, {'task': 1, 'start': 470, 'machine': 'E', 'duration': 61}, {'task': 2, 'start': 531, 'machine': 'D', 'duration': 51}, {'task': 3, 'start': 615, 'machine': 'A', 'duration': 29}, {'task': 4, 'start': 644, 'machine': 'B', 'duration': 23}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 149, 'machine': 'A', 'duration': 76}, {'task': 1, 'start': 231, 'machine': 'D', 'duration': 60}, {'task': 2, 'start': 531, 'machine': 'E', 'duration': 81}, {'task': 3, 'start': 612, 'machine': 'B', 'duration': 27}, {'task': 4, 'start': 639, 'machine': 'C', 'duration': 13}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 81}, {'task': 1, 'start': 81, 'machine': 'D', 'duration': 53}, {'task': 2, 'start': 134, 'machine': 'B', 'duration': 77}, {'task': 3, 'start': 244, 'machine': 'C', 'duration': 81}, {'task': 4, 'start': 648, 'machine': 'E', 'duration': 91}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 38, 'machine': 'D', 'duration': 32}, {'task': 1, 'start': 135, 'machine': 'C', 'duration': 22}, {'task': 2, 'start': 211, 'machine': 'B', 'duration': 3}, {'task': 3, 'start': 292, 'machine': 'E', 'duration': 99}, {'task': 4, 'start': 410, 'machine': 'A', 'duration': 74}]}]",39,nl,names JSP,JSP,"Someone at the shop needs to map out the day: multiple cars, each with a fixed sequence of repairs, and every repair needs a particular lift or diagnostic bay for a set period. The planner must slot each step into its assigned bay without breaking the per-car order, avoid doing any step twice or skipping one, and never double-book a bay. The whole point is to minimize how long the shop takes to get all cars ready — the clock that matters is when the final vehicle finishes, and sooner is clearly preferred. Full details about which car needs what and how long each thing takes are listed below. The planner has 12 vehicles to schedule across 6 service bays; vehicle IDs: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12; bay IDs: 1, 2, 3, 4, 5, 6. For vehicle J1, step 0 must be performed at service bay 5 for 1. For vehicle J1, step 1 must be performed at service bay 3 for 65. For vehicle J1, step 2 must be performed at service bay 4 for 21. For vehicle J1, step 3 must be performed at service bay 2 for 15. For vehicle J1, step 4 must be performed at service bay 6 for 16. For vehicle J1, step 5 must be performed at service bay 1 for 73. For vehicle J2, step 0 must be performed at service bay 1 for 81. For vehicle J2, step 1 must be performed at service bay 5 for 98. For vehicle J2, step 2 must be performed at service bay 4 for 3. For vehicle J2, step 3 must be performed at service bay 3 for 71. For vehicle J2, step 4 must be performed at service bay 6 for 7. For vehicle J2, step 5 must be performed at service bay 2 for 8. For vehicle J3, step 0 must be performed at service bay 6 for 31. For vehicle J3, step 1 must be performed at service bay 3 for 80. For vehicle J3, step 2 must be performed at service bay 5 for 33. For vehicle J3, step 3 must be performed at service bay 4 for 90. For vehicle J3, step 4 must be performed at service bay 2 for 36. For vehicle J3, step 5 must be performed at service bay 1 for 62. For vehicle J4, step 0 must be performed at service bay 4 for 6. For vehicle J4, step 1 must be performed at service bay 2 for 42. For vehicle J4, step 2 must be performed at service bay 1 for 81. For vehicle J4, step 3 must be performed at service bay 3 for 63. For vehicle J4, step 4 must be performed at service bay 5 for 71. For vehicle J4, step 5 must be performed at service bay 6 for 37. For vehicle J5, step 0 must be performed at service bay 4 for 54. For vehicle J5, step 1 must be performed at service bay 1 for 68. For vehicle J5, step 2 must be performed at service bay 3 for 45. For vehicle J5, step 3 must be performed at service bay 6 for 96. For vehicle J5, step 4 must be performed at service bay 2 for 69. For vehicle J5, step 5 must be performed at service bay 5 for 79. For vehicle J6, step 0 must be performed at service bay 4 for 73. For vehicle J6, step 1 must be performed at service bay 2 for 74. For vehicle J6, step 2 must be performed at service bay 3 for 26. For vehicle J6, step 3 must be performed at service bay 5 for 84. For vehicle J6, step 4 must be performed at service bay 1 for 62. For vehicle J6, step 5 must be performed at service bay 6 for 59. For vehicle J7, step 0 must be performed at service bay 3 for 25. For vehicle J7, step 1 must be performed at service bay 1 for 27. For vehicle J7, step 2 must be performed at service bay 2 for 28. For vehicle J7, step 3 must be performed at service bay 5 for 59. For vehicle J7, step 4 must be performed at service bay 4 for 2. For vehicle J7, step 5 must be performed at service bay 6 for 59. For vehicle J8, step 0 must be performed at service bay 1 for 54. For vehicle J8, step 1 must be performed at service bay 3 for 3. For vehicle J8, step 2 must be performed at service bay 5 for 77. For vehicle J8, step 3 must be performed at service bay 2 for 88. For vehicle J8, step 4 must be performed at service bay 4 for 17. For vehicle J8, step 5 must be performed at service bay 6 for 66. For vehicle J9, step 0 must be performed at service bay 4 for 9. For vehicle J9, step 1 must be performed at service bay 6 for 35. For vehicle J9, step 2 must be performed at service bay 2 for 9. For vehicle J9, step 3 must be performed at service bay 5 for 69. For vehicle J9, step 4 must be performed at service bay 1 for 26. For vehicle J9, step 5 must be performed at service bay 3 for 27. For vehicle J10, step 0 must be performed at service bay 2 for 10. For vehicle J10, step 1 must be performed at service bay 4 for 49. For vehicle J10, step 2 must be performed at service bay 1 for 41. For vehicle J10, step 3 must be performed at service bay 6 for 71. For vehicle J10, step 4 must be performed at service bay 3 for 64. For vehicle J10, step 5 must be performed at service bay 5 for 90. For vehicle J11, step 0 must be performed at service bay 4 for 28. For vehicle J11, step 1 must be performed at service bay 3 for 86. For vehicle J11, step 2 must be performed at service bay 2 for 82. For vehicle J11, step 3 must be performed at service bay 5 for 84. For vehicle J11, step 4 must be performed at service bay 6 for 91. For vehicle J11, step 5 must be performed at service bay 1 for 2. For vehicle J12, step 0 must be performed at service bay 1 for 56. For vehicle J12, step 1 must be performed at service bay 6 for 35. For vehicle J12, step 2 must be performed at service bay 5 for 77. For vehicle J12, step 3 must be performed at service bay 2 for 97. For vehicle J12, step 4 must be performed at service bay 3 for 56. For vehicle J12, step 5 must be performed at service bay 4 for 12. Slot each listed step in sequence on its assigned bay, never skipping or repeating a step and avoiding any bay overlap, so the last vehicle finishes as soon as possible. Also, when you send the schedule back, just use a simple JSON shape like this so I can read it easily: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it as a little form: ""solution"" is the list of cars, each ""job"" is the car identifier, and the ""tasks"" list shows each repair step with when it starts, which bay it uses, and how long it takes. It's just a sketch of the shape I expect, not the final schedule. Please use the exact identifiers from the instance input — don't rename anything and don't invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[4, 1], [2, 65], [3, 21], [1, 15], [5, 16], [0, 73]], [[0, 81], [4, 98], [3, 3], [2, 71], [5, 7], [1, 8]], [[5, 31], [2, 80], [4, 33], [3, 90], [1, 36], [0, 62]], [[3, 6], [1, 42], [0, 81], [2, 63], [4, 71], [5, 37]], [[3, 54], [0, 68], [2, 45], [5, 96], [1, 69], [4, 79]], [[3, 73], [1, 74], [2, 26], [4, 84], [0, 62], [5, 59]], [[2, 25], [0, 27], [1, 28], [4, 59], [3, 2], [5, 59]], [[0, 54], [2, 3], [4, 77], [1, 88], [3, 17], [5, 66]], [[3, 9], [5, 35], [1, 9], [4, 69], [0, 26], [2, 27]], [[1, 10], [3, 49], [0, 41], [5, 71], [2, 64], [4, 90]], [[3, 28], [2, 86], [1, 82], [4, 84], [5, 91], [0, 2]], [[0, 56], [5, 35], [4, 77], [1, 97], [2, 56], [3, 12]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 406, 'machine': 2, 'duration': 65}, {'task': 2, 'start': 471, 'machine': 3, 'duration': 21}, {'task': 3, 'start': 507, 'machine': 1, 'duration': 15}, {'task': 4, 'start': 626, 'machine': 5, 'duration': 16}, {'task': 5, 'start': 642, 'machine': 0, 'duration': 73}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 81}, {'task': 1, 'start': 122, 'machine': 4, 'duration': 98}, {'task': 2, 'start': 267, 'machine': 3, 'duration': 3}, {'task': 3, 'start': 471, 'machine': 2, 'duration': 71}, {'task': 4, 'start': 701, 'machine': 5, 'duration': 7}, {'task': 5, 'start': 731, 'machine': 1, 'duration': 8}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 44, 'machine': 5, 'duration': 31}, {'task': 1, 'start': 75, 'machine': 2, 'duration': 80}, {'task': 2, 'start': 220, 'machine': 4, 'duration': 33}, {'task': 3, 'start': 270, 'machine': 3, 'duration': 90}, {'task': 4, 'start': 387, 'machine': 1, 'duration': 36}, {'task': 5, 'start': 476, 'machine': 0, 'duration': 62}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 164, 'machine': 3, 'duration': 6}, {'task': 1, 'start': 190, 'machine': 1, 'duration': 42}, {'task': 2, 'start': 271, 'machine': 0, 'duration': 81}, {'task': 3, 'start': 542, 'machine': 2, 'duration': 63}, {'task': 4, 'start': 634, 'machine': 4, 'duration': 71}, {'task': 5, 'start': 708, 'machine': 5, 'duration': 37}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 82, 'machine': 3, 'duration': 54}, {'task': 1, 'start': 162, 'machine': 0, 'duration': 68}, {'task': 2, 'start': 270, 'machine': 2, 'duration': 45}, {'task': 3, 'start': 342, 'machine': 5, 'duration': 96}, {'task': 4, 'start': 438, 'machine': 1, 'duration': 69}, {'task': 5, 'start': 795, 'machine': 4, 'duration': 79}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 9, 'machine': 3, 'duration': 73}, {'task': 1, 'start': 82, 'machine': 1, 'duration': 74}, {'task': 2, 'start': 158, 'machine': 2, 'duration': 26}, {'task': 3, 'start': 330, 'machine': 4, 'duration': 84}, {'task': 4, 'start': 414, 'machine': 0, 'duration': 62}, {'task': 5, 'start': 476, 'machine': 5, 'duration': 59}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 25}, {'task': 1, 'start': 135, 'machine': 0, 'duration': 27}, {'task': 2, 'start': 162, 'machine': 1, 'duration': 28}, {'task': 3, 'start': 498, 'machine': 4, 'duration': 59}, {'task': 4, 'start': 557, 'machine': 3, 'duration': 2}, {'task': 5, 'start': 642, 'machine': 5, 'duration': 59}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 81, 'machine': 0, 'duration': 54}, {'task': 1, 'start': 155, 'machine': 2, 'duration': 3}, {'task': 2, 'start': 253, 'machine': 4, 'duration': 77}, {'task': 3, 'start': 522, 'machine': 1, 'duration': 88}, {'task': 4, 'start': 610, 'machine': 3, 'duration': 17}, {'task': 5, 'start': 745, 'machine': 5, 'duration': 66}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 9}, {'task': 1, 'start': 9, 'machine': 5, 'duration': 35}, {'task': 2, 'start': 44, 'machine': 1, 'duration': 9}, {'task': 3, 'start': 53, 'machine': 4, 'duration': 69}, {'task': 4, 'start': 538, 'machine': 0, 'duration': 26}, {'task': 5, 'start': 605, 'machine': 2, 'duration': 27}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 10}, {'task': 1, 'start': 170, 'machine': 3, 'duration': 49}, {'task': 2, 'start': 230, 'machine': 0, 'duration': 41}, {'task': 3, 'start': 271, 'machine': 5, 'duration': 71}, {'task': 4, 'start': 342, 'machine': 2, 'duration': 64}, {'task': 5, 'start': 705, 'machine': 4, 'duration': 90}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 136, 'machine': 3, 'duration': 28}, {'task': 1, 'start': 184, 'machine': 2, 'duration': 86}, {'task': 2, 'start': 305, 'machine': 1, 'duration': 82}, {'task': 3, 'start': 414, 'machine': 4, 'duration': 84}, {'task': 4, 'start': 535, 'machine': 5, 'duration': 91}, {'task': 5, 'start': 626, 'machine': 0, 'duration': 2}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 352, 'machine': 0, 'duration': 56}, {'task': 1, 'start': 438, 'machine': 5, 'duration': 35}, {'task': 2, 'start': 557, 'machine': 4, 'duration': 77}, {'task': 3, 'start': 634, 'machine': 1, 'duration': 97}, {'task': 4, 'start': 731, 'machine': 2, 'duration': 56}, {'task': 5, 'start': 787, 'machine': 3, 'duration': 12}]}]",874.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [1, 2, 3, 4, 5, 6], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 5, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 3, 'duration': 65}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 4, 'duration': 21}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 2, 'duration': 15}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 6, 'duration': 16}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 1, 'duration': 73}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 1, 'duration': 81}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 98}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 4, 'duration': 3}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 71}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 6, 'duration': 7}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 2, 'duration': 8}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 6, 'duration': 31}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 3, 'duration': 80}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 5, 'duration': 33}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 4, 'duration': 90}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 36}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 1, 'duration': 62}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 6}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 2, 'duration': 42}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 81}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 3, 'duration': 63}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 5, 'duration': 71}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 6, 'duration': 37}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 54}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 68}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 3, 'duration': 45}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 6, 'duration': 96}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 69}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 5, 'duration': 79}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 4, 'duration': 73}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 2, 'duration': 74}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 26}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 5, 'duration': 84}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 1, 'duration': 62}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 6, 'duration': 59}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 3, 'duration': 25}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 27}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 2, 'duration': 28}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 5, 'duration': 59}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 4, 'duration': 2}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 6, 'duration': 59}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 54}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 3}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 5, 'duration': 77}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 2, 'duration': 88}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 17}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 6, 'duration': 66}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 9}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 6, 'duration': 35}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 2, 'duration': 9}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 69}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 26}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 3, 'duration': 27}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 2, 'duration': 10}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 4, 'duration': 49}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 1, 'duration': 41}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 6, 'duration': 71}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 64}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 5, 'duration': 90}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 4, 'duration': 28}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 3, 'duration': 86}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 2, 'duration': 82}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 5, 'duration': 84}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 6, 'duration': 91}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 1, 'duration': 2}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 1, 'duration': 56}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 6, 'duration': 35}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 5, 'duration': 77}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 2, 'duration': 97}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 3, 'duration': 56}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 4, 'duration': 12}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 406, 'machine': 3, 'duration': 65}, {'task': 2, 'start': 471, 'machine': 4, 'duration': 21}, {'task': 3, 'start': 507, 'machine': 2, 'duration': 15}, {'task': 4, 'start': 626, 'machine': 6, 'duration': 16}, {'task': 5, 'start': 642, 'machine': 1, 'duration': 73}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 81}, {'task': 1, 'start': 122, 'machine': 5, 'duration': 98}, {'task': 2, 'start': 267, 'machine': 4, 'duration': 3}, {'task': 3, 'start': 471, 'machine': 3, 'duration': 71}, {'task': 4, 'start': 701, 'machine': 6, 'duration': 7}, {'task': 5, 'start': 731, 'machine': 2, 'duration': 8}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 44, 'machine': 6, 'duration': 31}, {'task': 1, 'start': 75, 'machine': 3, 'duration': 80}, {'task': 2, 'start': 220, 'machine': 5, 'duration': 33}, {'task': 3, 'start': 270, 'machine': 4, 'duration': 90}, {'task': 4, 'start': 387, 'machine': 2, 'duration': 36}, {'task': 5, 'start': 476, 'machine': 1, 'duration': 62}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 164, 'machine': 4, 'duration': 6}, {'task': 1, 'start': 190, 'machine': 2, 'duration': 42}, {'task': 2, 'start': 271, 'machine': 1, 'duration': 81}, {'task': 3, 'start': 542, 'machine': 3, 'duration': 63}, {'task': 4, 'start': 634, 'machine': 5, 'duration': 71}, {'task': 5, 'start': 708, 'machine': 6, 'duration': 37}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 82, 'machine': 4, 'duration': 54}, {'task': 1, 'start': 162, 'machine': 1, 'duration': 68}, {'task': 2, 'start': 270, 'machine': 3, 'duration': 45}, {'task': 3, 'start': 342, 'machine': 6, 'duration': 96}, {'task': 4, 'start': 438, 'machine': 2, 'duration': 69}, {'task': 5, 'start': 795, 'machine': 5, 'duration': 79}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 9, 'machine': 4, 'duration': 73}, {'task': 1, 'start': 82, 'machine': 2, 'duration': 74}, {'task': 2, 'start': 158, 'machine': 3, 'duration': 26}, {'task': 3, 'start': 330, 'machine': 5, 'duration': 84}, {'task': 4, 'start': 414, 'machine': 1, 'duration': 62}, {'task': 5, 'start': 476, 'machine': 6, 'duration': 59}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 25}, {'task': 1, 'start': 135, 'machine': 1, 'duration': 27}, {'task': 2, 'start': 162, 'machine': 2, 'duration': 28}, {'task': 3, 'start': 498, 'machine': 5, 'duration': 59}, {'task': 4, 'start': 557, 'machine': 4, 'duration': 2}, {'task': 5, 'start': 642, 'machine': 6, 'duration': 59}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 81, 'machine': 1, 'duration': 54}, {'task': 1, 'start': 155, 'machine': 3, 'duration': 3}, {'task': 2, 'start': 253, 'machine': 5, 'duration': 77}, {'task': 3, 'start': 522, 'machine': 2, 'duration': 88}, {'task': 4, 'start': 610, 'machine': 4, 'duration': 17}, {'task': 5, 'start': 745, 'machine': 6, 'duration': 66}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 9}, {'task': 1, 'start': 9, 'machine': 6, 'duration': 35}, {'task': 2, 'start': 44, 'machine': 2, 'duration': 9}, {'task': 3, 'start': 53, 'machine': 5, 'duration': 69}, {'task': 4, 'start': 538, 'machine': 1, 'duration': 26}, {'task': 5, 'start': 605, 'machine': 3, 'duration': 27}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 10}, {'task': 1, 'start': 170, 'machine': 4, 'duration': 49}, {'task': 2, 'start': 230, 'machine': 1, 'duration': 41}, {'task': 3, 'start': 271, 'machine': 6, 'duration': 71}, {'task': 4, 'start': 342, 'machine': 3, 'duration': 64}, {'task': 5, 'start': 705, 'machine': 5, 'duration': 90}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 136, 'machine': 4, 'duration': 28}, {'task': 1, 'start': 184, 'machine': 3, 'duration': 86}, {'task': 2, 'start': 305, 'machine': 2, 'duration': 82}, {'task': 3, 'start': 414, 'machine': 5, 'duration': 84}, {'task': 4, 'start': 535, 'machine': 6, 'duration': 91}, {'task': 5, 'start': 626, 'machine': 1, 'duration': 2}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 352, 'machine': 1, 'duration': 56}, {'task': 1, 'start': 438, 'machine': 6, 'duration': 35}, {'task': 2, 'start': 557, 'machine': 5, 'duration': 77}, {'task': 3, 'start': 634, 'machine': 2, 'duration': 97}, {'task': 4, 'start': 731, 'machine': 3, 'duration': 56}, {'task': 5, 'start': 787, 'machine': 4, 'duration': 12}]}]",40,nl,1 JSP,JSP,"I was picturing the sewing room as a little juggling act: several outfits need stitching, then pressing, then finishing, and each outfit has its own order of steps that can’t be skipped or shuffled. The job is to assign those stitching, pressing and finishing tasks to the available sewing machines and presses so each task runs on its assigned machine for its given time, and no machine tries to do two things at once. The trick is to lay out the work so the whole batch is done as quickly as possible — in plain terms, look at when the last outfit is finished and make that moment as early as you can. The exact list of outfits, machines and how long each step takes is shown below. # total_outfits=12 # total_machines=5 # outfit_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 # machine_ids=0, 1, 2, 3, 4 outfit_id,operation_index,required_machine_id,processing_time J1,0,1,1 J1,1,2,78 J1,2,3,96 J1,3,4,61 J1,4,0,69 J2,0,4,95 J2,1,3,85 J2,2,0,67 J2,3,2,70 J2,4,1,64 J3,0,0,45 J3,1,4,59 J3,2,1,14 J3,3,2,83 J3,4,3,39 J4,0,1,44 J4,1,4,4 J4,2,0,63 J4,3,2,44 J4,4,3,48 J5,0,0,24 J5,1,3,32 J5,2,1,30 J5,3,4,30 J5,4,2,39 J6,0,2,21 J6,1,1,54 J6,2,3,62 J6,3,4,12 J6,4,0,50 J7,0,2,64 J7,1,3,50 J7,2,4,52 J7,3,1,89 J7,4,0,36 J8,0,3,91 J8,1,4,87 J8,2,2,3 J8,3,1,27 J8,4,0,95 J9,0,1,26 J9,1,3,57 J9,2,4,26 J9,3,2,77 J9,4,0,43 J10,0,2,96 J10,1,3,79 J10,2,4,55 J10,3,0,36 J10,4,1,78 J11,0,1,85 J11,1,4,18 J11,2,2,50 J11,3,0,54 J11,4,3,46 J12,0,2,65 J12,1,1,89 J12,2,0,61 J12,3,4,55 J12,4,3,96 Oh, and one more thing — when you send the schedule back, a small JSON sketch like the one below makes it super easy to read and plug into whatever tool you're using. Here’s the shape I expect: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a simple form: each entry in ""solution"" is one outfit (job), ""job"" is that outfit's id, and ""tasks"" is the ordered list of steps for that outfit. For each step you give the step number (""task""), when it starts (""start"" — absolute time), which machine it runs on (""machine""), and how long it runs (""duration""). This is just the layout — a sketch of the shape I want, not the actual schedule. Please use the exact identifiers from the instance input — don't rename jobs or machines or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 12, 'jobs': [[[1, 1], [2, 78], [3, 96], [4, 61], [0, 69]], [[4, 95], [3, 85], [0, 67], [2, 70], [1, 64]], [[0, 45], [4, 59], [1, 14], [2, 83], [3, 39]], [[1, 44], [4, 4], [0, 63], [2, 44], [3, 48]], [[0, 24], [3, 32], [1, 30], [4, 30], [2, 39]], [[2, 21], [1, 54], [3, 62], [4, 12], [0, 50]], [[2, 64], [3, 50], [4, 52], [1, 89], [0, 36]], [[3, 91], [4, 87], [2, 3], [1, 27], [0, 95]], [[1, 26], [3, 57], [4, 26], [2, 77], [0, 43]], [[2, 96], [3, 79], [4, 55], [0, 36], [1, 78]], [[1, 85], [4, 18], [2, 50], [0, 54], [3, 46]], [[2, 65], [1, 89], [0, 61], [4, 55], [3, 96]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 161, 'machine': 2, 'duration': 78}, {'task': 2, 'start': 287, 'machine': 3, 'duration': 96}, {'task': 3, 'start': 403, 'machine': 4, 'duration': 61}, {'task': 4, 'start': 464, 'machine': 0, 'duration': 69}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 95}, {'task': 1, 'start': 123, 'machine': 3, 'duration': 85}, {'task': 2, 'start': 236, 'machine': 0, 'duration': 67}, {'task': 3, 'start': 374, 'machine': 2, 'duration': 70}, {'task': 4, 'start': 514, 'machine': 1, 'duration': 64}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 45}, {'task': 1, 'start': 182, 'machine': 4, 'duration': 59}, {'task': 2, 'start': 245, 'machine': 1, 'duration': 14}, {'task': 3, 'start': 447, 'machine': 2, 'duration': 83}, {'task': 4, 'start': 742, 'machine': 3, 'duration': 39}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 201, 'machine': 1, 'duration': 44}, {'task': 1, 'start': 259, 'machine': 4, 'duration': 4}, {'task': 2, 'start': 303, 'machine': 0, 'duration': 63}, {'task': 3, 'start': 530, 'machine': 2, 'duration': 44}, {'task': 4, 'start': 648, 'machine': 3, 'duration': 48}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 45, 'machine': 0, 'duration': 24}, {'task': 1, 'start': 91, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 259, 'machine': 1, 'duration': 30}, {'task': 3, 'start': 373, 'machine': 4, 'duration': 30}, {'task': 4, 'start': 651, 'machine': 2, 'duration': 39}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 303, 'machine': 2, 'duration': 21}, {'task': 1, 'start': 324, 'machine': 1, 'duration': 54}, {'task': 2, 'start': 490, 'machine': 3, 'duration': 62}, {'task': 3, 'start': 552, 'machine': 4, 'duration': 12}, {'task': 4, 'start': 628, 'machine': 0, 'duration': 50}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 239, 'machine': 2, 'duration': 64}, {'task': 1, 'start': 383, 'machine': 3, 'duration': 50}, {'task': 2, 'start': 464, 'machine': 4, 'duration': 52}, {'task': 3, 'start': 578, 'machine': 1, 'duration': 89}, {'task': 4, 'start': 721, 'machine': 0, 'duration': 36}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 91}, {'task': 1, 'start': 95, 'machine': 4, 'duration': 87}, {'task': 2, 'start': 444, 'machine': 2, 'duration': 3}, {'task': 3, 'start': 487, 'machine': 1, 'duration': 27}, {'task': 4, 'start': 533, 'machine': 0, 'duration': 95}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 175, 'machine': 1, 'duration': 26}, {'task': 1, 'start': 433, 'machine': 3, 'duration': 57}, {'task': 2, 'start': 516, 'machine': 4, 'duration': 26}, {'task': 3, 'start': 574, 'machine': 2, 'duration': 77}, {'task': 4, 'start': 678, 'machine': 0, 'duration': 43}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 65, 'machine': 2, 'duration': 96}, {'task': 1, 'start': 208, 'machine': 3, 'duration': 79}, {'task': 2, 'start': 318, 'machine': 4, 'duration': 55}, {'task': 3, 'start': 373, 'machine': 0, 'duration': 36}, {'task': 4, 'start': 409, 'machine': 1, 'duration': 78}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 1, 'machine': 1, 'duration': 85}, {'task': 1, 'start': 241, 'machine': 4, 'duration': 18}, {'task': 2, 'start': 324, 'machine': 2, 'duration': 50}, {'task': 3, 'start': 409, 'machine': 0, 'duration': 54}, {'task': 4, 'start': 696, 'machine': 3, 'duration': 46}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 65}, {'task': 1, 'start': 86, 'machine': 1, 'duration': 89}, {'task': 2, 'start': 175, 'machine': 0, 'duration': 61}, {'task': 3, 'start': 263, 'machine': 4, 'duration': 55}, {'task': 4, 'start': 552, 'machine': 3, 'duration': 96}]}]",781.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 1, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 78}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 96}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 61}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 69}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 4, 'duration': 95}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 85}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 0, 'duration': 67}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 70}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 1, 'duration': 64}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 0, 'duration': 45}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 4, 'duration': 59}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 1, 'duration': 14}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 2, 'duration': 83}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 39}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 1, 'duration': 44}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 4, 'duration': 4}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 63}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 44}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 48}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 0, 'duration': 24}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 32}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 30}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 4, 'duration': 30}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 39}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 21}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 54}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 62}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 4, 'duration': 12}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 0, 'duration': 50}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 2, 'duration': 64}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 50}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 52}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 1, 'duration': 89}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 0, 'duration': 36}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 3, 'duration': 91}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 4, 'duration': 87}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 3}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 27}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 0, 'duration': 95}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 1, 'duration': 26}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 3, 'duration': 57}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 4, 'duration': 26}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 77}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 0, 'duration': 43}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 2, 'duration': 96}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 3, 'duration': 79}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 4, 'duration': 55}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 0, 'duration': 36}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 1, 'duration': 78}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 1, 'duration': 85}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 4, 'duration': 18}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 2, 'duration': 50}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 0, 'duration': 54}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 3, 'duration': 46}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 2, 'duration': 65}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 1, 'duration': 89}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 0, 'duration': 61}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 4, 'duration': 55}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 3, 'duration': 96}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 161, 'machine': 2, 'duration': 78}, {'task': 2, 'start': 287, 'machine': 3, 'duration': 96}, {'task': 3, 'start': 403, 'machine': 4, 'duration': 61}, {'task': 4, 'start': 464, 'machine': 0, 'duration': 69}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 95}, {'task': 1, 'start': 123, 'machine': 3, 'duration': 85}, {'task': 2, 'start': 236, 'machine': 0, 'duration': 67}, {'task': 3, 'start': 374, 'machine': 2, 'duration': 70}, {'task': 4, 'start': 514, 'machine': 1, 'duration': 64}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 45}, {'task': 1, 'start': 182, 'machine': 4, 'duration': 59}, {'task': 2, 'start': 245, 'machine': 1, 'duration': 14}, {'task': 3, 'start': 447, 'machine': 2, 'duration': 83}, {'task': 4, 'start': 742, 'machine': 3, 'duration': 39}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 201, 'machine': 1, 'duration': 44}, {'task': 1, 'start': 259, 'machine': 4, 'duration': 4}, {'task': 2, 'start': 303, 'machine': 0, 'duration': 63}, {'task': 3, 'start': 530, 'machine': 2, 'duration': 44}, {'task': 4, 'start': 648, 'machine': 3, 'duration': 48}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 45, 'machine': 0, 'duration': 24}, {'task': 1, 'start': 91, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 259, 'machine': 1, 'duration': 30}, {'task': 3, 'start': 373, 'machine': 4, 'duration': 30}, {'task': 4, 'start': 651, 'machine': 2, 'duration': 39}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 303, 'machine': 2, 'duration': 21}, {'task': 1, 'start': 324, 'machine': 1, 'duration': 54}, {'task': 2, 'start': 490, 'machine': 3, 'duration': 62}, {'task': 3, 'start': 552, 'machine': 4, 'duration': 12}, {'task': 4, 'start': 628, 'machine': 0, 'duration': 50}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 239, 'machine': 2, 'duration': 64}, {'task': 1, 'start': 383, 'machine': 3, 'duration': 50}, {'task': 2, 'start': 464, 'machine': 4, 'duration': 52}, {'task': 3, 'start': 578, 'machine': 1, 'duration': 89}, {'task': 4, 'start': 721, 'machine': 0, 'duration': 36}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 91}, {'task': 1, 'start': 95, 'machine': 4, 'duration': 87}, {'task': 2, 'start': 444, 'machine': 2, 'duration': 3}, {'task': 3, 'start': 487, 'machine': 1, 'duration': 27}, {'task': 4, 'start': 533, 'machine': 0, 'duration': 95}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 175, 'machine': 1, 'duration': 26}, {'task': 1, 'start': 433, 'machine': 3, 'duration': 57}, {'task': 2, 'start': 516, 'machine': 4, 'duration': 26}, {'task': 3, 'start': 574, 'machine': 2, 'duration': 77}, {'task': 4, 'start': 678, 'machine': 0, 'duration': 43}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 65, 'machine': 2, 'duration': 96}, {'task': 1, 'start': 208, 'machine': 3, 'duration': 79}, {'task': 2, 'start': 318, 'machine': 4, 'duration': 55}, {'task': 3, 'start': 373, 'machine': 0, 'duration': 36}, {'task': 4, 'start': 409, 'machine': 1, 'duration': 78}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 1, 'machine': 1, 'duration': 85}, {'task': 1, 'start': 241, 'machine': 4, 'duration': 18}, {'task': 2, 'start': 324, 'machine': 2, 'duration': 50}, {'task': 3, 'start': 409, 'machine': 0, 'duration': 54}, {'task': 4, 'start': 696, 'machine': 3, 'duration': 46}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 65}, {'task': 1, 'start': 86, 'machine': 1, 'duration': 89}, {'task': 2, 'start': 175, 'machine': 0, 'duration': 61}, {'task': 3, 'start': 263, 'machine': 4, 'duration': 55}, {'task': 4, 'start': 552, 'machine': 3, 'duration': 96}]}]",41,csv,0 JSP,JSP,"At the venue the planner must slot setup, practice, and teardown for multiple events into the available rooms and equipment, honoring the order of steps for each event and the exact durations each activity needs. No room or piece of gear can host two activities at the same time, and every activity must be scheduled in its required place. The clearest way to pick the best arrangement is to look at when the final activity ends; the earlier that finish time, the better the schedule. The detailed events, spaces, and durations are shown below. There are 11 events to place across 5 resources: event identifiers J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and resource identifiers 0, 1, 2, 3, 4. | event_id | activity_index | resource_id | activity_duration | |---|---|---|---| | J1 | 0 | 4 | 1 | | J1 | 1 | 3 | 91 | | J1 | 2 | 2 | 71 | | J1 | 3 | 1 | 7 | | J1 | 4 | 0 | 22 | | J2 | 0 | 0 | 18 | | J2 | 1 | 2 | 90 | | J2 | 2 | 1 | 35 | | J2 | 3 | 3 | 38 | | J2 | 4 | 4 | 58 | | J3 | 0 | 4 | 83 | | J3 | 1 | 0 | 12 | | J3 | 2 | 3 | 97 | | J3 | 3 | 2 | 87 | | J3 | 4 | 1 | 44 | | J4 | 0 | 4 | 96 | | J4 | 1 | 1 | 70 | | J4 | 2 | 0 | 64 | | J4 | 3 | 2 | 82 | | J4 | 4 | 3 | 55 | | J5 | 0 | 4 | 65 | | J5 | 1 | 1 | 1 | | J5 | 2 | 3 | 88 | | J5 | 3 | 2 | 23 | | J5 | 4 | 0 | 23 | | J6 | 0 | 0 | 73 | | J6 | 1 | 3 | 63 | | J6 | 2 | 1 | 28 | | J6 | 3 | 4 | 53 | | J6 | 4 | 2 | 20 | | J7 | 0 | 1 | 56 | | J7 | 1 | 2 | 26 | | J7 | 2 | 3 | 78 | | J7 | 3 | 0 | 94 | | J7 | 4 | 4 | 10 | | J8 | 0 | 1 | 25 | | J8 | 1 | 3 | 51 | | J8 | 2 | 4 | 78 | | J8 | 3 | 0 | 26 | | J8 | 4 | 2 | 32 | | J9 | 0 | 0 | 50 | | J9 | 1 | 4 | 55 | | J9 | 2 | 3 | 98 | | J9 | 3 | 2 | 53 | | J9 | 4 | 1 | 8 | | J10 | 0 | 0 | 4 | | J10 | 1 | 2 | 43 | | J10 | 2 | 1 | 43 | | J10 | 3 | 3 | 63 | | J10 | 4 | 4 | 22 | | J11 | 0 | 2 | 62 | | J11 | 1 | 3 | 65 | | J11 | 2 | 1 | 73 | | J11 | 3 | 0 | 81 | | J11 | 4 | 4 | 82 | The schedule is judged by the completion time of the final activity across all 11 events; earlier completion is better. One more thing — to keep things consistent, please structure your reply using this simple JSON layout: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a short form: each top-level entry is a job (an event), its tasks are listed in order, and each task says which step number it is, when it starts, which room or piece of gear it uses, and how long it runs. This JSON is just a sketch of the shape I need, not the actual schedule — fill it with the real values when you answer. Please use the exact identifiers from the instance input — don’t rename them or invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[4, 1], [3, 91], [2, 71], [1, 7], [0, 22]], [[0, 18], [2, 90], [1, 35], [3, 38], [4, 58]], [[4, 83], [0, 12], [3, 97], [2, 87], [1, 44]], [[4, 96], [1, 70], [0, 64], [2, 82], [3, 55]], [[4, 65], [1, 1], [3, 88], [2, 23], [0, 23]], [[0, 73], [3, 63], [1, 28], [4, 53], [2, 20]], [[1, 56], [2, 26], [3, 78], [0, 94], [4, 10]], [[1, 25], [3, 51], [4, 78], [0, 26], [2, 32]], [[0, 50], [4, 55], [3, 98], [2, 53], [1, 8]], [[0, 4], [2, 43], [1, 43], [3, 63], [4, 22]], [[2, 62], [3, 65], [1, 73], [0, 81], [4, 82]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 3, 'duration': 91}, {'task': 2, 'start': 221, 'machine': 2, 'duration': 71}, {'task': 3, 'start': 319, 'machine': 1, 'duration': 7}, {'task': 4, 'start': 444, 'machine': 0, 'duration': 22}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 50, 'machine': 0, 'duration': 18}, {'task': 1, 'start': 88, 'machine': 2, 'duration': 90}, {'task': 2, 'start': 283, 'machine': 1, 'duration': 35}, {'task': 3, 'start': 632, 'machine': 3, 'duration': 38}, {'task': 4, 'start': 671, 'machine': 4, 'duration': 58}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 97, 'machine': 4, 'duration': 83}, {'task': 1, 'start': 231, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 286, 'machine': 3, 'duration': 97}, {'task': 3, 'start': 383, 'machine': 2, 'duration': 87}, {'task': 4, 'start': 474, 'machine': 1, 'duration': 44}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 96}, {'task': 1, 'start': 97, 'machine': 1, 'duration': 70}, {'task': 2, 'start': 167, 'machine': 0, 'duration': 64}, {'task': 3, 'start': 292, 'machine': 2, 'duration': 82}, {'task': 4, 'start': 733, 'machine': 3, 'duration': 55}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 235, 'machine': 4, 'duration': 65}, {'task': 1, 'start': 318, 'machine': 1, 'duration': 1}, {'task': 2, 'start': 544, 'machine': 3, 'duration': 88}, {'task': 3, 'start': 632, 'machine': 2, 'duration': 23}, {'task': 4, 'start': 655, 'machine': 0, 'duration': 23}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 68, 'machine': 0, 'duration': 73}, {'task': 1, 'start': 383, 'machine': 3, 'duration': 63}, {'task': 2, 'start': 446, 'machine': 1, 'duration': 28}, {'task': 3, 'start': 474, 'machine': 4, 'duration': 53}, {'task': 4, 'start': 527, 'machine': 2, 'duration': 20}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 56}, {'task': 1, 'start': 62, 'machine': 2, 'duration': 26}, {'task': 2, 'start': 208, 'machine': 3, 'duration': 78}, {'task': 3, 'start': 324, 'machine': 0, 'duration': 94}, {'task': 4, 'start': 460, 'machine': 4, 'duration': 10}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 56, 'machine': 1, 'duration': 25}, {'task': 1, 'start': 157, 'machine': 3, 'duration': 51}, {'task': 2, 'start': 300, 'machine': 4, 'duration': 78}, {'task': 3, 'start': 418, 'machine': 0, 'duration': 26}, {'task': 4, 'start': 470, 'machine': 2, 'duration': 32}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 50}, {'task': 1, 'start': 180, 'machine': 4, 'duration': 55}, {'task': 2, 'start': 446, 'machine': 3, 'duration': 98}, {'task': 3, 'start': 547, 'machine': 2, 'duration': 53}, {'task': 4, 'start': 600, 'machine': 1, 'duration': 8}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 141, 'machine': 0, 'duration': 4}, {'task': 1, 'start': 178, 'machine': 2, 'duration': 43}, {'task': 2, 'start': 240, 'machine': 1, 'duration': 43}, {'task': 3, 'start': 670, 'machine': 3, 'duration': 63}, {'task': 4, 'start': 749, 'machine': 4, 'duration': 22}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 62}, {'task': 1, 'start': 92, 'machine': 3, 'duration': 65}, {'task': 2, 'start': 167, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 243, 'machine': 0, 'duration': 81}, {'task': 4, 'start': 378, 'machine': 4, 'duration': 82}]}]",788.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 4, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 3, 'duration': 91}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 71}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 1, 'duration': 7}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 22}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 0, 'duration': 18}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 2, 'duration': 90}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 35}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 38}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 4, 'duration': 58}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 4, 'duration': 83}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 0, 'duration': 12}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 3, 'duration': 97}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 2, 'duration': 87}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 1, 'duration': 44}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 96}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 1, 'duration': 70}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 0, 'duration': 64}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 82}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 55}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 65}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 1}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 3, 'duration': 88}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 23}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 0, 'duration': 23}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 0, 'duration': 73}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 63}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 28}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 4, 'duration': 53}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 2, 'duration': 20}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 56}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 2, 'duration': 26}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 3, 'duration': 78}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 0, 'duration': 94}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 4, 'duration': 10}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 25}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 51}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 78}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 0, 'duration': 26}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 2, 'duration': 32}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 0, 'duration': 50}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 4, 'duration': 55}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 98}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 53}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 8}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 0, 'duration': 4}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 2, 'duration': 43}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 1, 'duration': 43}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 3, 'duration': 63}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 4, 'duration': 22}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 2, 'duration': 62}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 3, 'duration': 65}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 1, 'duration': 73}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 0, 'duration': 81}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 4, 'duration': 82}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 3, 'duration': 91}, {'task': 2, 'start': 221, 'machine': 2, 'duration': 71}, {'task': 3, 'start': 319, 'machine': 1, 'duration': 7}, {'task': 4, 'start': 444, 'machine': 0, 'duration': 22}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 50, 'machine': 0, 'duration': 18}, {'task': 1, 'start': 88, 'machine': 2, 'duration': 90}, {'task': 2, 'start': 283, 'machine': 1, 'duration': 35}, {'task': 3, 'start': 632, 'machine': 3, 'duration': 38}, {'task': 4, 'start': 671, 'machine': 4, 'duration': 58}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 97, 'machine': 4, 'duration': 83}, {'task': 1, 'start': 231, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 286, 'machine': 3, 'duration': 97}, {'task': 3, 'start': 383, 'machine': 2, 'duration': 87}, {'task': 4, 'start': 474, 'machine': 1, 'duration': 44}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 96}, {'task': 1, 'start': 97, 'machine': 1, 'duration': 70}, {'task': 2, 'start': 167, 'machine': 0, 'duration': 64}, {'task': 3, 'start': 292, 'machine': 2, 'duration': 82}, {'task': 4, 'start': 733, 'machine': 3, 'duration': 55}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 235, 'machine': 4, 'duration': 65}, {'task': 1, 'start': 318, 'machine': 1, 'duration': 1}, {'task': 2, 'start': 544, 'machine': 3, 'duration': 88}, {'task': 3, 'start': 632, 'machine': 2, 'duration': 23}, {'task': 4, 'start': 655, 'machine': 0, 'duration': 23}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 68, 'machine': 0, 'duration': 73}, {'task': 1, 'start': 383, 'machine': 3, 'duration': 63}, {'task': 2, 'start': 446, 'machine': 1, 'duration': 28}, {'task': 3, 'start': 474, 'machine': 4, 'duration': 53}, {'task': 4, 'start': 527, 'machine': 2, 'duration': 20}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 56}, {'task': 1, 'start': 62, 'machine': 2, 'duration': 26}, {'task': 2, 'start': 208, 'machine': 3, 'duration': 78}, {'task': 3, 'start': 324, 'machine': 0, 'duration': 94}, {'task': 4, 'start': 460, 'machine': 4, 'duration': 10}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 56, 'machine': 1, 'duration': 25}, {'task': 1, 'start': 157, 'machine': 3, 'duration': 51}, {'task': 2, 'start': 300, 'machine': 4, 'duration': 78}, {'task': 3, 'start': 418, 'machine': 0, 'duration': 26}, {'task': 4, 'start': 470, 'machine': 2, 'duration': 32}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 50}, {'task': 1, 'start': 180, 'machine': 4, 'duration': 55}, {'task': 2, 'start': 446, 'machine': 3, 'duration': 98}, {'task': 3, 'start': 547, 'machine': 2, 'duration': 53}, {'task': 4, 'start': 600, 'machine': 1, 'duration': 8}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 141, 'machine': 0, 'duration': 4}, {'task': 1, 'start': 178, 'machine': 2, 'duration': 43}, {'task': 2, 'start': 240, 'machine': 1, 'duration': 43}, {'task': 3, 'start': 670, 'machine': 3, 'duration': 63}, {'task': 4, 'start': 749, 'machine': 4, 'duration': 22}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 62}, {'task': 1, 'start': 92, 'machine': 3, 'duration': 65}, {'task': 2, 'start': 167, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 243, 'machine': 0, 'duration': 81}, {'task': 4, 'start': 378, 'machine': 4, 'duration': 82}]}]",42,markdown_table,0 JSP,JSP,"Back at the darkroom, the challenge was to shepherd a stack of film through exposure, development, and drying without any chaos. That means deciding who goes first on which station and when, while keeping every roll’s steps in their fixed order, running each step on its designated station for the required length, and never overlapping tasks on the same station. A clearer plan is the one that gets the final roll out sooner — compute each roll’s completion time and take the last of those times as the result. The specific rolls, stations, and timing details follow below. # num_rolls=10 # num_stations=6 # roll_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 # station_ids=1, 2, 3, 4, 5, 6 roll_id,step_index,station_id,processing_time J1,0,2,1 J1,1,4,5 J1,2,6,47 J1,3,5,53 J1,4,3,75 J1,5,1,39 J2,0,5,95 J2,1,4,3 J2,2,1,7 J2,3,3,51 J2,4,2,22 J2,5,6,63 J3,0,3,80 J3,1,1,90 J3,2,5,49 J3,3,6,49 J3,4,4,38 J3,5,2,65 J4,0,4,21 J4,1,1,61 J4,2,2,7 J4,3,6,69 J4,4,5,47 J4,5,3,16 J5,0,4,8 J5,1,5,26 J5,2,2,72 J5,3,1,92 J5,4,3,94 J5,5,6,90 J6,0,6,47 J6,1,5,3 J6,2,3,5 J6,3,1,98 J6,4,2,83 J6,5,4,57 J7,0,6,15 J7,1,4,54 J7,2,2,25 J7,3,3,69 J7,4,1,75 J7,5,5,53 J8,0,4,70 J8,1,1,28 J8,2,2,73 J8,3,5,11 J8,4,3,6 J8,5,6,32 J9,0,5,90 J9,1,4,66 J9,2,3,39 J9,3,2,13 J9,4,6,97 J9,5,1,10 J10,0,5,18 J10,1,4,98 J10,2,1,86 J10,3,2,40 J10,4,3,37 J10,5,6,9 And just so we’re on the same page about how to hand back the schedule, here’s the shape I’m expecting — nothing fancy, just a simple JSON sketch you can follow when you fill in the actual plan: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that like a little form: ""solution"" is a list of jobs (in our darkroom story, each roll), each job has a list of tasks/steps, and each task says when it starts, which machine/station it needs, and how long it runs. This JSON is just the expected shape — a sketch, not the final filled-in answer. Please make sure to use the exact identifiers from the instance input — don’t rename them or invent new labels. For example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[1, 1], [3, 5], [5, 47], [4, 53], [2, 75], [0, 39]], [[4, 95], [3, 3], [0, 7], [2, 51], [1, 22], [5, 63]], [[2, 80], [0, 90], [4, 49], [5, 49], [3, 38], [1, 65]], [[3, 21], [0, 61], [1, 7], [5, 69], [4, 47], [2, 16]], [[3, 8], [4, 26], [1, 72], [0, 92], [2, 94], [5, 90]], [[5, 47], [4, 3], [2, 5], [0, 98], [1, 83], [3, 57]], [[5, 15], [3, 54], [1, 25], [2, 69], [0, 75], [4, 53]], [[3, 70], [0, 28], [1, 73], [4, 11], [2, 6], [5, 32]], [[4, 90], [3, 66], [2, 39], [1, 13], [5, 97], [0, 10]], [[4, 18], [3, 98], [0, 86], [1, 40], [2, 37], [5, 9]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 219, 'machine': 3, 'duration': 5}, {'task': 2, 'start': 224, 'machine': 5, 'duration': 47}, {'task': 3, 'start': 279, 'machine': 4, 'duration': 53}, {'task': 4, 'start': 463, 'machine': 2, 'duration': 75}, {'task': 5, 'start': 558, 'machine': 0, 'duration': 39}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 137, 'machine': 4, 'duration': 95}, {'task': 1, 'start': 232, 'machine': 3, 'duration': 3}, {'task': 2, 'start': 270, 'machine': 0, 'duration': 7}, {'task': 3, 'start': 277, 'machine': 2, 'duration': 51}, {'task': 4, 'start': 328, 'machine': 1, 'duration': 22}, {'task': 5, 'start': 368, 'machine': 5, 'duration': 63}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 80}, {'task': 1, 'start': 82, 'machine': 0, 'duration': 90}, {'task': 2, 'start': 332, 'machine': 4, 'duration': 49}, {'task': 3, 'start': 431, 'machine': 5, 'duration': 49}, {'task': 4, 'start': 490, 'machine': 3, 'duration': 38}, {'task': 5, 'start': 546, 'machine': 1, 'duration': 65}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 21}, {'task': 1, 'start': 21, 'machine': 0, 'duration': 61}, {'task': 2, 'start': 82, 'machine': 1, 'duration': 7}, {'task': 3, 'start': 89, 'machine': 5, 'duration': 69}, {'task': 4, 'start': 232, 'machine': 4, 'duration': 47}, {'task': 5, 'start': 328, 'machine': 2, 'duration': 16}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 21, 'machine': 3, 'duration': 8}, {'task': 1, 'start': 108, 'machine': 4, 'duration': 26}, {'task': 2, 'start': 134, 'machine': 1, 'duration': 72}, {'task': 3, 'start': 277, 'machine': 0, 'duration': 92}, {'task': 4, 'start': 369, 'machine': 2, 'duration': 94}, {'task': 5, 'start': 480, 'machine': 5, 'duration': 90}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 15, 'machine': 5, 'duration': 47}, {'task': 1, 'start': 134, 'machine': 4, 'duration': 3}, {'task': 2, 'start': 137, 'machine': 2, 'duration': 5}, {'task': 3, 'start': 172, 'machine': 0, 'duration': 98}, {'task': 4, 'start': 350, 'machine': 1, 'duration': 83}, {'task': 5, 'start': 433, 'machine': 3, 'duration': 57}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 15}, {'task': 1, 'start': 29, 'machine': 3, 'duration': 54}, {'task': 2, 'start': 89, 'machine': 1, 'duration': 25}, {'task': 3, 'start': 142, 'machine': 2, 'duration': 69}, {'task': 4, 'start': 483, 'machine': 0, 'duration': 75}, {'task': 5, 'start': 558, 'machine': 4, 'duration': 53}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 83, 'machine': 3, 'duration': 70}, {'task': 1, 'start': 369, 'machine': 0, 'duration': 28}, {'task': 2, 'start': 433, 'machine': 1, 'duration': 73}, {'task': 3, 'start': 506, 'machine': 4, 'duration': 11}, {'task': 4, 'start': 538, 'machine': 2, 'duration': 6}, {'task': 5, 'start': 570, 'machine': 5, 'duration': 32}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 18, 'machine': 4, 'duration': 90}, {'task': 1, 'start': 153, 'machine': 3, 'duration': 66}, {'task': 2, 'start': 219, 'machine': 2, 'duration': 39}, {'task': 3, 'start': 258, 'machine': 1, 'duration': 13}, {'task': 4, 'start': 271, 'machine': 5, 'duration': 97}, {'task': 5, 'start': 597, 'machine': 0, 'duration': 10}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 18}, {'task': 1, 'start': 235, 'machine': 3, 'duration': 98}, {'task': 2, 'start': 397, 'machine': 0, 'duration': 86}, {'task': 3, 'start': 506, 'machine': 1, 'duration': 40}, {'task': 4, 'start': 546, 'machine': 2, 'duration': 37}, {'task': 5, 'start': 602, 'machine': 5, 'duration': 9}]}]",611.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': [1, 2, 3, 4, 5, 6], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 2, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 5}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 6, 'duration': 47}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 53}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 3, 'duration': 75}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 1, 'duration': 39}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 95}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 4, 'duration': 3}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 7}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 3, 'duration': 51}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 2, 'duration': 22}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 6, 'duration': 63}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 3, 'duration': 80}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 1, 'duration': 90}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 5, 'duration': 49}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 6, 'duration': 49}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 38}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 2, 'duration': 65}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 21}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 1, 'duration': 61}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 2, 'duration': 7}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 6, 'duration': 69}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 5, 'duration': 47}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 3, 'duration': 16}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 8}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 5, 'duration': 26}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 2, 'duration': 72}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 1, 'duration': 92}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 3, 'duration': 94}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 6, 'duration': 90}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 6, 'duration': 47}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 5, 'duration': 3}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 3, 'duration': 5}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 1, 'duration': 98}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 2, 'duration': 83}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 4, 'duration': 57}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 6, 'duration': 15}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 4, 'duration': 54}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 2, 'duration': 25}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 3, 'duration': 69}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 1, 'duration': 75}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 5, 'duration': 53}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 4, 'duration': 70}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 1, 'duration': 28}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 73}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 5, 'duration': 11}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 3, 'duration': 6}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 6, 'duration': 32}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 5, 'duration': 90}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 4, 'duration': 66}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 3, 'duration': 39}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 13}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 6, 'duration': 97}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 1, 'duration': 10}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 5, 'duration': 18}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 4, 'duration': 98}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 1, 'duration': 86}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 2, 'duration': 40}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 3, 'duration': 37}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 6, 'duration': 9}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 219, 'machine': 4, 'duration': 5}, {'task': 2, 'start': 224, 'machine': 6, 'duration': 47}, {'task': 3, 'start': 279, 'machine': 5, 'duration': 53}, {'task': 4, 'start': 463, 'machine': 3, 'duration': 75}, {'task': 5, 'start': 558, 'machine': 1, 'duration': 39}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 137, 'machine': 5, 'duration': 95}, {'task': 1, 'start': 232, 'machine': 4, 'duration': 3}, {'task': 2, 'start': 270, 'machine': 1, 'duration': 7}, {'task': 3, 'start': 277, 'machine': 3, 'duration': 51}, {'task': 4, 'start': 328, 'machine': 2, 'duration': 22}, {'task': 5, 'start': 368, 'machine': 6, 'duration': 63}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 80}, {'task': 1, 'start': 82, 'machine': 1, 'duration': 90}, {'task': 2, 'start': 332, 'machine': 5, 'duration': 49}, {'task': 3, 'start': 431, 'machine': 6, 'duration': 49}, {'task': 4, 'start': 490, 'machine': 4, 'duration': 38}, {'task': 5, 'start': 546, 'machine': 2, 'duration': 65}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 21}, {'task': 1, 'start': 21, 'machine': 1, 'duration': 61}, {'task': 2, 'start': 82, 'machine': 2, 'duration': 7}, {'task': 3, 'start': 89, 'machine': 6, 'duration': 69}, {'task': 4, 'start': 232, 'machine': 5, 'duration': 47}, {'task': 5, 'start': 328, 'machine': 3, 'duration': 16}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 21, 'machine': 4, 'duration': 8}, {'task': 1, 'start': 108, 'machine': 5, 'duration': 26}, {'task': 2, 'start': 134, 'machine': 2, 'duration': 72}, {'task': 3, 'start': 277, 'machine': 1, 'duration': 92}, {'task': 4, 'start': 369, 'machine': 3, 'duration': 94}, {'task': 5, 'start': 480, 'machine': 6, 'duration': 90}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 15, 'machine': 6, 'duration': 47}, {'task': 1, 'start': 134, 'machine': 5, 'duration': 3}, {'task': 2, 'start': 137, 'machine': 3, 'duration': 5}, {'task': 3, 'start': 172, 'machine': 1, 'duration': 98}, {'task': 4, 'start': 350, 'machine': 2, 'duration': 83}, {'task': 5, 'start': 433, 'machine': 4, 'duration': 57}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 6, 'duration': 15}, {'task': 1, 'start': 29, 'machine': 4, 'duration': 54}, {'task': 2, 'start': 89, 'machine': 2, 'duration': 25}, {'task': 3, 'start': 142, 'machine': 3, 'duration': 69}, {'task': 4, 'start': 483, 'machine': 1, 'duration': 75}, {'task': 5, 'start': 558, 'machine': 5, 'duration': 53}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 83, 'machine': 4, 'duration': 70}, {'task': 1, 'start': 369, 'machine': 1, 'duration': 28}, {'task': 2, 'start': 433, 'machine': 2, 'duration': 73}, {'task': 3, 'start': 506, 'machine': 5, 'duration': 11}, {'task': 4, 'start': 538, 'machine': 3, 'duration': 6}, {'task': 5, 'start': 570, 'machine': 6, 'duration': 32}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 18, 'machine': 5, 'duration': 90}, {'task': 1, 'start': 153, 'machine': 4, 'duration': 66}, {'task': 2, 'start': 219, 'machine': 3, 'duration': 39}, {'task': 3, 'start': 258, 'machine': 2, 'duration': 13}, {'task': 4, 'start': 271, 'machine': 6, 'duration': 97}, {'task': 5, 'start': 597, 'machine': 1, 'duration': 10}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 18}, {'task': 1, 'start': 235, 'machine': 4, 'duration': 98}, {'task': 2, 'start': 397, 'machine': 1, 'duration': 86}, {'task': 3, 'start': 506, 'machine': 2, 'duration': 40}, {'task': 4, 'start': 546, 'machine': 3, 'duration': 37}, {'task': 5, 'start': 602, 'machine': 6, 'duration': 9}]}]",43,csv,1 JSP,JSP,"There’s a busy makerspace where several projects are queued for cutting, sanding, and painting, and the coordinator needs to line up who uses which machine when. Each project follows the same ordered steps; each step belongs to a particular machine and takes a fixed amount of time, and a machine can only handle one step at any given moment. The aim is to get the whole lot wrapped up quickly — measure success by the time when the last project’s final step finishes, and try to make that time as early as possible. All steps have to happen in order and exactly once, with no overlapping use of machines. The concrete project and timing details are shown below. There are 12 projects waiting and 6 machines available; project IDs are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 and machine IDs are A, B, C, D, E, F. Project J1, step 0: uses machine F for 1 time units. Project J1, step 1: uses machine E for 18 time units. Project J1, step 2: uses machine D for 23 time units. Project J1, step 3: uses machine B for 98 time units. Project J1, step 4: uses machine C for 29 time units. Project J1, step 5: uses machine A for 61 time units. Project J2, step 0: uses machine D for 99 time units. Project J2, step 1: uses machine A for 70 time units. Project J2, step 2: uses machine E for 74 time units. Project J2, step 3: uses machine F for 45 time units. Project J2, step 4: uses machine C for 60 time units. Project J2, step 5: uses machine B for 15 time units. Project J3, step 0: uses machine C for 63 time units. Project J3, step 1: uses machine A for 93 time units. Project J3, step 2: uses machine F for 54 time units. Project J3, step 3: uses machine E for 3 time units. Project J3, step 4: uses machine B for 5 time units. Project J3, step 5: uses machine D for 65 time units. Project J4, step 0: uses machine B for 59 time units. Project J4, step 1: uses machine F for 68 time units. Project J4, step 2: uses machine D for 49 time units. Project J4, step 3: uses machine E for 38 time units. Project J4, step 4: uses machine C for 7 time units. Project J4, step 5: uses machine A for 9 time units. Project J5, step 0: uses machine E for 92 time units. Project J5, step 1: uses machine F for 79 time units. Project J5, step 2: uses machine B for 81 time units. Project J5, step 3: uses machine D for 58 time units. Project J5, step 4: uses machine A for 36 time units. Project J5, step 5: uses machine C for 60 time units. Project J6, step 0: uses machine F for 38 time units. Project J6, step 1: uses machine E for 78 time units. Project J6, step 2: uses machine B for 31 time units. Project J6, step 3: uses machine D for 4 time units. Project J6, step 4: uses machine C for 57 time units. Project J6, step 5: uses machine A for 90 time units. Project J7, step 0: uses machine B for 77 time units. Project J7, step 1: uses machine A for 30 time units. Project J7, step 2: uses machine C for 24 time units. Project J7, step 3: uses machine E for 6 time units. Project J7, step 4: uses machine F for 99 time units. Project J7, step 5: uses machine D for 52 time units. Project J8, step 0: uses machine C for 43 time units. Project J8, step 1: uses machine E for 4 time units. Project J8, step 2: uses machine D for 38 time units. Project J8, step 3: uses machine F for 18 time units. Project J8, step 4: uses machine A for 69 time units. Project J8, step 5: uses machine B for 20 time units. Project J9, step 0: uses machine D for 18 time units. Project J9, step 1: uses machine F for 10 time units. Project J9, step 2: uses machine B for 16 time units. Project J9, step 3: uses machine E for 61 time units. Project J9, step 4: uses machine A for 21 time units. Project J9, step 5: uses machine C for 37 time units. Project J10, step 0: uses machine D for 54 time units. Project J10, step 1: uses machine C for 16 time units. Project J10, step 2: uses machine E for 36 time units. Project J10, step 3: uses machine B for 30 time units. Project J10, step 4: uses machine F for 28 time units. Project J10, step 5: uses machine A for 15 time units. Project J11, step 0: uses machine C for 89 time units. Project J11, step 1: uses machine F for 88 time units. Project J11, step 2: uses machine B for 88 time units. Project J11, step 3: uses machine D for 12 time units. Project J11, step 4: uses machine E for 86 time units. Project J11, step 5: uses machine A for 98 time units. Project J12, step 0: uses machine A for 62 time units. Project J12, step 1: uses machine E for 71 time units. Project J12, step 2: uses machine F for 56 time units. Project J12, step 3: uses machine D for 27 time units. Project J12, step 4: uses machine C for 56 time units. Project J12, step 5: uses machine B for 65 time units. The coordinator must schedule each step in order without machine overlap so all 12 projects finish as soon as possible. Also, when you send the schedule back, a plain JSON layout like the one below works best — just a relaxed, consistent shape so it's easy to read and check: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This little sketch is just the shape I’m expecting: ""solution"" holds a list of jobs (projects), each job has its id under ""job"" and an ordered ""tasks"" list. Each task entry says which task index it is, when it starts, which machine it uses, and how long it runs. Think of it like filling out a simple schedule form rather than anything formal — it doesn’t contain the actual scheduled times yet, just the fields I’ll need filled in. Please use the identifiers exactly as they appear in the instance input — don’t rename them or invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 12, 'jobs': [[[5, 1], [4, 18], [3, 23], [1, 98], [2, 29], [0, 61]], [[3, 99], [0, 70], [4, 74], [5, 45], [2, 60], [1, 15]], [[2, 63], [0, 93], [5, 54], [4, 3], [1, 5], [3, 65]], [[1, 59], [5, 68], [3, 49], [4, 38], [2, 7], [0, 9]], [[4, 92], [5, 79], [1, 81], [3, 58], [0, 36], [2, 60]], [[5, 38], [4, 78], [1, 31], [3, 4], [2, 57], [0, 90]], [[1, 77], [0, 30], [2, 24], [4, 6], [5, 99], [3, 52]], [[2, 43], [4, 4], [3, 38], [5, 18], [0, 69], [1, 20]], [[3, 18], [5, 10], [1, 16], [4, 61], [0, 21], [2, 37]], [[3, 54], [2, 16], [4, 36], [1, 30], [5, 28], [0, 15]], [[2, 89], [5, 88], [1, 88], [3, 12], [4, 86], [0, 98]], [[0, 62], [4, 71], [5, 56], [3, 27], [2, 56], [1, 65]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 92, 'machine': 4, 'duration': 18}, {'task': 2, 'start': 113, 'machine': 3, 'duration': 23}, {'task': 3, 'start': 136, 'machine': 1, 'duration': 98}, {'task': 4, 'start': 234, 'machine': 2, 'duration': 29}, {'task': 5, 'start': 265, 'machine': 0, 'duration': 61}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 99}, {'task': 1, 'start': 156, 'machine': 0, 'duration': 70}, {'task': 2, 'start': 301, 'machine': 4, 'duration': 74}, {'task': 3, 'start': 403, 'machine': 5, 'duration': 45}, {'task': 4, 'start': 468, 'machine': 2, 'duration': 60}, {'task': 5, 'start': 604, 'machine': 1, 'duration': 15}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 63}, {'task': 1, 'start': 63, 'machine': 0, 'duration': 93}, {'task': 2, 'start': 448, 'machine': 5, 'duration': 54}, {'task': 3, 'start': 528, 'machine': 4, 'duration': 3}, {'task': 4, 'start': 533, 'machine': 1, 'duration': 5}, {'task': 5, 'start': 538, 'machine': 3, 'duration': 65}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 59}, {'task': 1, 'start': 59, 'machine': 5, 'duration': 68}, {'task': 2, 'start': 136, 'machine': 3, 'duration': 49}, {'task': 3, 'start': 188, 'machine': 4, 'duration': 38}, {'task': 4, 'start': 226, 'machine': 2, 'duration': 7}, {'task': 5, 'start': 256, 'machine': 0, 'duration': 9}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 92}, {'task': 1, 'start': 250, 'machine': 5, 'duration': 79}, {'task': 2, 'start': 369, 'machine': 1, 'duration': 81}, {'task': 3, 'start': 450, 'machine': 3, 'duration': 58}, {'task': 4, 'start': 508, 'machine': 0, 'duration': 36}, {'task': 5, 'start': 544, 'machine': 2, 'duration': 60}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 1, 'machine': 5, 'duration': 38}, {'task': 1, 'start': 110, 'machine': 4, 'duration': 78}, {'task': 2, 'start': 234, 'machine': 1, 'duration': 31}, {'task': 3, 'start': 265, 'machine': 3, 'duration': 4}, {'task': 4, 'start': 269, 'machine': 2, 'duration': 57}, {'task': 5, 'start': 326, 'machine': 0, 'duration': 90}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 59, 'machine': 1, 'duration': 77}, {'task': 1, 'start': 226, 'machine': 0, 'duration': 30}, {'task': 2, 'start': 326, 'machine': 2, 'duration': 24}, {'task': 3, 'start': 375, 'machine': 4, 'duration': 6}, {'task': 4, 'start': 502, 'machine': 5, 'duration': 99}, {'task': 5, 'start': 603, 'machine': 3, 'duration': 52}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 152, 'machine': 2, 'duration': 43}, {'task': 1, 'start': 297, 'machine': 4, 'duration': 4}, {'task': 2, 'start': 301, 'machine': 3, 'duration': 38}, {'task': 3, 'start': 385, 'machine': 5, 'duration': 18}, {'task': 4, 'start': 416, 'machine': 0, 'duration': 69}, {'task': 5, 'start': 543, 'machine': 1, 'duration': 20}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 185, 'machine': 3, 'duration': 18}, {'task': 1, 'start': 240, 'machine': 5, 'duration': 10}, {'task': 2, 'start': 353, 'machine': 1, 'duration': 16}, {'task': 3, 'start': 381, 'machine': 4, 'duration': 61}, {'task': 4, 'start': 485, 'machine': 0, 'duration': 21}, {'task': 5, 'start': 613, 'machine': 2, 'duration': 37}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 203, 'machine': 3, 'duration': 54}, {'task': 1, 'start': 366, 'machine': 2, 'duration': 16}, {'task': 2, 'start': 538, 'machine': 4, 'duration': 36}, {'task': 3, 'start': 574, 'machine': 1, 'duration': 30}, {'task': 4, 'start': 604, 'machine': 5, 'duration': 28}, {'task': 5, 'start': 642, 'machine': 0, 'duration': 15}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 63, 'machine': 2, 'duration': 89}, {'task': 1, 'start': 152, 'machine': 5, 'duration': 88}, {'task': 2, 'start': 265, 'machine': 1, 'duration': 88}, {'task': 3, 'start': 353, 'machine': 3, 'duration': 12}, {'task': 4, 'start': 442, 'machine': 4, 'duration': 86}, {'task': 5, 'start': 544, 'machine': 0, 'duration': 98}]}, {'job': 11, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 62}, {'task': 1, 'start': 226, 'machine': 4, 'duration': 71}, {'task': 2, 'start': 329, 'machine': 5, 'duration': 56}, {'task': 3, 'start': 385, 'machine': 3, 'duration': 27}, {'task': 4, 'start': 412, 'machine': 2, 'duration': 56}, {'task': 5, 'start': 468, 'machine': 1, 'duration': 65}]}]",657.0,"{'problem_type': 'JSP', 'nr_jobs': 12, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11', 'J12'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'F', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'E', 'duration': 18}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'D', 'duration': 23}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'B', 'duration': 98}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'C', 'duration': 29}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 61}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'D', 'duration': 99}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'A', 'duration': 70}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'E', 'duration': 74}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'F', 'duration': 45}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'C', 'duration': 60}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'B', 'duration': 15}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'C', 'duration': 63}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'A', 'duration': 93}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'F', 'duration': 54}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'E', 'duration': 3}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'B', 'duration': 5}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'D', 'duration': 65}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'B', 'duration': 59}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'F', 'duration': 68}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'D', 'duration': 49}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'E', 'duration': 38}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'C', 'duration': 7}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'A', 'duration': 9}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'E', 'duration': 92}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'F', 'duration': 79}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'B', 'duration': 81}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'D', 'duration': 58}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'A', 'duration': 36}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'C', 'duration': 60}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'F', 'duration': 38}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'E', 'duration': 78}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'B', 'duration': 31}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'D', 'duration': 4}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'C', 'duration': 57}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'A', 'duration': 90}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'B', 'duration': 77}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'A', 'duration': 30}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'C', 'duration': 24}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 6}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'F', 'duration': 99}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'D', 'duration': 52}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'C', 'duration': 43}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'E', 'duration': 4}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'D', 'duration': 38}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'F', 'duration': 18}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'A', 'duration': 69}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'B', 'duration': 20}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'D', 'duration': 18}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'F', 'duration': 10}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'B', 'duration': 16}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'E', 'duration': 61}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'A', 'duration': 21}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'C', 'duration': 37}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'D', 'duration': 54}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'C', 'duration': 16}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'E', 'duration': 36}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'B', 'duration': 30}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'F', 'duration': 28}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'A', 'duration': 15}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 'C', 'duration': 89}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 'F', 'duration': 88}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 'B', 'duration': 88}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 'D', 'duration': 12}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 'E', 'duration': 86}, {'job_id': 'J11', 'task_id': 5, 'machine_id': 'A', 'duration': 98}, {'job_id': 'J12', 'task_id': 0, 'machine_id': 'A', 'duration': 62}, {'job_id': 'J12', 'task_id': 1, 'machine_id': 'E', 'duration': 71}, {'job_id': 'J12', 'task_id': 2, 'machine_id': 'F', 'duration': 56}, {'job_id': 'J12', 'task_id': 3, 'machine_id': 'D', 'duration': 27}, {'job_id': 'J12', 'task_id': 4, 'machine_id': 'C', 'duration': 56}, {'job_id': 'J12', 'task_id': 5, 'machine_id': 'B', 'duration': 65}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 'F', 'duration': 1}, {'task': 1, 'start': 92, 'machine': 'E', 'duration': 18}, {'task': 2, 'start': 113, 'machine': 'D', 'duration': 23}, {'task': 3, 'start': 136, 'machine': 'B', 'duration': 98}, {'task': 4, 'start': 234, 'machine': 'C', 'duration': 29}, {'task': 5, 'start': 265, 'machine': 'A', 'duration': 61}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 99}, {'task': 1, 'start': 156, 'machine': 'A', 'duration': 70}, {'task': 2, 'start': 301, 'machine': 'E', 'duration': 74}, {'task': 3, 'start': 403, 'machine': 'F', 'duration': 45}, {'task': 4, 'start': 468, 'machine': 'C', 'duration': 60}, {'task': 5, 'start': 604, 'machine': 'B', 'duration': 15}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 63}, {'task': 1, 'start': 63, 'machine': 'A', 'duration': 93}, {'task': 2, 'start': 448, 'machine': 'F', 'duration': 54}, {'task': 3, 'start': 528, 'machine': 'E', 'duration': 3}, {'task': 4, 'start': 533, 'machine': 'B', 'duration': 5}, {'task': 5, 'start': 538, 'machine': 'D', 'duration': 65}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 59}, {'task': 1, 'start': 59, 'machine': 'F', 'duration': 68}, {'task': 2, 'start': 136, 'machine': 'D', 'duration': 49}, {'task': 3, 'start': 188, 'machine': 'E', 'duration': 38}, {'task': 4, 'start': 226, 'machine': 'C', 'duration': 7}, {'task': 5, 'start': 256, 'machine': 'A', 'duration': 9}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 92}, {'task': 1, 'start': 250, 'machine': 'F', 'duration': 79}, {'task': 2, 'start': 369, 'machine': 'B', 'duration': 81}, {'task': 3, 'start': 450, 'machine': 'D', 'duration': 58}, {'task': 4, 'start': 508, 'machine': 'A', 'duration': 36}, {'task': 5, 'start': 544, 'machine': 'C', 'duration': 60}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 1, 'machine': 'F', 'duration': 38}, {'task': 1, 'start': 110, 'machine': 'E', 'duration': 78}, {'task': 2, 'start': 234, 'machine': 'B', 'duration': 31}, {'task': 3, 'start': 265, 'machine': 'D', 'duration': 4}, {'task': 4, 'start': 269, 'machine': 'C', 'duration': 57}, {'task': 5, 'start': 326, 'machine': 'A', 'duration': 90}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 59, 'machine': 'B', 'duration': 77}, {'task': 1, 'start': 226, 'machine': 'A', 'duration': 30}, {'task': 2, 'start': 326, 'machine': 'C', 'duration': 24}, {'task': 3, 'start': 375, 'machine': 'E', 'duration': 6}, {'task': 4, 'start': 502, 'machine': 'F', 'duration': 99}, {'task': 5, 'start': 603, 'machine': 'D', 'duration': 52}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 152, 'machine': 'C', 'duration': 43}, {'task': 1, 'start': 297, 'machine': 'E', 'duration': 4}, {'task': 2, 'start': 301, 'machine': 'D', 'duration': 38}, {'task': 3, 'start': 385, 'machine': 'F', 'duration': 18}, {'task': 4, 'start': 416, 'machine': 'A', 'duration': 69}, {'task': 5, 'start': 543, 'machine': 'B', 'duration': 20}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 185, 'machine': 'D', 'duration': 18}, {'task': 1, 'start': 240, 'machine': 'F', 'duration': 10}, {'task': 2, 'start': 353, 'machine': 'B', 'duration': 16}, {'task': 3, 'start': 381, 'machine': 'E', 'duration': 61}, {'task': 4, 'start': 485, 'machine': 'A', 'duration': 21}, {'task': 5, 'start': 613, 'machine': 'C', 'duration': 37}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 203, 'machine': 'D', 'duration': 54}, {'task': 1, 'start': 366, 'machine': 'C', 'duration': 16}, {'task': 2, 'start': 538, 'machine': 'E', 'duration': 36}, {'task': 3, 'start': 574, 'machine': 'B', 'duration': 30}, {'task': 4, 'start': 604, 'machine': 'F', 'duration': 28}, {'task': 5, 'start': 642, 'machine': 'A', 'duration': 15}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 63, 'machine': 'C', 'duration': 89}, {'task': 1, 'start': 152, 'machine': 'F', 'duration': 88}, {'task': 2, 'start': 265, 'machine': 'B', 'duration': 88}, {'task': 3, 'start': 353, 'machine': 'D', 'duration': 12}, {'task': 4, 'start': 442, 'machine': 'E', 'duration': 86}, {'task': 5, 'start': 544, 'machine': 'A', 'duration': 98}]}, {'job': 'J12', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 62}, {'task': 1, 'start': 226, 'machine': 'E', 'duration': 71}, {'task': 2, 'start': 329, 'machine': 'F', 'duration': 56}, {'task': 3, 'start': 385, 'machine': 'D', 'duration': 27}, {'task': 4, 'start': 412, 'machine': 'C', 'duration': 56}, {'task': 5, 'start': 468, 'machine': 'B', 'duration': 65}]}]",44,nl,names JSP,JSP,"Recently the foreperson asked for a simple plan: spread digging, planting and mulching across the teams and tools so each garden moves from one step to the next in order without crews clashing. Each task must run on its designated crew or machine for the whole time it needs, and every plot must get each step once — nothing missing, nothing doubled. The success of the plan is judged by how soon everything is done, i.e., the clock time when the last plot’s work finishes, and the aim is to make that time as early as possible. The exact plot-by-plot details are given below. There are 11 plots to complete using 5 crews and tools; plot ids: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11; crew/tool ids: 1, 2, 3, 4, 5. | plot_id | step_index | crew_or_tool_id | task_duration | |---|---|---|---| | J1 | 0 | 4 | 1 | | J1 | 1 | 2 | 31 | | J1 | 2 | 5 | 98 | | J1 | 3 | 3 | 44 | | J1 | 4 | 1 | 81 | | J2 | 0 | 5 | 83 | | J2 | 1 | 1 | 5 | | J2 | 2 | 4 | 38 | | J2 | 3 | 2 | 42 | | J2 | 4 | 3 | 38 | | J3 | 0 | 3 | 98 | | J3 | 1 | 4 | 67 | | J3 | 2 | 1 | 46 | | J3 | 3 | 5 | 97 | | J3 | 4 | 2 | 60 | | J4 | 0 | 4 | 55 | | J4 | 1 | 2 | 72 | | J4 | 2 | 5 | 66 | | J4 | 3 | 3 | 97 | | J4 | 4 | 1 | 75 | | J5 | 0 | 5 | 90 | | J5 | 1 | 4 | 7 | | J5 | 2 | 1 | 65 | | J5 | 3 | 3 | 2 | | J5 | 4 | 2 | 77 | | J6 | 0 | 3 | 32 | | J6 | 1 | 1 | 90 | | J6 | 2 | 2 | 24 | | J6 | 3 | 5 | 77 | | J6 | 4 | 4 | 30 | | J7 | 0 | 4 | 29 | | J7 | 1 | 1 | 55 | | J7 | 2 | 2 | 57 | | J7 | 3 | 5 | 9 | | J7 | 4 | 3 | 31 | | J8 | 0 | 5 | 23 | | J8 | 1 | 3 | 41 | | J8 | 2 | 2 | 6 | | J8 | 3 | 1 | 23 | | J8 | 4 | 4 | 42 | | J9 | 0 | 4 | 25 | | J9 | 1 | 2 | 50 | | J9 | 2 | 5 | 15 | | J9 | 3 | 3 | 79 | | J9 | 4 | 1 | 4 | | J10 | 0 | 5 | 25 | | J10 | 1 | 3 | 32 | | J10 | 2 | 2 | 9 | | J10 | 3 | 1 | 45 | | J10 | 4 | 4 | 53 | | J11 | 0 | 2 | 91 | | J11 | 1 | 5 | 9 | | J11 | 2 | 3 | 45 | | J11 | 3 | 1 | 64 | | J11 | 4 | 4 | 89 | Cover all 11 plots on the 5 crews/tools and aim to finish as early as possible. Oh, and one quick thing — when you send the plan back, please follow a little JSON shape like this: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This just shows the shape I expect: a top-level ""solution"" list, one entry per job/plot with its id, and for each job a list of tasks giving the task index, the planned start time, which crew/tool (machine) it uses, and how long it runs. Think of it like filling out a simple form for each plot: who does what, when, and for how long. It's only a sketch of the expected shape, not the actual schedule. Please make sure to use the exact identifiers from the instance input — don't rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 11, 'jobs': [[[3, 1], [1, 31], [4, 98], [2, 44], [0, 81]], [[4, 83], [0, 5], [3, 38], [1, 42], [2, 38]], [[2, 98], [3, 67], [0, 46], [4, 97], [1, 60]], [[3, 55], [1, 72], [4, 66], [2, 97], [0, 75]], [[4, 90], [3, 7], [0, 65], [2, 2], [1, 77]], [[2, 32], [0, 90], [1, 24], [4, 77], [3, 30]], [[3, 29], [0, 55], [1, 57], [4, 9], [2, 31]], [[4, 23], [2, 41], [1, 6], [0, 23], [3, 42]], [[3, 25], [1, 50], [4, 15], [2, 79], [0, 4]], [[4, 25], [2, 32], [1, 9], [0, 45], [3, 53]], [[1, 91], [4, 9], [2, 45], [0, 64], [3, 89]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 84, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 213, 'machine': 1, 'duration': 31}, {'task': 2, 'start': 273, 'machine': 4, 'duration': 98}, {'task': 3, 'start': 371, 'machine': 2, 'duration': 44}, {'task': 4, 'start': 432, 'machine': 0, 'duration': 81}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 115, 'machine': 4, 'duration': 83}, {'task': 1, 'start': 318, 'machine': 0, 'duration': 5}, {'task': 2, 'start': 323, 'machine': 3, 'duration': 38}, {'task': 3, 'start': 411, 'machine': 1, 'duration': 42}, {'task': 4, 'start': 456, 'machine': 2, 'duration': 38}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 98}, {'task': 1, 'start': 117, 'machine': 3, 'duration': 67}, {'task': 2, 'start': 272, 'machine': 0, 'duration': 46}, {'task': 3, 'start': 394, 'machine': 4, 'duration': 97}, {'task': 4, 'start': 491, 'machine': 1, 'duration': 60}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 29, 'machine': 3, 'duration': 55}, {'task': 1, 'start': 91, 'machine': 1, 'duration': 72}, {'task': 2, 'start': 207, 'machine': 4, 'duration': 66}, {'task': 3, 'start': 273, 'machine': 2, 'duration': 97}, {'task': 4, 'start': 536, 'machine': 0, 'duration': 75}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 90}, {'task': 1, 'start': 110, 'machine': 3, 'duration': 7}, {'task': 2, 'start': 117, 'machine': 0, 'duration': 65}, {'task': 3, 'start': 182, 'machine': 2, 'duration': 2}, {'task': 4, 'start': 253, 'machine': 1, 'duration': 77}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 98, 'machine': 2, 'duration': 32}, {'task': 1, 'start': 182, 'machine': 0, 'duration': 90}, {'task': 2, 'start': 330, 'machine': 1, 'duration': 24}, {'task': 3, 'start': 515, 'machine': 4, 'duration': 77}, {'task': 4, 'start': 592, 'machine': 3, 'duration': 30}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 29}, {'task': 1, 'start': 29, 'machine': 0, 'duration': 55}, {'task': 2, 'start': 354, 'machine': 1, 'duration': 57}, {'task': 3, 'start': 506, 'machine': 4, 'duration': 9}, {'task': 4, 'start': 591, 'machine': 2, 'duration': 31}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 371, 'machine': 4, 'duration': 23}, {'task': 1, 'start': 415, 'machine': 2, 'duration': 41}, {'task': 2, 'start': 456, 'machine': 1, 'duration': 6}, {'task': 3, 'start': 513, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 536, 'machine': 3, 'duration': 42}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 85, 'machine': 3, 'duration': 25}, {'task': 1, 'start': 163, 'machine': 1, 'duration': 50}, {'task': 2, 'start': 491, 'machine': 4, 'duration': 15}, {'task': 3, 'start': 506, 'machine': 2, 'duration': 79}, {'task': 4, 'start': 611, 'machine': 0, 'duration': 4}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 90, 'machine': 4, 'duration': 25}, {'task': 1, 'start': 130, 'machine': 2, 'duration': 32}, {'task': 2, 'start': 244, 'machine': 1, 'duration': 9}, {'task': 3, 'start': 387, 'machine': 0, 'duration': 45}, {'task': 4, 'start': 476, 'machine': 3, 'duration': 53}]}, {'job': 10, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 91}, {'task': 1, 'start': 198, 'machine': 4, 'duration': 9}, {'task': 2, 'start': 207, 'machine': 2, 'duration': 45}, {'task': 3, 'start': 323, 'machine': 0, 'duration': 64}, {'task': 4, 'start': 387, 'machine': 3, 'duration': 89}]}]",622.0,"{'problem_type': 'JSP', 'nr_jobs': 11, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10', 'J11'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 4, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 31}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 5, 'duration': 98}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 3, 'duration': 44}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 81}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 83}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 1, 'duration': 5}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 4, 'duration': 38}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 42}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 38}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 3, 'duration': 98}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 4, 'duration': 67}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 1, 'duration': 46}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 5, 'duration': 97}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 60}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 55}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 2, 'duration': 72}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 5, 'duration': 66}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 3, 'duration': 97}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 1, 'duration': 75}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 5, 'duration': 90}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 4, 'duration': 7}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 65}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 3, 'duration': 2}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 77}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 3, 'duration': 32}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 1, 'duration': 90}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 2, 'duration': 24}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 5, 'duration': 77}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 4, 'duration': 30}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 4, 'duration': 29}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 1, 'duration': 55}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 2, 'duration': 57}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 5, 'duration': 9}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 3, 'duration': 31}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 5, 'duration': 23}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 41}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 2, 'duration': 6}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 23}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 42}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 25}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 2, 'duration': 50}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 5, 'duration': 15}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 79}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 1, 'duration': 4}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 5, 'duration': 25}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 3, 'duration': 32}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 2, 'duration': 9}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 1, 'duration': 45}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 4, 'duration': 53}, {'job_id': 'J11', 'task_id': 0, 'machine_id': 2, 'duration': 91}, {'job_id': 'J11', 'task_id': 1, 'machine_id': 5, 'duration': 9}, {'job_id': 'J11', 'task_id': 2, 'machine_id': 3, 'duration': 45}, {'job_id': 'J11', 'task_id': 3, 'machine_id': 1, 'duration': 64}, {'job_id': 'J11', 'task_id': 4, 'machine_id': 4, 'duration': 89}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 84, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 213, 'machine': 2, 'duration': 31}, {'task': 2, 'start': 273, 'machine': 5, 'duration': 98}, {'task': 3, 'start': 371, 'machine': 3, 'duration': 44}, {'task': 4, 'start': 432, 'machine': 1, 'duration': 81}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 115, 'machine': 5, 'duration': 83}, {'task': 1, 'start': 318, 'machine': 1, 'duration': 5}, {'task': 2, 'start': 323, 'machine': 4, 'duration': 38}, {'task': 3, 'start': 411, 'machine': 2, 'duration': 42}, {'task': 4, 'start': 456, 'machine': 3, 'duration': 38}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 98}, {'task': 1, 'start': 117, 'machine': 4, 'duration': 67}, {'task': 2, 'start': 272, 'machine': 1, 'duration': 46}, {'task': 3, 'start': 394, 'machine': 5, 'duration': 97}, {'task': 4, 'start': 491, 'machine': 2, 'duration': 60}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 29, 'machine': 4, 'duration': 55}, {'task': 1, 'start': 91, 'machine': 2, 'duration': 72}, {'task': 2, 'start': 207, 'machine': 5, 'duration': 66}, {'task': 3, 'start': 273, 'machine': 3, 'duration': 97}, {'task': 4, 'start': 536, 'machine': 1, 'duration': 75}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 90}, {'task': 1, 'start': 110, 'machine': 4, 'duration': 7}, {'task': 2, 'start': 117, 'machine': 1, 'duration': 65}, {'task': 3, 'start': 182, 'machine': 3, 'duration': 2}, {'task': 4, 'start': 253, 'machine': 2, 'duration': 77}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 98, 'machine': 3, 'duration': 32}, {'task': 1, 'start': 182, 'machine': 1, 'duration': 90}, {'task': 2, 'start': 330, 'machine': 2, 'duration': 24}, {'task': 3, 'start': 515, 'machine': 5, 'duration': 77}, {'task': 4, 'start': 592, 'machine': 4, 'duration': 30}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 29}, {'task': 1, 'start': 29, 'machine': 1, 'duration': 55}, {'task': 2, 'start': 354, 'machine': 2, 'duration': 57}, {'task': 3, 'start': 506, 'machine': 5, 'duration': 9}, {'task': 4, 'start': 591, 'machine': 3, 'duration': 31}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 371, 'machine': 5, 'duration': 23}, {'task': 1, 'start': 415, 'machine': 3, 'duration': 41}, {'task': 2, 'start': 456, 'machine': 2, 'duration': 6}, {'task': 3, 'start': 513, 'machine': 1, 'duration': 23}, {'task': 4, 'start': 536, 'machine': 4, 'duration': 42}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 85, 'machine': 4, 'duration': 25}, {'task': 1, 'start': 163, 'machine': 2, 'duration': 50}, {'task': 2, 'start': 491, 'machine': 5, 'duration': 15}, {'task': 3, 'start': 506, 'machine': 3, 'duration': 79}, {'task': 4, 'start': 611, 'machine': 1, 'duration': 4}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 90, 'machine': 5, 'duration': 25}, {'task': 1, 'start': 130, 'machine': 3, 'duration': 32}, {'task': 2, 'start': 244, 'machine': 2, 'duration': 9}, {'task': 3, 'start': 387, 'machine': 1, 'duration': 45}, {'task': 4, 'start': 476, 'machine': 4, 'duration': 53}]}, {'job': 'J11', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 91}, {'task': 1, 'start': 198, 'machine': 5, 'duration': 9}, {'task': 2, 'start': 207, 'machine': 3, 'duration': 45}, {'task': 3, 'start': 323, 'machine': 1, 'duration': 64}, {'task': 4, 'start': 387, 'machine': 4, 'duration': 89}]}]",45,markdown_table,1 JSP,JSP,"On a busy exam week the print room looks like a tiny factory: batch A needs printing, then stapling, then packing; batch B the same; and so on. Each batch must follow that order, each operation uses its designated equipment for a set duration, and no equipment can handle two batches at once. The win is the plan that gets the final batch completed earliest — check the clock time when the last batch finishes and try to reduce that time. The precise job-by-job times and machine assignments come next below. There are 10 batches and 6 equipment units; their identifiers are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 and A, B, C, D, E, F. Batch J1, operation 0 runs on equipment C for 1 time units. Batch J1, operation 1 runs on equipment F for 44 time units. Batch J1, operation 2 runs on equipment B for 74 time units. Batch J1, operation 3 runs on equipment D for 90 time units. Batch J1, operation 4 runs on equipment E for 35 time units. Batch J1, operation 5 runs on equipment A for 5 time units. Batch J2, operation 0 runs on equipment B for 10 time units. Batch J2, operation 1 runs on equipment F for 7 time units. Batch J2, operation 2 runs on equipment A for 10 time units. Batch J2, operation 3 runs on equipment E for 32 time units. Batch J2, operation 4 runs on equipment C for 37 time units. Batch J2, operation 5 runs on equipment D for 19 time units. Batch J3, operation 0 runs on equipment E for 30 time units. Batch J3, operation 1 runs on equipment A for 1 time units. Batch J3, operation 2 runs on equipment F for 65 time units. Batch J3, operation 3 runs on equipment D for 9 time units. Batch J3, operation 4 runs on equipment B for 39 time units. Batch J3, operation 5 runs on equipment C for 67 time units. Batch J4, operation 0 runs on equipment D for 36 time units. Batch J4, operation 1 runs on equipment F for 81 time units. Batch J4, operation 2 runs on equipment B for 32 time units. Batch J4, operation 3 runs on equipment C for 75 time units. Batch J4, operation 4 runs on equipment E for 24 time units. Batch J4, operation 5 runs on equipment A for 94 time units. Batch J5, operation 0 runs on equipment F for 62 time units. Batch J5, operation 1 runs on equipment E for 84 time units. Batch J5, operation 2 runs on equipment D for 1 time units. Batch J5, operation 3 runs on equipment A for 89 time units. Batch J5, operation 4 runs on equipment C for 20 time units. Batch J5, operation 5 runs on equipment B for 1 time units. Batch J6, operation 0 runs on equipment C for 20 time units. Batch J6, operation 1 runs on equipment B for 31 time units. Batch J6, operation 2 runs on equipment E for 83 time units. Batch J6, operation 3 runs on equipment F for 13 time units. Batch J6, operation 4 runs on equipment D for 4 time units. Batch J6, operation 5 runs on equipment A for 56 time units. Batch J7, operation 0 runs on equipment A for 4 time units. Batch J7, operation 1 runs on equipment D for 80 time units. Batch J7, operation 2 runs on equipment F for 22 time units. Batch J7, operation 3 runs on equipment E for 78 time units. Batch J7, operation 4 runs on equipment B for 49 time units. Batch J7, operation 5 runs on equipment C for 48 time units. Batch J8, operation 0 runs on equipment E for 87 time units. Batch J8, operation 1 runs on equipment A for 54 time units. Batch J8, operation 2 runs on equipment B for 68 time units. Batch J8, operation 3 runs on equipment D for 33 time units. Batch J8, operation 4 runs on equipment C for 95 time units. Batch J8, operation 5 runs on equipment F for 96 time units. Batch J9, operation 0 runs on equipment C for 72 time units. Batch J9, operation 1 runs on equipment D for 96 time units. Batch J9, operation 2 runs on equipment A for 68 time units. Batch J9, operation 3 runs on equipment B for 56 time units. Batch J9, operation 4 runs on equipment E for 68 time units. Batch J9, operation 5 runs on equipment F for 91 time units. Batch J10, operation 0 runs on equipment E for 26 time units. Batch J10, operation 1 runs on equipment D for 49 time units. Batch J10, operation 2 runs on equipment C for 33 time units. Batch J10, operation 3 runs on equipment A for 10 time units. Batch J10, operation 4 runs on equipment F for 11 time units. Batch J10, operation 5 runs on equipment B for 27 time units. Aim to finish the last of the 10 batches as early as possible. And when you send the actual schedule back, a neat little JSON sketch is all I need — nothing fancy. Just follow this shape so I can read it easily: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This just shows the overall shape: ""solution"" is a list of batches (jobs), each batch has a ""job"" id and a ""tasks"" list. Each task entry says which step number it is (""task""), when that step starts (""start""), which piece of equipment it uses (""machine""), and how long it takes (""duration""). Think of it like filling out a little form for each batch and each step — this example is only a sketch of the expected shape, not the actual schedule. Please be sure to use the exact identifiers from the instance input — don't rename them or invent new ones. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[2, 1], [5, 44], [1, 74], [3, 90], [4, 35], [0, 5]], [[1, 10], [5, 7], [0, 10], [4, 32], [2, 37], [3, 19]], [[4, 30], [0, 1], [5, 65], [3, 9], [1, 39], [2, 67]], [[3, 36], [5, 81], [1, 32], [2, 75], [4, 24], [0, 94]], [[5, 62], [4, 84], [3, 1], [0, 89], [2, 20], [1, 1]], [[2, 20], [1, 31], [4, 83], [5, 13], [3, 4], [0, 56]], [[0, 4], [3, 80], [5, 22], [4, 78], [1, 49], [2, 48]], [[4, 87], [0, 54], [1, 68], [3, 33], [2, 95], [5, 96]], [[2, 72], [3, 96], [0, 68], [1, 56], [4, 68], [5, 91]], [[4, 26], [3, 49], [2, 33], [0, 10], [5, 11], [1, 27]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 92, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 201, 'machine': 5, 'duration': 44}, {'task': 2, 'start': 270, 'machine': 1, 'duration': 74}, {'task': 3, 'start': 344, 'machine': 3, 'duration': 90}, {'task': 4, 'start': 512, 'machine': 4, 'duration': 35}, {'task': 5, 'start': 562, 'machine': 0, 'duration': 5}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 10}, {'task': 1, 'start': 10, 'machine': 5, 'duration': 7}, {'task': 2, 'start': 17, 'machine': 0, 'duration': 10}, {'task': 3, 'start': 480, 'machine': 4, 'duration': 32}, {'task': 4, 'start': 512, 'machine': 2, 'duration': 37}, {'task': 5, 'start': 549, 'machine': 3, 'duration': 19}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 87, 'machine': 4, 'duration': 30}, {'task': 1, 'start': 141, 'machine': 0, 'duration': 1}, {'task': 2, 'start': 245, 'machine': 5, 'duration': 65}, {'task': 3, 'start': 310, 'machine': 3, 'duration': 9}, {'task': 4, 'start': 400, 'machine': 1, 'duration': 39}, {'task': 5, 'start': 439, 'machine': 2, 'duration': 67}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 36}, {'task': 1, 'start': 36, 'machine': 5, 'duration': 81}, {'task': 2, 'start': 117, 'machine': 1, 'duration': 32}, {'task': 3, 'start': 149, 'machine': 2, 'duration': 75}, {'task': 4, 'start': 388, 'machine': 4, 'duration': 24}, {'task': 5, 'start': 412, 'machine': 0, 'duration': 94}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 139, 'machine': 5, 'duration': 62}, {'task': 1, 'start': 221, 'machine': 4, 'duration': 84}, {'task': 2, 'start': 305, 'machine': 3, 'duration': 1}, {'task': 3, 'start': 306, 'machine': 0, 'duration': 89}, {'task': 4, 'start': 549, 'machine': 2, 'duration': 20}, {'task': 5, 'start': 569, 'machine': 1, 'duration': 1}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 20}, {'task': 1, 'start': 20, 'machine': 1, 'duration': 31}, {'task': 2, 'start': 305, 'machine': 4, 'duration': 83}, {'task': 3, 'start': 441, 'machine': 5, 'duration': 13}, {'task': 4, 'start': 454, 'machine': 3, 'duration': 4}, {'task': 5, 'start': 506, 'machine': 0, 'duration': 56}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 4}, {'task': 1, 'start': 36, 'machine': 3, 'duration': 80}, {'task': 2, 'start': 117, 'machine': 5, 'duration': 22}, {'task': 3, 'start': 143, 'machine': 4, 'duration': 78}, {'task': 4, 'start': 221, 'machine': 1, 'duration': 49}, {'task': 5, 'start': 378, 'machine': 2, 'duration': 48}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 87}, {'task': 1, 'start': 87, 'machine': 0, 'duration': 54}, {'task': 2, 'start': 149, 'machine': 1, 'duration': 68}, {'task': 3, 'start': 217, 'machine': 3, 'duration': 33}, {'task': 4, 'start': 250, 'machine': 2, 'duration': 95}, {'task': 5, 'start': 345, 'machine': 5, 'duration': 96}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 20, 'machine': 2, 'duration': 72}, {'task': 1, 'start': 116, 'machine': 3, 'duration': 96}, {'task': 2, 'start': 212, 'machine': 0, 'duration': 68}, {'task': 3, 'start': 344, 'machine': 1, 'duration': 56}, {'task': 4, 'start': 412, 'machine': 4, 'duration': 68}, {'task': 5, 'start': 480, 'machine': 5, 'duration': 91}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 117, 'machine': 4, 'duration': 26}, {'task': 1, 'start': 250, 'machine': 3, 'duration': 49}, {'task': 2, 'start': 345, 'machine': 2, 'duration': 33}, {'task': 3, 'start': 395, 'machine': 0, 'duration': 10}, {'task': 4, 'start': 454, 'machine': 5, 'duration': 11}, {'task': 5, 'start': 465, 'machine': 1, 'duration': 27}]}]",571.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': ['A', 'B', 'C', 'D', 'E', 'F'], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 'C', 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 'F', 'duration': 44}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 'B', 'duration': 74}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 'D', 'duration': 90}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 'E', 'duration': 35}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 'A', 'duration': 5}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 'B', 'duration': 10}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 'F', 'duration': 7}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 'A', 'duration': 10}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 'E', 'duration': 32}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 'C', 'duration': 37}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 'D', 'duration': 19}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 'E', 'duration': 30}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 'A', 'duration': 1}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 'F', 'duration': 65}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 'D', 'duration': 9}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 'B', 'duration': 39}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 'C', 'duration': 67}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 'D', 'duration': 36}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 'F', 'duration': 81}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 'B', 'duration': 32}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 'C', 'duration': 75}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 'E', 'duration': 24}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 'A', 'duration': 94}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 'F', 'duration': 62}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 'E', 'duration': 84}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 'D', 'duration': 1}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 'A', 'duration': 89}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 'C', 'duration': 20}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 'B', 'duration': 1}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 'C', 'duration': 20}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 'B', 'duration': 31}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 'E', 'duration': 83}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 'F', 'duration': 13}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 'D', 'duration': 4}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 'A', 'duration': 56}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 'A', 'duration': 4}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 'D', 'duration': 80}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 'F', 'duration': 22}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 'E', 'duration': 78}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 'B', 'duration': 49}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 'C', 'duration': 48}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 'E', 'duration': 87}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 'A', 'duration': 54}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 'B', 'duration': 68}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 'D', 'duration': 33}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 'C', 'duration': 95}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 'F', 'duration': 96}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 'C', 'duration': 72}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 'D', 'duration': 96}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 'A', 'duration': 68}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 'B', 'duration': 56}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 'E', 'duration': 68}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 'F', 'duration': 91}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 'E', 'duration': 26}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 'D', 'duration': 49}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 'C', 'duration': 33}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 'A', 'duration': 10}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 'F', 'duration': 11}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 'B', 'duration': 27}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 92, 'machine': 'C', 'duration': 1}, {'task': 1, 'start': 201, 'machine': 'F', 'duration': 44}, {'task': 2, 'start': 270, 'machine': 'B', 'duration': 74}, {'task': 3, 'start': 344, 'machine': 'D', 'duration': 90}, {'task': 4, 'start': 512, 'machine': 'E', 'duration': 35}, {'task': 5, 'start': 562, 'machine': 'A', 'duration': 5}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 'B', 'duration': 10}, {'task': 1, 'start': 10, 'machine': 'F', 'duration': 7}, {'task': 2, 'start': 17, 'machine': 'A', 'duration': 10}, {'task': 3, 'start': 480, 'machine': 'E', 'duration': 32}, {'task': 4, 'start': 512, 'machine': 'C', 'duration': 37}, {'task': 5, 'start': 549, 'machine': 'D', 'duration': 19}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 87, 'machine': 'E', 'duration': 30}, {'task': 1, 'start': 141, 'machine': 'A', 'duration': 1}, {'task': 2, 'start': 245, 'machine': 'F', 'duration': 65}, {'task': 3, 'start': 310, 'machine': 'D', 'duration': 9}, {'task': 4, 'start': 400, 'machine': 'B', 'duration': 39}, {'task': 5, 'start': 439, 'machine': 'C', 'duration': 67}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 'D', 'duration': 36}, {'task': 1, 'start': 36, 'machine': 'F', 'duration': 81}, {'task': 2, 'start': 117, 'machine': 'B', 'duration': 32}, {'task': 3, 'start': 149, 'machine': 'C', 'duration': 75}, {'task': 4, 'start': 388, 'machine': 'E', 'duration': 24}, {'task': 5, 'start': 412, 'machine': 'A', 'duration': 94}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 139, 'machine': 'F', 'duration': 62}, {'task': 1, 'start': 221, 'machine': 'E', 'duration': 84}, {'task': 2, 'start': 305, 'machine': 'D', 'duration': 1}, {'task': 3, 'start': 306, 'machine': 'A', 'duration': 89}, {'task': 4, 'start': 549, 'machine': 'C', 'duration': 20}, {'task': 5, 'start': 569, 'machine': 'B', 'duration': 1}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 0, 'machine': 'C', 'duration': 20}, {'task': 1, 'start': 20, 'machine': 'B', 'duration': 31}, {'task': 2, 'start': 305, 'machine': 'E', 'duration': 83}, {'task': 3, 'start': 441, 'machine': 'F', 'duration': 13}, {'task': 4, 'start': 454, 'machine': 'D', 'duration': 4}, {'task': 5, 'start': 506, 'machine': 'A', 'duration': 56}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 'A', 'duration': 4}, {'task': 1, 'start': 36, 'machine': 'D', 'duration': 80}, {'task': 2, 'start': 117, 'machine': 'F', 'duration': 22}, {'task': 3, 'start': 143, 'machine': 'E', 'duration': 78}, {'task': 4, 'start': 221, 'machine': 'B', 'duration': 49}, {'task': 5, 'start': 378, 'machine': 'C', 'duration': 48}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 'E', 'duration': 87}, {'task': 1, 'start': 87, 'machine': 'A', 'duration': 54}, {'task': 2, 'start': 149, 'machine': 'B', 'duration': 68}, {'task': 3, 'start': 217, 'machine': 'D', 'duration': 33}, {'task': 4, 'start': 250, 'machine': 'C', 'duration': 95}, {'task': 5, 'start': 345, 'machine': 'F', 'duration': 96}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 20, 'machine': 'C', 'duration': 72}, {'task': 1, 'start': 116, 'machine': 'D', 'duration': 96}, {'task': 2, 'start': 212, 'machine': 'A', 'duration': 68}, {'task': 3, 'start': 344, 'machine': 'B', 'duration': 56}, {'task': 4, 'start': 412, 'machine': 'E', 'duration': 68}, {'task': 5, 'start': 480, 'machine': 'F', 'duration': 91}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 117, 'machine': 'E', 'duration': 26}, {'task': 1, 'start': 250, 'machine': 'D', 'duration': 49}, {'task': 2, 'start': 345, 'machine': 'C', 'duration': 33}, {'task': 3, 'start': 395, 'machine': 'A', 'duration': 10}, {'task': 4, 'start': 454, 'machine': 'F', 'duration': 11}, {'task': 5, 'start': 465, 'machine': 'B', 'duration': 27}]}]",46,nl,names JSP,JSP,"There’s a busy little workshop where the supervisor needs to line up cutting, assembly, and finishing tasks across a handful of saws, benches, and booths. Every piece has a fixed sequence of steps that must happen in order, each step belongs on a particular station for a given stretch of time, and stations can’t overlap jobs. The aim is to get the whole lot finished in the shortest possible time — basically, make the moment when the last piece is done as early as it can be. Every operation must be scheduled exactly once; nothing gets skipped or doubled. The specific orders, machines, and times are shown below. Here are the 9 pieces to schedule across 5 stations: piece IDs J1, J2, J3, J4, J5, J6, J7, J8, J9 and station IDs 1, 2, 3, 4, 5. | piece_id | operation_index | station_id | processing_time | |---|---|---|---| | J1 | 0 | 5 | 1 | | J1 | 1 | 3 | 57 | | J1 | 2 | 2 | 49 | | J1 | 3 | 4 | 36 | | J1 | 4 | 1 | 88 | | J2 | 0 | 5 | 27 | | J2 | 1 | 1 | 14 | | J2 | 2 | 2 | 74 | | J2 | 3 | 4 | 78 | | J2 | 4 | 3 | 26 | | J3 | 0 | 5 | 75 | | J3 | 1 | 2 | 71 | | J3 | 2 | 3 | 13 | | J3 | 3 | 1 | 5 | | J3 | 4 | 4 | 70 | | J4 | 0 | 3 | 61 | | J4 | 1 | 2 | 7 | | J4 | 2 | 1 | 68 | | J4 | 3 | 5 | 74 | | J4 | 4 | 4 | 88 | | J5 | 0 | 2 | 74 | | J5 | 1 | 1 | 44 | | J5 | 2 | 4 | 83 | | J5 | 3 | 5 | 87 | | J5 | 4 | 3 | 46 | | J6 | 0 | 5 | 37 | | J6 | 1 | 4 | 10 | | J6 | 2 | 2 | 54 | | J6 | 3 | 1 | 61 | | J6 | 4 | 3 | 70 | | J7 | 0 | 5 | 11 | | J7 | 1 | 2 | 8 | | J7 | 2 | 4 | 10 | | J7 | 3 | 3 | 18 | | J7 | 4 | 1 | 77 | | J8 | 0 | 2 | 88 | | J8 | 1 | 5 | 67 | | J8 | 2 | 1 | 56 | | J8 | 3 | 3 | 21 | | J8 | 4 | 4 | 15 | | J9 | 0 | 3 | 74 | | J9 | 1 | 1 | 46 | | J9 | 2 | 2 | 59 | | J9 | 3 | 5 | 30 | | J9 | 4 | 4 | 34 | Schedule each listed operation exactly once so the last piece finishes as early as possible. Also, when you give the schedule back, just use this simple JSON layout so everything is clear and consistent: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just the shape I need — one object with a ""solution"" list, one entry per job, and each job listing its tasks. In plain terms: - ""job"" is the job identifier. - ""tasks"" is the list of operations for that job in whatever order you schedule them. - ""task"" is the task's index (which step it is within the job). - ""start"" is the scheduled start time for that task. - ""machine"" is the machine/station the task runs on. - ""duration"" is how long the task runs. Keep in mind this JSON is only a sketch of the expected shape, not the actual schedule — you'll fill in the real values for each field. Please use the identifiers exactly as they appear in the instance input — do not rename them and do not invent new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[4, 1], [2, 57], [1, 49], [3, 36], [0, 88]], [[4, 27], [0, 14], [1, 74], [3, 78], [2, 26]], [[4, 75], [1, 71], [2, 13], [0, 5], [3, 70]], [[2, 61], [1, 7], [0, 68], [4, 74], [3, 88]], [[1, 74], [0, 44], [3, 83], [4, 87], [2, 46]], [[4, 37], [3, 10], [1, 54], [0, 61], [2, 70]], [[4, 11], [1, 8], [3, 10], [2, 18], [0, 77]], [[1, 88], [4, 67], [0, 56], [2, 21], [3, 15]], [[2, 74], [0, 46], [1, 59], [4, 30], [3, 34]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 112, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 135, 'machine': 2, 'duration': 57}, {'task': 2, 'start': 214, 'machine': 1, 'duration': 49}, {'task': 3, 'start': 285, 'machine': 3, 'duration': 36}, {'task': 4, 'start': 321, 'machine': 0, 'duration': 88}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 113, 'machine': 4, 'duration': 27}, {'task': 1, 'start': 186, 'machine': 0, 'duration': 14}, {'task': 2, 'start': 351, 'machine': 1, 'duration': 74}, {'task': 3, 'start': 425, 'machine': 3, 'duration': 78}, {'task': 4, 'start': 503, 'machine': 2, 'duration': 26}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 75}, {'task': 1, 'start': 81, 'machine': 1, 'duration': 71}, {'task': 2, 'start': 192, 'machine': 2, 'duration': 13}, {'task': 3, 'start': 205, 'machine': 0, 'duration': 5}, {'task': 4, 'start': 215, 'machine': 3, 'duration': 70}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 61}, {'task': 1, 'start': 74, 'machine': 1, 'duration': 7}, {'task': 2, 'start': 118, 'machine': 0, 'duration': 68}, {'task': 3, 'start': 186, 'machine': 4, 'duration': 74}, {'task': 4, 'start': 321, 'machine': 3, 'duration': 88}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 74}, {'task': 1, 'start': 74, 'machine': 0, 'duration': 44}, {'task': 2, 'start': 122, 'machine': 3, 'duration': 83}, {'task': 3, 'start': 260, 'machine': 4, 'duration': 87}, {'task': 4, 'start': 387, 'machine': 2, 'duration': 46}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 75, 'machine': 4, 'duration': 37}, {'task': 1, 'start': 112, 'machine': 3, 'duration': 10}, {'task': 2, 'start': 160, 'machine': 1, 'duration': 54}, {'task': 3, 'start': 256, 'machine': 0, 'duration': 61}, {'task': 4, 'start': 317, 'machine': 2, 'duration': 70}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 140, 'machine': 4, 'duration': 11}, {'task': 1, 'start': 152, 'machine': 1, 'duration': 8}, {'task': 2, 'start': 205, 'machine': 3, 'duration': 10}, {'task': 3, 'start': 215, 'machine': 2, 'duration': 18}, {'task': 4, 'start': 474, 'machine': 0, 'duration': 77}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 263, 'machine': 1, 'duration': 88}, {'task': 1, 'start': 351, 'machine': 4, 'duration': 67}, {'task': 2, 'start': 418, 'machine': 0, 'duration': 56}, {'task': 3, 'start': 474, 'machine': 2, 'duration': 21}, {'task': 4, 'start': 503, 'machine': 3, 'duration': 15}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 61, 'machine': 2, 'duration': 74}, {'task': 1, 'start': 210, 'machine': 0, 'duration': 46}, {'task': 2, 'start': 425, 'machine': 1, 'duration': 59}, {'task': 3, 'start': 484, 'machine': 4, 'duration': 30}, {'task': 4, 'start': 518, 'machine': 3, 'duration': 34}]}]",552.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 5, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 3, 'duration': 57}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 49}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 36}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 88}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 27}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 1, 'duration': 14}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 2, 'duration': 74}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 78}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 26}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 5, 'duration': 75}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 2, 'duration': 71}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 3, 'duration': 13}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 5}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 70}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 3, 'duration': 61}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 2, 'duration': 7}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 68}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 5, 'duration': 74}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 4, 'duration': 88}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 2, 'duration': 74}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 44}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 4, 'duration': 83}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 5, 'duration': 87}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 3, 'duration': 46}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 5, 'duration': 37}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 4, 'duration': 10}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 2, 'duration': 54}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 1, 'duration': 61}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 3, 'duration': 70}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 5, 'duration': 11}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 2, 'duration': 8}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 10}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 3, 'duration': 18}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 1, 'duration': 77}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 2, 'duration': 88}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 5, 'duration': 67}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 1, 'duration': 56}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 3, 'duration': 21}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 4, 'duration': 15}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 3, 'duration': 74}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 46}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 2, 'duration': 59}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 5, 'duration': 30}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 4, 'duration': 34}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 112, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 135, 'machine': 3, 'duration': 57}, {'task': 2, 'start': 214, 'machine': 2, 'duration': 49}, {'task': 3, 'start': 285, 'machine': 4, 'duration': 36}, {'task': 4, 'start': 321, 'machine': 1, 'duration': 88}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 113, 'machine': 5, 'duration': 27}, {'task': 1, 'start': 186, 'machine': 1, 'duration': 14}, {'task': 2, 'start': 351, 'machine': 2, 'duration': 74}, {'task': 3, 'start': 425, 'machine': 4, 'duration': 78}, {'task': 4, 'start': 503, 'machine': 3, 'duration': 26}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 75}, {'task': 1, 'start': 81, 'machine': 2, 'duration': 71}, {'task': 2, 'start': 192, 'machine': 3, 'duration': 13}, {'task': 3, 'start': 205, 'machine': 1, 'duration': 5}, {'task': 4, 'start': 215, 'machine': 4, 'duration': 70}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 61}, {'task': 1, 'start': 74, 'machine': 2, 'duration': 7}, {'task': 2, 'start': 118, 'machine': 1, 'duration': 68}, {'task': 3, 'start': 186, 'machine': 5, 'duration': 74}, {'task': 4, 'start': 321, 'machine': 4, 'duration': 88}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 74}, {'task': 1, 'start': 74, 'machine': 1, 'duration': 44}, {'task': 2, 'start': 122, 'machine': 4, 'duration': 83}, {'task': 3, 'start': 260, 'machine': 5, 'duration': 87}, {'task': 4, 'start': 387, 'machine': 3, 'duration': 46}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 75, 'machine': 5, 'duration': 37}, {'task': 1, 'start': 112, 'machine': 4, 'duration': 10}, {'task': 2, 'start': 160, 'machine': 2, 'duration': 54}, {'task': 3, 'start': 256, 'machine': 1, 'duration': 61}, {'task': 4, 'start': 317, 'machine': 3, 'duration': 70}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 140, 'machine': 5, 'duration': 11}, {'task': 1, 'start': 152, 'machine': 2, 'duration': 8}, {'task': 2, 'start': 205, 'machine': 4, 'duration': 10}, {'task': 3, 'start': 215, 'machine': 3, 'duration': 18}, {'task': 4, 'start': 474, 'machine': 1, 'duration': 77}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 263, 'machine': 2, 'duration': 88}, {'task': 1, 'start': 351, 'machine': 5, 'duration': 67}, {'task': 2, 'start': 418, 'machine': 1, 'duration': 56}, {'task': 3, 'start': 474, 'machine': 3, 'duration': 21}, {'task': 4, 'start': 503, 'machine': 4, 'duration': 15}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 61, 'machine': 3, 'duration': 74}, {'task': 1, 'start': 210, 'machine': 1, 'duration': 46}, {'task': 2, 'start': 425, 'machine': 2, 'duration': 59}, {'task': 3, 'start': 484, 'machine': 5, 'duration': 30}, {'task': 4, 'start': 518, 'machine': 4, 'duration': 34}]}]",47,markdown_table,1 JSP,JSP,"There's a studio manager juggling several portrait shoots where every shoot needs a round of makeup, a photo session, then a retouch pass; each part must happen on its assigned chair or studio and lasts a set amount of time. The manager needs to schedule those steps so they happen in the right sequence for each client, nothing is left out or doubled up, and no chair or room is booked by two sessions at once. The aim is to make the whole day wrap up as soon as possible — you find that by checking all session finish times and using the latest one as the day’s end; the smaller that value, the better the schedule. The concrete details are shown below. { ""total_sessions"": 9, ""total_assets"": 5, ""session_ids"": [ ""J1"", ""J2"", ""J3"", ""J4"", ""J5"", ""J6"", ""J7"", ""J8"", ""J9"" ], ""asset_ids"": [ 0, 1, 2, 3, 4 ], ""tasks"": [ { ""session_id"": ""J1"", ""step_index"": 0, ""asset_id"": 1, ""step_duration"": 1 }, { ""session_id"": ""J1"", ""step_index"": 1, ""asset_id"": 2, ""step_duration"": 70 }, { ""session_id"": ""J1"", ""step_index"": 2, ""asset_id"": 3, ""step_duration"": 25 }, { ""session_id"": ""J1"", ""step_index"": 3, ""asset_id"": 4, ""step_duration"": 82 }, { ""session_id"": ""J1"", ""step_index"": 4, ""asset_id"": 0, ""step_duration"": 42 }, { ""session_id"": ""J2"", ""step_index"": 0, ""asset_id"": 2, ""step_duration"": 49 }, { ""session_id"": ""J2"", ""step_index"": 1, ""asset_id"": 3, ""step_duration"": 19 }, { ""session_id"": ""J2"", ""step_index"": 2, ""asset_id"": 1, ""step_duration"": 42 }, { ""session_id"": ""J2"", ""step_index"": 3, ""asset_id"": 4, ""step_duration"": 46 }, { ""session_id"": ""J2"", ""step_index"": 4, ""asset_id"": 0, ""step_duration"": 19 }, { ""session_id"": ""J3"", ""step_index"": 0, ""asset_id"": 1, ""step_duration"": 14 }, { ""session_id"": ""J3"", ""step_index"": 1, ""asset_id"": 4, ""step_duration"": 23 }, { ""session_id"": ""J3"", ""step_index"": 2, ""asset_id"": 3, ""step_duration"": 95 }, { ""session_id"": ""J3"", ""step_index"": 3, ""asset_id"": 0, ""step_duration"": 8 }, { ""session_id"": ""J3"", ""step_index"": 4, ""asset_id"": 2, ""step_duration"": 76 }, { ""session_id"": ""J4"", ""step_index"": 0, ""asset_id"": 2, ""step_duration"": 15 }, { ""session_id"": ""J4"", ""step_index"": 1, ""asset_id"": 0, ""step_duration"": 73 }, { ""session_id"": ""J4"", ""step_index"": 2, ""asset_id"": 1, ""step_duration"": 68 }, { ""session_id"": ""J4"", ""step_index"": 3, ""asset_id"": 4, ""step_duration"": 13 }, { ""session_id"": ""J4"", ""step_index"": 4, ""asset_id"": 3, ""step_duration"": 94 }, { ""session_id"": ""J5"", ""step_index"": 0, ""asset_id"": 4, ""step_duration"": 16 }, { ""session_id"": ""J5"", ""step_index"": 1, ""asset_id"": 3, ""step_duration"": 13 }, { ""session_id"": ""J5"", ""step_index"": 2, ""asset_id"": 0, ""step_duration"": 42 }, { ""session_id"": ""J5"", ""step_index"": 3, ""asset_id"": 2, ""step_duration"": 81 }, { ""session_id"": ""J5"", ""step_index"": 4, ""asset_id"": 1, ""step_duration"": 31 }, { ""session_id"": ""J6"", ""step_index"": 0, ""asset_id"": 1, ""step_duration"": 89 }, { ""session_id"": ""J6"", ""step_index"": 1, ""asset_id"": 2, ""step_duration"": 19 }, { ""session_id"": ""J6"", ""step_index"": 2, ""asset_id"": 4, ""step_duration"": 20 }, { ""session_id"": ""J6"", ""step_index"": 3, ""asset_id"": 3, ""step_duration"": 3 }, { ""session_id"": ""J6"", ""step_index"": 4, ""asset_id"": 0, ""step_duration"": 41 }, { ""session_id"": ""J7"", ""step_index"": 0, ""asset_id"": 1, ""step_duration"": 2 }, { ""session_id"": ""J7"", ""step_index"": 1, ""asset_id"": 3, ""step_duration"": 83 }, { ""session_id"": ""J7"", ""step_index"": 2, ""asset_id"": 2, ""step_duration"": 36 }, { ""session_id"": ""J7"", ""step_index"": 3, ""asset_id"": 0, ""step_duration"": 23 }, { ""session_id"": ""J7"", ""step_index"": 4, ""asset_id"": 4, ""step_duration"": 51 }, { ""session_id"": ""J8"", ""step_index"": 0, ""asset_id"": 2, ""step_duration"": 22 }, { ""session_id"": ""J8"", ""step_index"": 1, ""asset_id"": 3, ""step_duration"": 31 }, { ""session_id"": ""J8"", ""step_index"": 2, ""asset_id"": 4, ""step_duration"": 32 }, { ""session_id"": ""J8"", ""step_index"": 3, ""asset_id"": 1, ""step_duration"": 21 }, { ""session_id"": ""J8"", ""step_index"": 4, ""asset_id"": 0, ""step_duration"": 51 }, { ""session_id"": ""J9"", ""step_index"": 0, ""asset_id"": 2, ""step_duration"": 98 }, { ""session_id"": ""J9"", ""step_index"": 1, ""asset_id"": 1, ""step_duration"": 45 }, { ""session_id"": ""J9"", ""step_index"": 2, ""asset_id"": 0, ""step_duration"": 32 }, { ""session_id"": ""J9"", ""step_index"": 3, ""asset_id"": 3, ""step_duration"": 5 }, { ""session_id"": ""J9"", ""step_index"": 4, ""asset_id"": 4, ""step_duration"": 98 } ] } Oh, and when you send the schedule back, please follow this JSON layout — just a simple sketch of the shape I need: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } This is just a friendly form: ""solution"" holds a list of sessions (jobs). Each session has a job id and a list of tasks; each task entry says which step it is (task index), when it starts, which chair or studio it uses (machine), and how long it runs (duration). Think of job as the client/session, task as the ordered step (makeup, photo, retouch), start as the time the step begins, machine as the specific chair/room, and duration as how long that step takes. This JSON is only the expected shape — not the actual schedule answer. Please make sure to use the exact identifiers from the instance input, without renaming or inventing new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 5, 'nr_jobs': 9, 'jobs': [[[1, 1], [2, 70], [3, 25], [4, 82], [0, 42]], [[2, 49], [3, 19], [1, 42], [4, 46], [0, 19]], [[1, 14], [4, 23], [3, 95], [0, 8], [2, 76]], [[2, 15], [0, 73], [1, 68], [4, 13], [3, 94]], [[4, 16], [3, 13], [0, 42], [2, 81], [1, 31]], [[1, 89], [2, 19], [4, 20], [3, 3], [0, 41]], [[1, 2], [3, 83], [2, 36], [0, 23], [4, 51]], [[2, 22], [3, 31], [4, 32], [1, 21], [0, 51]], [[2, 98], [1, 45], [0, 32], [3, 5], [4, 98]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 2, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 15, 'machine': 2, 'duration': 70}, {'task': 2, 'start': 85, 'machine': 3, 'duration': 25}, {'task': 3, 'start': 110, 'machine': 4, 'duration': 82}, {'task': 4, 'start': 192, 'machine': 0, 'duration': 42}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 85, 'machine': 2, 'duration': 49}, {'task': 1, 'start': 134, 'machine': 3, 'duration': 19}, {'task': 2, 'start': 174, 'machine': 1, 'duration': 42}, {'task': 3, 'start': 216, 'machine': 4, 'duration': 46}, {'task': 4, 'start': 265, 'machine': 0, 'duration': 19}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 3, 'machine': 1, 'duration': 14}, {'task': 1, 'start': 17, 'machine': 4, 'duration': 23}, {'task': 2, 'start': 153, 'machine': 3, 'duration': 95}, {'task': 3, 'start': 257, 'machine': 0, 'duration': 8}, {'task': 4, 'start': 390, 'machine': 2, 'duration': 76}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 15}, {'task': 1, 'start': 15, 'machine': 0, 'duration': 73}, {'task': 2, 'start': 106, 'machine': 1, 'duration': 68}, {'task': 3, 'start': 192, 'machine': 4, 'duration': 13}, {'task': 4, 'start': 350, 'machine': 3, 'duration': 94}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 16}, {'task': 1, 'start': 110, 'machine': 3, 'duration': 13}, {'task': 2, 'start': 124, 'machine': 0, 'duration': 42}, {'task': 3, 'start': 309, 'machine': 2, 'duration': 81}, {'task': 4, 'start': 390, 'machine': 1, 'duration': 31}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 17, 'machine': 1, 'duration': 89}, {'task': 1, 'start': 290, 'machine': 2, 'duration': 19}, {'task': 2, 'start': 313, 'machine': 4, 'duration': 20}, {'task': 3, 'start': 333, 'machine': 3, 'duration': 3}, {'task': 4, 'start': 345, 'machine': 0, 'duration': 41}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 2}, {'task': 1, 'start': 2, 'machine': 3, 'duration': 83}, {'task': 2, 'start': 134, 'machine': 2, 'duration': 36}, {'task': 3, 'start': 234, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 262, 'machine': 4, 'duration': 51}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 268, 'machine': 2, 'duration': 22}, {'task': 1, 'start': 290, 'machine': 3, 'duration': 31}, {'task': 2, 'start': 333, 'machine': 4, 'duration': 32}, {'task': 3, 'start': 365, 'machine': 1, 'duration': 21}, {'task': 4, 'start': 386, 'machine': 0, 'duration': 51}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 170, 'machine': 2, 'duration': 98}, {'task': 1, 'start': 268, 'machine': 1, 'duration': 45}, {'task': 2, 'start': 313, 'machine': 0, 'duration': 32}, {'task': 3, 'start': 345, 'machine': 3, 'duration': 5}, {'task': 4, 'start': 365, 'machine': 4, 'duration': 98}]}]",466.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 5, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [0, 1, 2, 3, 4], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 1, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 2, 'duration': 70}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 3, 'duration': 25}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 82}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 0, 'duration': 42}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 2, 'duration': 49}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 3, 'duration': 19}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 1, 'duration': 42}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 4, 'duration': 46}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 0, 'duration': 19}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 1, 'duration': 14}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 4, 'duration': 23}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 3, 'duration': 95}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 0, 'duration': 8}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 2, 'duration': 76}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 2, 'duration': 15}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 0, 'duration': 73}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 68}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 4, 'duration': 13}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 94}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 16}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 3, 'duration': 13}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 0, 'duration': 42}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 2, 'duration': 81}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 1, 'duration': 31}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 1, 'duration': 89}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 2, 'duration': 19}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 4, 'duration': 20}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 3, 'duration': 3}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 0, 'duration': 41}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 2}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 83}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 2, 'duration': 36}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 0, 'duration': 23}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 4, 'duration': 51}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 2, 'duration': 22}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 31}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 32}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 1, 'duration': 21}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 0, 'duration': 51}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 2, 'duration': 98}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 1, 'duration': 45}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 0, 'duration': 32}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 3, 'duration': 5}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 4, 'duration': 98}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 2, 'machine': 1, 'duration': 1}, {'task': 1, 'start': 15, 'machine': 2, 'duration': 70}, {'task': 2, 'start': 85, 'machine': 3, 'duration': 25}, {'task': 3, 'start': 110, 'machine': 4, 'duration': 82}, {'task': 4, 'start': 192, 'machine': 0, 'duration': 42}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 85, 'machine': 2, 'duration': 49}, {'task': 1, 'start': 134, 'machine': 3, 'duration': 19}, {'task': 2, 'start': 174, 'machine': 1, 'duration': 42}, {'task': 3, 'start': 216, 'machine': 4, 'duration': 46}, {'task': 4, 'start': 265, 'machine': 0, 'duration': 19}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 3, 'machine': 1, 'duration': 14}, {'task': 1, 'start': 17, 'machine': 4, 'duration': 23}, {'task': 2, 'start': 153, 'machine': 3, 'duration': 95}, {'task': 3, 'start': 257, 'machine': 0, 'duration': 8}, {'task': 4, 'start': 390, 'machine': 2, 'duration': 76}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 15}, {'task': 1, 'start': 15, 'machine': 0, 'duration': 73}, {'task': 2, 'start': 106, 'machine': 1, 'duration': 68}, {'task': 3, 'start': 192, 'machine': 4, 'duration': 13}, {'task': 4, 'start': 350, 'machine': 3, 'duration': 94}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 16}, {'task': 1, 'start': 110, 'machine': 3, 'duration': 13}, {'task': 2, 'start': 124, 'machine': 0, 'duration': 42}, {'task': 3, 'start': 309, 'machine': 2, 'duration': 81}, {'task': 4, 'start': 390, 'machine': 1, 'duration': 31}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 17, 'machine': 1, 'duration': 89}, {'task': 1, 'start': 290, 'machine': 2, 'duration': 19}, {'task': 2, 'start': 313, 'machine': 4, 'duration': 20}, {'task': 3, 'start': 333, 'machine': 3, 'duration': 3}, {'task': 4, 'start': 345, 'machine': 0, 'duration': 41}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 2}, {'task': 1, 'start': 2, 'machine': 3, 'duration': 83}, {'task': 2, 'start': 134, 'machine': 2, 'duration': 36}, {'task': 3, 'start': 234, 'machine': 0, 'duration': 23}, {'task': 4, 'start': 262, 'machine': 4, 'duration': 51}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 268, 'machine': 2, 'duration': 22}, {'task': 1, 'start': 290, 'machine': 3, 'duration': 31}, {'task': 2, 'start': 333, 'machine': 4, 'duration': 32}, {'task': 3, 'start': 365, 'machine': 1, 'duration': 21}, {'task': 4, 'start': 386, 'machine': 0, 'duration': 51}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 170, 'machine': 2, 'duration': 98}, {'task': 1, 'start': 268, 'machine': 1, 'duration': 45}, {'task': 2, 'start': 313, 'machine': 0, 'duration': 32}, {'task': 3, 'start': 345, 'machine': 3, 'duration': 5}, {'task': 4, 'start': 365, 'machine': 4, 'duration': 98}]}]",48,json,0 JSP,JSP,"Many people think of repair benches as interchangeable, but here every device requires diagnostics, a parts change, then testing — and each step is fixed to a particular bench and length of time. The challenge for the depot coordinator is to arrange the start times so every device follows its step order, every step stays on its correct bench for the full duration, nothing is skipped or duplicated, and benches never have overlapping tasks. The best arrangement is the one that minimizes how long you wait for the whole batch to be finished — i.e., the moment the very last device completes. The detailed list of units, benches, and durations is shown below. There are 10 devices and 6 benches: the device identifiers are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 and the bench identifiers are 0, 1, 2, 3, 4, 5. Device J1, step 0 is fixed to bench 3 and runs for 1. Device J1, step 1 is fixed to bench 4 and runs for 84. Device J1, step 2 is fixed to bench 2 and runs for 1. Device J1, step 3 is fixed to bench 5 and runs for 28. Device J1, step 4 is fixed to bench 1 and runs for 94. Device J1, step 5 is fixed to bench 0 and runs for 70. Device J2, step 0 is fixed to bench 5 and runs for 24. Device J2, step 1 is fixed to bench 4 and runs for 10. Device J2, step 2 is fixed to bench 0 and runs for 14. Device J2, step 3 is fixed to bench 2 and runs for 13. Device J2, step 4 is fixed to bench 3 and runs for 52. Device J2, step 5 is fixed to bench 1 and runs for 74. Device J3, step 0 is fixed to bench 5 and runs for 78. Device J3, step 1 is fixed to bench 0 and runs for 12. Device J3, step 2 is fixed to bench 2 and runs for 81. Device J3, step 3 is fixed to bench 1 and runs for 67. Device J3, step 4 is fixed to bench 4 and runs for 40. Device J3, step 5 is fixed to bench 3 and runs for 69. Device J4, step 0 is fixed to bench 3 and runs for 51. Device J4, step 1 is fixed to bench 0 and runs for 2. Device J4, step 2 is fixed to bench 1 and runs for 57. Device J4, step 3 is fixed to bench 2 and runs for 81. Device J4, step 4 is fixed to bench 5 and runs for 1. Device J4, step 5 is fixed to bench 4 and runs for 74. Device J5, step 0 is fixed to bench 4 and runs for 16. Device J5, step 1 is fixed to bench 1 and runs for 42. Device J5, step 2 is fixed to bench 0 and runs for 28. Device J5, step 3 is fixed to bench 3 and runs for 85. Device J5, step 4 is fixed to bench 5 and runs for 44. Device J5, step 5 is fixed to bench 2 and runs for 11. Device J6, step 0 is fixed to bench 2 and runs for 92. Device J6, step 1 is fixed to bench 3 and runs for 60. Device J6, step 2 is fixed to bench 1 and runs for 62. Device J6, step 3 is fixed to bench 0 and runs for 27. Device J6, step 4 is fixed to bench 5 and runs for 25. Device J6, step 5 is fixed to bench 4 and runs for 54. Device J7, step 0 is fixed to bench 1 and runs for 93. Device J7, step 1 is fixed to bench 3 and runs for 8. Device J7, step 2 is fixed to bench 4 and runs for 20. Device J7, step 3 is fixed to bench 5 and runs for 88. Device J7, step 4 is fixed to bench 2 and runs for 24. Device J7, step 5 is fixed to bench 0 and runs for 43. Device J8, step 0 is fixed to bench 2 and runs for 4. Device J8, step 1 is fixed to bench 3 and runs for 80. Device J8, step 2 is fixed to bench 4 and runs for 64. Device J8, step 3 is fixed to bench 0 and runs for 54. Device J8, step 4 is fixed to bench 1 and runs for 84. Device J8, step 5 is fixed to bench 5 and runs for 62. Device J9, step 0 is fixed to bench 0 and runs for 54. Device J9, step 1 is fixed to bench 5 and runs for 28. Device J9, step 2 is fixed to bench 1 and runs for 98. Device J9, step 3 is fixed to bench 2 and runs for 99. Device J9, step 4 is fixed to bench 4 and runs for 40. Device J9, step 5 is fixed to bench 3 and runs for 74. Device J10, step 0 is fixed to bench 3 and runs for 34. Device J10, step 1 is fixed to bench 4 and runs for 98. Device J10, step 2 is fixed to bench 1 and runs for 78. Device J10, step 3 is fixed to bench 5 and runs for 79. Device J10, step 4 is fixed to bench 0 and runs for 83. Device J10, step 5 is fixed to bench 2 and runs for 45. Use this list to schedule start times so each device follows its steps on the correct benches and the moment the last device finishes is minimized. If you want to give me a candidate schedule, just drop it in this simple JSON shape so I can parse it easily — nothing fancy, just the fields I need. { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of it like a little form: each job (one device) gets a list of its tasks in order; every task entry says which step number it is, when that step starts, which bench (machine) it uses, and how long it runs. Super simple — just fill in the real IDs and numbers. This JSON is just a sketch of the shape I expect, not the actual schedule — please return the real values for the instance instead of these placeholders. Please use the identifiers exactly as they appear in the instance input — do not rename them or invent new labels. Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.","{'nr_machines': 6, 'nr_jobs': 10, 'jobs': [[[3, 1], [4, 84], [2, 1], [5, 28], [1, 94], [0, 70]], [[5, 24], [4, 10], [0, 14], [2, 13], [3, 52], [1, 74]], [[5, 78], [0, 12], [2, 81], [1, 67], [4, 40], [3, 69]], [[3, 51], [0, 2], [1, 57], [2, 81], [5, 1], [4, 74]], [[4, 16], [1, 42], [0, 28], [3, 85], [5, 44], [2, 11]], [[2, 92], [3, 60], [1, 62], [0, 27], [5, 25], [4, 54]], [[1, 93], [3, 8], [4, 20], [5, 88], [2, 24], [0, 43]], [[2, 4], [3, 80], [4, 64], [0, 54], [1, 84], [5, 62]], [[0, 54], [5, 28], [1, 98], [2, 99], [4, 40], [3, 74]], [[3, 34], [4, 98], [1, 78], [5, 79], [0, 83], [2, 45]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 114, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 132, 'machine': 4, 'duration': 84}, {'task': 2, 'start': 216, 'machine': 2, 'duration': 1}, {'task': 3, 'start': 217, 'machine': 5, 'duration': 28}, {'task': 4, 'start': 497, 'machine': 1, 'duration': 94}, {'task': 5, 'start': 620, 'machine': 0, 'duration': 70}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 106, 'machine': 5, 'duration': 24}, {'task': 1, 'start': 300, 'machine': 4, 'duration': 10}, {'task': 2, 'start': 334, 'machine': 0, 'duration': 14}, {'task': 3, 'start': 348, 'machine': 2, 'duration': 13}, {'task': 4, 'start': 361, 'machine': 3, 'duration': 52}, {'task': 5, 'start': 675, 'machine': 1, 'duration': 74}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 78}, {'task': 1, 'start': 78, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 96, 'machine': 2, 'duration': 81}, {'task': 3, 'start': 368, 'machine': 1, 'duration': 67}, {'task': 4, 'start': 435, 'machine': 4, 'duration': 40}, {'task': 5, 'start': 487, 'machine': 3, 'duration': 69}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 115, 'machine': 3, 'duration': 51}, {'task': 1, 'start': 166, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 311, 'machine': 1, 'duration': 57}, {'task': 3, 'start': 368, 'machine': 2, 'duration': 81}, {'task': 4, 'start': 467, 'machine': 5, 'duration': 1}, {'task': 5, 'start': 475, 'machine': 4, 'duration': 74}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 16}, {'task': 1, 'start': 93, 'machine': 1, 'duration': 42}, {'task': 2, 'start': 135, 'machine': 0, 'duration': 28}, {'task': 3, 'start': 234, 'machine': 3, 'duration': 85}, {'task': 4, 'start': 468, 'machine': 5, 'duration': 44}, {'task': 5, 'start': 512, 'machine': 2, 'duration': 11}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 4, 'machine': 2, 'duration': 92}, {'task': 1, 'start': 166, 'machine': 3, 'duration': 60}, {'task': 2, 'start': 435, 'machine': 1, 'duration': 62}, {'task': 3, 'start': 550, 'machine': 0, 'duration': 27}, {'task': 4, 'start': 577, 'machine': 5, 'duration': 25}, {'task': 5, 'start': 602, 'machine': 4, 'duration': 54}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 93}, {'task': 1, 'start': 226, 'machine': 3, 'duration': 8}, {'task': 2, 'start': 280, 'machine': 4, 'duration': 20}, {'task': 3, 'start': 300, 'machine': 5, 'duration': 88}, {'task': 4, 'start': 449, 'machine': 2, 'duration': 24}, {'task': 5, 'start': 577, 'machine': 0, 'duration': 43}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 4}, {'task': 1, 'start': 34, 'machine': 3, 'duration': 80}, {'task': 2, 'start': 216, 'machine': 4, 'duration': 64}, {'task': 3, 'start': 280, 'machine': 0, 'duration': 54}, {'task': 4, 'start': 591, 'machine': 1, 'duration': 84}, {'task': 5, 'start': 675, 'machine': 5, 'duration': 62}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 54}, {'task': 1, 'start': 78, 'machine': 5, 'duration': 28}, {'task': 2, 'start': 135, 'machine': 1, 'duration': 98}, {'task': 3, 'start': 233, 'machine': 2, 'duration': 99}, {'task': 4, 'start': 332, 'machine': 4, 'duration': 40}, {'task': 5, 'start': 413, 'machine': 3, 'duration': 74}]}, {'job': 9, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 34}, {'task': 1, 'start': 34, 'machine': 4, 'duration': 98}, {'task': 2, 'start': 233, 'machine': 1, 'duration': 78}, {'task': 3, 'start': 388, 'machine': 5, 'duration': 79}, {'task': 4, 'start': 467, 'machine': 0, 'duration': 83}, {'task': 5, 'start': 550, 'machine': 2, 'duration': 45}]}]",749.0,"{'problem_type': 'JSP', 'nr_jobs': 10, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9', 'J10'], 'machines': [0, 1, 2, 3, 4, 5], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 4, 'duration': 84}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 2, 'duration': 1}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 5, 'duration': 28}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 1, 'duration': 94}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 0, 'duration': 70}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 5, 'duration': 24}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 4, 'duration': 10}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 0, 'duration': 14}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 13}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 3, 'duration': 52}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 1, 'duration': 74}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 5, 'duration': 78}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 0, 'duration': 12}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 2, 'duration': 81}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 1, 'duration': 67}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 4, 'duration': 40}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 3, 'duration': 69}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 3, 'duration': 51}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 0, 'duration': 2}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 57}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 2, 'duration': 81}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 5, 'duration': 1}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 4, 'duration': 74}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 4, 'duration': 16}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 1, 'duration': 42}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 0, 'duration': 28}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 3, 'duration': 85}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 5, 'duration': 44}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 2, 'duration': 11}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 2, 'duration': 92}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 3, 'duration': 60}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 1, 'duration': 62}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 0, 'duration': 27}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 5, 'duration': 25}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 4, 'duration': 54}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 1, 'duration': 93}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 3, 'duration': 8}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 4, 'duration': 20}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 5, 'duration': 88}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 24}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 0, 'duration': 43}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 2, 'duration': 4}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 80}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 4, 'duration': 64}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 0, 'duration': 54}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 1, 'duration': 84}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 5, 'duration': 62}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 0, 'duration': 54}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 5, 'duration': 28}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 1, 'duration': 98}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 99}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 4, 'duration': 40}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 3, 'duration': 74}, {'job_id': 'J10', 'task_id': 0, 'machine_id': 3, 'duration': 34}, {'job_id': 'J10', 'task_id': 1, 'machine_id': 4, 'duration': 98}, {'job_id': 'J10', 'task_id': 2, 'machine_id': 1, 'duration': 78}, {'job_id': 'J10', 'task_id': 3, 'machine_id': 5, 'duration': 79}, {'job_id': 'J10', 'task_id': 4, 'machine_id': 0, 'duration': 83}, {'job_id': 'J10', 'task_id': 5, 'machine_id': 2, 'duration': 45}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 114, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 132, 'machine': 4, 'duration': 84}, {'task': 2, 'start': 216, 'machine': 2, 'duration': 1}, {'task': 3, 'start': 217, 'machine': 5, 'duration': 28}, {'task': 4, 'start': 497, 'machine': 1, 'duration': 94}, {'task': 5, 'start': 620, 'machine': 0, 'duration': 70}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 106, 'machine': 5, 'duration': 24}, {'task': 1, 'start': 300, 'machine': 4, 'duration': 10}, {'task': 2, 'start': 334, 'machine': 0, 'duration': 14}, {'task': 3, 'start': 348, 'machine': 2, 'duration': 13}, {'task': 4, 'start': 361, 'machine': 3, 'duration': 52}, {'task': 5, 'start': 675, 'machine': 1, 'duration': 74}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 78}, {'task': 1, 'start': 78, 'machine': 0, 'duration': 12}, {'task': 2, 'start': 96, 'machine': 2, 'duration': 81}, {'task': 3, 'start': 368, 'machine': 1, 'duration': 67}, {'task': 4, 'start': 435, 'machine': 4, 'duration': 40}, {'task': 5, 'start': 487, 'machine': 3, 'duration': 69}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 115, 'machine': 3, 'duration': 51}, {'task': 1, 'start': 166, 'machine': 0, 'duration': 2}, {'task': 2, 'start': 311, 'machine': 1, 'duration': 57}, {'task': 3, 'start': 368, 'machine': 2, 'duration': 81}, {'task': 4, 'start': 467, 'machine': 5, 'duration': 1}, {'task': 5, 'start': 475, 'machine': 4, 'duration': 74}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 16}, {'task': 1, 'start': 93, 'machine': 1, 'duration': 42}, {'task': 2, 'start': 135, 'machine': 0, 'duration': 28}, {'task': 3, 'start': 234, 'machine': 3, 'duration': 85}, {'task': 4, 'start': 468, 'machine': 5, 'duration': 44}, {'task': 5, 'start': 512, 'machine': 2, 'duration': 11}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 4, 'machine': 2, 'duration': 92}, {'task': 1, 'start': 166, 'machine': 3, 'duration': 60}, {'task': 2, 'start': 435, 'machine': 1, 'duration': 62}, {'task': 3, 'start': 550, 'machine': 0, 'duration': 27}, {'task': 4, 'start': 577, 'machine': 5, 'duration': 25}, {'task': 5, 'start': 602, 'machine': 4, 'duration': 54}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 93}, {'task': 1, 'start': 226, 'machine': 3, 'duration': 8}, {'task': 2, 'start': 280, 'machine': 4, 'duration': 20}, {'task': 3, 'start': 300, 'machine': 5, 'duration': 88}, {'task': 4, 'start': 449, 'machine': 2, 'duration': 24}, {'task': 5, 'start': 577, 'machine': 0, 'duration': 43}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 4}, {'task': 1, 'start': 34, 'machine': 3, 'duration': 80}, {'task': 2, 'start': 216, 'machine': 4, 'duration': 64}, {'task': 3, 'start': 280, 'machine': 0, 'duration': 54}, {'task': 4, 'start': 591, 'machine': 1, 'duration': 84}, {'task': 5, 'start': 675, 'machine': 5, 'duration': 62}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 54}, {'task': 1, 'start': 78, 'machine': 5, 'duration': 28}, {'task': 2, 'start': 135, 'machine': 1, 'duration': 98}, {'task': 3, 'start': 233, 'machine': 2, 'duration': 99}, {'task': 4, 'start': 332, 'machine': 4, 'duration': 40}, {'task': 5, 'start': 413, 'machine': 3, 'duration': 74}]}, {'job': 'J10', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 34}, {'task': 1, 'start': 34, 'machine': 4, 'duration': 98}, {'task': 2, 'start': 233, 'machine': 1, 'duration': 78}, {'task': 3, 'start': 388, 'machine': 5, 'duration': 79}, {'task': 4, 'start': 467, 'machine': 0, 'duration': 83}, {'task': 5, 'start': 550, 'machine': 2, 'duration': 45}]}]",49,nl,0 JSP,JSP,"On a typical day an engineer is laying out when to run the compile/test steps for a batch of builds. Every build is a short script of steps that have to happen in order, each step takes a fixed amount of time and must land on a specific build server, and servers are one-at-a-time only. The sensible target is to have the whole batch wrapped up quickly — measure a plan by the time the last build finishes, and smaller is better. Every step must take place exactly once and in the given sequence. The concrete items (which build does what, how long, and which server) are listed below. # nr_builds=9 # nr_servers=6 # build_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9 # server_ids=1, 2, 3, 4, 5, 6 build_id,step_index,server_id,step_duration J1,0,5,1 J1,1,3,97 J1,2,6,76 J1,3,4,73 J1,4,2,48 J1,5,1,92 J2,0,1,28 J2,1,5,77 J2,2,3,81 J2,3,2,6 J2,4,6,89 J2,5,4,27 J3,0,4,62 J3,1,1,15 J3,2,5,86 J3,3,2,21 J3,4,3,8 J3,5,6,70 J4,0,4,89 J4,1,6,9 J4,2,1,99 J4,3,5,50 J4,4,3,60 J4,5,2,67 J5,0,3,1 J5,1,4,95 J5,2,1,37 J5,3,5,51 J5,4,2,85 J5,5,6,81 J6,0,5,84 J6,1,6,36 J6,2,4,88 J6,3,3,32 J6,4,1,98 J6,5,2,87 J7,0,6,57 J7,1,4,83 J7,2,3,19 J7,3,5,25 J7,4,2,48 J7,5,1,41 J8,0,1,76 J8,1,3,55 J8,2,6,29 J8,3,4,61 J8,4,5,48 J8,5,2,51 J9,0,4,81 J9,1,3,71 J9,2,1,75 J9,3,2,47 J9,4,5,64 J9,5,6,2 Oh, and when you send the schedule back, please stick to this JSON shape so it's easy to read and parse: { ""solution"": [ { ""job"": , ""tasks"": [ { ""task"": , ""start"": , ""machine"": , ""duration"": } ] } ] } Think of that as a simple form: ""solution"" is a list of job entries; each job has the job identifier and a list of its tasks. For each task, ""task"" is the position in the job's sequence, ""start"" is when that step begins (time), ""machine"" is which build server it runs on, and ""duration"" is how long it takes. Easy and informal — like filling out a schedule sheet. This JSON is just the expected shape (a sketch) — not the final plan itself. Make sure all identifiers are used exactly as they appear in the instance input — no renaming and no new labels. - for example: ""Valid identifiers look like plain numbers such as “1” or “23”, single capital letters like “A” or “B”, or a capital letter followed by digits like “A1” or “X7”.""","{'nr_machines': 6, 'nr_jobs': 9, 'jobs': [[[4, 1], [2, 97], [5, 76], [3, 73], [1, 48], [0, 92]], [[0, 28], [4, 77], [2, 81], [1, 6], [5, 89], [3, 27]], [[3, 62], [0, 15], [4, 86], [1, 21], [2, 8], [5, 70]], [[3, 89], [5, 9], [0, 99], [4, 50], [2, 60], [1, 67]], [[2, 1], [3, 95], [0, 37], [4, 51], [1, 85], [5, 81]], [[4, 84], [5, 36], [3, 88], [2, 32], [0, 98], [1, 87]], [[5, 57], [3, 83], [2, 19], [4, 25], [1, 48], [0, 41]], [[0, 76], [2, 55], [5, 29], [3, 61], [4, 48], [1, 51]], [[3, 81], [2, 71], [0, 75], [1, 47], [4, 64], [5, 2]]]}","[{'job': 0, 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 2, 'duration': 97}, {'task': 2, 'start': 98, 'machine': 5, 'duration': 76}, {'task': 3, 'start': 184, 'machine': 3, 'duration': 73}, {'task': 4, 'start': 257, 'machine': 1, 'duration': 48}, {'task': 5, 'start': 579, 'machine': 0, 'duration': 92}]}, {'job': 1, 'tasks': [{'task': 0, 'start': 0, 'machine': 0, 'duration': 28}, {'task': 1, 'start': 85, 'machine': 4, 'duration': 77}, {'task': 2, 'start': 162, 'machine': 2, 'duration': 81}, {'task': 3, 'start': 243, 'machine': 1, 'duration': 6}, {'task': 4, 'start': 573, 'machine': 5, 'duration': 89}, {'task': 5, 'start': 704, 'machine': 3, 'duration': 27}]}, {'job': 2, 'tasks': [{'task': 0, 'start': 426, 'machine': 3, 'duration': 62}, {'task': 1, 'start': 488, 'machine': 0, 'duration': 15}, {'task': 2, 'start': 503, 'machine': 4, 'duration': 86}, {'task': 3, 'start': 626, 'machine': 1, 'duration': 21}, {'task': 4, 'start': 647, 'machine': 2, 'duration': 8}, {'task': 5, 'start': 662, 'machine': 5, 'duration': 70}]}, {'job': 3, 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 89}, {'task': 1, 'start': 89, 'machine': 5, 'duration': 9}, {'task': 2, 'start': 98, 'machine': 0, 'duration': 99}, {'task': 3, 'start': 197, 'machine': 4, 'duration': 50}, {'task': 4, 'start': 247, 'machine': 2, 'duration': 60}, {'task': 5, 'start': 307, 'machine': 1, 'duration': 67}]}, {'job': 4, 'tasks': [{'task': 0, 'start': 0, 'machine': 2, 'duration': 1}, {'task': 1, 'start': 89, 'machine': 3, 'duration': 95}, {'task': 2, 'start': 197, 'machine': 0, 'duration': 37}, {'task': 3, 'start': 247, 'machine': 4, 'duration': 51}, {'task': 4, 'start': 374, 'machine': 1, 'duration': 85}, {'task': 5, 'start': 462, 'machine': 5, 'duration': 81}]}, {'job': 5, 'tasks': [{'task': 0, 'start': 1, 'machine': 4, 'duration': 84}, {'task': 1, 'start': 174, 'machine': 5, 'duration': 36}, {'task': 2, 'start': 257, 'machine': 3, 'duration': 88}, {'task': 3, 'start': 345, 'machine': 2, 'duration': 32}, {'task': 4, 'start': 377, 'machine': 0, 'duration': 98}, {'task': 5, 'start': 475, 'machine': 1, 'duration': 87}]}, {'job': 6, 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 57}, {'task': 1, 'start': 488, 'machine': 3, 'duration': 83}, {'task': 2, 'start': 571, 'machine': 2, 'duration': 19}, {'task': 3, 'start': 590, 'machine': 4, 'duration': 25}, {'task': 4, 'start': 647, 'machine': 1, 'duration': 48}, {'task': 5, 'start': 702, 'machine': 0, 'duration': 41}]}, {'job': 7, 'tasks': [{'task': 0, 'start': 234, 'machine': 0, 'duration': 76}, {'task': 1, 'start': 378, 'machine': 2, 'duration': 55}, {'task': 2, 'start': 433, 'machine': 5, 'duration': 29}, {'task': 3, 'start': 571, 'machine': 3, 'duration': 61}, {'task': 4, 'start': 632, 'machine': 4, 'duration': 48}, {'task': 5, 'start': 695, 'machine': 1, 'duration': 51}]}, {'job': 8, 'tasks': [{'task': 0, 'start': 345, 'machine': 3, 'duration': 81}, {'task': 1, 'start': 433, 'machine': 2, 'duration': 71}, {'task': 2, 'start': 504, 'machine': 0, 'duration': 75}, {'task': 3, 'start': 579, 'machine': 1, 'duration': 47}, {'task': 4, 'start': 680, 'machine': 4, 'duration': 64}, {'task': 5, 'start': 744, 'machine': 5, 'duration': 2}]}]",746.0,"{'problem_type': 'JSP', 'nr_jobs': 9, 'nr_machines': 6, 'jobs': ['J1', 'J2', 'J3', 'J4', 'J5', 'J6', 'J7', 'J8', 'J9'], 'machines': [1, 2, 3, 4, 5, 6], 'records': [{'job_id': 'J1', 'task_id': 0, 'machine_id': 5, 'duration': 1}, {'job_id': 'J1', 'task_id': 1, 'machine_id': 3, 'duration': 97}, {'job_id': 'J1', 'task_id': 2, 'machine_id': 6, 'duration': 76}, {'job_id': 'J1', 'task_id': 3, 'machine_id': 4, 'duration': 73}, {'job_id': 'J1', 'task_id': 4, 'machine_id': 2, 'duration': 48}, {'job_id': 'J1', 'task_id': 5, 'machine_id': 1, 'duration': 92}, {'job_id': 'J2', 'task_id': 0, 'machine_id': 1, 'duration': 28}, {'job_id': 'J2', 'task_id': 1, 'machine_id': 5, 'duration': 77}, {'job_id': 'J2', 'task_id': 2, 'machine_id': 3, 'duration': 81}, {'job_id': 'J2', 'task_id': 3, 'machine_id': 2, 'duration': 6}, {'job_id': 'J2', 'task_id': 4, 'machine_id': 6, 'duration': 89}, {'job_id': 'J2', 'task_id': 5, 'machine_id': 4, 'duration': 27}, {'job_id': 'J3', 'task_id': 0, 'machine_id': 4, 'duration': 62}, {'job_id': 'J3', 'task_id': 1, 'machine_id': 1, 'duration': 15}, {'job_id': 'J3', 'task_id': 2, 'machine_id': 5, 'duration': 86}, {'job_id': 'J3', 'task_id': 3, 'machine_id': 2, 'duration': 21}, {'job_id': 'J3', 'task_id': 4, 'machine_id': 3, 'duration': 8}, {'job_id': 'J3', 'task_id': 5, 'machine_id': 6, 'duration': 70}, {'job_id': 'J4', 'task_id': 0, 'machine_id': 4, 'duration': 89}, {'job_id': 'J4', 'task_id': 1, 'machine_id': 6, 'duration': 9}, {'job_id': 'J4', 'task_id': 2, 'machine_id': 1, 'duration': 99}, {'job_id': 'J4', 'task_id': 3, 'machine_id': 5, 'duration': 50}, {'job_id': 'J4', 'task_id': 4, 'machine_id': 3, 'duration': 60}, {'job_id': 'J4', 'task_id': 5, 'machine_id': 2, 'duration': 67}, {'job_id': 'J5', 'task_id': 0, 'machine_id': 3, 'duration': 1}, {'job_id': 'J5', 'task_id': 1, 'machine_id': 4, 'duration': 95}, {'job_id': 'J5', 'task_id': 2, 'machine_id': 1, 'duration': 37}, {'job_id': 'J5', 'task_id': 3, 'machine_id': 5, 'duration': 51}, {'job_id': 'J5', 'task_id': 4, 'machine_id': 2, 'duration': 85}, {'job_id': 'J5', 'task_id': 5, 'machine_id': 6, 'duration': 81}, {'job_id': 'J6', 'task_id': 0, 'machine_id': 5, 'duration': 84}, {'job_id': 'J6', 'task_id': 1, 'machine_id': 6, 'duration': 36}, {'job_id': 'J6', 'task_id': 2, 'machine_id': 4, 'duration': 88}, {'job_id': 'J6', 'task_id': 3, 'machine_id': 3, 'duration': 32}, {'job_id': 'J6', 'task_id': 4, 'machine_id': 1, 'duration': 98}, {'job_id': 'J6', 'task_id': 5, 'machine_id': 2, 'duration': 87}, {'job_id': 'J7', 'task_id': 0, 'machine_id': 6, 'duration': 57}, {'job_id': 'J7', 'task_id': 1, 'machine_id': 4, 'duration': 83}, {'job_id': 'J7', 'task_id': 2, 'machine_id': 3, 'duration': 19}, {'job_id': 'J7', 'task_id': 3, 'machine_id': 5, 'duration': 25}, {'job_id': 'J7', 'task_id': 4, 'machine_id': 2, 'duration': 48}, {'job_id': 'J7', 'task_id': 5, 'machine_id': 1, 'duration': 41}, {'job_id': 'J8', 'task_id': 0, 'machine_id': 1, 'duration': 76}, {'job_id': 'J8', 'task_id': 1, 'machine_id': 3, 'duration': 55}, {'job_id': 'J8', 'task_id': 2, 'machine_id': 6, 'duration': 29}, {'job_id': 'J8', 'task_id': 3, 'machine_id': 4, 'duration': 61}, {'job_id': 'J8', 'task_id': 4, 'machine_id': 5, 'duration': 48}, {'job_id': 'J8', 'task_id': 5, 'machine_id': 2, 'duration': 51}, {'job_id': 'J9', 'task_id': 0, 'machine_id': 4, 'duration': 81}, {'job_id': 'J9', 'task_id': 1, 'machine_id': 3, 'duration': 71}, {'job_id': 'J9', 'task_id': 2, 'machine_id': 1, 'duration': 75}, {'job_id': 'J9', 'task_id': 3, 'machine_id': 2, 'duration': 47}, {'job_id': 'J9', 'task_id': 4, 'machine_id': 5, 'duration': 64}, {'job_id': 'J9', 'task_id': 5, 'machine_id': 6, 'duration': 2}]}","[{'job': 'J1', 'tasks': [{'task': 0, 'start': 0, 'machine': 5, 'duration': 1}, {'task': 1, 'start': 1, 'machine': 3, 'duration': 97}, {'task': 2, 'start': 98, 'machine': 6, 'duration': 76}, {'task': 3, 'start': 184, 'machine': 4, 'duration': 73}, {'task': 4, 'start': 257, 'machine': 2, 'duration': 48}, {'task': 5, 'start': 579, 'machine': 1, 'duration': 92}]}, {'job': 'J2', 'tasks': [{'task': 0, 'start': 0, 'machine': 1, 'duration': 28}, {'task': 1, 'start': 85, 'machine': 5, 'duration': 77}, {'task': 2, 'start': 162, 'machine': 3, 'duration': 81}, {'task': 3, 'start': 243, 'machine': 2, 'duration': 6}, {'task': 4, 'start': 573, 'machine': 6, 'duration': 89}, {'task': 5, 'start': 704, 'machine': 4, 'duration': 27}]}, {'job': 'J3', 'tasks': [{'task': 0, 'start': 426, 'machine': 4, 'duration': 62}, {'task': 1, 'start': 488, 'machine': 1, 'duration': 15}, {'task': 2, 'start': 503, 'machine': 5, 'duration': 86}, {'task': 3, 'start': 626, 'machine': 2, 'duration': 21}, {'task': 4, 'start': 647, 'machine': 3, 'duration': 8}, {'task': 5, 'start': 662, 'machine': 6, 'duration': 70}]}, {'job': 'J4', 'tasks': [{'task': 0, 'start': 0, 'machine': 4, 'duration': 89}, {'task': 1, 'start': 89, 'machine': 6, 'duration': 9}, {'task': 2, 'start': 98, 'machine': 1, 'duration': 99}, {'task': 3, 'start': 197, 'machine': 5, 'duration': 50}, {'task': 4, 'start': 247, 'machine': 3, 'duration': 60}, {'task': 5, 'start': 307, 'machine': 2, 'duration': 67}]}, {'job': 'J5', 'tasks': [{'task': 0, 'start': 0, 'machine': 3, 'duration': 1}, {'task': 1, 'start': 89, 'machine': 4, 'duration': 95}, {'task': 2, 'start': 197, 'machine': 1, 'duration': 37}, {'task': 3, 'start': 247, 'machine': 5, 'duration': 51}, {'task': 4, 'start': 374, 'machine': 2, 'duration': 85}, {'task': 5, 'start': 462, 'machine': 6, 'duration': 81}]}, {'job': 'J6', 'tasks': [{'task': 0, 'start': 1, 'machine': 5, 'duration': 84}, {'task': 1, 'start': 174, 'machine': 6, 'duration': 36}, {'task': 2, 'start': 257, 'machine': 4, 'duration': 88}, {'task': 3, 'start': 345, 'machine': 3, 'duration': 32}, {'task': 4, 'start': 377, 'machine': 1, 'duration': 98}, {'task': 5, 'start': 475, 'machine': 2, 'duration': 87}]}, {'job': 'J7', 'tasks': [{'task': 0, 'start': 0, 'machine': 6, 'duration': 57}, {'task': 1, 'start': 488, 'machine': 4, 'duration': 83}, {'task': 2, 'start': 571, 'machine': 3, 'duration': 19}, {'task': 3, 'start': 590, 'machine': 5, 'duration': 25}, {'task': 4, 'start': 647, 'machine': 2, 'duration': 48}, {'task': 5, 'start': 702, 'machine': 1, 'duration': 41}]}, {'job': 'J8', 'tasks': [{'task': 0, 'start': 234, 'machine': 1, 'duration': 76}, {'task': 1, 'start': 378, 'machine': 3, 'duration': 55}, {'task': 2, 'start': 433, 'machine': 6, 'duration': 29}, {'task': 3, 'start': 571, 'machine': 4, 'duration': 61}, {'task': 4, 'start': 632, 'machine': 5, 'duration': 48}, {'task': 5, 'start': 695, 'machine': 2, 'duration': 51}]}, {'job': 'J9', 'tasks': [{'task': 0, 'start': 345, 'machine': 4, 'duration': 81}, {'task': 1, 'start': 433, 'machine': 3, 'duration': 71}, {'task': 2, 'start': 504, 'machine': 1, 'duration': 75}, {'task': 3, 'start': 579, 'machine': 2, 'duration': 47}, {'task': 4, 'start': 680, 'machine': 5, 'duration': 64}, {'task': 5, 'start': 744, 'machine': 6, 'duration': 2}]}]",50,csv,1