diff --git "a/FSP/FSP_L_context.json" "b/FSP/FSP_L_context.json" new file mode 100644--- /dev/null +++ "b/FSP/FSP_L_context.json" @@ -0,0 +1,71001 @@ +[ + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Back at the bakery, the crew has a row of fixed stations and a few batches that all need the same ordered steps, each step having a predictable duration. The decision is picking start times so stations never collide over two batches and every batch completes each station in turn with no missing or repeated steps. The simplest way to compare plans is the finish time of the last batch: the sooner that final time, the better the schedule. The precise batches and their step times are listed below.\n\n{\n \"number_of_batches\": 9,\n \"number_of_stations\": 5,\n \"batch_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\"\n ],\n \"station_ids\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"tasks\": [\n {\n \"batch_id\": \"J1\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 1\n },\n {\n \"batch_id\": \"J1\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 52\n },\n {\n \"batch_id\": \"J1\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 73\n },\n {\n \"batch_id\": \"J1\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 27\n },\n {\n \"batch_id\": \"J1\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 38\n },\n {\n \"batch_id\": \"J2\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 20\n },\n {\n \"batch_id\": \"J2\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 97\n },\n {\n \"batch_id\": \"J2\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 51\n },\n {\n \"batch_id\": \"J2\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 53\n },\n {\n \"batch_id\": \"J2\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 26\n },\n {\n \"batch_id\": \"J3\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 11\n },\n {\n \"batch_id\": \"J3\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 81\n },\n {\n \"batch_id\": \"J3\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 90\n },\n {\n \"batch_id\": \"J3\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 45\n },\n {\n \"batch_id\": \"J3\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 25\n },\n {\n \"batch_id\": \"J4\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 25\n },\n {\n \"batch_id\": \"J4\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 19\n },\n {\n \"batch_id\": \"J4\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 33\n },\n {\n \"batch_id\": \"J4\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 11\n },\n {\n \"batch_id\": \"J4\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 80\n },\n {\n \"batch_id\": \"J5\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 53\n },\n {\n \"batch_id\": \"J5\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 84\n },\n {\n \"batch_id\": \"J5\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 73\n },\n {\n \"batch_id\": \"J5\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 8\n },\n {\n \"batch_id\": \"J5\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 54\n },\n {\n \"batch_id\": \"J6\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 13\n },\n {\n \"batch_id\": \"J6\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 86\n },\n {\n \"batch_id\": \"J6\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 46\n },\n {\n \"batch_id\": \"J6\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 47\n },\n {\n \"batch_id\": \"J6\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 45\n },\n {\n \"batch_id\": \"J7\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 24\n },\n {\n \"batch_id\": \"J7\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 2\n },\n {\n \"batch_id\": \"J7\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 3\n },\n {\n \"batch_id\": \"J7\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 99\n },\n {\n \"batch_id\": \"J7\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 91\n },\n {\n \"batch_id\": \"J8\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 78\n },\n {\n \"batch_id\": \"J8\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 57\n },\n {\n \"batch_id\": \"J8\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 77\n },\n {\n \"batch_id\": \"J8\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 62\n },\n {\n \"batch_id\": \"J8\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 35\n },\n {\n \"batch_id\": \"J9\",\n \"step_index\": 0,\n \"station_id\": 0,\n \"processing_duration\": 38\n },\n {\n \"batch_id\": \"J9\",\n \"step_index\": 1,\n \"station_id\": 1,\n \"processing_duration\": 27\n },\n {\n \"batch_id\": \"J9\",\n \"step_index\": 2,\n \"station_id\": 2,\n \"processing_duration\": 35\n },\n {\n \"batch_id\": \"J9\",\n \"step_index\": 3,\n \"station_id\": 3,\n \"processing_duration\": 64\n },\n {\n \"batch_id\": \"J9\",\n \"step_index\": 4,\n \"station_id\": 4,\n \"processing_duration\": 37\n }\n ]\n}\n\nYou can hand me the plan in a tiny JSON form like this — just a plain list of batches (jobs) with their tasks, start times, machines and durations. Here’s the format I expect:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nPretty simple: \"solution\" is the outer list, each entry is a job (a batch), \"tasks\" lists the ordered steps for that job, and each step has which task number it is, when it starts, which machine (station) it uses, and how long it runs. Think of it as a little form to fill in rather than a strict data spec.\n\nThis is only a sketch of the shape I want, not the actual schedule — fill the placeholders with the real IDs and numbers when you give the final answer.\n\nPlease use the exact identifiers from the problem 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 52 + ], + [ + 2, + 73 + ], + [ + 3, + 27 + ], + [ + 4, + 38 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 97 + ], + [ + 2, + 51 + ], + [ + 3, + 53 + ], + [ + 4, + 26 + ] + ], + [ + [ + 0, + 11 + ], + [ + 1, + 81 + ], + [ + 2, + 90 + ], + [ + 3, + 45 + ], + [ + 4, + 25 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 19 + ], + [ + 2, + 33 + ], + [ + 3, + 11 + ], + [ + 4, + 80 + ] + ], + [ + [ + 0, + 53 + ], + [ + 1, + 84 + ], + [ + 2, + 73 + ], + [ + 3, + 8 + ], + [ + 4, + 54 + ] + ], + [ + [ + 0, + 13 + ], + [ + 1, + 86 + ], + [ + 2, + 46 + ], + [ + 3, + 47 + ], + [ + 4, + 45 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 2 + ], + [ + 2, + 3 + ], + [ + 3, + 99 + ], + [ + 4, + 91 + ] + ], + [ + [ + 0, + 78 + ], + [ + 1, + 57 + ], + [ + 2, + 77 + ], + [ + 3, + 62 + ], + [ + 4, + 35 + ] + ], + [ + [ + 0, + 38 + ], + [ + 1, + 27 + ], + [ + 2, + 35 + ], + [ + 3, + 64 + ], + [ + 4, + 37 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 58, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 157, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 248, + "machine": 4, + "duration": 38 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 243, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 409, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 506, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 557, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 610, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 55, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 136, + "machine": 2, + "duration": 90 + }, + { + "task": 3, + "start": 252, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 297, + "machine": 4, + "duration": 25 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 140, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 247, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 334, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 398, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 435, + "machine": 4, + "duration": 80 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 49, + "machine": 0, + "duration": 53 + }, + { + "task": 1, + "start": 136, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 226, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 299, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 343, + "machine": 4, + "duration": 54 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 36, + "machine": 0, + "duration": 13 + }, + { + "task": 1, + "start": 323, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 444, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 506, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 553, + "machine": 4, + "duration": 45 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 53, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 55, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 58, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 157, + "machine": 4, + "duration": 91 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 165, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 266, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 367, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 444, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 515, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 102, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 220, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 299, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 334, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 398, + "machine": 4, + "duration": 37 + } + ] + } + ], + "obj": 636.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 52 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 73 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 27 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 38 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 20 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 97 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 51 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 26 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 11 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 81 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 90 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 45 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 25 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 25 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 19 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 33 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 11 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 80 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 53 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 84 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 73 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 54 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 13 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 86 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 46 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 47 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 45 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 24 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 2 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 3 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 99 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 91 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 78 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 57 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 77 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 62 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 35 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 38 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 27 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 35 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 64 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 37 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 58, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 157, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 248, + "machine": 4, + "duration": 38 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 243, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 409, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 506, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 557, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 610, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 55, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 136, + "machine": 2, + "duration": 90 + }, + { + "task": 3, + "start": 252, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 297, + "machine": 4, + "duration": 25 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 140, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 247, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 334, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 398, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 435, + "machine": 4, + "duration": 80 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 49, + "machine": 0, + "duration": 53 + }, + { + "task": 1, + "start": 136, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 226, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 299, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 343, + "machine": 4, + "duration": 54 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 36, + "machine": 0, + "duration": 13 + }, + { + "task": 1, + "start": 323, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 444, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 506, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 553, + "machine": 4, + "duration": 45 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 53, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 55, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 58, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 157, + "machine": 4, + "duration": 91 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 165, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 266, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 367, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 444, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 515, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 102, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 220, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 299, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 334, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 398, + "machine": 4, + "duration": 37 + } + ] + } + ], + "context_index": 1, + "input_format": "json", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Many mornings we face the same puzzle: several print jobs each with a list of steps, same machine order for all, and decisions to make about when each step should begin so machines never do two things at once. Each operation must be performed in order and only once, and the yardstick of a good plan is the clock time when the final job is completed — simply the maximum finish time across the batch — which we want as small as we can. The precise job durations and machine order appear below.\n\n# num_print_jobs=11\n# num_machines=5\n# print_job_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11\n# machine_ids=1, 2, 3, 4, 5\nprint_job_id,task_index,required_machine_id,processing_duration\nJ1,0,1,1\nJ1,1,2,65\nJ1,2,3,49\nJ1,3,4,72\nJ1,4,5,90\nJ2,0,1,42\nJ2,1,2,3\nJ2,2,3,19\nJ2,3,4,21\nJ2,4,5,19\nJ3,0,1,49\nJ3,1,2,34\nJ3,2,3,73\nJ3,3,4,49\nJ3,4,5,30\nJ4,0,1,77\nJ4,1,2,86\nJ4,2,3,33\nJ4,3,4,49\nJ4,4,5,87\nJ5,0,1,95\nJ5,1,2,53\nJ5,2,3,33\nJ5,3,4,1\nJ5,4,5,39\nJ6,0,1,66\nJ6,1,2,95\nJ6,2,3,12\nJ6,3,4,88\nJ6,4,5,15\nJ7,0,1,15\nJ7,1,2,77\nJ7,2,3,29\nJ7,3,4,5\nJ7,4,5,65\nJ8,0,1,12\nJ8,1,2,21\nJ8,2,3,53\nJ8,3,4,61\nJ8,4,5,71\nJ9,0,1,62\nJ9,1,2,25\nJ9,2,3,8\nJ9,3,4,40\nJ9,4,5,2\nJ10,0,1,13\nJ10,1,2,16\nJ10,2,3,5\nJ10,3,4,72\nJ10,4,5,76\nJ11,0,1,95\nJ11,1,2,54\nJ11,2,3,23\nJ11,3,4,82\nJ11,4,5,45\n\nAlso, to keep things clean on my end, please give the schedule using this simple JSON layout — nothing fancy, just the shape I can read easily:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nPretty straightforward: \"solution\" is a list of jobs; each entry has a \"job\" identifier and a list of \"tasks\". Each task tells me which step it is (\"task\"), when that step starts (\"start\"), which machine it runs on (\"machine\"), and how long it takes (\"duration\"). This is just a sketch of the shape I need, not the actual schedule.\n\nPlease make sure you 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 65 + ], + [ + 2, + 49 + ], + [ + 3, + 72 + ], + [ + 4, + 90 + ] + ], + [ + [ + 0, + 42 + ], + [ + 1, + 3 + ], + [ + 2, + 19 + ], + [ + 3, + 21 + ], + [ + 4, + 19 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 34 + ], + [ + 2, + 73 + ], + [ + 3, + 49 + ], + [ + 4, + 30 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 86 + ], + [ + 2, + 33 + ], + [ + 3, + 49 + ], + [ + 4, + 87 + ] + ], + [ + [ + 0, + 95 + ], + [ + 1, + 53 + ], + [ + 2, + 33 + ], + [ + 3, + 1 + ], + [ + 4, + 39 + ] + ], + [ + [ + 0, + 66 + ], + [ + 1, + 95 + ], + [ + 2, + 12 + ], + [ + 3, + 88 + ], + [ + 4, + 15 + ] + ], + [ + [ + 0, + 15 + ], + [ + 1, + 77 + ], + [ + 2, + 29 + ], + [ + 3, + 5 + ], + [ + 4, + 65 + ] + ], + [ + [ + 0, + 12 + ], + [ + 1, + 21 + ], + [ + 2, + 53 + ], + [ + 3, + 61 + ], + [ + 4, + 71 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 25 + ], + [ + 2, + 8 + ], + [ + 3, + 40 + ], + [ + 4, + 2 + ] + ], + [ + [ + 0, + 13 + ], + [ + 1, + 16 + ], + [ + 2, + 5 + ], + [ + 3, + 72 + ], + [ + 4, + 76 + ] + ], + [ + [ + 0, + 95 + ], + [ + 1, + 54 + ], + [ + 2, + 23 + ], + [ + 3, + 82 + ], + [ + 4, + 45 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 86, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 132, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 197, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 246, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 318, + "machine": 4, + "duration": 90 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 40, + "machine": 0, + "duration": 42 + }, + { + "task": 1, + "start": 129, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 158, + "machine": 2, + "duration": 19 + }, + { + "task": 3, + "start": 225, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 483, + "machine": 4, + "duration": 19 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 182, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 274, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 321, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 403, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 453, + "machine": 4, + "duration": 30 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 231, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 308, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 419, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 452, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 502, + "machine": 4, + "duration": 87 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 374, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 489, + "machine": 1, + "duration": 53 + }, + { + "task": 2, + "start": 542, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 589, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 604, + "machine": 4, + "duration": 39 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 308, + "machine": 0, + "duration": 66 + }, + { + "task": 1, + "start": 394, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 489, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 501, + "machine": 3, + "duration": 88 + }, + { + "task": 4, + "start": 589, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 25, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 52, + "machine": 1, + "duration": 77 + }, + { + "task": 2, + "start": 129, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 220, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 253, + "machine": 4, + "duration": 65 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 13, + "machine": 0, + "duration": 12 + }, + { + "task": 1, + "start": 31, + "machine": 1, + "duration": 21 + }, + { + "task": 2, + "start": 52, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 106, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 182, + "machine": 4, + "duration": 71 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 469, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 542, + "machine": 1, + "duration": 25 + }, + { + "task": 2, + "start": 575, + "machine": 2, + "duration": 8 + }, + { + "task": 3, + "start": 590, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 643, + "machine": 4, + "duration": 2 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 13 + }, + { + "task": 1, + "start": 13, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 29, + "machine": 2, + "duration": 5 + }, + { + "task": 3, + "start": 34, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 106, + "machine": 4, + "duration": 76 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 87, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 220, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 298, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 408, + "machine": 4, + "duration": 45 + } + ] + } + ], + "obj": 645.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 65 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 72 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 90 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 42 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 3 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 19 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 21 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 19 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 34 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 30 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 77 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 86 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 49 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 95 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 53 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 39 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 66 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 95 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 12 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 88 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 15 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 77 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 29 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 5 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 65 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 12 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 21 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 61 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 71 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 62 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 25 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 8 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 40 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 2 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 13 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 16 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 5 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 72 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 76 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 1, + "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": 5, + "duration": 45 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 86, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 132, + "machine": 2, + "duration": 65 + }, + { + "task": 2, + "start": 197, + "machine": 3, + "duration": 49 + }, + { + "task": 3, + "start": 246, + "machine": 4, + "duration": 72 + }, + { + "task": 4, + "start": 318, + "machine": 5, + "duration": 90 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 40, + "machine": 1, + "duration": 42 + }, + { + "task": 1, + "start": 129, + "machine": 2, + "duration": 3 + }, + { + "task": 2, + "start": 158, + "machine": 3, + "duration": 19 + }, + { + "task": 3, + "start": 225, + "machine": 4, + "duration": 21 + }, + { + "task": 4, + "start": 483, + "machine": 5, + "duration": 19 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 182, + "machine": 1, + "duration": 49 + }, + { + "task": 1, + "start": 274, + "machine": 2, + "duration": 34 + }, + { + "task": 2, + "start": 321, + "machine": 3, + "duration": 73 + }, + { + "task": 3, + "start": 403, + "machine": 4, + "duration": 49 + }, + { + "task": 4, + "start": 453, + "machine": 5, + "duration": 30 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 231, + "machine": 1, + "duration": 77 + }, + { + "task": 1, + "start": 308, + "machine": 2, + "duration": 86 + }, + { + "task": 2, + "start": 419, + "machine": 3, + "duration": 33 + }, + { + "task": 3, + "start": 452, + "machine": 4, + "duration": 49 + }, + { + "task": 4, + "start": 502, + "machine": 5, + "duration": 87 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 374, + "machine": 1, + "duration": 95 + }, + { + "task": 1, + "start": 489, + "machine": 2, + "duration": 53 + }, + { + "task": 2, + "start": 542, + "machine": 3, + "duration": 33 + }, + { + "task": 3, + "start": 589, + "machine": 4, + "duration": 1 + }, + { + "task": 4, + "start": 604, + "machine": 5, + "duration": 39 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 308, + "machine": 1, + "duration": 66 + }, + { + "task": 1, + "start": 394, + "machine": 2, + "duration": 95 + }, + { + "task": 2, + "start": 489, + "machine": 3, + "duration": 12 + }, + { + "task": 3, + "start": 501, + "machine": 4, + "duration": 88 + }, + { + "task": 4, + "start": 589, + "machine": 5, + "duration": 15 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 25, + "machine": 1, + "duration": 15 + }, + { + "task": 1, + "start": 52, + "machine": 2, + "duration": 77 + }, + { + "task": 2, + "start": 129, + "machine": 3, + "duration": 29 + }, + { + "task": 3, + "start": 220, + "machine": 4, + "duration": 5 + }, + { + "task": 4, + "start": 253, + "machine": 5, + "duration": 65 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 13, + "machine": 1, + "duration": 12 + }, + { + "task": 1, + "start": 31, + "machine": 2, + "duration": 21 + }, + { + "task": 2, + "start": 52, + "machine": 3, + "duration": 53 + }, + { + "task": 3, + "start": 106, + "machine": 4, + "duration": 61 + }, + { + "task": 4, + "start": 182, + "machine": 5, + "duration": 71 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 469, + "machine": 1, + "duration": 62 + }, + { + "task": 1, + "start": 542, + "machine": 2, + "duration": 25 + }, + { + "task": 2, + "start": 575, + "machine": 3, + "duration": 8 + }, + { + "task": 3, + "start": 590, + "machine": 4, + "duration": 40 + }, + { + "task": 4, + "start": 643, + "machine": 5, + "duration": 2 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 13 + }, + { + "task": 1, + "start": 13, + "machine": 2, + "duration": 16 + }, + { + "task": 2, + "start": 29, + "machine": 3, + "duration": 5 + }, + { + "task": 3, + "start": 34, + "machine": 4, + "duration": 72 + }, + { + "task": 4, + "start": 106, + "machine": 5, + "duration": 76 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 87, + "machine": 1, + "duration": 95 + }, + { + "task": 1, + "start": 220, + "machine": 2, + "duration": 54 + }, + { + "task": 2, + "start": 298, + "machine": 3, + "duration": 23 + }, + { + "task": 3, + "start": 321, + "machine": 4, + "duration": 82 + }, + { + "task": 4, + "start": 408, + "machine": 5, + "duration": 45 + } + ] + } + ], + "context_index": 2, + "input_format": "csv", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Recently the shop got busier, so the lead detailer is laying out who goes when through the standard line of bays — every car follows the identical list of treatments and each treatment length is known in advance. The choice is about ordering and timing the cars so that bays never try to handle two cars at once and every vehicle completes each required stop exactly once. The best arrangement is the one that brings the finish time of the final car down as much as possible — just read the clock when that last car is done. The concrete details for this run are below.\n\nThe lead detailer lists 10 vehicles and 5 service bays: vehicles J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 will pass in sequence through bays 0, 1, 2, 3, 4.\n\n| vehicle_id | step_index | required_bay_id | process_time |\n|---|---|---|---|\n| J1 | 0 | 0 | 1 |\n| J1 | 1 | 1 | 78 |\n| J1 | 2 | 2 | 25 |\n| J1 | 3 | 3 | 18 |\n| J1 | 4 | 4 | 44 |\n| J2 | 0 | 0 | 63 |\n| J2 | 1 | 1 | 7 |\n| J2 | 2 | 2 | 87 |\n| J2 | 3 | 3 | 89 |\n| J2 | 4 | 4 | 13 |\n| J3 | 0 | 0 | 87 |\n| J3 | 1 | 1 | 85 |\n| J3 | 2 | 2 | 56 |\n| J3 | 3 | 3 | 52 |\n| J3 | 4 | 4 | 35 |\n| J4 | 0 | 0 | 31 |\n| J4 | 1 | 1 | 53 |\n| J4 | 2 | 2 | 34 |\n| J4 | 3 | 3 | 87 |\n| J4 | 4 | 4 | 94 |\n| J5 | 0 | 0 | 37 |\n| J5 | 1 | 1 | 22 |\n| J5 | 2 | 2 | 91 |\n| J5 | 3 | 3 | 93 |\n| J5 | 4 | 4 | 23 |\n| J6 | 0 | 0 | 19 |\n| J6 | 1 | 1 | 5 |\n| J6 | 2 | 2 | 77 |\n| J6 | 3 | 3 | 31 |\n| J6 | 4 | 4 | 85 |\n| J7 | 0 | 0 | 6 |\n| J7 | 1 | 1 | 54 |\n| J7 | 2 | 2 | 55 |\n| J7 | 3 | 3 | 9 |\n| J7 | 4 | 4 | 39 |\n| J8 | 0 | 0 | 44 |\n| J8 | 1 | 1 | 83 |\n| J8 | 2 | 2 | 28 |\n| J8 | 3 | 3 | 60 |\n| J8 | 4 | 4 | 8 |\n| J9 | 0 | 0 | 87 |\n| J9 | 1 | 1 | 23 |\n| J9 | 2 | 2 | 79 |\n| J9 | 3 | 3 | 15 |\n| J9 | 4 | 4 | 67 |\n| J10 | 0 | 0 | 20 |\n| J10 | 1 | 1 | 79 |\n| J10 | 2 | 2 | 92 |\n| J10 | 3 | 3 | 99 |\n| J10 | 4 | 4 | 21 |\n\nKeep this list handy and arrange the cars so the clock reading when the final car is done is as small as possible.\n\nIf you want the schedule returned in a tidy, machine-friendly form, send it back following this little layout:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a quick sketch of the shape I expect: \"solution\" is a list of jobs (here, cars), each job has a \"tasks\" list, and each task entry records which task number it is, when it starts, which bay (machine) it uses, and how long that stop lasts. Think of it like filling out a simple progress card for every car.\n\nThe JSON above is only the format, not the actual schedule — please return your real answers in that same shape. Also, 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 78 + ], + [ + 2, + 25 + ], + [ + 3, + 18 + ], + [ + 4, + 44 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 7 + ], + [ + 2, + 87 + ], + [ + 3, + 89 + ], + [ + 4, + 13 + ] + ], + [ + [ + 0, + 87 + ], + [ + 1, + 85 + ], + [ + 2, + 56 + ], + [ + 3, + 52 + ], + [ + 4, + 35 + ] + ], + [ + [ + 0, + 31 + ], + [ + 1, + 53 + ], + [ + 2, + 34 + ], + [ + 3, + 87 + ], + [ + 4, + 94 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 22 + ], + [ + 2, + 91 + ], + [ + 3, + 93 + ], + [ + 4, + 23 + ] + ], + [ + [ + 0, + 19 + ], + [ + 1, + 5 + ], + [ + 2, + 77 + ], + [ + 3, + 31 + ], + [ + 4, + 85 + ] + ], + [ + [ + 0, + 6 + ], + [ + 1, + 54 + ], + [ + 2, + 55 + ], + [ + 3, + 9 + ], + [ + 4, + 39 + ] + ], + [ + [ + 0, + 44 + ], + [ + 1, + 83 + ], + [ + 2, + 28 + ], + [ + 3, + 60 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 87 + ], + [ + 1, + 23 + ], + [ + 2, + 79 + ], + [ + 3, + 15 + ], + [ + 4, + 67 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 79 + ], + [ + 2, + 92 + ], + [ + 3, + 99 + ], + [ + 4, + 21 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 107, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 293, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 376, + "machine": 2, + "duration": 25 + }, + { + "task": 3, + "start": 472, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 528, + "machine": 4, + "duration": 44 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 239, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 371, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 401, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 490, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 579, + "machine": 4, + "duration": 13 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 108, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 208, + "machine": 1, + "duration": 85 + }, + { + "task": 2, + "start": 320, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 420, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 472, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 19, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 50, + "machine": 1, + "duration": 53 + }, + { + "task": 2, + "start": 103, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 137, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 224, + "machine": 4, + "duration": 94 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 70, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 107, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 137, + "machine": 2, + "duration": 91 + }, + { + "task": 3, + "start": 228, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 321, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 19 + }, + { + "task": 1, + "start": 19, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 24, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 101, + "machine": 3, + "duration": 31 + }, + { + "task": 4, + "start": 344, + "machine": 4, + "duration": 85 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 389, + "machine": 0, + "duration": 6 + }, + { + "task": 1, + "start": 495, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 595, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 655, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 669, + "machine": 4, + "duration": 39 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 195, + "machine": 0, + "duration": 44 + }, + { + "task": 1, + "start": 412, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 567, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 595, + "machine": 3, + "duration": 60 + }, + { + "task": 4, + "start": 661, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 302, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 389, + "machine": 1, + "duration": 23 + }, + { + "task": 2, + "start": 488, + "machine": 2, + "duration": 79 + }, + { + "task": 3, + "start": 579, + "machine": 3, + "duration": 15 + }, + { + "task": 4, + "start": 594, + "machine": 4, + "duration": 67 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 50, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 129, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 228, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 507, + "machine": 4, + "duration": 21 + } + ] + } + ], + "obj": 708.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 78 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 25 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 18 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 44 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 63 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 7 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 87 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 89 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 13 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 87 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 85 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 56 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 52 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 35 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 31 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 53 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 34 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 94 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 37 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 22 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 91 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 93 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 19 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 5 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 77 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 85 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 6 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 54 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 55 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 9 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 39 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 44 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 83 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 28 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 60 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 87 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 23 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 79 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 15 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 67 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 20 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 79 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 92 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 99 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 21 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 107, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 293, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 376, + "machine": 2, + "duration": 25 + }, + { + "task": 3, + "start": 472, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 528, + "machine": 4, + "duration": 44 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 239, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 371, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 401, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 490, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 579, + "machine": 4, + "duration": 13 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 108, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 208, + "machine": 1, + "duration": 85 + }, + { + "task": 2, + "start": 320, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 420, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 472, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 19, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 50, + "machine": 1, + "duration": 53 + }, + { + "task": 2, + "start": 103, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 137, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 224, + "machine": 4, + "duration": 94 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 70, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 107, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 137, + "machine": 2, + "duration": 91 + }, + { + "task": 3, + "start": 228, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 321, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 19 + }, + { + "task": 1, + "start": 19, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 24, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 101, + "machine": 3, + "duration": 31 + }, + { + "task": 4, + "start": 344, + "machine": 4, + "duration": 85 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 389, + "machine": 0, + "duration": 6 + }, + { + "task": 1, + "start": 495, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 595, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 655, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 669, + "machine": 4, + "duration": 39 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 195, + "machine": 0, + "duration": 44 + }, + { + "task": 1, + "start": 412, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 567, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 595, + "machine": 3, + "duration": 60 + }, + { + "task": 4, + "start": 661, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 302, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 389, + "machine": 1, + "duration": 23 + }, + { + "task": 2, + "start": 488, + "machine": 2, + "duration": 79 + }, + { + "task": 3, + "start": 579, + "machine": 3, + "duration": 15 + }, + { + "task": 4, + "start": 594, + "machine": 4, + "duration": 67 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 50, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 129, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 228, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 507, + "machine": 4, + "duration": 21 + } + ] + } + ], + "context_index": 3, + "input_format": "markdown_table", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I run the laundry line and have to lay out a simple timetable so every shirt, dress, and towel moves through the same sequence of care stations — each step takes a fixed amount of time. The job is to decide when each garment goes to each station so no station is juggling two items at once and every garment visits every step exactly once. The calendar moment when the very last item leaves the final station is the one to watch — faster that moment, better the plan — so plans are judged by that finishing time. The exact garments, stations, and step lengths are shown below.\n\nI list 9 garments and 5 stations: J1, J2, J3, J4, J5, J6, J7, J8, J9 and A, B, C, D, E.\n\n| garment_id | step_index | station_id | operation_duration |\n|---|---|---|---|\n| J1 | 0 | A | 1 |\n| J1 | 1 | B | 92 |\n| J1 | 2 | C | 1 |\n| J1 | 3 | D | 64 |\n| J1 | 4 | E | 97 |\n| J2 | 0 | A | 85 |\n| J2 | 1 | B | 12 |\n| J2 | 2 | C | 55 |\n| J2 | 3 | D | 57 |\n| J2 | 4 | E | 7 |\n| J3 | 0 | A | 26 |\n| J3 | 1 | B | 37 |\n| J3 | 2 | C | 39 |\n| J3 | 3 | D | 56 |\n| J3 | 4 | E | 41 |\n| J4 | 0 | A | 83 |\n| J4 | 1 | B | 20 |\n| J4 | 2 | C | 35 |\n| J4 | 3 | D | 26 |\n| J4 | 4 | E | 1 |\n| J5 | 0 | A | 78 |\n| J5 | 1 | B | 90 |\n| J5 | 2 | C | 50 |\n| J5 | 3 | D | 87 |\n| J5 | 4 | E | 8 |\n| J6 | 0 | A | 71 |\n| J6 | 1 | B | 14 |\n| J6 | 2 | C | 43 |\n| J6 | 3 | D | 72 |\n| J6 | 4 | E | 55 |\n| J7 | 0 | A | 96 |\n| J7 | 1 | B | 30 |\n| J7 | 2 | C | 81 |\n| J7 | 3 | D | 14 |\n| J7 | 4 | E | 13 |\n| J8 | 0 | A | 77 |\n| J8 | 1 | B | 47 |\n| J8 | 2 | C | 4 |\n| J8 | 3 | D | 60 |\n| J8 | 4 | E | 44 |\n| J9 | 0 | A | 12 |\n| J9 | 1 | B | 22 |\n| J9 | 2 | C | 52 |\n| J9 | 3 | D | 90 |\n| J9 | 4 | E | 32 |\n\nI'll use these entries to schedule every garment through the stations and minimize the finishing time.\n\nIf you want the plan back from me, it's easiest if we stick to a little JSON shape so it's predictable. Something like this will do:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of this as a simple form: \"solution\" is the list of garments (jobs), each garment entry gives its job id and a list of tasks. Each task line says which step it is (task), when that step starts (start), which station it uses (machine), and how long that step takes (duration). Super casual — it's just so we both know what to expect.\n\nThis is only a sketch of the expected shape, not the actual timetable. 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 92 + ], + [ + 2, + 1 + ], + [ + 3, + 64 + ], + [ + 4, + 97 + ] + ], + [ + [ + 0, + 85 + ], + [ + 1, + 12 + ], + [ + 2, + 55 + ], + [ + 3, + 57 + ], + [ + 4, + 7 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 37 + ], + [ + 2, + 39 + ], + [ + 3, + 56 + ], + [ + 4, + 41 + ] + ], + [ + [ + 0, + 83 + ], + [ + 1, + 20 + ], + [ + 2, + 35 + ], + [ + 3, + 26 + ], + [ + 4, + 1 + ] + ], + [ + [ + 0, + 78 + ], + [ + 1, + 90 + ], + [ + 2, + 50 + ], + [ + 3, + 87 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 71 + ], + [ + 1, + 14 + ], + [ + 2, + 43 + ], + [ + 3, + 72 + ], + [ + 4, + 55 + ] + ], + [ + [ + 0, + 96 + ], + [ + 1, + 30 + ], + [ + 2, + 81 + ], + [ + 3, + 14 + ], + [ + 4, + 13 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 47 + ], + [ + 2, + 4 + ], + [ + 3, + 60 + ], + [ + 4, + 44 + ] + ], + [ + [ + 0, + 12 + ], + [ + 1, + 22 + ], + [ + 2, + 52 + ], + [ + 3, + 90 + ], + [ + 4, + 32 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 34, + "machine": 1, + "duration": 92 + }, + { + "task": 2, + "start": 126, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 176, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 240, + "machine": 4, + "duration": 97 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 361, + "machine": 0, + "duration": 85 + }, + { + "task": 1, + "start": 446, + "machine": 1, + "duration": 12 + }, + { + "task": 2, + "start": 458, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 515, + "machine": 3, + "duration": 57 + }, + { + "task": 4, + "start": 572, + "machine": 4, + "duration": 7 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 162, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 188, + "machine": 1, + "duration": 37 + }, + { + "task": 2, + "start": 225, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 312, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 392, + "machine": 4, + "duration": 41 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 446, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 529, + "machine": 1, + "duration": 20 + }, + { + "task": 2, + "start": 549, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 586, + "machine": 3, + "duration": 26 + }, + { + "task": 4, + "start": 612, + "machine": 4, + "duration": 1 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 13, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 225, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 315, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 368, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 455, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 91, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 162, + "machine": 1, + "duration": 14 + }, + { + "task": 2, + "start": 176, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 240, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 337, + "machine": 4, + "duration": 55 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 188, + "machine": 0, + "duration": 96 + }, + { + "task": 1, + "start": 315, + "machine": 1, + "duration": 30 + }, + { + "task": 2, + "start": 365, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 572, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 586, + "machine": 4, + "duration": 13 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 284, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 361, + "machine": 1, + "duration": 47 + }, + { + "task": 2, + "start": 446, + "machine": 2, + "duration": 4 + }, + { + "task": 3, + "start": 455, + "machine": 3, + "duration": 60 + }, + { + "task": 4, + "start": 515, + "machine": 4, + "duration": 44 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 12 + }, + { + "task": 1, + "start": 12, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 34, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 86, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 176, + "machine": 4, + "duration": 32 + } + ] + } + ], + "obj": 613.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 92 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 64 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 97 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 85 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 12 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 55 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 57 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 7 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 26 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 37 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 39 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 56 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 41 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 83 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 20 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 35 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 26 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 78 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 90 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 50 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 8 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 71 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 14 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 43 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 72 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "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": "D", + "duration": 14 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 13 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 77 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 47 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 4 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 60 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 44 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 12 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "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": "E", + "duration": 32 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 12, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 34, + "machine": "B", + "duration": 92 + }, + { + "task": 2, + "start": 126, + "machine": "C", + "duration": 1 + }, + { + "task": 3, + "start": 176, + "machine": "D", + "duration": 64 + }, + { + "task": 4, + "start": 240, + "machine": "E", + "duration": 97 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 361, + "machine": "A", + "duration": 85 + }, + { + "task": 1, + "start": 446, + "machine": "B", + "duration": 12 + }, + { + "task": 2, + "start": 458, + "machine": "C", + "duration": 55 + }, + { + "task": 3, + "start": 515, + "machine": "D", + "duration": 57 + }, + { + "task": 4, + "start": 572, + "machine": "E", + "duration": 7 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 162, + "machine": "A", + "duration": 26 + }, + { + "task": 1, + "start": 188, + "machine": "B", + "duration": 37 + }, + { + "task": 2, + "start": 225, + "machine": "C", + "duration": 39 + }, + { + "task": 3, + "start": 312, + "machine": "D", + "duration": 56 + }, + { + "task": 4, + "start": 392, + "machine": "E", + "duration": 41 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 446, + "machine": "A", + "duration": 83 + }, + { + "task": 1, + "start": 529, + "machine": "B", + "duration": 20 + }, + { + "task": 2, + "start": 549, + "machine": "C", + "duration": 35 + }, + { + "task": 3, + "start": 586, + "machine": "D", + "duration": 26 + }, + { + "task": 4, + "start": 612, + "machine": "E", + "duration": 1 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 13, + "machine": "A", + "duration": 78 + }, + { + "task": 1, + "start": 225, + "machine": "B", + "duration": 90 + }, + { + "task": 2, + "start": 315, + "machine": "C", + "duration": 50 + }, + { + "task": 3, + "start": 368, + "machine": "D", + "duration": 87 + }, + { + "task": 4, + "start": 455, + "machine": "E", + "duration": 8 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 91, + "machine": "A", + "duration": 71 + }, + { + "task": 1, + "start": 162, + "machine": "B", + "duration": 14 + }, + { + "task": 2, + "start": 176, + "machine": "C", + "duration": 43 + }, + { + "task": 3, + "start": 240, + "machine": "D", + "duration": 72 + }, + { + "task": 4, + "start": 337, + "machine": "E", + "duration": 55 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 188, + "machine": "A", + "duration": 96 + }, + { + "task": 1, + "start": 315, + "machine": "B", + "duration": 30 + }, + { + "task": 2, + "start": 365, + "machine": "C", + "duration": 81 + }, + { + "task": 3, + "start": 572, + "machine": "D", + "duration": 14 + }, + { + "task": 4, + "start": 586, + "machine": "E", + "duration": 13 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 284, + "machine": "A", + "duration": 77 + }, + { + "task": 1, + "start": 361, + "machine": "B", + "duration": 47 + }, + { + "task": 2, + "start": 446, + "machine": "C", + "duration": 4 + }, + { + "task": 3, + "start": 455, + "machine": "D", + "duration": 60 + }, + { + "task": 4, + "start": 515, + "machine": "E", + "duration": 44 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 12 + }, + { + "task": 1, + "start": 12, + "machine": "B", + "duration": 22 + }, + { + "task": 2, + "start": 34, + "machine": "C", + "duration": 52 + }, + { + "task": 3, + "start": 86, + "machine": "D", + "duration": 90 + }, + { + "task": 4, + "start": 176, + "machine": "E", + "duration": 32 + } + ] + } + ], + "context_index": 4, + "input_format": "markdown_table", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Many people treat the line like a relay: every circuit board hands off from station to station in the same order, and the supervisor decides the handoff times. The rules are straightforward — keep the sequence intact for each board, never put two boards on a single machine at once, and don’t skip or repeat tasks. The quality of a schedule is simply how early the last board is finished, i.e., the time when the whole batch is done. The specific boards and step durations follow below.\n\n{\n \"num_boards\": 12,\n \"num_workstations\": 5,\n \"board_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\",\n \"J10\",\n \"J11\",\n \"J12\"\n ],\n \"workstation_ids\": [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\"\n ],\n \"tasks\": [\n {\n \"board_id\": \"J1\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 1\n },\n {\n \"board_id\": \"J1\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 6\n },\n {\n \"board_id\": \"J1\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 76\n },\n {\n \"board_id\": \"J1\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 10\n },\n {\n \"board_id\": \"J1\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 51\n },\n {\n \"board_id\": \"J2\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 8\n },\n {\n \"board_id\": \"J2\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 17\n },\n {\n \"board_id\": \"J2\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 23\n },\n {\n \"board_id\": \"J2\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 25\n },\n {\n \"board_id\": \"J2\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 99\n },\n {\n \"board_id\": \"J3\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 64\n },\n {\n \"board_id\": \"J3\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 89\n },\n {\n \"board_id\": \"J3\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 23\n },\n {\n \"board_id\": \"J3\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 59\n },\n {\n \"board_id\": \"J3\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 46\n },\n {\n \"board_id\": \"J4\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 37\n },\n {\n \"board_id\": \"J4\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 87\n },\n {\n \"board_id\": \"J4\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 36\n },\n {\n \"board_id\": \"J4\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 64\n },\n {\n \"board_id\": \"J4\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 8\n },\n {\n \"board_id\": \"J5\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 21\n },\n {\n \"board_id\": \"J5\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 59\n },\n {\n \"board_id\": \"J5\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 10\n },\n {\n \"board_id\": \"J5\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 80\n },\n {\n \"board_id\": \"J5\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 92\n },\n {\n \"board_id\": \"J6\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 24\n },\n {\n \"board_id\": \"J6\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 23\n },\n {\n \"board_id\": \"J6\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 8\n },\n {\n \"board_id\": \"J6\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 14\n },\n {\n \"board_id\": \"J6\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 26\n },\n {\n \"board_id\": \"J7\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 87\n },\n {\n \"board_id\": \"J7\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 7\n },\n {\n \"board_id\": \"J7\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 8\n },\n {\n \"board_id\": \"J7\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 19\n },\n {\n \"board_id\": \"J7\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 86\n },\n {\n \"board_id\": \"J8\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 10\n },\n {\n \"board_id\": \"J8\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 11\n },\n {\n \"board_id\": \"J8\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 79\n },\n {\n \"board_id\": \"J8\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 59\n },\n {\n \"board_id\": \"J8\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 80\n },\n {\n \"board_id\": \"J9\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 37\n },\n {\n \"board_id\": \"J9\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 20\n },\n {\n \"board_id\": \"J9\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 24\n },\n {\n \"board_id\": \"J9\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 65\n },\n {\n \"board_id\": \"J9\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 97\n },\n {\n \"board_id\": \"J10\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 35\n },\n {\n \"board_id\": \"J10\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 6\n },\n {\n \"board_id\": \"J10\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 69\n },\n {\n \"board_id\": \"J10\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 54\n },\n {\n \"board_id\": \"J10\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 8\n },\n {\n \"board_id\": \"J11\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 26\n },\n {\n \"board_id\": \"J11\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 97\n },\n {\n \"board_id\": \"J11\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 93\n },\n {\n \"board_id\": \"J11\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 64\n },\n {\n \"board_id\": \"J11\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 53\n },\n {\n \"board_id\": \"J12\",\n \"step_index\": 0,\n \"workstation_id\": \"A\",\n \"processing_time\": 66\n },\n {\n \"board_id\": \"J12\",\n \"step_index\": 1,\n \"workstation_id\": \"B\",\n \"processing_time\": 38\n },\n {\n \"board_id\": \"J12\",\n \"step_index\": 2,\n \"workstation_id\": \"C\",\n \"processing_time\": 29\n },\n {\n \"board_id\": \"J12\",\n \"step_index\": 3,\n \"workstation_id\": \"D\",\n \"processing_time\": 82\n },\n {\n \"board_id\": \"J12\",\n \"step_index\": 4,\n \"workstation_id\": \"E\",\n \"processing_time\": 78\n }\n ]\n}\n\nIf you prefer to hand the plan over in a tidy format, a small JSON shape like this is perfect — nothing fancy, just the fields I need to read the schedule.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it as a simple form: \"solution\" holds a list of boards (jobs), each board gets a job identifier in \"job\", and a \"tasks\" list with each step's index, its planned start time, which machine it runs on, and how long it takes. It's just a sketch of the shape I expect — not the real schedule yet.\n\nPlease 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 6 + ], + [ + 2, + 76 + ], + [ + 3, + 10 + ], + [ + 4, + 51 + ] + ], + [ + [ + 0, + 8 + ], + [ + 1, + 17 + ], + [ + 2, + 23 + ], + [ + 3, + 25 + ], + [ + 4, + 99 + ] + ], + [ + [ + 0, + 64 + ], + [ + 1, + 89 + ], + [ + 2, + 23 + ], + [ + 3, + 59 + ], + [ + 4, + 46 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 87 + ], + [ + 2, + 36 + ], + [ + 3, + 64 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 21 + ], + [ + 1, + 59 + ], + [ + 2, + 10 + ], + [ + 3, + 80 + ], + [ + 4, + 92 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 23 + ], + [ + 2, + 8 + ], + [ + 3, + 14 + ], + [ + 4, + 26 + ] + ], + [ + [ + 0, + 87 + ], + [ + 1, + 7 + ], + [ + 2, + 8 + ], + [ + 3, + 19 + ], + [ + 4, + 86 + ] + ], + [ + [ + 0, + 10 + ], + [ + 1, + 11 + ], + [ + 2, + 79 + ], + [ + 3, + 59 + ], + [ + 4, + 80 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 20 + ], + [ + 2, + 24 + ], + [ + 3, + 65 + ], + [ + 4, + 97 + ] + ], + [ + [ + 0, + 35 + ], + [ + 1, + 6 + ], + [ + 2, + 69 + ], + [ + 3, + 54 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 97 + ], + [ + 2, + 93 + ], + [ + 3, + 64 + ], + [ + 4, + 53 + ] + ], + [ + [ + 0, + 66 + ], + [ + 1, + 38 + ], + [ + 2, + 29 + ], + [ + 3, + 82 + ], + [ + 4, + 78 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 29, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 30, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 48, + "machine": 2, + "duration": 76 + }, + { + "task": 3, + "start": 124, + "machine": 3, + "duration": 10 + }, + { + "task": 4, + "start": 172, + "machine": 4, + "duration": 51 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 8, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 25, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 48, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 73, + "machine": 4, + "duration": 99 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 326, + "machine": 0, + "duration": 64 + }, + { + "task": 1, + "start": 390, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 479, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 550, + "machine": 3, + "duration": 59 + }, + { + "task": 4, + "start": 682, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 155, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 259, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 367, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 467, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 736, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 8, + "machine": 0, + "duration": 21 + }, + { + "task": 1, + "start": 36, + "machine": 1, + "duration": 59 + }, + { + "task": 2, + "start": 124, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 134, + "machine": 3, + "duration": 80 + }, + { + "task": 4, + "start": 223, + "machine": 4, + "duration": 92 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 131, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 155, + "machine": 1, + "duration": 23 + }, + { + "task": 2, + "start": 209, + "machine": 2, + "duration": 8 + }, + { + "task": 3, + "start": 217, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 315, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 239, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 346, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 403, + "machine": 2, + "duration": 8 + }, + { + "task": 3, + "start": 531, + "machine": 3, + "duration": 19 + }, + { + "task": 4, + "start": 596, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 192, + "machine": 0, + "duration": 10 + }, + { + "task": 1, + "start": 202, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 264, + "machine": 2, + "duration": 79 + }, + { + "task": 3, + "start": 343, + "machine": 3, + "duration": 59 + }, + { + "task": 4, + "start": 419, + "machine": 4, + "duration": 80 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 202, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 239, + "machine": 1, + "duration": 20 + }, + { + "task": 2, + "start": 343, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 402, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 499, + "machine": 4, + "duration": 97 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 96, + "machine": 0, + "duration": 35 + }, + { + "task": 1, + "start": 134, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 140, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 609, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 728, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 390, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 479, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 576, + "machine": 2, + "duration": 93 + }, + { + "task": 3, + "start": 669, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 744, + "machine": 4, + "duration": 53 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 30, + "machine": 0, + "duration": 66 + }, + { + "task": 1, + "start": 96, + "machine": 1, + "duration": 38 + }, + { + "task": 2, + "start": 217, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 246, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 341, + "machine": 4, + "duration": 78 + } + ] + } + ], + "obj": 797.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 12, + "nr_machines": 5, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9", + "J10", + "J11", + "J12" + ], + "machines": [ + "A", + "B", + "C", + "D", + "E" + ], + "records": [ + { + "job_id": "J1", + "task_id": 0, + "machine_id": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 6 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 76 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 10 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 51 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 8 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 17 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 23 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 25 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 99 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 64 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 89 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 23 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 59 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 46 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 37 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 87 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 36 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 64 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 21 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 59 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 10 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 80 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 92 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 24 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 8 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 14 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 26 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 87 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 7 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 8 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 19 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 86 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 10 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 11 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 79 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 59 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 80 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 37 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 20 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 24 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 65 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 97 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 35 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 6 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 69 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 54 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 8 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 26 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 97 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 93 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 64 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 53 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 66 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 38 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 29 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 82 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 78 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 29, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 30, + "machine": "B", + "duration": 6 + }, + { + "task": 2, + "start": 48, + "machine": "C", + "duration": 76 + }, + { + "task": 3, + "start": 124, + "machine": "D", + "duration": 10 + }, + { + "task": 4, + "start": 172, + "machine": "E", + "duration": 51 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 8 + }, + { + "task": 1, + "start": 8, + "machine": "B", + "duration": 17 + }, + { + "task": 2, + "start": 25, + "machine": "C", + "duration": 23 + }, + { + "task": 3, + "start": 48, + "machine": "D", + "duration": 25 + }, + { + "task": 4, + "start": 73, + "machine": "E", + "duration": 99 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 326, + "machine": "A", + "duration": 64 + }, + { + "task": 1, + "start": 390, + "machine": "B", + "duration": 89 + }, + { + "task": 2, + "start": 479, + "machine": "C", + "duration": 23 + }, + { + "task": 3, + "start": 550, + "machine": "D", + "duration": 59 + }, + { + "task": 4, + "start": 682, + "machine": "E", + "duration": 46 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 155, + "machine": "A", + "duration": 37 + }, + { + "task": 1, + "start": 259, + "machine": "B", + "duration": 87 + }, + { + "task": 2, + "start": 367, + "machine": "C", + "duration": 36 + }, + { + "task": 3, + "start": 467, + "machine": "D", + "duration": 64 + }, + { + "task": 4, + "start": 736, + "machine": "E", + "duration": 8 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 8, + "machine": "A", + "duration": 21 + }, + { + "task": 1, + "start": 36, + "machine": "B", + "duration": 59 + }, + { + "task": 2, + "start": 124, + "machine": "C", + "duration": 10 + }, + { + "task": 3, + "start": 134, + "machine": "D", + "duration": 80 + }, + { + "task": 4, + "start": 223, + "machine": "E", + "duration": 92 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 131, + "machine": "A", + "duration": 24 + }, + { + "task": 1, + "start": 155, + "machine": "B", + "duration": 23 + }, + { + "task": 2, + "start": 209, + "machine": "C", + "duration": 8 + }, + { + "task": 3, + "start": 217, + "machine": "D", + "duration": 14 + }, + { + "task": 4, + "start": 315, + "machine": "E", + "duration": 26 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 239, + "machine": "A", + "duration": 87 + }, + { + "task": 1, + "start": 346, + "machine": "B", + "duration": 7 + }, + { + "task": 2, + "start": 403, + "machine": "C", + "duration": 8 + }, + { + "task": 3, + "start": 531, + "machine": "D", + "duration": 19 + }, + { + "task": 4, + "start": 596, + "machine": "E", + "duration": 86 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 192, + "machine": "A", + "duration": 10 + }, + { + "task": 1, + "start": 202, + "machine": "B", + "duration": 11 + }, + { + "task": 2, + "start": 264, + "machine": "C", + "duration": 79 + }, + { + "task": 3, + "start": 343, + "machine": "D", + "duration": 59 + }, + { + "task": 4, + "start": 419, + "machine": "E", + "duration": 80 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 202, + "machine": "A", + "duration": 37 + }, + { + "task": 1, + "start": 239, + "machine": "B", + "duration": 20 + }, + { + "task": 2, + "start": 343, + "machine": "C", + "duration": 24 + }, + { + "task": 3, + "start": 402, + "machine": "D", + "duration": 65 + }, + { + "task": 4, + "start": 499, + "machine": "E", + "duration": 97 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 96, + "machine": "A", + "duration": 35 + }, + { + "task": 1, + "start": 134, + "machine": "B", + "duration": 6 + }, + { + "task": 2, + "start": 140, + "machine": "C", + "duration": 69 + }, + { + "task": 3, + "start": 609, + "machine": "D", + "duration": 54 + }, + { + "task": 4, + "start": 728, + "machine": "E", + "duration": 8 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 390, + "machine": "A", + "duration": 26 + }, + { + "task": 1, + "start": 479, + "machine": "B", + "duration": 97 + }, + { + "task": 2, + "start": 576, + "machine": "C", + "duration": 93 + }, + { + "task": 3, + "start": 669, + "machine": "D", + "duration": 64 + }, + { + "task": 4, + "start": 744, + "machine": "E", + "duration": 53 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 30, + "machine": "A", + "duration": 66 + }, + { + "task": 1, + "start": 96, + "machine": "B", + "duration": 38 + }, + { + "task": 2, + "start": 217, + "machine": "C", + "duration": 29 + }, + { + "task": 3, + "start": 246, + "machine": "D", + "duration": 82 + }, + { + "task": 4, + "start": 341, + "machine": "E", + "duration": 78 + } + ] + } + ], + "context_index": 5, + "input_format": "json", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Many small bakeries face a simple challenge: each tray must pass through the identical sequence of ovens and coolers, each step lasting a fixed time. The task is to decide the sequence and start times so ovens and cooling areas aren’t juggling multiple trays at once. The best way to tell which plan is better is by when the last tray is finished — whoever gets that final finish time earlier wins. All trays must follow the same ordered steps without skipping or repeating any, and each machine can only handle one tray at a time. The exact counts and durations are given below.\n\n# number_of_trays=9\n# number_of_stations=5\n# tray_identifiers=J1, J2, J3, J4, J5, J6, J7, J8, J9\n# station_identifiers=1, 2, 3, 4, 5\ntray_id,step_index,station_id,processing_time\nJ1,0,1,1\nJ1,1,2,19\nJ1,2,3,51\nJ1,3,4,56\nJ1,4,5,4\nJ2,0,1,29\nJ2,1,2,21\nJ2,2,3,90\nJ2,3,4,92\nJ2,4,5,93\nJ3,0,1,3\nJ3,1,2,41\nJ3,2,3,6\nJ3,3,4,62\nJ3,4,5,51\nJ4,0,1,89\nJ4,1,2,54\nJ4,2,3,36\nJ4,3,4,3\nJ4,4,5,15\nJ5,0,1,62\nJ5,1,2,28\nJ5,2,3,68\nJ5,3,4,73\nJ5,4,5,77\nJ6,0,1,76\nJ6,1,2,32\nJ6,2,3,73\nJ6,3,4,55\nJ6,4,5,95\nJ7,0,1,78\nJ7,1,2,82\nJ7,2,3,34\nJ7,3,4,23\nJ7,4,5,59\nJ8,0,1,43\nJ8,1,2,73\nJ8,2,3,55\nJ8,3,4,58\nJ8,4,5,17\nJ9,0,1,61\nJ9,1,2,18\nJ9,2,3,96\nJ9,3,4,41\nJ9,4,5,62\n\nOne more thing — when you send the schedule back, please follow this simple JSON layout so I can read it easily.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a quick sketch of the shape I’m expecting: \"solution\" is a list of jobs, each job entry gives the job identifier and a list of its tasks, and each task lists which step it is, when that step starts, which machine it uses, and how long it takes. Think of it like a simple form to fill out for each tray as it moves through the ovens and coolers.\n\nPlease be sure to use the exact identifiers from the instance input — don’t rename them or invent new labels. \n- 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 19 + ], + [ + 2, + 51 + ], + [ + 3, + 56 + ], + [ + 4, + 4 + ] + ], + [ + [ + 0, + 29 + ], + [ + 1, + 21 + ], + [ + 2, + 90 + ], + [ + 3, + 92 + ], + [ + 4, + 93 + ] + ], + [ + [ + 0, + 3 + ], + [ + 1, + 41 + ], + [ + 2, + 6 + ], + [ + 3, + 62 + ], + [ + 4, + 51 + ] + ], + [ + [ + 0, + 89 + ], + [ + 1, + 54 + ], + [ + 2, + 36 + ], + [ + 3, + 3 + ], + [ + 4, + 15 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 28 + ], + [ + 2, + 68 + ], + [ + 3, + 73 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 76 + ], + [ + 1, + 32 + ], + [ + 2, + 73 + ], + [ + 3, + 55 + ], + [ + 4, + 95 + ] + ], + [ + [ + 0, + 78 + ], + [ + 1, + 82 + ], + [ + 2, + 34 + ], + [ + 3, + 23 + ], + [ + 4, + 59 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 73 + ], + [ + 2, + 55 + ], + [ + 3, + 58 + ], + [ + 4, + 17 + ] + ], + [ + [ + 0, + 61 + ], + [ + 1, + 18 + ], + [ + 2, + 96 + ], + [ + 3, + 41 + ], + [ + 4, + 62 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 441, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 495, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 523, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 581, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 650, + "machine": 4, + "duration": 4 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 3, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 44, + "machine": 1, + "duration": 21 + }, + { + "task": 2, + "start": 65, + "machine": 2, + "duration": 90 + }, + { + "task": 3, + "start": 155, + "machine": 3, + "duration": 92 + }, + { + "task": 4, + "start": 247, + "machine": 4, + "duration": 93 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 3 + }, + { + "task": 1, + "start": 3, + "machine": 1, + "duration": 41 + }, + { + "task": 2, + "start": 44, + "machine": 2, + "duration": 6 + }, + { + "task": 3, + "start": 50, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 112, + "machine": 4, + "duration": 51 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 352, + "machine": 0, + "duration": 89 + }, + { + "task": 1, + "start": 441, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 574, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 637, + "machine": 3, + "duration": 3 + }, + { + "task": 4, + "start": 654, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 169, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 231, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 259, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 327, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 435, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 32, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 108, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 155, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 247, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 340, + "machine": 4, + "duration": 95 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 274, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 352, + "machine": 1, + "duration": 82 + }, + { + "task": 2, + "start": 434, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 468, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 574, + "machine": 4, + "duration": 59 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 231, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 274, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 468, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 523, + "machine": 3, + "duration": 58 + }, + { + "task": 4, + "start": 633, + "machine": 4, + "duration": 17 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 108, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 169, + "machine": 1, + "duration": 18 + }, + { + "task": 2, + "start": 327, + "machine": 2, + "duration": 96 + }, + { + "task": 3, + "start": 423, + "machine": 3, + "duration": 41 + }, + { + "task": 4, + "start": 512, + "machine": 4, + "duration": 62 + } + ] + } + ], + "obj": 669.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 19 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 56 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 4 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 29 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 21 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 90 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 92 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 93 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 3 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 41 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 6 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 62 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 51 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 89 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 54 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 3 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 15 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 62 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 28 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 68 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 73 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 77 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 76 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 32 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 95 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 78 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 82 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 34 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 23 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 59 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 43 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 73 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 55 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 58 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 17 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 61 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 18 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 96 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 41 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 62 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 441, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 495, + "machine": 2, + "duration": 19 + }, + { + "task": 2, + "start": 523, + "machine": 3, + "duration": 51 + }, + { + "task": 3, + "start": 581, + "machine": 4, + "duration": 56 + }, + { + "task": 4, + "start": 650, + "machine": 5, + "duration": 4 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 3, + "machine": 1, + "duration": 29 + }, + { + "task": 1, + "start": 44, + "machine": 2, + "duration": 21 + }, + { + "task": 2, + "start": 65, + "machine": 3, + "duration": 90 + }, + { + "task": 3, + "start": 155, + "machine": 4, + "duration": 92 + }, + { + "task": 4, + "start": 247, + "machine": 5, + "duration": 93 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 3 + }, + { + "task": 1, + "start": 3, + "machine": 2, + "duration": 41 + }, + { + "task": 2, + "start": 44, + "machine": 3, + "duration": 6 + }, + { + "task": 3, + "start": 50, + "machine": 4, + "duration": 62 + }, + { + "task": 4, + "start": 112, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 352, + "machine": 1, + "duration": 89 + }, + { + "task": 1, + "start": 441, + "machine": 2, + "duration": 54 + }, + { + "task": 2, + "start": 574, + "machine": 3, + "duration": 36 + }, + { + "task": 3, + "start": 637, + "machine": 4, + "duration": 3 + }, + { + "task": 4, + "start": 654, + "machine": 5, + "duration": 15 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 169, + "machine": 1, + "duration": 62 + }, + { + "task": 1, + "start": 231, + "machine": 2, + "duration": 28 + }, + { + "task": 2, + "start": 259, + "machine": 3, + "duration": 68 + }, + { + "task": 3, + "start": 327, + "machine": 4, + "duration": 73 + }, + { + "task": 4, + "start": 435, + "machine": 5, + "duration": 77 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 32, + "machine": 1, + "duration": 76 + }, + { + "task": 1, + "start": 108, + "machine": 2, + "duration": 32 + }, + { + "task": 2, + "start": 155, + "machine": 3, + "duration": 73 + }, + { + "task": 3, + "start": 247, + "machine": 4, + "duration": 55 + }, + { + "task": 4, + "start": 340, + "machine": 5, + "duration": 95 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 274, + "machine": 1, + "duration": 78 + }, + { + "task": 1, + "start": 352, + "machine": 2, + "duration": 82 + }, + { + "task": 2, + "start": 434, + "machine": 3, + "duration": 34 + }, + { + "task": 3, + "start": 468, + "machine": 4, + "duration": 23 + }, + { + "task": 4, + "start": 574, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 231, + "machine": 1, + "duration": 43 + }, + { + "task": 1, + "start": 274, + "machine": 2, + "duration": 73 + }, + { + "task": 2, + "start": 468, + "machine": 3, + "duration": 55 + }, + { + "task": 3, + "start": 523, + "machine": 4, + "duration": 58 + }, + { + "task": 4, + "start": 633, + "machine": 5, + "duration": 17 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 108, + "machine": 1, + "duration": 61 + }, + { + "task": 1, + "start": 169, + "machine": 2, + "duration": 18 + }, + { + "task": 2, + "start": 327, + "machine": 3, + "duration": 96 + }, + { + "task": 3, + "start": 423, + "machine": 4, + "duration": 41 + }, + { + "task": 4, + "start": 512, + "machine": 5, + "duration": 62 + } + ] + } + ], + "context_index": 6, + "input_format": "csv", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Recently the post team ran into a puzzle: a batch of clips needs to pass through a fixed sequence of editing bays, and someone has to decide the start times so each bay only works on one clip at a time. The processing lengths for each step are known, no clip can skip or repeat a step, and the aim is to have all clips finished as soon as possible — check every clip’s finish moment and the latest one is the one to minimize. The detailed timings and clips are shown right below.\n\nThey are: 10 clips, 5 bays, clip IDs J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, bay order 0, 1, 2, 3, 4.\nClip J1, step 0, requires bay 0 for 1.\nClip J1, step 1, requires bay 1 for 32.\nClip J1, step 2, requires bay 2 for 27.\nClip J1, step 3, requires bay 3 for 2.\nClip J1, step 4, requires bay 4 for 57.\nClip J2, step 0, requires bay 0 for 51.\nClip J2, step 1, requires bay 1 for 26.\nClip J2, step 2, requires bay 2 for 58.\nClip J2, step 3, requires bay 3 for 61.\nClip J2, step 4, requires bay 4 for 86.\nClip J3, step 0, requires bay 0 for 41.\nClip J3, step 1, requires bay 1 for 93.\nClip J3, step 2, requires bay 2 for 88.\nClip J3, step 3, requires bay 3 for 66.\nClip J3, step 4, requires bay 4 for 57.\nClip J4, step 0, requires bay 0 for 43.\nClip J4, step 1, requires bay 1 for 22.\nClip J4, step 2, requires bay 2 for 37.\nClip J4, step 3, requires bay 3 for 40.\nClip J4, step 4, requires bay 4 for 21.\nClip J5, step 0, requires bay 0 for 4.\nClip J5, step 1, requires bay 1 for 96.\nClip J5, step 2, requires bay 2 for 27.\nClip J5, step 3, requires bay 3 for 66.\nClip J5, step 4, requires bay 4 for 61.\nClip J6, step 0, requires bay 0 for 29.\nClip J6, step 1, requires bay 1 for 42.\nClip J6, step 2, requires bay 2 for 39.\nClip J6, step 3, requires bay 3 for 96.\nClip J6, step 4, requires bay 4 for 66.\nClip J7, step 0, requires bay 0 for 69.\nClip J7, step 1, requires bay 1 for 58.\nClip J7, step 2, requires bay 2 for 60.\nClip J7, step 3, requires bay 3 for 28.\nClip J7, step 4, requires bay 4 for 33.\nClip J8, step 0, requires bay 0 for 75.\nClip J8, step 1, requires bay 1 for 37.\nClip J8, step 2, requires bay 2 for 31.\nClip J8, step 3, requires bay 3 for 57.\nClip J8, step 4, requires bay 4 for 54.\nClip J9, step 0, requires bay 0 for 85.\nClip J9, step 1, requires bay 1 for 17.\nClip J9, step 2, requires bay 2 for 69.\nClip J9, step 3, requires bay 3 for 16.\nClip J9, step 4, requires bay 4 for 28.\nClip J10, step 0, requires bay 0 for 49.\nClip J10, step 1, requires bay 1 for 32.\nClip J10, step 2, requires bay 2 for 47.\nClip J10, step 3, requires bay 3 for 9.\nClip J10, step 4, requires bay 4 for 94.\nThe goal remains to minimize the latest completion time across these 10 clips on the 5 bays.\n\nYou can send the final schedule back in a simple JSON shape like this — nothing fancy, just a small list of jobs where each job lists its tasks and start times.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a little form: \"solution\" holds every clip (job), each job entry names the job and then lists its tasks; each task line says which step it is, when that step starts, which bay (machine) it uses, and how long it runs. This is just the expected shape — not the actual schedule yet.\n\nPlease use the exact identifiers from the instance input as-is — do not rename them or introduce new labels. \n- 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 32 + ], + [ + 2, + 27 + ], + [ + 3, + 2 + ], + [ + 4, + 57 + ] + ], + [ + [ + 0, + 51 + ], + [ + 1, + 26 + ], + [ + 2, + 58 + ], + [ + 3, + 61 + ], + [ + 4, + 86 + ] + ], + [ + [ + 0, + 41 + ], + [ + 1, + 93 + ], + [ + 2, + 88 + ], + [ + 3, + 66 + ], + [ + 4, + 57 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 22 + ], + [ + 2, + 37 + ], + [ + 3, + 40 + ], + [ + 4, + 21 + ] + ], + [ + [ + 0, + 4 + ], + [ + 1, + 96 + ], + [ + 2, + 27 + ], + [ + 3, + 66 + ], + [ + 4, + 61 + ] + ], + [ + [ + 0, + 29 + ], + [ + 1, + 42 + ], + [ + 2, + 39 + ], + [ + 3, + 96 + ], + [ + 4, + 66 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 58 + ], + [ + 2, + 60 + ], + [ + 3, + 28 + ], + [ + 4, + 33 + ] + ], + [ + [ + 0, + 75 + ], + [ + 1, + 37 + ], + [ + 2, + 31 + ], + [ + 3, + 57 + ], + [ + 4, + 54 + ] + ], + [ + [ + 0, + 85 + ], + [ + 1, + 17 + ], + [ + 2, + 69 + ], + [ + 3, + 16 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 32 + ], + [ + 2, + 47 + ], + [ + 3, + 9 + ], + [ + 4, + 94 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 33, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 60, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 62, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 79, + "machine": 0, + "duration": 51 + }, + { + "task": 1, + "start": 130, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 168, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 264, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 330, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 130, + "machine": 0, + "duration": 41 + }, + { + "task": 1, + "start": 171, + "machine": 1, + "duration": 93 + }, + { + "task": 2, + "start": 264, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 352, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 418, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 335, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 507, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 567, + "machine": 2, + "duration": 37 + }, + { + "task": 3, + "start": 604, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 651, + "machine": 4, + "duration": 21 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 171, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 353, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 456, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 491, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 557, + "machine": 4, + "duration": 61 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 50, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 82, + "machine": 1, + "duration": 42 + }, + { + "task": 2, + "start": 129, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 168, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 264, + "machine": 4, + "duration": 66 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 378, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 449, + "machine": 1, + "duration": 58 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 60 + }, + { + "task": 3, + "start": 567, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 618, + "machine": 4, + "duration": 33 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 175, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 299, + "machine": 1, + "duration": 37 + }, + { + "task": 2, + "start": 356, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 418, + "machine": 3, + "duration": 57 + }, + { + "task": 4, + "start": 475, + "machine": 4, + "duration": 54 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 250, + "machine": 0, + "duration": 85 + }, + { + "task": 1, + "start": 336, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 387, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 475, + "machine": 3, + "duration": 16 + }, + { + "task": 4, + "start": 529, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 50, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 82, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 129, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 138, + "machine": 4, + "duration": 94 + } + ] + } + ], + "obj": 672.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 32 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 2 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 57 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 51 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 61 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 86 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 41 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 93 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 66 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 57 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 43 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 22 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 37 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 40 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 21 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 4 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 96 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 66 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 61 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 29 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 42 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 39 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 96 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 66 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 69 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 58 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 60 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 28 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "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": 2, + "duration": 31 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 57 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 54 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 85 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 17 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 69 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 16 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 32 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 47 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 9 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 94 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 33, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 60, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 62, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 79, + "machine": 0, + "duration": 51 + }, + { + "task": 1, + "start": 130, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 168, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 264, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 330, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 130, + "machine": 0, + "duration": 41 + }, + { + "task": 1, + "start": 171, + "machine": 1, + "duration": 93 + }, + { + "task": 2, + "start": 264, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 352, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 418, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 335, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 507, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 567, + "machine": 2, + "duration": 37 + }, + { + "task": 3, + "start": 604, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 651, + "machine": 4, + "duration": 21 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 171, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 353, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 456, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 491, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 557, + "machine": 4, + "duration": 61 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 50, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 82, + "machine": 1, + "duration": 42 + }, + { + "task": 2, + "start": 129, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 168, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 264, + "machine": 4, + "duration": 66 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 378, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 449, + "machine": 1, + "duration": 58 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 60 + }, + { + "task": 3, + "start": 567, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 618, + "machine": 4, + "duration": 33 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 175, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 299, + "machine": 1, + "duration": 37 + }, + { + "task": 2, + "start": 356, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 418, + "machine": 3, + "duration": 57 + }, + { + "task": 4, + "start": 475, + "machine": 4, + "duration": 54 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 250, + "machine": 0, + "duration": 85 + }, + { + "task": 1, + "start": 336, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 387, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 475, + "machine": 3, + "duration": 16 + }, + { + "task": 4, + "start": 529, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 50, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 82, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 129, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 138, + "machine": 4, + "duration": 94 + } + ] + } + ], + "context_index": 7, + "input_format": "nl", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "We manage a busy service where every dish needs to pass through the same sequence of prep and finishing stations, each step taking a fixed amount of time. The decision is about scheduling those steps so stations never try to do two things at once and no dish skips or repeats a step. A better plan is one that brings the whole meal service to a close sooner — the finish time of the final dish is the metric to watch. The concrete dish timings and station order are listed below.\n\nWe have 9 dishes and 5 stations; dish identifiers: J1, J2, J3, J4, J5, J6, J7, J8, J9; station sequence: 0, 1, 2, 3, 4.\nFor dish J1, step 0 uses station 0 for 1 minutes.\nFor dish J1, step 1 uses station 1 for 45 minutes.\nFor dish J1, step 2 uses station 2 for 3 minutes.\nFor dish J1, step 3 uses station 3 for 47 minutes.\nFor dish J1, step 4 uses station 4 for 11 minutes.\nFor dish J2, step 0 uses station 0 for 73 minutes.\nFor dish J2, step 1 uses station 1 for 31 minutes.\nFor dish J2, step 2 uses station 2 for 27 minutes.\nFor dish J2, step 3 uses station 3 for 29 minutes.\nFor dish J2, step 4 uses station 4 for 80 minutes.\nFor dish J3, step 0 uses station 0 for 79 minutes.\nFor dish J3, step 1 uses station 1 for 45 minutes.\nFor dish J3, step 2 uses station 2 for 72 minutes.\nFor dish J3, step 3 uses station 3 for 69 minutes.\nFor dish J3, step 4 uses station 4 for 62 minutes.\nFor dish J4, step 0 uses station 0 for 95 minutes.\nFor dish J4, step 1 uses station 1 for 88 minutes.\nFor dish J4, step 2 uses station 2 for 38 minutes.\nFor dish J4, step 3 uses station 3 for 78 minutes.\nFor dish J4, step 4 uses station 4 for 28 minutes.\nFor dish J5, step 0 uses station 0 for 46 minutes.\nFor dish J5, step 1 uses station 1 for 65 minutes.\nFor dish J5, step 2 uses station 2 for 86 minutes.\nFor dish J5, step 3 uses station 3 for 59 minutes.\nFor dish J5, step 4 uses station 4 for 46 minutes.\nFor dish J6, step 0 uses station 0 for 82 minutes.\nFor dish J6, step 1 uses station 1 for 51 minutes.\nFor dish J6, step 2 uses station 2 for 5 minutes.\nFor dish J6, step 3 uses station 3 for 39 minutes.\nFor dish J6, step 4 uses station 4 for 36 minutes.\nFor dish J7, step 0 uses station 0 for 60 minutes.\nFor dish J7, step 1 uses station 1 for 35 minutes.\nFor dish J7, step 2 uses station 2 for 86 minutes.\nFor dish J7, step 3 uses station 3 for 33 minutes.\nFor dish J7, step 4 uses station 4 for 7 minutes.\nFor dish J8, step 0 uses station 0 for 9 minutes.\nFor dish J8, step 1 uses station 1 for 99 minutes.\nFor dish J8, step 2 uses station 2 for 7 minutes.\nFor dish J8, step 3 uses station 3 for 56 minutes.\nFor dish J8, step 4 uses station 4 for 90 minutes.\nFor dish J9, step 0 uses station 0 for 11 minutes.\nFor dish J9, step 1 uses station 1 for 15 minutes.\nFor dish J9, step 2 uses station 2 for 41 minutes.\nFor dish J9, step 3 uses station 3 for 91 minutes.\nFor dish J9, step 4 uses station 4 for 92 minutes.\nWe schedule these steps so we finish all 9 dishes as soon as possible.\n\nAlso, when you hand me the schedule back, a simple JSON like this is perfect — nothing fancy, just that shape so I can read each dish and its steps easily.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that as a little form: \"solution\" is a list of dishes; each dish has a \"job\" identifier and a list of \"tasks\". Each task entry just says which step number it is (\"task\"), when that step starts (\"start\"), which station handles it (\"machine\"), and how long it runs (\"duration\"). Super lightweight — just enough to capture the order and timing.\n\nThis JSON is only a sketch of the expected shape, not your actual answer. 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 45 + ], + [ + 2, + 3 + ], + [ + 3, + 47 + ], + [ + 4, + 11 + ] + ], + [ + [ + 0, + 73 + ], + [ + 1, + 31 + ], + [ + 2, + 27 + ], + [ + 3, + 29 + ], + [ + 4, + 80 + ] + ], + [ + [ + 0, + 79 + ], + [ + 1, + 45 + ], + [ + 2, + 72 + ], + [ + 3, + 69 + ], + [ + 4, + 62 + ] + ], + [ + [ + 0, + 95 + ], + [ + 1, + 88 + ], + [ + 2, + 38 + ], + [ + 3, + 78 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 46 + ], + [ + 1, + 65 + ], + [ + 2, + 86 + ], + [ + 3, + 59 + ], + [ + 4, + 46 + ] + ], + [ + [ + 0, + 82 + ], + [ + 1, + 51 + ], + [ + 2, + 5 + ], + [ + 3, + 39 + ], + [ + 4, + 36 + ] + ], + [ + [ + 0, + 60 + ], + [ + 1, + 35 + ], + [ + 2, + 86 + ], + [ + 3, + 33 + ], + [ + 4, + 7 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 99 + ], + [ + 2, + 7 + ], + [ + 3, + 56 + ], + [ + 4, + 90 + ] + ], + [ + [ + 0, + 11 + ], + [ + 1, + 15 + ], + [ + 2, + 41 + ], + [ + 3, + 91 + ], + [ + 4, + 92 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 11, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 170, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 242, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 245, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 340, + "machine": 4, + "duration": 11 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 100, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 215, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 246, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 292, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 351, + "machine": 4, + "duration": 80 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 21, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 125, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 170, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 431, + "machine": 4, + "duration": 62 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 219, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 314, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 402, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 456, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 539, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 173, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 246, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 311, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 397, + "machine": 3, + "duration": 59 + }, + { + "task": 4, + "start": 493, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 374, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 456, + "machine": 1, + "duration": 51 + }, + { + "task": 2, + "start": 526, + "machine": 2, + "duration": 5 + }, + { + "task": 3, + "start": 534, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 573, + "machine": 4, + "duration": 36 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 314, + "machine": 0, + "duration": 60 + }, + { + "task": 1, + "start": 402, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 440, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 573, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 609, + "machine": 4, + "duration": 7 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 26, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 125, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 158, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 250, + "machine": 4, + "duration": 90 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 11, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 26, + "machine": 2, + "duration": 41 + }, + { + "task": 3, + "start": 67, + "machine": 3, + "duration": 91 + }, + { + "task": 4, + "start": 158, + "machine": 4, + "duration": 92 + } + ] + } + ], + "obj": 616.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 45 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 3 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 47 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 11 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 73 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 29 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 80 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 79 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 45 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 72 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 69 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 62 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 95 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 88 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 38 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 78 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 46 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 65 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 86 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 59 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 82 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 51 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 5 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 39 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 36 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 60 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 35 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 86 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 7 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 9 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 99 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 7 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 56 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 90 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 11 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 41 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 91 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 92 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 11, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 170, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 242, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 245, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 340, + "machine": 4, + "duration": 11 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 100, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 215, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 246, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 292, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 351, + "machine": 4, + "duration": 80 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 21, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 125, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 170, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 431, + "machine": 4, + "duration": 62 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 219, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 314, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 402, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 456, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 539, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 173, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 246, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 311, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 397, + "machine": 3, + "duration": 59 + }, + { + "task": 4, + "start": 493, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 374, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 456, + "machine": 1, + "duration": 51 + }, + { + "task": 2, + "start": 526, + "machine": 2, + "duration": 5 + }, + { + "task": 3, + "start": 534, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 573, + "machine": 4, + "duration": 36 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 314, + "machine": 0, + "duration": 60 + }, + { + "task": 1, + "start": 402, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 440, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 573, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 609, + "machine": 4, + "duration": 7 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 26, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 125, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 158, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 250, + "machine": 4, + "duration": 90 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 11, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 26, + "machine": 2, + "duration": 41 + }, + { + "task": 3, + "start": 67, + "machine": 3, + "duration": 91 + }, + { + "task": 4, + "start": 158, + "machine": 4, + "duration": 92 + } + ] + } + ], + "context_index": 8, + "input_format": "nl", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I’m juggling a bench full of samples that all need to move through the same lineup of instruments, each step taking a known amount of time. The job is to pick when each sample starts on each instrument so nothing gets missed or repeated, every step happens in the fixed order, and no instrument is asked to run two analyses at once. A good plan is one where the whole batch is done as early as possible — measured by the clock time when the last sample finishes — so the later that final finish time is, the worse the plan. The concrete details are shown below.\n\n# num_samples=12\n# num_instruments=5\n# sample_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# instrument_ids=A, B, C, D, E\nsample_id,step_index,instrument_id,analysis_duration\nJ1,0,A,1\nJ1,1,B,58\nJ1,2,C,78\nJ1,3,D,93\nJ1,4,E,64\nJ2,0,A,94\nJ2,1,B,35\nJ2,2,C,94\nJ2,3,D,96\nJ2,4,E,73\nJ3,0,A,18\nJ3,1,B,97\nJ3,2,C,55\nJ3,3,D,73\nJ3,4,E,67\nJ4,0,A,49\nJ4,1,B,56\nJ4,2,C,39\nJ4,3,D,17\nJ4,4,E,34\nJ5,0,A,87\nJ5,1,B,34\nJ5,2,C,45\nJ5,3,D,52\nJ5,4,E,31\nJ6,0,A,35\nJ6,1,B,60\nJ6,2,C,69\nJ6,3,D,80\nJ6,4,E,6\nJ7,0,A,52\nJ7,1,B,11\nJ7,2,C,13\nJ7,3,D,37\nJ7,4,E,80\nJ8,0,A,41\nJ8,1,B,63\nJ8,2,C,82\nJ8,3,D,55\nJ8,4,E,27\nJ9,0,A,35\nJ9,1,B,13\nJ9,2,C,14\nJ9,3,D,67\nJ9,4,E,58\nJ10,0,A,63\nJ10,1,B,58\nJ10,2,C,24\nJ10,3,D,63\nJ10,4,E,82\nJ11,0,A,33\nJ11,1,B,88\nJ11,2,C,88\nJ11,3,D,74\nJ11,4,E,96\nJ12,0,A,33\nJ12,1,B,33\nJ12,2,C,88\nJ12,3,D,46\nJ12,4,E,3\n\nAlso, when you send the schedule back, just use this simple JSON layout so everything lines up nicely:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that like a little form: \"solution\" is the list of jobs, each job entry names the job and then lists its tasks; for each task you give the task index, the start time, which machine it runs on, and how long it takes. That block is just a sketch of the shape I expect, not the actual schedule.\n\nPlease make sure to use the exact identifiers from the instance input — don’t rename 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 58 + ], + [ + 2, + 78 + ], + [ + 3, + 93 + ], + [ + 4, + 64 + ] + ], + [ + [ + 0, + 94 + ], + [ + 1, + 35 + ], + [ + 2, + 94 + ], + [ + 3, + 96 + ], + [ + 4, + 73 + ] + ], + [ + [ + 0, + 18 + ], + [ + 1, + 97 + ], + [ + 2, + 55 + ], + [ + 3, + 73 + ], + [ + 4, + 67 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 56 + ], + [ + 2, + 39 + ], + [ + 3, + 17 + ], + [ + 4, + 34 + ] + ], + [ + [ + 0, + 87 + ], + [ + 1, + 34 + ], + [ + 2, + 45 + ], + [ + 3, + 52 + ], + [ + 4, + 31 + ] + ], + [ + [ + 0, + 35 + ], + [ + 1, + 60 + ], + [ + 2, + 69 + ], + [ + 3, + 80 + ], + [ + 4, + 6 + ] + ], + [ + [ + 0, + 52 + ], + [ + 1, + 11 + ], + [ + 2, + 13 + ], + [ + 3, + 37 + ], + [ + 4, + 80 + ] + ], + [ + [ + 0, + 41 + ], + [ + 1, + 63 + ], + [ + 2, + 82 + ], + [ + 3, + 55 + ], + [ + 4, + 27 + ] + ], + [ + [ + 0, + 35 + ], + [ + 1, + 13 + ], + [ + 2, + 14 + ], + [ + 3, + 67 + ], + [ + 4, + 58 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 58 + ], + [ + 2, + 24 + ], + [ + 3, + 63 + ], + [ + 4, + 82 + ] + ], + [ + [ + 0, + 33 + ], + [ + 1, + 88 + ], + [ + 2, + 88 + ], + [ + 3, + 74 + ], + [ + 4, + 96 + ] + ], + [ + [ + 0, + 33 + ], + [ + 1, + 33 + ], + [ + 2, + 88 + ], + [ + 3, + 46 + ], + [ + 4, + 3 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 58 + }, + { + "task": 2, + "start": 112, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 190, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 286, + "machine": 4, + "duration": 64 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 106, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 203, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 259, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 356, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 485, + "machine": 4, + "duration": 73 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 88, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 106, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 204, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 283, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 360, + "machine": 4, + "duration": 67 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 492, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 604, + "machine": 1, + "duration": 56 + }, + { + "task": 2, + "start": 665, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 776, + "machine": 3, + "duration": 17 + }, + { + "task": 4, + "start": 803, + "machine": 4, + "duration": 34 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 274, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 392, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 523, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 581, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 654, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 457, + "machine": 0, + "duration": 35 + }, + { + "task": 1, + "start": 492, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 592, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 696, + "machine": 3, + "duration": 80 + }, + { + "task": 4, + "start": 795, + "machine": 4, + "duration": 6 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 36, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 88, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 99, + "machine": 2, + "duration": 13 + }, + { + "task": 3, + "start": 153, + "machine": 3, + "duration": 37 + }, + { + "task": 4, + "start": 190, + "machine": 4, + "duration": 80 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 233, + "machine": 0, + "duration": 41 + }, + { + "task": 1, + "start": 326, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 441, + "machine": 2, + "duration": 82 + }, + { + "task": 3, + "start": 526, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 685, + "machine": 4, + "duration": 27 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 35 + }, + { + "task": 1, + "start": 59, + "machine": 1, + "duration": 13 + }, + { + "task": 2, + "start": 72, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 86, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 427, + "machine": 4, + "duration": 58 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 361, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 426, + "machine": 1, + "duration": 58 + }, + { + "task": 2, + "start": 568, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 633, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 712, + "machine": 4, + "duration": 82 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 200, + "machine": 0, + "duration": 33 + }, + { + "task": 1, + "start": 238, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 353, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 452, + "machine": 3, + "duration": 74 + }, + { + "task": 4, + "start": 558, + "machine": 4, + "duration": 96 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 424, + "machine": 0, + "duration": 33 + }, + { + "task": 1, + "start": 552, + "machine": 1, + "duration": 33 + }, + { + "task": 2, + "start": 704, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 793, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 839, + "machine": 4, + "duration": 3 + } + ] + } + ], + "obj": 842.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 12, + "nr_machines": 5, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9", + "J10", + "J11", + "J12" + ], + "machines": [ + "A", + "B", + "C", + "D", + "E" + ], + "records": [ + { + "job_id": "J1", + "task_id": 0, + "machine_id": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 58 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 78 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 93 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 64 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 94 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 35 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 94 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 96 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 73 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 18 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 97 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 55 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 73 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 67 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 49 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 56 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 17 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 34 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 34 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 45 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 52 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 35 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 60 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 69 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 80 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 6 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 52 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 11 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 13 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 37 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 80 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 41 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 63 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 82 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 55 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 27 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 35 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 13 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 14 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 67 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 58 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 63 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 58 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 24 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 63 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 82 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 33 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 88 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 88 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 74 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 96 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 33 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 33 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 88 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 46 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 3 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 58 + }, + { + "task": 2, + "start": 112, + "machine": "C", + "duration": 78 + }, + { + "task": 3, + "start": 190, + "machine": "D", + "duration": 93 + }, + { + "task": 4, + "start": 286, + "machine": "E", + "duration": 64 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 106, + "machine": "A", + "duration": 94 + }, + { + "task": 1, + "start": 203, + "machine": "B", + "duration": 35 + }, + { + "task": 2, + "start": 259, + "machine": "C", + "duration": 94 + }, + { + "task": 3, + "start": 356, + "machine": "D", + "duration": 96 + }, + { + "task": 4, + "start": 485, + "machine": "E", + "duration": 73 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 88, + "machine": "A", + "duration": 18 + }, + { + "task": 1, + "start": 106, + "machine": "B", + "duration": 97 + }, + { + "task": 2, + "start": 204, + "machine": "C", + "duration": 55 + }, + { + "task": 3, + "start": 283, + "machine": "D", + "duration": 73 + }, + { + "task": 4, + "start": 360, + "machine": "E", + "duration": 67 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 492, + "machine": "A", + "duration": 49 + }, + { + "task": 1, + "start": 604, + "machine": "B", + "duration": 56 + }, + { + "task": 2, + "start": 665, + "machine": "C", + "duration": 39 + }, + { + "task": 3, + "start": 776, + "machine": "D", + "duration": 17 + }, + { + "task": 4, + "start": 803, + "machine": "E", + "duration": 34 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 274, + "machine": "A", + "duration": 87 + }, + { + "task": 1, + "start": 392, + "machine": "B", + "duration": 34 + }, + { + "task": 2, + "start": 523, + "machine": "C", + "duration": 45 + }, + { + "task": 3, + "start": 581, + "machine": "D", + "duration": 52 + }, + { + "task": 4, + "start": 654, + "machine": "E", + "duration": 31 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 457, + "machine": "A", + "duration": 35 + }, + { + "task": 1, + "start": 492, + "machine": "B", + "duration": 60 + }, + { + "task": 2, + "start": 592, + "machine": "C", + "duration": 69 + }, + { + "task": 3, + "start": 696, + "machine": "D", + "duration": 80 + }, + { + "task": 4, + "start": 795, + "machine": "E", + "duration": 6 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 36, + "machine": "A", + "duration": 52 + }, + { + "task": 1, + "start": 88, + "machine": "B", + "duration": 11 + }, + { + "task": 2, + "start": 99, + "machine": "C", + "duration": 13 + }, + { + "task": 3, + "start": 153, + "machine": "D", + "duration": 37 + }, + { + "task": 4, + "start": 190, + "machine": "E", + "duration": 80 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 233, + "machine": "A", + "duration": 41 + }, + { + "task": 1, + "start": 326, + "machine": "B", + "duration": 63 + }, + { + "task": 2, + "start": 441, + "machine": "C", + "duration": 82 + }, + { + "task": 3, + "start": 526, + "machine": "D", + "duration": 55 + }, + { + "task": 4, + "start": 685, + "machine": "E", + "duration": 27 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 35 + }, + { + "task": 1, + "start": 59, + "machine": "B", + "duration": 13 + }, + { + "task": 2, + "start": 72, + "machine": "C", + "duration": 14 + }, + { + "task": 3, + "start": 86, + "machine": "D", + "duration": 67 + }, + { + "task": 4, + "start": 427, + "machine": "E", + "duration": 58 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 361, + "machine": "A", + "duration": 63 + }, + { + "task": 1, + "start": 426, + "machine": "B", + "duration": 58 + }, + { + "task": 2, + "start": 568, + "machine": "C", + "duration": 24 + }, + { + "task": 3, + "start": 633, + "machine": "D", + "duration": 63 + }, + { + "task": 4, + "start": 712, + "machine": "E", + "duration": 82 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 200, + "machine": "A", + "duration": 33 + }, + { + "task": 1, + "start": 238, + "machine": "B", + "duration": 88 + }, + { + "task": 2, + "start": 353, + "machine": "C", + "duration": 88 + }, + { + "task": 3, + "start": 452, + "machine": "D", + "duration": 74 + }, + { + "task": 4, + "start": 558, + "machine": "E", + "duration": 96 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 424, + "machine": "A", + "duration": 33 + }, + { + "task": 1, + "start": 552, + "machine": "B", + "duration": 33 + }, + { + "task": 2, + "start": 704, + "machine": "C", + "duration": 88 + }, + { + "task": 3, + "start": 793, + "machine": "D", + "duration": 46 + }, + { + "task": 4, + "start": 839, + "machine": "E", + "duration": 3 + } + ] + } + ], + "context_index": 9, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I’m the foreperson on the shop floor, lining up a batch of tabletops that all need the same run of stations — sanding, staining, assembly — each step taking a known amount of time. The job is to pick the order the tables go through and set their start times so no station ever works on two tables at once and every table goes through each step exactly once in the same order. A good plan is the one that gets the last table off the final station as early as possible, so success is measured by that finishing time. The exact stations and operation times are shown below.\n\n# nr_tables=12\n# nr_stations=6\n# table_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# station_ids=1, 2, 3, 4, 5, 6\ntable_id,step_index,station_id,processing_time\nJ1,0,1,1\nJ1,1,2,71\nJ1,2,3,54\nJ1,3,4,39\nJ1,4,5,17\nJ1,5,6,17\nJ2,0,1,40\nJ2,1,2,62\nJ2,2,3,64\nJ2,3,4,67\nJ2,4,5,56\nJ2,5,6,49\nJ3,0,1,38\nJ3,1,2,76\nJ3,2,3,72\nJ3,3,4,2\nJ3,4,5,23\nJ3,5,6,39\nJ4,0,1,55\nJ4,1,2,41\nJ4,2,3,29\nJ4,3,4,3\nJ4,4,5,4\nJ4,5,6,45\nJ5,0,1,16\nJ5,1,2,87\nJ5,2,3,69\nJ5,3,4,35\nJ5,4,5,22\nJ5,5,6,76\nJ6,0,1,43\nJ6,1,2,87\nJ6,2,3,39\nJ6,3,4,42\nJ6,4,5,54\nJ6,5,6,74\nJ7,0,1,27\nJ7,1,2,58\nJ7,2,3,54\nJ7,3,4,63\nJ7,4,5,60\nJ7,5,6,11\nJ8,0,1,85\nJ8,1,2,42\nJ8,2,3,23\nJ8,3,4,70\nJ8,4,5,22\nJ8,5,6,12\nJ9,0,1,90\nJ9,1,2,26\nJ9,2,3,10\nJ9,3,4,37\nJ9,4,5,13\nJ9,5,6,3\nJ10,0,1,32\nJ10,1,2,49\nJ10,2,3,81\nJ10,3,4,78\nJ10,4,5,37\nJ10,5,6,9\nJ11,0,1,14\nJ11,1,2,73\nJ11,2,3,33\nJ11,3,4,27\nJ11,4,5,32\nJ11,5,6,20\nJ12,0,1,57\nJ12,1,2,63\nJ12,2,3,34\nJ12,3,4,76\nJ12,4,5,54\nJ12,5,6,59\n\nAlso, when you send me the actual schedule, it helps if you follow this little JSON layout so everything’s easy to read and parse:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a template to show the shape I’m expecting. Think of it like a simple form: \"solution\" is the list of all tables (jobs), each entry has the job identifier, and \"tasks\" is the sequence of steps for that table. Inside each task object, \"task\" is which step in the sequence it is, \"start\" is the time that step begins, \"machine\" is which station is doing the work, and \"duration\" is how long that step takes. Keep it light—this block is a sketch of the expected shape, not the actual schedule.\n\nPlease be careful 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 71 + ], + [ + 2, + 54 + ], + [ + 3, + 39 + ], + [ + 4, + 17 + ], + [ + 5, + 17 + ] + ], + [ + [ + 0, + 40 + ], + [ + 1, + 62 + ], + [ + 2, + 64 + ], + [ + 3, + 67 + ], + [ + 4, + 56 + ], + [ + 5, + 49 + ] + ], + [ + [ + 0, + 38 + ], + [ + 1, + 76 + ], + [ + 2, + 72 + ], + [ + 3, + 2 + ], + [ + 4, + 23 + ], + [ + 5, + 39 + ] + ], + [ + [ + 0, + 55 + ], + [ + 1, + 41 + ], + [ + 2, + 29 + ], + [ + 3, + 3 + ], + [ + 4, + 4 + ], + [ + 5, + 45 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 87 + ], + [ + 2, + 69 + ], + [ + 3, + 35 + ], + [ + 4, + 22 + ], + [ + 5, + 76 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 87 + ], + [ + 2, + 39 + ], + [ + 3, + 42 + ], + [ + 4, + 54 + ], + [ + 5, + 74 + ] + ], + [ + [ + 0, + 27 + ], + [ + 1, + 58 + ], + [ + 2, + 54 + ], + [ + 3, + 63 + ], + [ + 4, + 60 + ], + [ + 5, + 11 + ] + ], + [ + [ + 0, + 85 + ], + [ + 1, + 42 + ], + [ + 2, + 23 + ], + [ + 3, + 70 + ], + [ + 4, + 22 + ], + [ + 5, + 12 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 26 + ], + [ + 2, + 10 + ], + [ + 3, + 37 + ], + [ + 4, + 13 + ], + [ + 5, + 3 + ] + ], + [ + [ + 0, + 32 + ], + [ + 1, + 49 + ], + [ + 2, + 81 + ], + [ + 3, + 78 + ], + [ + 4, + 37 + ], + [ + 5, + 9 + ] + ], + [ + [ + 0, + 14 + ], + [ + 1, + 73 + ], + [ + 2, + 33 + ], + [ + 3, + 27 + ], + [ + 4, + 32 + ], + [ + 5, + 20 + ] + ], + [ + [ + 0, + 57 + ], + [ + 1, + 63 + ], + [ + 2, + 34 + ], + [ + 3, + 76 + ], + [ + 4, + 54 + ], + [ + 5, + 59 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 72, + "machine": 2, + "duration": 54 + }, + { + "task": 3, + "start": 126, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 459, + "machine": 4, + "duration": 17 + }, + { + "task": 5, + "start": 508, + "machine": 5, + "duration": 17 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 153, + "machine": 0, + "duration": 40 + }, + { + "task": 1, + "start": 193, + "machine": 1, + "duration": 62 + }, + { + "task": 2, + "start": 263, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 336, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 403, + "machine": 4, + "duration": 56 + }, + { + "task": 5, + "start": 459, + "machine": 5, + "duration": 49 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 115, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 520, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 596, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 682, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 684, + "machine": 4, + "duration": 23 + }, + { + "task": 5, + "start": 707, + "machine": 5, + "duration": 39 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 476, + "machine": 0, + "duration": 55 + }, + { + "task": 1, + "start": 669, + "machine": 1, + "duration": 41 + }, + { + "task": 2, + "start": 710, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 739, + "machine": 3, + "duration": 3 + }, + { + "task": 4, + "start": 742, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 746, + "machine": 5, + "duration": 45 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 99, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 304, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 417, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 486, + "machine": 3, + "duration": 35 + }, + { + "task": 4, + "start": 523, + "machine": 4, + "duration": 22 + }, + { + "task": 5, + "start": 545, + "machine": 5, + "duration": 76 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 348, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 391, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 486, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 525, + "machine": 3, + "duration": 42 + }, + { + "task": 4, + "start": 567, + "machine": 4, + "duration": 54 + }, + { + "task": 5, + "start": 621, + "machine": 5, + "duration": 74 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 72, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 135, + "machine": 1, + "duration": 58 + }, + { + "task": 2, + "start": 209, + "machine": 2, + "duration": 54 + }, + { + "task": 3, + "start": 273, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 336, + "machine": 4, + "duration": 60 + }, + { + "task": 5, + "start": 534, + "machine": 5, + "duration": 11 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 391, + "machine": 0, + "duration": 85 + }, + { + "task": 1, + "start": 478, + "machine": 1, + "duration": 42 + }, + { + "task": 2, + "start": 525, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 567, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 637, + "machine": 4, + "duration": 22 + }, + { + "task": 5, + "start": 695, + "machine": 5, + "duration": 12 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 225, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 710, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 739, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 749, + "machine": 3, + "duration": 37 + }, + { + "task": 4, + "start": 791, + "machine": 4, + "duration": 13 + }, + { + "task": 5, + "start": 811, + "machine": 5, + "duration": 3 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 193, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 255, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 327, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 408, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 486, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 525, + "machine": 5, + "duration": 9 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 58, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 596, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 669, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 712, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 759, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 791, + "machine": 5, + "duration": 20 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 57 + }, + { + "task": 1, + "start": 72, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 135, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 197, + "machine": 3, + "duration": 76 + }, + { + "task": 4, + "start": 273, + "machine": 4, + "duration": 54 + }, + { + "task": 5, + "start": 327, + "machine": 5, + "duration": 59 + } + ] + } + ], + "obj": 814.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 71 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 54 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 39 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 17 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 6, + "duration": 17 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 40 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 62 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 64 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 67 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 56 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 6, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 38 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 76 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 72 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 2 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 23 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 6, + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 55 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 41 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 29 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 3 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 4 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 6, + "duration": 45 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 69 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 35 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 22 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 6, + "duration": 76 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 43 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 87 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 39 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 42 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 54 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 6, + "duration": 74 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 27 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 54 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 63 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 60 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 6, + "duration": 11 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 85 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 42 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 23 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 70 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 22 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 6, + "duration": 12 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 90 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 26 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 10 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 37 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 13 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 6, + "duration": 3 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 32 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 81 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 78 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 37 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 6, + "duration": 9 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 1, + "duration": 14 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 2, + "duration": 73 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 4, + "duration": 27 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 5, + "duration": 32 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": 6, + "duration": 20 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 1, + "duration": 57 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 2, + "duration": 63 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 3, + "duration": 34 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 4, + "duration": 76 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 5, + "duration": 54 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": 6, + "duration": 59 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 71 + }, + { + "task": 2, + "start": 72, + "machine": 3, + "duration": 54 + }, + { + "task": 3, + "start": 126, + "machine": 4, + "duration": 39 + }, + { + "task": 4, + "start": 459, + "machine": 5, + "duration": 17 + }, + { + "task": 5, + "start": 508, + "machine": 6, + "duration": 17 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 153, + "machine": 1, + "duration": 40 + }, + { + "task": 1, + "start": 193, + "machine": 2, + "duration": 62 + }, + { + "task": 2, + "start": 263, + "machine": 3, + "duration": 64 + }, + { + "task": 3, + "start": 336, + "machine": 4, + "duration": 67 + }, + { + "task": 4, + "start": 403, + "machine": 5, + "duration": 56 + }, + { + "task": 5, + "start": 459, + "machine": 6, + "duration": 49 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 115, + "machine": 1, + "duration": 38 + }, + { + "task": 1, + "start": 520, + "machine": 2, + "duration": 76 + }, + { + "task": 2, + "start": 596, + "machine": 3, + "duration": 72 + }, + { + "task": 3, + "start": 682, + "machine": 4, + "duration": 2 + }, + { + "task": 4, + "start": 684, + "machine": 5, + "duration": 23 + }, + { + "task": 5, + "start": 707, + "machine": 6, + "duration": 39 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 476, + "machine": 1, + "duration": 55 + }, + { + "task": 1, + "start": 669, + "machine": 2, + "duration": 41 + }, + { + "task": 2, + "start": 710, + "machine": 3, + "duration": 29 + }, + { + "task": 3, + "start": 739, + "machine": 4, + "duration": 3 + }, + { + "task": 4, + "start": 742, + "machine": 5, + "duration": 4 + }, + { + "task": 5, + "start": 746, + "machine": 6, + "duration": 45 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 99, + "machine": 1, + "duration": 16 + }, + { + "task": 1, + "start": 304, + "machine": 2, + "duration": 87 + }, + { + "task": 2, + "start": 417, + "machine": 3, + "duration": 69 + }, + { + "task": 3, + "start": 486, + "machine": 4, + "duration": 35 + }, + { + "task": 4, + "start": 523, + "machine": 5, + "duration": 22 + }, + { + "task": 5, + "start": 545, + "machine": 6, + "duration": 76 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 348, + "machine": 1, + "duration": 43 + }, + { + "task": 1, + "start": 391, + "machine": 2, + "duration": 87 + }, + { + "task": 2, + "start": 486, + "machine": 3, + "duration": 39 + }, + { + "task": 3, + "start": 525, + "machine": 4, + "duration": 42 + }, + { + "task": 4, + "start": 567, + "machine": 5, + "duration": 54 + }, + { + "task": 5, + "start": 621, + "machine": 6, + "duration": 74 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 72, + "machine": 1, + "duration": 27 + }, + { + "task": 1, + "start": 135, + "machine": 2, + "duration": 58 + }, + { + "task": 2, + "start": 209, + "machine": 3, + "duration": 54 + }, + { + "task": 3, + "start": 273, + "machine": 4, + "duration": 63 + }, + { + "task": 4, + "start": 336, + "machine": 5, + "duration": 60 + }, + { + "task": 5, + "start": 534, + "machine": 6, + "duration": 11 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 391, + "machine": 1, + "duration": 85 + }, + { + "task": 1, + "start": 478, + "machine": 2, + "duration": 42 + }, + { + "task": 2, + "start": 525, + "machine": 3, + "duration": 23 + }, + { + "task": 3, + "start": 567, + "machine": 4, + "duration": 70 + }, + { + "task": 4, + "start": 637, + "machine": 5, + "duration": 22 + }, + { + "task": 5, + "start": 695, + "machine": 6, + "duration": 12 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 225, + "machine": 1, + "duration": 90 + }, + { + "task": 1, + "start": 710, + "machine": 2, + "duration": 26 + }, + { + "task": 2, + "start": 739, + "machine": 3, + "duration": 10 + }, + { + "task": 3, + "start": 749, + "machine": 4, + "duration": 37 + }, + { + "task": 4, + "start": 791, + "machine": 5, + "duration": 13 + }, + { + "task": 5, + "start": 811, + "machine": 6, + "duration": 3 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 193, + "machine": 1, + "duration": 32 + }, + { + "task": 1, + "start": 255, + "machine": 2, + "duration": 49 + }, + { + "task": 2, + "start": 327, + "machine": 3, + "duration": 81 + }, + { + "task": 3, + "start": 408, + "machine": 4, + "duration": 78 + }, + { + "task": 4, + "start": 486, + "machine": 5, + "duration": 37 + }, + { + "task": 5, + "start": 525, + "machine": 6, + "duration": 9 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 58, + "machine": 1, + "duration": 14 + }, + { + "task": 1, + "start": 596, + "machine": 2, + "duration": 73 + }, + { + "task": 2, + "start": 669, + "machine": 3, + "duration": 33 + }, + { + "task": 3, + "start": 712, + "machine": 4, + "duration": 27 + }, + { + "task": 4, + "start": 759, + "machine": 5, + "duration": 32 + }, + { + "task": 5, + "start": 791, + "machine": 6, + "duration": 20 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 57 + }, + { + "task": 1, + "start": 72, + "machine": 2, + "duration": 63 + }, + { + "task": 2, + "start": 135, + "machine": 3, + "duration": 34 + }, + { + "task": 3, + "start": 197, + "machine": 4, + "duration": 76 + }, + { + "task": 4, + "start": 273, + "machine": 5, + "duration": 54 + }, + { + "task": 5, + "start": 327, + "machine": 6, + "duration": 59 + } + ] + } + ], + "context_index": 10, + "input_format": "csv", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "On a busy morning at the brewery, multiple lots must pass through the same lineup of tanks and finishing stages, each step with its own processing time. The operator must time every move so tanks aren’t used by more than one batch at once, and every batch follows the same ordered steps exactly once. The success metric is easy to understand: the moment the final batch is completed — earlier is better. The instance specifics are written out below.\n\nThis instance lists 9 batches to run through 5 stages, identified as J1, J2, J3, J4, J5, J6, J7, J8, J9 for the batches and 0, 1, 2, 3, 4 for the stages.\n\n| batch_id | stage_index | stage_id | processing_time |\n|---|---|---|---|\n| J1 | 0 | 0 | 1 |\n| J1 | 1 | 1 | 84 |\n| J1 | 2 | 2 | 29 |\n| J1 | 3 | 3 | 85 |\n| J1 | 4 | 4 | 70 |\n| J2 | 0 | 0 | 39 |\n| J2 | 1 | 1 | 45 |\n| J2 | 2 | 2 | 30 |\n| J2 | 3 | 3 | 33 |\n| J2 | 4 | 4 | 60 |\n| J3 | 0 | 0 | 94 |\n| J3 | 1 | 1 | 1 |\n| J3 | 2 | 2 | 21 |\n| J3 | 3 | 3 | 79 |\n| J3 | 4 | 4 | 78 |\n| J4 | 0 | 0 | 54 |\n| J4 | 1 | 1 | 90 |\n| J4 | 2 | 2 | 40 |\n| J4 | 3 | 3 | 93 |\n| J4 | 4 | 4 | 48 |\n| J5 | 0 | 0 | 71 |\n| J5 | 1 | 1 | 71 |\n| J5 | 2 | 2 | 63 |\n| J5 | 3 | 3 | 38 |\n| J5 | 4 | 4 | 1 |\n| J6 | 0 | 0 | 40 |\n| J6 | 1 | 1 | 78 |\n| J6 | 2 | 2 | 1 |\n| J6 | 3 | 3 | 63 |\n| J6 | 4 | 4 | 46 |\n| J7 | 0 | 0 | 34 |\n| J7 | 1 | 1 | 63 |\n| J7 | 2 | 2 | 65 |\n| J7 | 3 | 3 | 47 |\n| J7 | 4 | 4 | 28 |\n| J8 | 0 | 0 | 7 |\n| J8 | 1 | 1 | 89 |\n| J8 | 2 | 2 | 34 |\n| J8 | 3 | 3 | 53 |\n| J8 | 4 | 4 | 99 |\n| J9 | 0 | 0 | 84 |\n| J9 | 1 | 1 | 10 |\n| J9 | 2 | 2 | 58 |\n| J9 | 3 | 3 | 18 |\n| J9 | 4 | 4 | 88 |\n\nSchedule the moves so the last of the 9 batches completes as early as possible across the 5 stages.\n\nAlso, when you send the schedule back, I’d prefer it in a little JSON layout so it’s easy to read and plug in. Something like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it as a simple form: the top-level \"solution\" is a list of batches, each \"job\" is a batch identifier, and \"tasks\" is the ordered list of steps that batch goes through. For each task, \"task\" says which step it is, \"start\" says when that step begins (same time units as the instance), \"machine\" names the tank or station used, and \"duration\" is how long that step takes. Super light — just enough to know who goes where and when.\n\nThis JSON is only a sketch of the expected shape, not the actual schedule — please fill in the real ids and numbers when you reply.\n\nAlso, please use the exact identifiers from the instance input with no renaming or extra 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 84 + ], + [ + 2, + 29 + ], + [ + 3, + 85 + ], + [ + 4, + 70 + ] + ], + [ + [ + 0, + 39 + ], + [ + 1, + 45 + ], + [ + 2, + 30 + ], + [ + 3, + 33 + ], + [ + 4, + 60 + ] + ], + [ + [ + 0, + 94 + ], + [ + 1, + 1 + ], + [ + 2, + 21 + ], + [ + 3, + 79 + ], + [ + 4, + 78 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 90 + ], + [ + 2, + 40 + ], + [ + 3, + 93 + ], + [ + 4, + 48 + ] + ], + [ + [ + 0, + 71 + ], + [ + 1, + 71 + ], + [ + 2, + 63 + ], + [ + 3, + 38 + ], + [ + 4, + 1 + ] + ], + [ + [ + 0, + 40 + ], + [ + 1, + 78 + ], + [ + 2, + 1 + ], + [ + 3, + 63 + ], + [ + 4, + 46 + ] + ], + [ + [ + 0, + 34 + ], + [ + 1, + 63 + ], + [ + 2, + 65 + ], + [ + 3, + 47 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 7 + ], + [ + 1, + 89 + ], + [ + 2, + 34 + ], + [ + 3, + 53 + ], + [ + 4, + 99 + ] + ], + [ + [ + 0, + 84 + ], + [ + 1, + 10 + ], + [ + 2, + 58 + ], + [ + 3, + 18 + ], + [ + 4, + 88 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 264, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 270, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 354, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 423, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 542, + "machine": 4, + "duration": 70 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 39, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 84, + "machine": 2, + "duration": 30 + }, + { + "task": 3, + "start": 114, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 147, + "machine": 4, + "duration": 60 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 170, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 264, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 265, + "machine": 2, + "duration": 21 + }, + { + "task": 3, + "start": 286, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 365, + "machine": 4, + "duration": 78 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 265, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 354, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 444, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 508, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 612, + "machine": 4, + "duration": 48 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 353, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 507, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 578, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 648, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 688, + "machine": 4, + "duration": 1 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 39, + "machine": 0, + "duration": 40 + }, + { + "task": 1, + "start": 84, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 162, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 163, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 226, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 319, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 444, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 601, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 660, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 163, + "machine": 0, + "duration": 7 + }, + { + "task": 1, + "start": 173, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 291, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 370, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 443, + "machine": 4, + "duration": 99 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 79, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 163, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 180, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 238, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 272, + "machine": 4, + "duration": 88 + } + ] + } + ], + "obj": 689.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 84 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 29 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 85 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 70 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 39 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 45 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 30 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 60 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 94 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 1 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 21 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 79 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 78 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 54 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 90 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 40 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 93 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 48 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 71 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 63 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 38 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 1 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 40 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 78 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 1 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 63 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 34 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 63 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 65 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 47 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 7 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 89 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 34 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 99 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 84 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 10 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 18 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 88 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 264, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 270, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 354, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 423, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 542, + "machine": 4, + "duration": 70 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 39, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 84, + "machine": 2, + "duration": 30 + }, + { + "task": 3, + "start": 114, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 147, + "machine": 4, + "duration": 60 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 170, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 264, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 265, + "machine": 2, + "duration": 21 + }, + { + "task": 3, + "start": 286, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 365, + "machine": 4, + "duration": 78 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 265, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 354, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 444, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 508, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 612, + "machine": 4, + "duration": 48 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 353, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 507, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 578, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 648, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 688, + "machine": 4, + "duration": 1 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 39, + "machine": 0, + "duration": 40 + }, + { + "task": 1, + "start": 84, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 162, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 163, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 226, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 319, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 444, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 601, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 660, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 163, + "machine": 0, + "duration": 7 + }, + { + "task": 1, + "start": 173, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 291, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 370, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 443, + "machine": 4, + "duration": 99 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 79, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 163, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 180, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 238, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 272, + "machine": 4, + "duration": 88 + } + ] + } + ], + "context_index": 11, + "input_format": "markdown_table", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone’s lined up a batch of vehicles for fixes, and the plan is to move each one through the same sequence of repair stations with known task lengths. The decision is how to sequence and time those moves so each station handles only one car at a time and no service step is omitted or repeated. The success metric is the clock reading when the final car is done — lower is better — which is simply the maximum of all the individual completion times. The full breakdown of cars, bay order, and task durations appears below.\n\nThere are 12 vehicles and 6 bays to schedule; vehicle ids: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12; bay order: A, B, C, D, E, F.\nVehicle J1, step 0, requires bay A for 1.\nVehicle J1, step 1, requires bay B for 97.\nVehicle J1, step 2, requires bay C for 5.\nVehicle J1, step 3, requires bay D for 31.\nVehicle J1, step 4, requires bay E for 24.\nVehicle J1, step 5, requires bay F for 60.\nVehicle J2, step 0, requires bay A for 49.\nVehicle J2, step 1, requires bay B for 98.\nVehicle J2, step 2, requires bay C for 1.\nVehicle J2, step 3, requires bay D for 54.\nVehicle J2, step 4, requires bay E for 33.\nVehicle J2, step 5, requires bay F for 53.\nVehicle J3, step 0, requires bay A for 5.\nVehicle J3, step 1, requires bay B for 83.\nVehicle J3, step 2, requires bay C for 83.\nVehicle J3, step 3, requires bay D for 8.\nVehicle J3, step 4, requires bay E for 57.\nVehicle J3, step 5, requires bay F for 41.\nVehicle J4, step 0, requires bay A for 32.\nVehicle J4, step 1, requires bay B for 54.\nVehicle J4, step 2, requires bay C for 13.\nVehicle J4, step 3, requires bay D for 40.\nVehicle J4, step 4, requires bay E for 22.\nVehicle J4, step 5, requires bay F for 32.\nVehicle J5, step 0, requires bay A for 84.\nVehicle J5, step 1, requires bay B for 92.\nVehicle J5, step 2, requires bay C for 87.\nVehicle J5, step 3, requires bay D for 66.\nVehicle J5, step 4, requires bay E for 5.\nVehicle J5, step 5, requires bay F for 17.\nVehicle J6, step 0, requires bay A for 25.\nVehicle J6, step 1, requires bay B for 40.\nVehicle J6, step 2, requires bay C for 91.\nVehicle J6, step 3, requires bay D for 52.\nVehicle J6, step 4, requires bay E for 2.\nVehicle J6, step 5, requires bay F for 40.\nVehicle J7, step 0, requires bay A for 53.\nVehicle J7, step 1, requires bay B for 9.\nVehicle J7, step 2, requires bay C for 52.\nVehicle J7, step 3, requires bay D for 36.\nVehicle J7, step 4, requires bay E for 10.\nVehicle J7, step 5, requires bay F for 8.\nVehicle J8, step 0, requires bay A for 30.\nVehicle J8, step 1, requires bay B for 92.\nVehicle J8, step 2, requires bay C for 53.\nVehicle J8, step 3, requires bay D for 85.\nVehicle J8, step 4, requires bay E for 48.\nVehicle J8, step 5, requires bay F for 89.\nVehicle J9, step 0, requires bay A for 45.\nVehicle J9, step 1, requires bay B for 13.\nVehicle J9, step 2, requires bay C for 62.\nVehicle J9, step 3, requires bay D for 32.\nVehicle J9, step 4, requires bay E for 60.\nVehicle J9, step 5, requires bay F for 57.\nVehicle J10, step 0, requires bay A for 5.\nVehicle J10, step 1, requires bay B for 82.\nVehicle J10, step 2, requires bay C for 78.\nVehicle J10, step 3, requires bay D for 58.\nVehicle J10, step 4, requires bay E for 19.\nVehicle J10, step 5, requires bay F for 21.\nVehicle J11, step 0, requires bay A for 94.\nVehicle J11, step 1, requires bay B for 74.\nVehicle J11, step 2, requires bay C for 36.\nVehicle J11, step 3, requires bay D for 90.\nVehicle J11, step 4, requires bay E for 29.\nVehicle J11, step 5, requires bay F for 18.\nVehicle J12, step 0, requires bay A for 11.\nVehicle J12, step 1, requires bay B for 81.\nVehicle J12, step 2, requires bay C for 23.\nVehicle J12, step 3, requires bay D for 90.\nVehicle J12, step 4, requires bay E for 54.\nVehicle J12, step 5, requires bay F for 36.\nSequence and time the moves so each bay handles one vehicle at a time and the clock reading when the last vehicle is done is minimized.\n\nIf you want the answer in a tidy, machine-friendly form, just follow this JSON shape for the schedule — nothing fancy, just the fields you need:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of this as a simple form: \"solution\" holds a list (one entry per car), each entry's \"job\" is the car identifier, and \"tasks\" lists that car's service steps in order. For each task you give the step index, the time it starts, which repair bay/station it uses, and how long that step takes. Super casual — just fill in the placeholders with the real values when you return a schedule.\n\nThis JSON is only a sketch of the expected shape, not the actual schedule.\n\nPlease 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 97 + ], + [ + 2, + 5 + ], + [ + 3, + 31 + ], + [ + 4, + 24 + ], + [ + 5, + 60 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 98 + ], + [ + 2, + 1 + ], + [ + 3, + 54 + ], + [ + 4, + 33 + ], + [ + 5, + 53 + ] + ], + [ + [ + 0, + 5 + ], + [ + 1, + 83 + ], + [ + 2, + 83 + ], + [ + 3, + 8 + ], + [ + 4, + 57 + ], + [ + 5, + 41 + ] + ], + [ + [ + 0, + 32 + ], + [ + 1, + 54 + ], + [ + 2, + 13 + ], + [ + 3, + 40 + ], + [ + 4, + 22 + ], + [ + 5, + 32 + ] + ], + [ + [ + 0, + 84 + ], + [ + 1, + 92 + ], + [ + 2, + 87 + ], + [ + 3, + 66 + ], + [ + 4, + 5 + ], + [ + 5, + 17 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 40 + ], + [ + 2, + 91 + ], + [ + 3, + 52 + ], + [ + 4, + 2 + ], + [ + 5, + 40 + ] + ], + [ + [ + 0, + 53 + ], + [ + 1, + 9 + ], + [ + 2, + 52 + ], + [ + 3, + 36 + ], + [ + 4, + 10 + ], + [ + 5, + 8 + ] + ], + [ + [ + 0, + 30 + ], + [ + 1, + 92 + ], + [ + 2, + 53 + ], + [ + 3, + 85 + ], + [ + 4, + 48 + ], + [ + 5, + 89 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 13 + ], + [ + 2, + 62 + ], + [ + 3, + 32 + ], + [ + 4, + 60 + ], + [ + 5, + 57 + ] + ], + [ + [ + 0, + 5 + ], + [ + 1, + 82 + ], + [ + 2, + 78 + ], + [ + 3, + 58 + ], + [ + 4, + 19 + ], + [ + 5, + 21 + ] + ], + [ + [ + 0, + 94 + ], + [ + 1, + 74 + ], + [ + 2, + 36 + ], + [ + 3, + 90 + ], + [ + 4, + 29 + ], + [ + 5, + 18 + ] + ], + [ + [ + 0, + 11 + ], + [ + 1, + 81 + ], + [ + 2, + 23 + ], + [ + 3, + 90 + ], + [ + 4, + 54 + ], + [ + 5, + 36 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 123, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 669, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 766, + "machine": 2, + "duration": 5 + }, + { + "task": 3, + "start": 771, + "machine": 3, + "duration": 31 + }, + { + "task": 4, + "start": 802, + "machine": 4, + "duration": 24 + }, + { + "task": 5, + "start": 827, + "machine": 5, + "duration": 60 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 385, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 571, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 669, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 670, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 724, + "machine": 4, + "duration": 33 + }, + { + "task": 5, + "start": 774, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 50, + "machine": 0, + "duration": 5 + }, + { + "task": 1, + "start": 488, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 575, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 658, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 666, + "machine": 4, + "duration": 57 + }, + { + "task": 5, + "start": 733, + "machine": 5, + "duration": 41 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 91, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 766, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 820, + "machine": 2, + "duration": 13 + }, + { + "task": 3, + "start": 833, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 873, + "machine": 4, + "duration": 22 + }, + { + "task": 5, + "start": 895, + "machine": 5, + "duration": 32 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 301, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 396, + "machine": 1, + "duration": 92 + }, + { + "task": 2, + "start": 488, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 579, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 645, + "machine": 4, + "duration": 5 + }, + { + "task": 5, + "start": 716, + "machine": 5, + "duration": 17 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 55, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 181, + "machine": 1, + "duration": 40 + }, + { + "task": 2, + "start": 331, + "machine": 2, + "duration": 91 + }, + { + "task": 3, + "start": 442, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 494, + "machine": 4, + "duration": 2 + }, + { + "task": 5, + "start": 496, + "machine": 5, + "duration": 40 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 218, + "machine": 0, + "duration": 53 + }, + { + "task": 1, + "start": 295, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 670, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 724, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 760, + "machine": 4, + "duration": 10 + }, + { + "task": 5, + "start": 887, + "machine": 5, + "duration": 8 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 271, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 304, + "machine": 1, + "duration": 92 + }, + { + "task": 2, + "start": 422, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 494, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 579, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 627, + "machine": 5, + "duration": 89 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 5, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 87, + "machine": 1, + "duration": 13 + }, + { + "task": 2, + "start": 100, + "machine": 2, + "duration": 62 + }, + { + "task": 3, + "start": 162, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 194, + "machine": 4, + "duration": 60 + }, + { + "task": 5, + "start": 254, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 5 + }, + { + "task": 1, + "start": 5, + "machine": 1, + "duration": 82 + }, + { + "task": 2, + "start": 204, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 294, + "machine": 3, + "duration": 58 + }, + { + "task": 4, + "start": 352, + "machine": 4, + "duration": 19 + }, + { + "task": 5, + "start": 384, + "machine": 5, + "duration": 21 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 221, + "machine": 1, + "duration": 74 + }, + { + "task": 2, + "start": 295, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 352, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 442, + "machine": 4, + "duration": 29 + }, + { + "task": 5, + "start": 471, + "machine": 5, + "duration": 18 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 80, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 100, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 181, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 204, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 294, + "machine": 4, + "duration": 54 + }, + { + "task": 5, + "start": 348, + "machine": 5, + "duration": 36 + } + ] + } + ], + "obj": 927.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 97 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 5 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 31 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 24 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": "F", + "duration": 60 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 49 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 98 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 1 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 54 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 33 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": "F", + "duration": 53 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 5 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 83 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 83 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 8 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 57 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": "F", + "duration": 41 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 32 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 54 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 13 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 40 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 22 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": "F", + "duration": 32 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "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": "E", + "duration": 5 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": "F", + "duration": 17 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 25 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 40 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 91 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 52 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 2 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": "F", + "duration": 40 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 53 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 9 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 52 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 36 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 10 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": "F", + "duration": 8 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "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": "D", + "duration": 85 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 48 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": "F", + "duration": 89 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 45 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 13 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 62 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 32 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 60 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": "F", + "duration": 57 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 5 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 82 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 78 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 58 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 19 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": "F", + "duration": 21 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 94 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 74 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 36 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 90 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 29 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": "F", + "duration": 18 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 11 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 81 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 23 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 90 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 54 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": "F", + "duration": 36 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 123, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 669, + "machine": "B", + "duration": 97 + }, + { + "task": 2, + "start": 766, + "machine": "C", + "duration": 5 + }, + { + "task": 3, + "start": 771, + "machine": "D", + "duration": 31 + }, + { + "task": 4, + "start": 802, + "machine": "E", + "duration": 24 + }, + { + "task": 5, + "start": 827, + "machine": "F", + "duration": 60 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 385, + "machine": "A", + "duration": 49 + }, + { + "task": 1, + "start": 571, + "machine": "B", + "duration": 98 + }, + { + "task": 2, + "start": 669, + "machine": "C", + "duration": 1 + }, + { + "task": 3, + "start": 670, + "machine": "D", + "duration": 54 + }, + { + "task": 4, + "start": 724, + "machine": "E", + "duration": 33 + }, + { + "task": 5, + "start": 774, + "machine": "F", + "duration": 53 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 50, + "machine": "A", + "duration": 5 + }, + { + "task": 1, + "start": 488, + "machine": "B", + "duration": 83 + }, + { + "task": 2, + "start": 575, + "machine": "C", + "duration": 83 + }, + { + "task": 3, + "start": 658, + "machine": "D", + "duration": 8 + }, + { + "task": 4, + "start": 666, + "machine": "E", + "duration": 57 + }, + { + "task": 5, + "start": 733, + "machine": "F", + "duration": 41 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 91, + "machine": "A", + "duration": 32 + }, + { + "task": 1, + "start": 766, + "machine": "B", + "duration": 54 + }, + { + "task": 2, + "start": 820, + "machine": "C", + "duration": 13 + }, + { + "task": 3, + "start": 833, + "machine": "D", + "duration": 40 + }, + { + "task": 4, + "start": 873, + "machine": "E", + "duration": 22 + }, + { + "task": 5, + "start": 895, + "machine": "F", + "duration": 32 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 301, + "machine": "A", + "duration": 84 + }, + { + "task": 1, + "start": 396, + "machine": "B", + "duration": 92 + }, + { + "task": 2, + "start": 488, + "machine": "C", + "duration": 87 + }, + { + "task": 3, + "start": 579, + "machine": "D", + "duration": 66 + }, + { + "task": 4, + "start": 645, + "machine": "E", + "duration": 5 + }, + { + "task": 5, + "start": 716, + "machine": "F", + "duration": 17 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 55, + "machine": "A", + "duration": 25 + }, + { + "task": 1, + "start": 181, + "machine": "B", + "duration": 40 + }, + { + "task": 2, + "start": 331, + "machine": "C", + "duration": 91 + }, + { + "task": 3, + "start": 442, + "machine": "D", + "duration": 52 + }, + { + "task": 4, + "start": 494, + "machine": "E", + "duration": 2 + }, + { + "task": 5, + "start": 496, + "machine": "F", + "duration": 40 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 218, + "machine": "A", + "duration": 53 + }, + { + "task": 1, + "start": 295, + "machine": "B", + "duration": 9 + }, + { + "task": 2, + "start": 670, + "machine": "C", + "duration": 52 + }, + { + "task": 3, + "start": 724, + "machine": "D", + "duration": 36 + }, + { + "task": 4, + "start": 760, + "machine": "E", + "duration": 10 + }, + { + "task": 5, + "start": 887, + "machine": "F", + "duration": 8 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 271, + "machine": "A", + "duration": 30 + }, + { + "task": 1, + "start": 304, + "machine": "B", + "duration": 92 + }, + { + "task": 2, + "start": 422, + "machine": "C", + "duration": 53 + }, + { + "task": 3, + "start": 494, + "machine": "D", + "duration": 85 + }, + { + "task": 4, + "start": 579, + "machine": "E", + "duration": 48 + }, + { + "task": 5, + "start": 627, + "machine": "F", + "duration": 89 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 5, + "machine": "A", + "duration": 45 + }, + { + "task": 1, + "start": 87, + "machine": "B", + "duration": 13 + }, + { + "task": 2, + "start": 100, + "machine": "C", + "duration": 62 + }, + { + "task": 3, + "start": 162, + "machine": "D", + "duration": 32 + }, + { + "task": 4, + "start": 194, + "machine": "E", + "duration": 60 + }, + { + "task": 5, + "start": 254, + "machine": "F", + "duration": 57 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 5 + }, + { + "task": 1, + "start": 5, + "machine": "B", + "duration": 82 + }, + { + "task": 2, + "start": 204, + "machine": "C", + "duration": 78 + }, + { + "task": 3, + "start": 294, + "machine": "D", + "duration": 58 + }, + { + "task": 4, + "start": 352, + "machine": "E", + "duration": 19 + }, + { + "task": 5, + "start": 384, + "machine": "F", + "duration": 21 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 124, + "machine": "A", + "duration": 94 + }, + { + "task": 1, + "start": 221, + "machine": "B", + "duration": 74 + }, + { + "task": 2, + "start": 295, + "machine": "C", + "duration": 36 + }, + { + "task": 3, + "start": 352, + "machine": "D", + "duration": 90 + }, + { + "task": 4, + "start": 442, + "machine": "E", + "duration": 29 + }, + { + "task": 5, + "start": 471, + "machine": "F", + "duration": 18 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 80, + "machine": "A", + "duration": 11 + }, + { + "task": 1, + "start": 100, + "machine": "B", + "duration": 81 + }, + { + "task": 2, + "start": 181, + "machine": "C", + "duration": 23 + }, + { + "task": 3, + "start": 204, + "machine": "D", + "duration": 90 + }, + { + "task": 4, + "start": 294, + "machine": "E", + "duration": 54 + }, + { + "task": 5, + "start": 348, + "machine": "F", + "duration": 36 + } + ] + } + ], + "context_index": 12, + "input_format": "nl", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone’s in charge of timing a line of dough pieces through a fixed chain of machines, with each operation taking a preset amount of time. Their decision is about the exact timing and order of pieces, making sure no machine handles multiple pieces simultaneously and that every piece completes each step exactly once. The runner-up plan is the one where the clock shows a later finish; the best plan is the one with the earliest time when the very last piece is done. The detailed machine steps and durations follow below.\n\nThere are 11 dough pieces to schedule across 5 stations; piece IDs: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11; station IDs: 0, 1, 2, 3, 4.\n\n| dough_piece_id | operation_index | required_station_id | processing_time |\n|---|---|---|---|\n| J1 | 0 | 0 | 1 |\n| J1 | 1 | 1 | 11 |\n| J1 | 2 | 2 | 80 |\n| J1 | 3 | 3 | 76 |\n| J1 | 4 | 4 | 77 |\n| J2 | 0 | 0 | 82 |\n| J2 | 1 | 1 | 54 |\n| J2 | 2 | 2 | 66 |\n| J2 | 3 | 3 | 68 |\n| J2 | 4 | 4 | 47 |\n| J3 | 0 | 0 | 71 |\n| J3 | 1 | 1 | 5 |\n| J3 | 2 | 2 | 87 |\n| J3 | 3 | 3 | 86 |\n| J3 | 4 | 4 | 88 |\n| J4 | 0 | 0 | 60 |\n| J4 | 1 | 1 | 24 |\n| J4 | 2 | 2 | 42 |\n| J4 | 3 | 3 | 70 |\n| J4 | 4 | 4 | 61 |\n| J5 | 0 | 0 | 54 |\n| J5 | 1 | 1 | 9 |\n| J5 | 2 | 2 | 80 |\n| J5 | 3 | 3 | 25 |\n| J5 | 4 | 4 | 69 |\n| J6 | 0 | 0 | 45 |\n| J6 | 1 | 1 | 96 |\n| J6 | 2 | 2 | 31 |\n| J6 | 3 | 3 | 46 |\n| J6 | 4 | 4 | 86 |\n| J7 | 0 | 0 | 16 |\n| J7 | 1 | 1 | 16 |\n| J7 | 2 | 2 | 18 |\n| J7 | 3 | 3 | 56 |\n| J7 | 4 | 4 | 75 |\n| J8 | 0 | 0 | 72 |\n| J8 | 1 | 1 | 17 |\n| J8 | 2 | 2 | 84 |\n| J8 | 3 | 3 | 52 |\n| J8 | 4 | 4 | 73 |\n| J9 | 0 | 0 | 34 |\n| J9 | 1 | 1 | 6 |\n| J9 | 2 | 2 | 3 |\n| J9 | 3 | 3 | 68 |\n| J9 | 4 | 4 | 19 |\n| J10 | 0 | 0 | 92 |\n| J10 | 1 | 1 | 11 |\n| J10 | 2 | 2 | 77 |\n| J10 | 3 | 3 | 72 |\n| J10 | 4 | 4 | 57 |\n| J11 | 0 | 0 | 39 |\n| J11 | 1 | 1 | 79 |\n| J11 | 2 | 2 | 84 |\n| J11 | 3 | 3 | 84 |\n| J11 | 4 | 4 | 40 |\n\nThey must schedule without station overlaps and ensure every piece completes each operation exactly once; the best plan finishes when the last piece completes earliest.\n\nAlso, when you send back the plan, just stick to a little JSON layout like this so it's easy to read and parse:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis sketch means: each top-level entry is one job (one dough piece), the tasks array lists the step-by-step operations for that job, \"task\" is the step index in the sequence, \"start\" is the time that step begins, \"machine\" names which machine does it, and \"duration\" is how long it runs. It's just the expected shape — not the actual schedule.\n\nPlease be sure to use the exact identifiers from the instance input — do not rename 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 11 + ], + [ + 2, + 80 + ], + [ + 3, + 76 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 82 + ], + [ + 1, + 54 + ], + [ + 2, + 66 + ], + [ + 3, + 68 + ], + [ + 4, + 47 + ] + ], + [ + [ + 0, + 71 + ], + [ + 1, + 5 + ], + [ + 2, + 87 + ], + [ + 3, + 86 + ], + [ + 4, + 88 + ] + ], + [ + [ + 0, + 60 + ], + [ + 1, + 24 + ], + [ + 2, + 42 + ], + [ + 3, + 70 + ], + [ + 4, + 61 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 9 + ], + [ + 2, + 80 + ], + [ + 3, + 25 + ], + [ + 4, + 69 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 96 + ], + [ + 2, + 31 + ], + [ + 3, + 46 + ], + [ + 4, + 86 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 16 + ], + [ + 2, + 18 + ], + [ + 3, + 56 + ], + [ + 4, + 75 + ] + ], + [ + [ + 0, + 72 + ], + [ + 1, + 17 + ], + [ + 2, + 84 + ], + [ + 3, + 52 + ], + [ + 4, + 73 + ] + ], + [ + [ + 0, + 34 + ], + [ + 1, + 6 + ], + [ + 2, + 3 + ], + [ + 3, + 68 + ], + [ + 4, + 19 + ] + ], + [ + [ + 0, + 92 + ], + [ + 1, + 11 + ], + [ + 2, + 77 + ], + [ + 3, + 72 + ], + [ + 4, + 57 + ] + ], + [ + [ + 0, + 39 + ], + [ + 1, + 79 + ], + [ + 2, + 84 + ], + [ + 3, + 84 + ], + [ + 4, + 40 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 16, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 32, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 50, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 130, + "machine": 3, + "duration": 76 + }, + { + "task": 4, + "start": 206, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 378, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 460, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 533, + "machine": 2, + "duration": 66 + }, + { + "task": 3, + "start": 614, + "machine": 3, + "duration": 68 + }, + { + "task": 4, + "start": 684, + "machine": 4, + "duration": 47 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 176, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 247, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 285, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 372, + "machine": 3, + "duration": 86 + }, + { + "task": 4, + "start": 499, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 116, + "machine": 0, + "duration": 60 + }, + { + "task": 1, + "start": 212, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 243, + "machine": 2, + "duration": 42 + }, + { + "task": 3, + "start": 289, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 438, + "machine": 4, + "duration": 61 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 17, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 71, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 130, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 210, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 283, + "machine": 4, + "duration": 69 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 71, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 116, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 212, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 243, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 352, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 16, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 32, + "machine": 2, + "duration": 18 + }, + { + "task": 3, + "start": 50, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 106, + "machine": 4, + "duration": 75 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 460, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 532, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 599, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 683, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 735, + "machine": 4, + "duration": 73 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 532, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 566, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 683, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 735, + "machine": 3, + "duration": 68 + }, + { + "task": 4, + "start": 808, + "machine": 4, + "duration": 19 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 286, + "machine": 0, + "duration": 92 + }, + { + "task": 1, + "start": 378, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 456, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 542, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 627, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 247, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 286, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 372, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 458, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 587, + "machine": 4, + "duration": 40 + } + ] + } + ], + "obj": 827.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 11 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 80 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 76 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 77 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 82 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 54 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 66 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 68 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 47 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 71 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 5 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 87 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 86 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 88 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 60 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 24 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 42 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 70 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 61 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 54 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 9 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 80 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 25 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 69 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 45 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 96 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 46 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 86 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 16 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 18 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 56 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 75 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 72 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 17 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 84 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 52 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 73 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 34 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 6 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 3 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 68 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 19 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 92 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 11 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 77 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 72 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 57 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 39 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 79 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 84 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 84 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 40 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 16, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 32, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 50, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 130, + "machine": 3, + "duration": 76 + }, + { + "task": 4, + "start": 206, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 378, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 460, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 533, + "machine": 2, + "duration": 66 + }, + { + "task": 3, + "start": 614, + "machine": 3, + "duration": 68 + }, + { + "task": 4, + "start": 684, + "machine": 4, + "duration": 47 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 176, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 247, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 285, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 372, + "machine": 3, + "duration": 86 + }, + { + "task": 4, + "start": 499, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 116, + "machine": 0, + "duration": 60 + }, + { + "task": 1, + "start": 212, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 243, + "machine": 2, + "duration": 42 + }, + { + "task": 3, + "start": 289, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 438, + "machine": 4, + "duration": 61 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 17, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 71, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 130, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 210, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 283, + "machine": 4, + "duration": 69 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 71, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 116, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 212, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 243, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 352, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 16, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 32, + "machine": 2, + "duration": 18 + }, + { + "task": 3, + "start": 50, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 106, + "machine": 4, + "duration": 75 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 460, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 532, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 599, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 683, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 735, + "machine": 4, + "duration": 73 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 532, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 566, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 683, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 735, + "machine": 3, + "duration": 68 + }, + { + "task": 4, + "start": 808, + "machine": 4, + "duration": 19 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 286, + "machine": 0, + "duration": 92 + }, + { + "task": 1, + "start": 378, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 456, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 542, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 627, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 247, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 286, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 372, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 458, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 587, + "machine": 4, + "duration": 40 + } + ] + } + ], + "context_index": 13, + "input_format": "markdown_table", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s a small warehouse story: parcels arrive and must pass through a fixed lineup of packing stations, each station taking a known amount of time per parcel. The challenge is picking when to start each parcel at each station so no station overlaps work on two parcels, and every parcel still visits every station in order. Which plan is better is judged by the clock — whoever finishes the last parcel earlier wins, and that finishing time is the number we care about. The specific parcel list and station times are shown below.\n\n# total_parcels=10\n# nr_stations=6\n# parcel_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10\n# station_ids=A, B, C, D, E, F\nparcel_id,station_step_index,station_id,processing_time\nJ1,0,A,1\nJ1,1,B,24\nJ1,2,C,56\nJ1,3,D,23\nJ1,4,E,30\nJ1,5,F,5\nJ2,0,A,59\nJ2,1,B,34\nJ2,2,C,36\nJ2,3,D,41\nJ2,4,E,10\nJ2,5,F,57\nJ3,0,A,70\nJ3,1,B,90\nJ3,2,C,94\nJ3,3,D,14\nJ3,4,E,91\nJ3,5,F,42\nJ4,0,A,9\nJ4,1,B,67\nJ4,2,C,96\nJ4,3,D,77\nJ4,4,E,39\nJ4,5,F,18\nJ5,0,A,54\nJ5,1,B,98\nJ5,2,C,6\nJ5,3,D,96\nJ5,4,E,88\nJ5,5,F,56\nJ6,0,A,7\nJ6,1,B,92\nJ6,2,C,44\nJ6,3,D,61\nJ6,4,E,48\nJ6,5,F,6\nJ7,0,A,79\nJ7,1,B,60\nJ7,2,C,51\nJ7,3,D,10\nJ7,4,E,59\nJ7,5,F,4\nJ8,0,A,74\nJ8,1,B,44\nJ8,2,C,83\nJ8,3,D,99\nJ8,4,E,74\nJ8,5,F,66\nJ9,0,A,99\nJ9,1,B,1\nJ9,2,C,16\nJ9,3,D,28\nJ9,4,E,8\nJ9,5,F,12\nJ10,0,A,76\nJ10,1,B,16\nJ10,2,C,76\nJ10,3,D,37\nJ10,4,E,1\nJ10,5,F,33\n\nAlso, when you share a packing plan, a simple JSON layout like this works best — just fill in the actual ids and numbers for each parcel and step:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a little form: \"solution\" is the list of parcels, each parcel has a \"job\" id and a list of \"tasks\". Each task is one station visit — \"task\" is which step it is in the sequence, \"start\" is when that parcel begins at that station, \"machine\" is which station it uses, and \"duration\" is how long that station takes for that parcel. Easy, informal, and just a sketch of the shape I need — not the actual filled-in schedule.\n\nPlease 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 24 + ], + [ + 2, + 56 + ], + [ + 3, + 23 + ], + [ + 4, + 30 + ], + [ + 5, + 5 + ] + ], + [ + [ + 0, + 59 + ], + [ + 1, + 34 + ], + [ + 2, + 36 + ], + [ + 3, + 41 + ], + [ + 4, + 10 + ], + [ + 5, + 57 + ] + ], + [ + [ + 0, + 70 + ], + [ + 1, + 90 + ], + [ + 2, + 94 + ], + [ + 3, + 14 + ], + [ + 4, + 91 + ], + [ + 5, + 42 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 67 + ], + [ + 2, + 96 + ], + [ + 3, + 77 + ], + [ + 4, + 39 + ], + [ + 5, + 18 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 98 + ], + [ + 2, + 6 + ], + [ + 3, + 96 + ], + [ + 4, + 88 + ], + [ + 5, + 56 + ] + ], + [ + [ + 0, + 7 + ], + [ + 1, + 92 + ], + [ + 2, + 44 + ], + [ + 3, + 61 + ], + [ + 4, + 48 + ], + [ + 5, + 6 + ] + ], + [ + [ + 0, + 79 + ], + [ + 1, + 60 + ], + [ + 2, + 51 + ], + [ + 3, + 10 + ], + [ + 4, + 59 + ], + [ + 5, + 4 + ] + ], + [ + [ + 0, + 74 + ], + [ + 1, + 44 + ], + [ + 2, + 83 + ], + [ + 3, + 99 + ], + [ + 4, + 74 + ], + [ + 5, + 66 + ] + ], + [ + [ + 0, + 99 + ], + [ + 1, + 1 + ], + [ + 2, + 16 + ], + [ + 3, + 28 + ], + [ + 4, + 8 + ], + [ + 5, + 12 + ] + ], + [ + [ + 0, + 76 + ], + [ + 1, + 16 + ], + [ + 2, + 76 + ], + [ + 3, + 37 + ], + [ + 4, + 1 + ], + [ + 5, + 33 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 25, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 81, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 104, + "machine": 4, + "duration": 30 + }, + { + "task": 5, + "start": 134, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 208, + "machine": 0, + "duration": 59 + }, + { + "task": 1, + "start": 280, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 314, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 392, + "machine": 3, + "duration": 41 + }, + { + "task": 4, + "start": 433, + "machine": 4, + "duration": 10 + }, + { + "task": 5, + "start": 443, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 10, + "machine": 0, + "duration": 70 + }, + { + "task": 1, + "start": 92, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 188, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 282, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 296, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 387, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 25, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 92, + "machine": 2, + "duration": 96 + }, + { + "task": 3, + "start": 188, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 387, + "machine": 4, + "duration": 39 + }, + { + "task": 5, + "start": 587, + "machine": 5, + "duration": 18 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 80, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 182, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 282, + "machine": 2, + "duration": 6 + }, + { + "task": 3, + "start": 296, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 443, + "machine": 4, + "duration": 88 + }, + { + "task": 5, + "start": 531, + "machine": 5, + "duration": 56 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 267, + "machine": 0, + "duration": 7 + }, + { + "task": 1, + "start": 360, + "machine": 1, + "duration": 92 + }, + { + "task": 2, + "start": 452, + "machine": 2, + "duration": 44 + }, + { + "task": 3, + "start": 540, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 682, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 730, + "machine": 5, + "duration": 6 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 373, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 453, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 513, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 601, + "machine": 3, + "duration": 10 + }, + { + "task": 4, + "start": 614, + "machine": 4, + "duration": 59 + }, + { + "task": 5, + "start": 680, + "machine": 5, + "duration": 4 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 134, + "machine": 0, + "duration": 74 + }, + { + "task": 1, + "start": 314, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 358, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 441, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 540, + "machine": 4, + "duration": 74 + }, + { + "task": 5, + "start": 614, + "machine": 5, + "duration": 66 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 274, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 452, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 496, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 611, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 673, + "machine": 4, + "duration": 8 + }, + { + "task": 5, + "start": 717, + "machine": 5, + "duration": 12 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 452, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 528, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 564, + "machine": 2, + "duration": 76 + }, + { + "task": 3, + "start": 640, + "machine": 3, + "duration": 37 + }, + { + "task": 4, + "start": 681, + "machine": 4, + "duration": 1 + }, + { + "task": 5, + "start": 684, + "machine": 5, + "duration": 33 + } + ] + } + ], + "obj": 736.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 24 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 56 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 23 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 30 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": "F", + "duration": 5 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 59 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 34 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 36 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 41 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 10 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": "F", + "duration": 57 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 70 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 90 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 94 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 14 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 91 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": "F", + "duration": 42 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 9 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 67 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 96 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 77 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": "F", + "duration": 18 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 98 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 6 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 96 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 88 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": "F", + "duration": 56 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 7 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 92 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 44 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 61 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 48 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": "F", + "duration": 6 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 79 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 60 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "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": "F", + "duration": 4 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 74 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 44 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 83 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 99 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 74 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": "F", + "duration": 66 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 99 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 1 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 16 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 28 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 8 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": "F", + "duration": 12 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 76 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 16 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 76 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 37 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 1 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": "F", + "duration": 33 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 24 + }, + { + "task": 2, + "start": 25, + "machine": "C", + "duration": 56 + }, + { + "task": 3, + "start": 81, + "machine": "D", + "duration": 23 + }, + { + "task": 4, + "start": 104, + "machine": "E", + "duration": 30 + }, + { + "task": 5, + "start": 134, + "machine": "F", + "duration": 5 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 208, + "machine": "A", + "duration": 59 + }, + { + "task": 1, + "start": 280, + "machine": "B", + "duration": 34 + }, + { + "task": 2, + "start": 314, + "machine": "C", + "duration": 36 + }, + { + "task": 3, + "start": 392, + "machine": "D", + "duration": 41 + }, + { + "task": 4, + "start": 433, + "machine": "E", + "duration": 10 + }, + { + "task": 5, + "start": 443, + "machine": "F", + "duration": 57 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 10, + "machine": "A", + "duration": 70 + }, + { + "task": 1, + "start": 92, + "machine": "B", + "duration": 90 + }, + { + "task": 2, + "start": 188, + "machine": "C", + "duration": 94 + }, + { + "task": 3, + "start": 282, + "machine": "D", + "duration": 14 + }, + { + "task": 4, + "start": 296, + "machine": "E", + "duration": 91 + }, + { + "task": 5, + "start": 387, + "machine": "F", + "duration": 42 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 9 + }, + { + "task": 1, + "start": 25, + "machine": "B", + "duration": 67 + }, + { + "task": 2, + "start": 92, + "machine": "C", + "duration": 96 + }, + { + "task": 3, + "start": 188, + "machine": "D", + "duration": 77 + }, + { + "task": 4, + "start": 387, + "machine": "E", + "duration": 39 + }, + { + "task": 5, + "start": 587, + "machine": "F", + "duration": 18 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 80, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 182, + "machine": "B", + "duration": 98 + }, + { + "task": 2, + "start": 282, + "machine": "C", + "duration": 6 + }, + { + "task": 3, + "start": 296, + "machine": "D", + "duration": 96 + }, + { + "task": 4, + "start": 443, + "machine": "E", + "duration": 88 + }, + { + "task": 5, + "start": 531, + "machine": "F", + "duration": 56 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 267, + "machine": "A", + "duration": 7 + }, + { + "task": 1, + "start": 360, + "machine": "B", + "duration": 92 + }, + { + "task": 2, + "start": 452, + "machine": "C", + "duration": 44 + }, + { + "task": 3, + "start": 540, + "machine": "D", + "duration": 61 + }, + { + "task": 4, + "start": 682, + "machine": "E", + "duration": 48 + }, + { + "task": 5, + "start": 730, + "machine": "F", + "duration": 6 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 373, + "machine": "A", + "duration": 79 + }, + { + "task": 1, + "start": 453, + "machine": "B", + "duration": 60 + }, + { + "task": 2, + "start": 513, + "machine": "C", + "duration": 51 + }, + { + "task": 3, + "start": 601, + "machine": "D", + "duration": 10 + }, + { + "task": 4, + "start": 614, + "machine": "E", + "duration": 59 + }, + { + "task": 5, + "start": 680, + "machine": "F", + "duration": 4 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 134, + "machine": "A", + "duration": 74 + }, + { + "task": 1, + "start": 314, + "machine": "B", + "duration": 44 + }, + { + "task": 2, + "start": 358, + "machine": "C", + "duration": 83 + }, + { + "task": 3, + "start": 441, + "machine": "D", + "duration": 99 + }, + { + "task": 4, + "start": 540, + "machine": "E", + "duration": 74 + }, + { + "task": 5, + "start": 614, + "machine": "F", + "duration": 66 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 274, + "machine": "A", + "duration": 99 + }, + { + "task": 1, + "start": 452, + "machine": "B", + "duration": 1 + }, + { + "task": 2, + "start": 496, + "machine": "C", + "duration": 16 + }, + { + "task": 3, + "start": 611, + "machine": "D", + "duration": 28 + }, + { + "task": 4, + "start": 673, + "machine": "E", + "duration": 8 + }, + { + "task": 5, + "start": 717, + "machine": "F", + "duration": 12 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 452, + "machine": "A", + "duration": 76 + }, + { + "task": 1, + "start": 528, + "machine": "B", + "duration": 16 + }, + { + "task": 2, + "start": 564, + "machine": "C", + "duration": 76 + }, + { + "task": 3, + "start": 640, + "machine": "D", + "duration": 37 + }, + { + "task": 4, + "start": 681, + "machine": "E", + "duration": 1 + }, + { + "task": 5, + "start": 684, + "machine": "F", + "duration": 33 + } + ] + } + ], + "context_index": 14, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "On a busy morning the kiln scheduler must slot pots through three stations — prep, dry, then fire — with fixed durations for each step and the same order for every pot. The call is to choose start times for every pot at every stage so nothing is skipped or repeated and no station is processing more than one pot at any time. The plan that finishes the entire batch the earliest wins, which is measured by the time the final pot finishes firing. The specific instance data appears below.\n\n{\n \"nr_pots\": 9,\n \"nr_stations\": 5,\n \"pot_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\"\n ],\n \"station_ids\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"tasks\": [\n {\n \"pot_id\": \"J1\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 1\n },\n {\n \"pot_id\": \"J1\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 37\n },\n {\n \"pot_id\": \"J1\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 32\n },\n {\n \"pot_id\": \"J1\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 68\n },\n {\n \"pot_id\": \"J1\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 83\n },\n {\n \"pot_id\": \"J2\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 26\n },\n {\n \"pot_id\": \"J2\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 63\n },\n {\n \"pot_id\": \"J2\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 2\n },\n {\n \"pot_id\": \"J2\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 5\n },\n {\n \"pot_id\": \"J2\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 34\n },\n {\n \"pot_id\": \"J3\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 48\n },\n {\n \"pot_id\": \"J3\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 9\n },\n {\n \"pot_id\": \"J3\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 53\n },\n {\n \"pot_id\": \"J3\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 93\n },\n {\n \"pot_id\": \"J3\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 99\n },\n {\n \"pot_id\": \"J4\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 66\n },\n {\n \"pot_id\": \"J4\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 58\n },\n {\n \"pot_id\": \"J4\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 43\n },\n {\n \"pot_id\": \"J4\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 47\n },\n {\n \"pot_id\": \"J4\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 74\n },\n {\n \"pot_id\": \"J5\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 38\n },\n {\n \"pot_id\": \"J5\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 46\n },\n {\n \"pot_id\": \"J5\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 98\n },\n {\n \"pot_id\": \"J5\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 11\n },\n {\n \"pot_id\": \"J5\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 39\n },\n {\n \"pot_id\": \"J6\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 51\n },\n {\n \"pot_id\": \"J6\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 15\n },\n {\n \"pot_id\": \"J6\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 62\n },\n {\n \"pot_id\": \"J6\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 30\n },\n {\n \"pot_id\": \"J6\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 27\n },\n {\n \"pot_id\": \"J7\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 97\n },\n {\n \"pot_id\": \"J7\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 68\n },\n {\n \"pot_id\": \"J7\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 70\n },\n {\n \"pot_id\": \"J7\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 66\n },\n {\n \"pot_id\": \"J7\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 22\n },\n {\n \"pot_id\": \"J8\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 38\n },\n {\n \"pot_id\": \"J8\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 43\n },\n {\n \"pot_id\": \"J8\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 36\n },\n {\n \"pot_id\": \"J8\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 50\n },\n {\n \"pot_id\": \"J8\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 46\n },\n {\n \"pot_id\": \"J9\",\n \"stage_index\": 0,\n \"station_id\": 1,\n \"processing_duration\": 83\n },\n {\n \"pot_id\": \"J9\",\n \"stage_index\": 1,\n \"station_id\": 2,\n \"processing_duration\": 3\n },\n {\n \"pot_id\": \"J9\",\n \"stage_index\": 2,\n \"station_id\": 3,\n \"processing_duration\": 47\n },\n {\n \"pot_id\": \"J9\",\n \"stage_index\": 3,\n \"station_id\": 4,\n \"processing_duration\": 19\n },\n {\n \"pot_id\": \"J9\",\n \"stage_index\": 4,\n \"station_id\": 5,\n \"processing_duration\": 49\n }\n ]\n}\n\nAnd to keep things tidy, please return the schedule in a simple JSON shape like this — nothing fancy, just the fields shown so I can read each job and its tasks easily.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis sketch means: \"solution\" is a list of jobs; each job has its identifier under \"job\" and a \"tasks\" list. Each task entry records which task it is, when it starts, which machine it runs on, and how long it takes. Think of it like filling out a simple form for every pot and each of its steps.\n\nThis is just the expected shape — not the actual schedule yet. Please make sure to 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 37 + ], + [ + 2, + 32 + ], + [ + 3, + 68 + ], + [ + 4, + 83 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 63 + ], + [ + 2, + 2 + ], + [ + 3, + 5 + ], + [ + 4, + 34 + ] + ], + [ + [ + 0, + 48 + ], + [ + 1, + 9 + ], + [ + 2, + 53 + ], + [ + 3, + 93 + ], + [ + 4, + 99 + ] + ], + [ + [ + 0, + 66 + ], + [ + 1, + 58 + ], + [ + 2, + 43 + ], + [ + 3, + 47 + ], + [ + 4, + 74 + ] + ], + [ + [ + 0, + 38 + ], + [ + 1, + 46 + ], + [ + 2, + 98 + ], + [ + 3, + 11 + ], + [ + 4, + 39 + ] + ], + [ + [ + 0, + 51 + ], + [ + 1, + 15 + ], + [ + 2, + 62 + ], + [ + 3, + 30 + ], + [ + 4, + 27 + ] + ], + [ + [ + 0, + 97 + ], + [ + 1, + 68 + ], + [ + 2, + 70 + ], + [ + 3, + 66 + ], + [ + 4, + 22 + ] + ], + [ + [ + 0, + 38 + ], + [ + 1, + 43 + ], + [ + 2, + 36 + ], + [ + 3, + 50 + ], + [ + 4, + 46 + ] + ], + [ + [ + 0, + 83 + ], + [ + 1, + 3 + ], + [ + 2, + 47 + ], + [ + 3, + 19 + ], + [ + 4, + 49 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 37 + }, + { + "task": 2, + "start": 39, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 71, + "machine": 3, + "duration": 68 + }, + { + "task": 4, + "start": 179, + "machine": 4, + "duration": 83 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 49, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 75, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 138, + "machine": 2, + "duration": 2 + }, + { + "task": 3, + "start": 140, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 145, + "machine": 4, + "duration": 34 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 48 + }, + { + "task": 1, + "start": 49, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 71, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 145, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 262, + "machine": 4, + "duration": 99 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 113, + "machine": 0, + "duration": 66 + }, + { + "task": 1, + "start": 184, + "machine": 1, + "duration": 58 + }, + { + "task": 2, + "start": 282, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 325, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 400, + "machine": 4, + "duration": 74 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 75, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 138, + "machine": 1, + "duration": 46 + }, + { + "task": 2, + "start": 184, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 282, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 361, + "machine": 4, + "duration": 39 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 314, + "machine": 0, + "duration": 51 + }, + { + "task": 1, + "start": 382, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 499, + "machine": 2, + "duration": 62 + }, + { + "task": 3, + "start": 561, + "machine": 3, + "duration": 30 + }, + { + "task": 4, + "start": 591, + "machine": 4, + "duration": 27 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 217, + "machine": 0, + "duration": 97 + }, + { + "task": 1, + "start": 314, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 382, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 452, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 520, + "machine": 4, + "duration": 22 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 179, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 242, + "machine": 1, + "duration": 43 + }, + { + "task": 2, + "start": 325, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 372, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 474, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 365, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 448, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 452, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 518, + "machine": 3, + "duration": 19 + }, + { + "task": 4, + "start": 542, + "machine": 4, + "duration": 49 + } + ] + } + ], + "obj": 618.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 37 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 68 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 83 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 63 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 2 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 5 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 34 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 48 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 9 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 93 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 99 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 66 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 43 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 47 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 74 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 38 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 46 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 98 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 11 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 39 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 51 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 15 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 30 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 27 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 97 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 70 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 66 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 22 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 38 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 43 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 50 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 46 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 83 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 3 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 47 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 19 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 49 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 37 + }, + { + "task": 2, + "start": 39, + "machine": 3, + "duration": 32 + }, + { + "task": 3, + "start": 71, + "machine": 4, + "duration": 68 + }, + { + "task": 4, + "start": 179, + "machine": 5, + "duration": 83 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 49, + "machine": 1, + "duration": 26 + }, + { + "task": 1, + "start": 75, + "machine": 2, + "duration": 63 + }, + { + "task": 2, + "start": 138, + "machine": 3, + "duration": 2 + }, + { + "task": 3, + "start": 140, + "machine": 4, + "duration": 5 + }, + { + "task": 4, + "start": 145, + "machine": 5, + "duration": 34 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 48 + }, + { + "task": 1, + "start": 49, + "machine": 2, + "duration": 9 + }, + { + "task": 2, + "start": 71, + "machine": 3, + "duration": 53 + }, + { + "task": 3, + "start": 145, + "machine": 4, + "duration": 93 + }, + { + "task": 4, + "start": 262, + "machine": 5, + "duration": 99 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 113, + "machine": 1, + "duration": 66 + }, + { + "task": 1, + "start": 184, + "machine": 2, + "duration": 58 + }, + { + "task": 2, + "start": 282, + "machine": 3, + "duration": 43 + }, + { + "task": 3, + "start": 325, + "machine": 4, + "duration": 47 + }, + { + "task": 4, + "start": 400, + "machine": 5, + "duration": 74 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 75, + "machine": 1, + "duration": 38 + }, + { + "task": 1, + "start": 138, + "machine": 2, + "duration": 46 + }, + { + "task": 2, + "start": 184, + "machine": 3, + "duration": 98 + }, + { + "task": 3, + "start": 282, + "machine": 4, + "duration": 11 + }, + { + "task": 4, + "start": 361, + "machine": 5, + "duration": 39 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 314, + "machine": 1, + "duration": 51 + }, + { + "task": 1, + "start": 382, + "machine": 2, + "duration": 15 + }, + { + "task": 2, + "start": 499, + "machine": 3, + "duration": 62 + }, + { + "task": 3, + "start": 561, + "machine": 4, + "duration": 30 + }, + { + "task": 4, + "start": 591, + "machine": 5, + "duration": 27 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 217, + "machine": 1, + "duration": 97 + }, + { + "task": 1, + "start": 314, + "machine": 2, + "duration": 68 + }, + { + "task": 2, + "start": 382, + "machine": 3, + "duration": 70 + }, + { + "task": 3, + "start": 452, + "machine": 4, + "duration": 66 + }, + { + "task": 4, + "start": 520, + "machine": 5, + "duration": 22 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 179, + "machine": 1, + "duration": 38 + }, + { + "task": 1, + "start": 242, + "machine": 2, + "duration": 43 + }, + { + "task": 2, + "start": 325, + "machine": 3, + "duration": 36 + }, + { + "task": 3, + "start": 372, + "machine": 4, + "duration": 50 + }, + { + "task": 4, + "start": 474, + "machine": 5, + "duration": 46 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 365, + "machine": 1, + "duration": 83 + }, + { + "task": 1, + "start": 448, + "machine": 2, + "duration": 3 + }, + { + "task": 2, + "start": 452, + "machine": 3, + "duration": 47 + }, + { + "task": 3, + "start": 518, + "machine": 4, + "duration": 19 + }, + { + "task": 4, + "start": 542, + "machine": 5, + "duration": 49 + } + ] + } + ], + "context_index": 15, + "input_format": "json", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I’m the person in charge of the test lab, lining up a bunch of gadgets so each one goes through the same string of tests, each test taking a set amount of time. The job is to pick who goes on which test bench and when, making sure every device follows the exact test order and no bench ever runs two tests at once. A schedule is better if the very last device finishes sooner — you measure that by looking at when each device completes its final test and taking the latest of those times. The full list of devices, tests and durations is shown below.\n\n# num_devices=12\n# num_test_benches=5\n# device_identifiers=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# test_bench_identifiers=A, B, C, D, E\ndevice_id,test_step_index,test_bench_id,test_duration\nJ1,0,A,1\nJ1,1,B,50\nJ1,2,C,7\nJ1,3,D,15\nJ1,4,E,37\nJ2,0,A,48\nJ2,1,B,68\nJ2,2,C,69\nJ2,3,D,72\nJ2,4,E,28\nJ3,0,A,86\nJ3,1,B,61\nJ3,2,C,37\nJ3,3,D,97\nJ3,4,E,5\nJ4,0,A,20\nJ4,1,B,26\nJ4,2,C,44\nJ4,3,D,85\nJ4,4,E,81\nJ5,0,A,79\nJ5,1,B,15\nJ5,2,C,57\nJ5,3,D,4\nJ5,4,E,23\nJ6,0,A,4\nJ6,1,B,24\nJ6,2,C,28\nJ6,3,D,71\nJ6,4,E,96\nJ7,0,A,88\nJ7,1,B,45\nJ7,2,C,96\nJ7,3,D,70\nJ7,4,E,95\nJ8,0,A,71\nJ8,1,B,6\nJ8,2,C,12\nJ8,3,D,49\nJ8,4,E,82\nJ9,0,A,9\nJ9,1,B,1\nJ9,2,C,19\nJ9,3,D,94\nJ9,4,E,14\nJ10,0,A,15\nJ10,1,B,1\nJ10,2,C,43\nJ10,3,D,54\nJ10,4,E,87\nJ11,0,A,69\nJ11,1,B,23\nJ11,2,C,55\nJ11,3,D,67\nJ11,4,E,48\nJ12,0,A,49\nJ12,1,B,73\nJ12,2,C,17\nJ12,3,D,82\nJ12,4,E,45\n\nIf you want the schedule in a simple, shareable form I usually send it as a little JSON sketch like this — just so we all agree on the shape of the answer:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that as a short form: \"solution\" is the list of devices (jobs), each job has a \"tasks\" list showing the individual tests in order. For each test you give which step it is (\"task\"), when it starts (\"start\"), which bench it uses (\"machine\"), and how long it takes (\"duration\"). Easy, like filling out a little schedule form rather than drawing a diagram.\n\nThis JSON is just a sketch of the shape I need — I still need the actual numbers and IDs filled in for your instance.\n\nPlease 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 50 + ], + [ + 2, + 7 + ], + [ + 3, + 15 + ], + [ + 4, + 37 + ] + ], + [ + [ + 0, + 48 + ], + [ + 1, + 68 + ], + [ + 2, + 69 + ], + [ + 3, + 72 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 86 + ], + [ + 1, + 61 + ], + [ + 2, + 37 + ], + [ + 3, + 97 + ], + [ + 4, + 5 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 26 + ], + [ + 2, + 44 + ], + [ + 3, + 85 + ], + [ + 4, + 81 + ] + ], + [ + [ + 0, + 79 + ], + [ + 1, + 15 + ], + [ + 2, + 57 + ], + [ + 3, + 4 + ], + [ + 4, + 23 + ] + ], + [ + [ + 0, + 4 + ], + [ + 1, + 24 + ], + [ + 2, + 28 + ], + [ + 3, + 71 + ], + [ + 4, + 96 + ] + ], + [ + [ + 0, + 88 + ], + [ + 1, + 45 + ], + [ + 2, + 96 + ], + [ + 3, + 70 + ], + [ + 4, + 95 + ] + ], + [ + [ + 0, + 71 + ], + [ + 1, + 6 + ], + [ + 2, + 12 + ], + [ + 3, + 49 + ], + [ + 4, + 82 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 1 + ], + [ + 2, + 19 + ], + [ + 3, + 94 + ], + [ + 4, + 14 + ] + ], + [ + [ + 0, + 15 + ], + [ + 1, + 1 + ], + [ + 2, + 43 + ], + [ + 3, + 54 + ], + [ + 4, + 87 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 23 + ], + [ + 2, + 55 + ], + [ + 3, + 67 + ], + [ + 4, + 48 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 73 + ], + [ + 2, + 17 + ], + [ + 3, + 82 + ], + [ + 4, + 45 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 9, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 61, + "machine": 1, + "duration": 50 + }, + { + "task": 2, + "start": 111, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 123, + "machine": 3, + "duration": 15 + }, + { + "task": 4, + "start": 138, + "machine": 4, + "duration": 37 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 104, + "machine": 0, + "duration": 48 + }, + { + "task": 1, + "start": 168, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 240, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 620, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 761, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 508, + "machine": 0, + "duration": 86 + }, + { + "task": 1, + "start": 594, + "machine": 1, + "duration": 61 + }, + { + "task": 2, + "start": 655, + "machine": 2, + "duration": 37 + }, + { + "task": 3, + "start": 692, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 789, + "machine": 4, + "duration": 5 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 84, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 117, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 143, + "machine": 2, + "duration": 44 + }, + { + "task": 3, + "start": 187, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 272, + "machine": 4, + "duration": 81 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 429, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 508, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 546, + "machine": 2, + "duration": 57 + }, + { + "task": 3, + "start": 616, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 738, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 377, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 381, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 408, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 475, + "machine": 3, + "duration": 71 + }, + { + "task": 4, + "start": 547, + "machine": 4, + "duration": 96 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 289, + "machine": 0, + "duration": 88 + }, + { + "task": 1, + "start": 405, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 450, + "machine": 2, + "duration": 96 + }, + { + "task": 3, + "start": 546, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 643, + "machine": 4, + "duration": 95 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 13, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 111, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 118, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 138, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 187, + "machine": 4, + "duration": 82 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 10, + "machine": 2, + "duration": 19 + }, + { + "task": 3, + "start": 29, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 533, + "machine": 4, + "duration": 14 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 152, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 167, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 197, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 272, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 353, + "machine": 4, + "duration": 87 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 220, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 330, + "machine": 1, + "duration": 23 + }, + { + "task": 2, + "start": 353, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 408, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 485, + "machine": 4, + "duration": 48 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 167, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 236, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 309, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 326, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 440, + "machine": 4, + "duration": 45 + } + ] + } + ], + "obj": 794.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 12, + "nr_machines": 5, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9", + "J10", + "J11", + "J12" + ], + "machines": [ + "A", + "B", + "C", + "D", + "E" + ], + "records": [ + { + "job_id": "J1", + "task_id": 0, + "machine_id": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 50 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 7 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 15 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 37 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 48 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 68 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 69 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 72 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 28 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 86 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 61 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 37 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 97 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 5 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 20 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 26 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 44 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 85 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 81 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 79 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 15 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 57 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 4 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 4 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 24 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 28 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 71 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 96 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 88 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 45 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 96 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 70 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 95 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 71 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 6 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 12 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 49 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 82 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 9 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 1 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 19 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 94 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 14 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 15 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 1 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 43 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 54 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 87 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 69 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 23 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 55 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 67 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 48 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 49 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 73 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 17 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 82 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 45 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 9, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 61, + "machine": "B", + "duration": 50 + }, + { + "task": 2, + "start": 111, + "machine": "C", + "duration": 7 + }, + { + "task": 3, + "start": 123, + "machine": "D", + "duration": 15 + }, + { + "task": 4, + "start": 138, + "machine": "E", + "duration": 37 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 104, + "machine": "A", + "duration": 48 + }, + { + "task": 1, + "start": 168, + "machine": "B", + "duration": 68 + }, + { + "task": 2, + "start": 240, + "machine": "C", + "duration": 69 + }, + { + "task": 3, + "start": 620, + "machine": "D", + "duration": 72 + }, + { + "task": 4, + "start": 761, + "machine": "E", + "duration": 28 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 508, + "machine": "A", + "duration": 86 + }, + { + "task": 1, + "start": 594, + "machine": "B", + "duration": 61 + }, + { + "task": 2, + "start": 655, + "machine": "C", + "duration": 37 + }, + { + "task": 3, + "start": 692, + "machine": "D", + "duration": 97 + }, + { + "task": 4, + "start": 789, + "machine": "E", + "duration": 5 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 84, + "machine": "A", + "duration": 20 + }, + { + "task": 1, + "start": 117, + "machine": "B", + "duration": 26 + }, + { + "task": 2, + "start": 143, + "machine": "C", + "duration": 44 + }, + { + "task": 3, + "start": 187, + "machine": "D", + "duration": 85 + }, + { + "task": 4, + "start": 272, + "machine": "E", + "duration": 81 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 429, + "machine": "A", + "duration": 79 + }, + { + "task": 1, + "start": 508, + "machine": "B", + "duration": 15 + }, + { + "task": 2, + "start": 546, + "machine": "C", + "duration": 57 + }, + { + "task": 3, + "start": 616, + "machine": "D", + "duration": 4 + }, + { + "task": 4, + "start": 738, + "machine": "E", + "duration": 23 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 377, + "machine": "A", + "duration": 4 + }, + { + "task": 1, + "start": 381, + "machine": "B", + "duration": 24 + }, + { + "task": 2, + "start": 408, + "machine": "C", + "duration": 28 + }, + { + "task": 3, + "start": 475, + "machine": "D", + "duration": 71 + }, + { + "task": 4, + "start": 547, + "machine": "E", + "duration": 96 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 289, + "machine": "A", + "duration": 88 + }, + { + "task": 1, + "start": 405, + "machine": "B", + "duration": 45 + }, + { + "task": 2, + "start": 450, + "machine": "C", + "duration": 96 + }, + { + "task": 3, + "start": 546, + "machine": "D", + "duration": 70 + }, + { + "task": 4, + "start": 643, + "machine": "E", + "duration": 95 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 13, + "machine": "A", + "duration": 71 + }, + { + "task": 1, + "start": 111, + "machine": "B", + "duration": 6 + }, + { + "task": 2, + "start": 118, + "machine": "C", + "duration": 12 + }, + { + "task": 3, + "start": 138, + "machine": "D", + "duration": 49 + }, + { + "task": 4, + "start": 187, + "machine": "E", + "duration": 82 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": "B", + "duration": 1 + }, + { + "task": 2, + "start": 10, + "machine": "C", + "duration": 19 + }, + { + "task": 3, + "start": 29, + "machine": "D", + "duration": 94 + }, + { + "task": 4, + "start": 533, + "machine": "E", + "duration": 14 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 152, + "machine": "A", + "duration": 15 + }, + { + "task": 1, + "start": 167, + "machine": "B", + "duration": 1 + }, + { + "task": 2, + "start": 197, + "machine": "C", + "duration": 43 + }, + { + "task": 3, + "start": 272, + "machine": "D", + "duration": 54 + }, + { + "task": 4, + "start": 353, + "machine": "E", + "duration": 87 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 220, + "machine": "A", + "duration": 69 + }, + { + "task": 1, + "start": 330, + "machine": "B", + "duration": 23 + }, + { + "task": 2, + "start": 353, + "machine": "C", + "duration": 55 + }, + { + "task": 3, + "start": 408, + "machine": "D", + "duration": 67 + }, + { + "task": 4, + "start": 485, + "machine": "E", + "duration": 48 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 167, + "machine": "A", + "duration": 49 + }, + { + "task": 1, + "start": 236, + "machine": "B", + "duration": 73 + }, + { + "task": 2, + "start": 309, + "machine": "C", + "duration": 17 + }, + { + "task": 3, + "start": 326, + "machine": "D", + "duration": 82 + }, + { + "task": 4, + "start": 440, + "machine": "E", + "duration": 45 + } + ] + } + ], + "context_index": 16, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I manage a small car wash where every vehicle must go through prewash, soap, rinse, then drying in that exact order, and my job is to line them up so no wash bay is trying to handle two cars at once. The aim is simple: get the whole group finished as fast as possible — you measure success by the clock time when the last car rolls out of the dryer. Nothing can be skipped or done twice, and each station can only work on one car at a time. The concrete list of cars and their timings is shown below.\n\n{\n \"nr_vehicles\": 11,\n \"nr_stations\": 6,\n \"vehicle_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\",\n \"J10\",\n \"J11\"\n ],\n \"station_ids\": [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\"\n ],\n \"tasks\": [\n {\n \"vehicle_id\": \"J1\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 1\n },\n {\n \"vehicle_id\": \"J1\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 63\n },\n {\n \"vehicle_id\": \"J1\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 82\n },\n {\n \"vehicle_id\": \"J1\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 60\n },\n {\n \"vehicle_id\": \"J1\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 90\n },\n {\n \"vehicle_id\": \"J1\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 70\n },\n {\n \"vehicle_id\": \"J2\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 73\n },\n {\n \"vehicle_id\": \"J2\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 38\n },\n {\n \"vehicle_id\": \"J2\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 40\n },\n {\n \"vehicle_id\": \"J2\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 22\n },\n {\n \"vehicle_id\": \"J2\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 25\n },\n {\n \"vehicle_id\": \"J2\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 13\n },\n {\n \"vehicle_id\": \"J3\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 20\n },\n {\n \"vehicle_id\": \"J3\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 1\n },\n {\n \"vehicle_id\": \"J3\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 10\n },\n {\n \"vehicle_id\": \"J3\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 72\n },\n {\n \"vehicle_id\": \"J3\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 92\n },\n {\n \"vehicle_id\": \"J3\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 45\n },\n {\n \"vehicle_id\": \"J4\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 24\n },\n {\n \"vehicle_id\": \"J4\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 87\n },\n {\n \"vehicle_id\": \"J4\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 22\n },\n {\n \"vehicle_id\": \"J4\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 83\n },\n {\n \"vehicle_id\": \"J4\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 16\n },\n {\n \"vehicle_id\": \"J4\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 96\n },\n {\n \"vehicle_id\": \"J5\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 8\n },\n {\n \"vehicle_id\": \"J5\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 56\n },\n {\n \"vehicle_id\": \"J5\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 34\n },\n {\n \"vehicle_id\": \"J5\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 92\n },\n {\n \"vehicle_id\": \"J5\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 13\n },\n {\n \"vehicle_id\": \"J5\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 67\n },\n {\n \"vehicle_id\": \"J6\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 80\n },\n {\n \"vehicle_id\": \"J6\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 21\n },\n {\n \"vehicle_id\": \"J6\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 23\n },\n {\n \"vehicle_id\": \"J6\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 75\n },\n {\n \"vehicle_id\": \"J6\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 69\n },\n {\n \"vehicle_id\": \"J6\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 4\n },\n {\n \"vehicle_id\": \"J7\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 69\n },\n {\n \"vehicle_id\": \"J7\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 87\n },\n {\n \"vehicle_id\": \"J7\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 48\n },\n {\n \"vehicle_id\": \"J7\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 19\n },\n {\n \"vehicle_id\": \"J7\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 33\n },\n {\n \"vehicle_id\": \"J7\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 98\n },\n {\n \"vehicle_id\": \"J8\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 91\n },\n {\n \"vehicle_id\": \"J8\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 69\n },\n {\n \"vehicle_id\": \"J8\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 79\n },\n {\n \"vehicle_id\": \"J8\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 22\n },\n {\n \"vehicle_id\": \"J8\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 63\n },\n {\n \"vehicle_id\": \"J8\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 31\n },\n {\n \"vehicle_id\": \"J9\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 81\n },\n {\n \"vehicle_id\": \"J9\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 31\n },\n {\n \"vehicle_id\": \"J9\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 46\n },\n {\n \"vehicle_id\": \"J9\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 71\n },\n {\n \"vehicle_id\": \"J9\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 79\n },\n {\n \"vehicle_id\": \"J9\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 94\n },\n {\n \"vehicle_id\": \"J10\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 83\n },\n {\n \"vehicle_id\": \"J10\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 66\n },\n {\n \"vehicle_id\": \"J10\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 22\n },\n {\n \"vehicle_id\": \"J10\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 7\n },\n {\n \"vehicle_id\": \"J10\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 73\n },\n {\n \"vehicle_id\": \"J10\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 51\n },\n {\n \"vehicle_id\": \"J11\",\n \"step_index\": 0,\n \"station_id\": \"A\",\n \"step_duration\": 47\n },\n {\n \"vehicle_id\": \"J11\",\n \"step_index\": 1,\n \"station_id\": \"B\",\n \"step_duration\": 26\n },\n {\n \"vehicle_id\": \"J11\",\n \"step_index\": 2,\n \"station_id\": \"C\",\n \"step_duration\": 94\n },\n {\n \"vehicle_id\": \"J11\",\n \"step_index\": 3,\n \"station_id\": \"D\",\n \"step_duration\": 50\n },\n {\n \"vehicle_id\": \"J11\",\n \"step_index\": 4,\n \"station_id\": \"E\",\n \"step_duration\": 23\n },\n {\n \"vehicle_id\": \"J11\",\n \"step_index\": 5,\n \"station_id\": \"F\",\n \"step_duration\": 65\n }\n ]\n}\n\nI'll lay out the answer in a simple JSON sketch so it's easy to read and plug into whatever you use next — it'll look like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nPretty straightforward: each top-level object in \"solution\" is one car (job). \"job\" is the car's identifier, and \"tasks\" is the list of steps it goes through. Inside each task, \"task\" is which step in the sequence it is, \"start\" is the time that step begins, \"machine\" tells you which station handles it, and \"duration\" is how long that station works on the car. Think of it like filling out a little schedule form for every car.\n\nThis JSON is only a sketch of the expected shape — it's not the actual schedule itself.\n\nPlease be sure to use the exact identifiers from the instance input with no renaming and no new labels.\n- 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 63 + ], + [ + 2, + 82 + ], + [ + 3, + 60 + ], + [ + 4, + 90 + ], + [ + 5, + 70 + ] + ], + [ + [ + 0, + 73 + ], + [ + 1, + 38 + ], + [ + 2, + 40 + ], + [ + 3, + 22 + ], + [ + 4, + 25 + ], + [ + 5, + 13 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 1 + ], + [ + 2, + 10 + ], + [ + 3, + 72 + ], + [ + 4, + 92 + ], + [ + 5, + 45 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 87 + ], + [ + 2, + 22 + ], + [ + 3, + 83 + ], + [ + 4, + 16 + ], + [ + 5, + 96 + ] + ], + [ + [ + 0, + 8 + ], + [ + 1, + 56 + ], + [ + 2, + 34 + ], + [ + 3, + 92 + ], + [ + 4, + 13 + ], + [ + 5, + 67 + ] + ], + [ + [ + 0, + 80 + ], + [ + 1, + 21 + ], + [ + 2, + 23 + ], + [ + 3, + 75 + ], + [ + 4, + 69 + ], + [ + 5, + 4 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 87 + ], + [ + 2, + 48 + ], + [ + 3, + 19 + ], + [ + 4, + 33 + ], + [ + 5, + 98 + ] + ], + [ + [ + 0, + 91 + ], + [ + 1, + 69 + ], + [ + 2, + 79 + ], + [ + 3, + 22 + ], + [ + 4, + 63 + ], + [ + 5, + 31 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 31 + ], + [ + 2, + 46 + ], + [ + 3, + 71 + ], + [ + 4, + 79 + ], + [ + 5, + 94 + ] + ], + [ + [ + 0, + 83 + ], + [ + 1, + 66 + ], + [ + 2, + 22 + ], + [ + 3, + 7 + ], + [ + 4, + 73 + ], + [ + 5, + 51 + ] + ], + [ + [ + 0, + 47 + ], + [ + 1, + 26 + ], + [ + 2, + 94 + ], + [ + 3, + 50 + ], + [ + 4, + 23 + ], + [ + 5, + 65 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 311, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 318, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 381, + "machine": 2, + "duration": 82 + }, + { + "task": 3, + "start": 463, + "machine": 3, + "duration": 60 + }, + { + "task": 4, + "start": 523, + "machine": 4, + "duration": 90 + }, + { + "task": 5, + "start": 613, + "machine": 5, + "duration": 70 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 552, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 625, + "machine": 1, + "duration": 38 + }, + { + "task": 2, + "start": 700, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 740, + "machine": 3, + "duration": 22 + }, + { + "task": 4, + "start": 791, + "machine": 4, + "duration": 25 + }, + { + "task": 5, + "start": 816, + "machine": 5, + "duration": 13 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 20, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 21, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 31, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 103, + "machine": 4, + "duration": 92 + }, + { + "task": 5, + "start": 195, + "machine": 5, + "duration": 45 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 99, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 124, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 246, + "machine": 2, + "duration": 22 + }, + { + "task": 3, + "start": 268, + "machine": 3, + "duration": 83 + }, + { + "task": 4, + "start": 351, + "machine": 4, + "duration": 16 + }, + { + "task": 5, + "start": 372, + "machine": 5, + "duration": 96 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 20, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 28, + "machine": 1, + "duration": 56 + }, + { + "task": 2, + "start": 90, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 126, + "machine": 3, + "duration": 92 + }, + { + "task": 4, + "start": 218, + "machine": 4, + "duration": 13 + }, + { + "task": 5, + "start": 240, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 381, + "machine": 0, + "duration": 80 + }, + { + "task": 1, + "start": 507, + "machine": 1, + "duration": 21 + }, + { + "task": 2, + "start": 555, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 578, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 653, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 781, + "machine": 5, + "duration": 4 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 312, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 420, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 48 + }, + { + "task": 3, + "start": 559, + "machine": 3, + "duration": 19 + }, + { + "task": 4, + "start": 620, + "machine": 4, + "duration": 33 + }, + { + "task": 5, + "start": 683, + "machine": 5, + "duration": 98 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 461, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 552, + "machine": 1, + "duration": 69 + }, + { + "task": 2, + "start": 621, + "machine": 2, + "duration": 79 + }, + { + "task": 3, + "start": 700, + "machine": 3, + "duration": 22 + }, + { + "task": 4, + "start": 722, + "machine": 4, + "duration": 63 + }, + { + "task": 5, + "start": 785, + "machine": 5, + "duration": 31 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 206, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 287, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 318, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 369, + "machine": 3, + "duration": 71 + }, + { + "task": 4, + "start": 440, + "machine": 4, + "duration": 79 + }, + { + "task": 5, + "start": 519, + "machine": 5, + "duration": 94 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 123, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 221, + "machine": 1, + "duration": 66 + }, + { + "task": 2, + "start": 287, + "machine": 2, + "duration": 22 + }, + { + "task": 3, + "start": 351, + "machine": 3, + "duration": 7 + }, + { + "task": 4, + "start": 367, + "machine": 4, + "duration": 73 + }, + { + "task": 5, + "start": 468, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 51, + "machine": 0, + "duration": 47 + }, + { + "task": 1, + "start": 98, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 124, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 218, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 284, + "machine": 4, + "duration": 23 + }, + { + "task": 5, + "start": 307, + "machine": 5, + "duration": 65 + } + ] + } + ], + "obj": 829.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 63 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 82 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 60 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 90 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": "F", + "duration": 70 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 73 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 38 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 40 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 22 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 25 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": "F", + "duration": 13 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 20 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 1 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 10 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 72 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 92 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": "F", + "duration": 45 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 24 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 87 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 22 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 83 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 16 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": "F", + "duration": 96 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 56 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 34 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 92 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 13 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": "F", + "duration": 67 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 80 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 21 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 75 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 69 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": "F", + "duration": 4 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 69 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 87 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 48 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 19 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 33 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": "F", + "duration": 98 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 91 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 69 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 79 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 22 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 63 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": "F", + "duration": 31 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 81 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 31 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 46 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 71 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 79 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": "F", + "duration": 94 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 83 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 66 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 22 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 7 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 73 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": "F", + "duration": 51 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 47 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 26 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 94 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 50 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 23 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": "F", + "duration": 65 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 311, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 318, + "machine": "B", + "duration": 63 + }, + { + "task": 2, + "start": 381, + "machine": "C", + "duration": 82 + }, + { + "task": 3, + "start": 463, + "machine": "D", + "duration": 60 + }, + { + "task": 4, + "start": 523, + "machine": "E", + "duration": 90 + }, + { + "task": 5, + "start": 613, + "machine": "F", + "duration": 70 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 552, + "machine": "A", + "duration": 73 + }, + { + "task": 1, + "start": 625, + "machine": "B", + "duration": 38 + }, + { + "task": 2, + "start": 700, + "machine": "C", + "duration": 40 + }, + { + "task": 3, + "start": 740, + "machine": "D", + "duration": 22 + }, + { + "task": 4, + "start": 791, + "machine": "E", + "duration": 25 + }, + { + "task": 5, + "start": 816, + "machine": "F", + "duration": 13 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 20 + }, + { + "task": 1, + "start": 20, + "machine": "B", + "duration": 1 + }, + { + "task": 2, + "start": 21, + "machine": "C", + "duration": 10 + }, + { + "task": 3, + "start": 31, + "machine": "D", + "duration": 72 + }, + { + "task": 4, + "start": 103, + "machine": "E", + "duration": 92 + }, + { + "task": 5, + "start": 195, + "machine": "F", + "duration": 45 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 99, + "machine": "A", + "duration": 24 + }, + { + "task": 1, + "start": 124, + "machine": "B", + "duration": 87 + }, + { + "task": 2, + "start": 246, + "machine": "C", + "duration": 22 + }, + { + "task": 3, + "start": 268, + "machine": "D", + "duration": 83 + }, + { + "task": 4, + "start": 351, + "machine": "E", + "duration": 16 + }, + { + "task": 5, + "start": 372, + "machine": "F", + "duration": 96 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 20, + "machine": "A", + "duration": 8 + }, + { + "task": 1, + "start": 28, + "machine": "B", + "duration": 56 + }, + { + "task": 2, + "start": 90, + "machine": "C", + "duration": 34 + }, + { + "task": 3, + "start": 126, + "machine": "D", + "duration": 92 + }, + { + "task": 4, + "start": 218, + "machine": "E", + "duration": 13 + }, + { + "task": 5, + "start": 240, + "machine": "F", + "duration": 67 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 381, + "machine": "A", + "duration": 80 + }, + { + "task": 1, + "start": 507, + "machine": "B", + "duration": 21 + }, + { + "task": 2, + "start": 555, + "machine": "C", + "duration": 23 + }, + { + "task": 3, + "start": 578, + "machine": "D", + "duration": 75 + }, + { + "task": 4, + "start": 653, + "machine": "E", + "duration": 69 + }, + { + "task": 5, + "start": 781, + "machine": "F", + "duration": 4 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 312, + "machine": "A", + "duration": 69 + }, + { + "task": 1, + "start": 420, + "machine": "B", + "duration": 87 + }, + { + "task": 2, + "start": 507, + "machine": "C", + "duration": 48 + }, + { + "task": 3, + "start": 559, + "machine": "D", + "duration": 19 + }, + { + "task": 4, + "start": 620, + "machine": "E", + "duration": 33 + }, + { + "task": 5, + "start": 683, + "machine": "F", + "duration": 98 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 461, + "machine": "A", + "duration": 91 + }, + { + "task": 1, + "start": 552, + "machine": "B", + "duration": 69 + }, + { + "task": 2, + "start": 621, + "machine": "C", + "duration": 79 + }, + { + "task": 3, + "start": 700, + "machine": "D", + "duration": 22 + }, + { + "task": 4, + "start": 722, + "machine": "E", + "duration": 63 + }, + { + "task": 5, + "start": 785, + "machine": "F", + "duration": 31 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 206, + "machine": "A", + "duration": 81 + }, + { + "task": 1, + "start": 287, + "machine": "B", + "duration": 31 + }, + { + "task": 2, + "start": 318, + "machine": "C", + "duration": 46 + }, + { + "task": 3, + "start": 369, + "machine": "D", + "duration": 71 + }, + { + "task": 4, + "start": 440, + "machine": "E", + "duration": 79 + }, + { + "task": 5, + "start": 519, + "machine": "F", + "duration": 94 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 123, + "machine": "A", + "duration": 83 + }, + { + "task": 1, + "start": 221, + "machine": "B", + "duration": 66 + }, + { + "task": 2, + "start": 287, + "machine": "C", + "duration": 22 + }, + { + "task": 3, + "start": 351, + "machine": "D", + "duration": 7 + }, + { + "task": 4, + "start": 367, + "machine": "E", + "duration": 73 + }, + { + "task": 5, + "start": 468, + "machine": "F", + "duration": 51 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 51, + "machine": "A", + "duration": 47 + }, + { + "task": 1, + "start": 98, + "machine": "B", + "duration": 26 + }, + { + "task": 2, + "start": 124, + "machine": "C", + "duration": 94 + }, + { + "task": 3, + "start": 218, + "machine": "D", + "duration": 50 + }, + { + "task": 4, + "start": 284, + "machine": "E", + "duration": 23 + }, + { + "task": 5, + "start": 307, + "machine": "F", + "duration": 65 + } + ] + } + ], + "context_index": 17, + "input_format": "json", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "We have a steady stream of clients who all need the same three stops—shampoo, then a cut, then styling—and they must move through in that sequence. The manager needs to decide who goes when so that each chair and station isn’t expected to handle two clients at the same minute, and every client gets each service once in the right order. The measure of success is how early the whole batch is done: look at the clock when the last client’s styling is finished — the sooner that time, the better. The concrete times and details follow below.\n\nThere are 11 clients and 5 stations; client IDs: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11; station IDs: 1, 2, 3, 4, 5.\n\n| client_id | service_step | station_id | service_duration_minutes |\n|---|---|---|---|\n| J1 | 0 | 1 | 1 |\n| J1 | 1 | 2 | 76 |\n| J1 | 2 | 3 | 58 |\n| J1 | 3 | 4 | 6 |\n| J1 | 4 | 5 | 43 |\n| J2 | 0 | 1 | 91 |\n| J2 | 1 | 2 | 77 |\n| J2 | 2 | 3 | 6 |\n| J2 | 3 | 4 | 8 |\n| J2 | 4 | 5 | 15 |\n| J3 | 0 | 1 | 63 |\n| J3 | 1 | 2 | 64 |\n| J3 | 2 | 3 | 3 |\n| J3 | 3 | 4 | 4 |\n| J3 | 4 | 5 | 16 |\n| J4 | 0 | 1 | 25 |\n| J4 | 1 | 2 | 60 |\n| J4 | 2 | 3 | 45 |\n| J4 | 3 | 4 | 62 |\n| J4 | 4 | 5 | 94 |\n| J5 | 0 | 1 | 63 |\n| J5 | 1 | 2 | 52 |\n| J5 | 2 | 3 | 75 |\n| J5 | 3 | 4 | 89 |\n| J5 | 4 | 5 | 92 |\n| J6 | 0 | 1 | 9 |\n| J6 | 1 | 2 | 43 |\n| J6 | 2 | 3 | 58 |\n| J6 | 3 | 4 | 54 |\n| J6 | 4 | 5 | 37 |\n| J7 | 0 | 1 | 71 |\n| J7 | 1 | 2 | 96 |\n| J7 | 2 | 3 | 48 |\n| J7 | 3 | 4 | 80 |\n| J7 | 4 | 5 | 43 |\n| J8 | 0 | 1 | 37 |\n| J8 | 1 | 2 | 33 |\n| J8 | 2 | 3 | 63 |\n| J8 | 3 | 4 | 47 |\n| J8 | 4 | 5 | 55 |\n| J9 | 0 | 1 | 57 |\n| J9 | 1 | 2 | 97 |\n| J9 | 2 | 3 | 64 |\n| J9 | 3 | 4 | 45 |\n| J9 | 4 | 5 | 44 |\n| J10 | 0 | 1 | 29 |\n| J10 | 1 | 2 | 27 |\n| J10 | 2 | 3 | 20 |\n| J10 | 3 | 4 | 9 |\n| J10 | 4 | 5 | 75 |\n| J11 | 0 | 1 | 23 |\n| J11 | 1 | 2 | 19 |\n| J11 | 2 | 3 | 3 |\n| J11 | 3 | 4 | 22 |\n| J11 | 4 | 5 | 20 |\n\nWe must schedule so no station is double-booked and the batch finishes as early as possible.\n\nOh, and when you send the schedule back, please follow this JSON layout so it's easy to read and parse:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a simple form: each top-level entry is a client (job), and under each client there's a list of their services (tasks). For each task we note which chair/station it uses (machine), when that service starts (start), how long it takes (duration), and the task index to keep the order clear. Think of it like filling out one little card per client with a timeline of their three stops. This block is only a sketch of the shape I need — not the final schedule itself.\n\nPlease make sure you 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 76 + ], + [ + 2, + 58 + ], + [ + 3, + 6 + ], + [ + 4, + 43 + ] + ], + [ + [ + 0, + 91 + ], + [ + 1, + 77 + ], + [ + 2, + 6 + ], + [ + 3, + 8 + ], + [ + 4, + 15 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 64 + ], + [ + 2, + 3 + ], + [ + 3, + 4 + ], + [ + 4, + 16 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 60 + ], + [ + 2, + 45 + ], + [ + 3, + 62 + ], + [ + 4, + 94 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 52 + ], + [ + 2, + 75 + ], + [ + 3, + 89 + ], + [ + 4, + 92 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 43 + ], + [ + 2, + 58 + ], + [ + 3, + 54 + ], + [ + 4, + 37 + ] + ], + [ + [ + 0, + 71 + ], + [ + 1, + 96 + ], + [ + 2, + 48 + ], + [ + 3, + 80 + ], + [ + 4, + 43 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 33 + ], + [ + 2, + 63 + ], + [ + 3, + 47 + ], + [ + 4, + 55 + ] + ], + [ + [ + 0, + 57 + ], + [ + 1, + 97 + ], + [ + 2, + 64 + ], + [ + 3, + 45 + ], + [ + 4, + 44 + ] + ], + [ + [ + 0, + 29 + ], + [ + 1, + 27 + ], + [ + 2, + 20 + ], + [ + 3, + 9 + ], + [ + 4, + 75 + ] + ], + [ + [ + 0, + 23 + ], + [ + 1, + 19 + ], + [ + 2, + 3 + ], + [ + 3, + 22 + ], + [ + 4, + 20 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 77, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 135, + "machine": 3, + "duration": 6 + }, + { + "task": 4, + "start": 141, + "machine": 4, + "duration": 43 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 315, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 568, + "machine": 1, + "duration": 77 + }, + { + "task": 2, + "start": 645, + "machine": 2, + "duration": 6 + }, + { + "task": 3, + "start": 651, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 664, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 406, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 504, + "machine": 1, + "duration": 64 + }, + { + "task": 2, + "start": 568, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 571, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 604, + "machine": 4, + "duration": 16 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 53, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 156, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 221, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 268, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 334, + "machine": 4, + "duration": 94 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 216, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 268, + "machine": 2, + "duration": 75 + }, + { + "task": 3, + "start": 343, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 432, + "machine": 4, + "duration": 92 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 115, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 364, + "machine": 1, + "duration": 43 + }, + { + "task": 2, + "start": 412, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 512, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 567, + "machine": 4, + "duration": 37 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 187, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 268, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 364, + "machine": 2, + "duration": 48 + }, + { + "task": 3, + "start": 432, + "machine": 3, + "duration": 80 + }, + { + "task": 4, + "start": 524, + "machine": 4, + "duration": 43 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 78, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 123, + "machine": 1, + "duration": 33 + }, + { + "task": 2, + "start": 158, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 221, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 279, + "machine": 4, + "duration": 55 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 258, + "machine": 0, + "duration": 57 + }, + { + "task": 1, + "start": 407, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 504, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 575, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 620, + "machine": 4, + "duration": 44 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 24, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 96, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 138, + "machine": 2, + "duration": 20 + }, + { + "task": 3, + "start": 158, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 184, + "machine": 4, + "duration": 75 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 77, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 135, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 167, + "machine": 3, + "duration": 22 + }, + { + "task": 4, + "start": 259, + "machine": 4, + "duration": 20 + } + ] + } + ], + "obj": 679.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 76 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 58 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 6 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 43 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 91 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 77 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 6 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 15 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 63 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 64 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 3 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 16 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 25 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 60 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 45 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 62 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 94 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 63 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 52 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 75 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 89 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 92 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 9 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 43 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 58 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 54 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 37 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 96 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 48 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 80 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 43 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 37 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 33 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 63 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 47 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 55 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 57 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 97 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 64 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 45 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "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": 3, + "duration": 20 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 9 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 75 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 1, + "duration": 23 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 2, + "duration": 19 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 3, + "duration": 3 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 4, + "duration": 22 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 5, + "duration": 20 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 76 + }, + { + "task": 2, + "start": 77, + "machine": 3, + "duration": 58 + }, + { + "task": 3, + "start": 135, + "machine": 4, + "duration": 6 + }, + { + "task": 4, + "start": 141, + "machine": 5, + "duration": 43 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 315, + "machine": 1, + "duration": 91 + }, + { + "task": 1, + "start": 568, + "machine": 2, + "duration": 77 + }, + { + "task": 2, + "start": 645, + "machine": 3, + "duration": 6 + }, + { + "task": 3, + "start": 651, + "machine": 4, + "duration": 8 + }, + { + "task": 4, + "start": 664, + "machine": 5, + "duration": 15 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 406, + "machine": 1, + "duration": 63 + }, + { + "task": 1, + "start": 504, + "machine": 2, + "duration": 64 + }, + { + "task": 2, + "start": 568, + "machine": 3, + "duration": 3 + }, + { + "task": 3, + "start": 571, + "machine": 4, + "duration": 4 + }, + { + "task": 4, + "start": 604, + "machine": 5, + "duration": 16 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 53, + "machine": 1, + "duration": 25 + }, + { + "task": 1, + "start": 156, + "machine": 2, + "duration": 60 + }, + { + "task": 2, + "start": 221, + "machine": 3, + "duration": 45 + }, + { + "task": 3, + "start": 268, + "machine": 4, + "duration": 62 + }, + { + "task": 4, + "start": 334, + "machine": 5, + "duration": 94 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 1, + "duration": 63 + }, + { + "task": 1, + "start": 216, + "machine": 2, + "duration": 52 + }, + { + "task": 2, + "start": 268, + "machine": 3, + "duration": 75 + }, + { + "task": 3, + "start": 343, + "machine": 4, + "duration": 89 + }, + { + "task": 4, + "start": 432, + "machine": 5, + "duration": 92 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 115, + "machine": 1, + "duration": 9 + }, + { + "task": 1, + "start": 364, + "machine": 2, + "duration": 43 + }, + { + "task": 2, + "start": 412, + "machine": 3, + "duration": 58 + }, + { + "task": 3, + "start": 512, + "machine": 4, + "duration": 54 + }, + { + "task": 4, + "start": 567, + "machine": 5, + "duration": 37 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 187, + "machine": 1, + "duration": 71 + }, + { + "task": 1, + "start": 268, + "machine": 2, + "duration": 96 + }, + { + "task": 2, + "start": 364, + "machine": 3, + "duration": 48 + }, + { + "task": 3, + "start": 432, + "machine": 4, + "duration": 80 + }, + { + "task": 4, + "start": 524, + "machine": 5, + "duration": 43 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 78, + "machine": 1, + "duration": 37 + }, + { + "task": 1, + "start": 123, + "machine": 2, + "duration": 33 + }, + { + "task": 2, + "start": 158, + "machine": 3, + "duration": 63 + }, + { + "task": 3, + "start": 221, + "machine": 4, + "duration": 47 + }, + { + "task": 4, + "start": 279, + "machine": 5, + "duration": 55 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 258, + "machine": 1, + "duration": 57 + }, + { + "task": 1, + "start": 407, + "machine": 2, + "duration": 97 + }, + { + "task": 2, + "start": 504, + "machine": 3, + "duration": 64 + }, + { + "task": 3, + "start": 575, + "machine": 4, + "duration": 45 + }, + { + "task": 4, + "start": 620, + "machine": 5, + "duration": 44 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 24, + "machine": 1, + "duration": 29 + }, + { + "task": 1, + "start": 96, + "machine": 2, + "duration": 27 + }, + { + "task": 2, + "start": 138, + "machine": 3, + "duration": 20 + }, + { + "task": 3, + "start": 158, + "machine": 4, + "duration": 9 + }, + { + "task": 4, + "start": 184, + "machine": 5, + "duration": 75 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 23 + }, + { + "task": 1, + "start": 77, + "machine": 2, + "duration": 19 + }, + { + "task": 2, + "start": 135, + "machine": 3, + "duration": 3 + }, + { + "task": 3, + "start": 167, + "machine": 4, + "duration": 22 + }, + { + "task": 4, + "start": 259, + "machine": 5, + "duration": 20 + } + ] + } + ], + "context_index": 18, + "input_format": "markdown_table", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s a small photo lab humming away: every print needs exposure, then developing, then drying, always in that order. The task is to pick the order the prints go into the line so no machine is asked to do two prints at once and every print goes through each step exactly once. The one schedule that’s better is the one where the clock reads the smallest number when the last print finally finishes drying. Concrete job durations and details follow below.\n\n# nr_prints=12\n# nr_stations=5\n# print_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# station_ids=0, 1, 2, 3, 4\nprint_id,step_index,station_id,step_duration\nJ1,0,0,1\nJ1,1,1,89\nJ1,2,2,34\nJ1,3,3,52\nJ1,4,4,96\nJ2,0,0,14\nJ2,1,1,82\nJ2,2,2,73\nJ2,3,3,76\nJ2,4,4,9\nJ3,0,0,2\nJ3,1,1,17\nJ3,2,2,85\nJ3,3,3,8\nJ3,4,4,21\nJ4,0,0,78\nJ4,1,1,27\nJ4,2,2,46\nJ4,3,3,1\nJ4,4,4,2\nJ5,0,0,5\nJ5,1,1,21\nJ5,2,2,34\nJ5,3,3,82\nJ5,4,4,77\nJ6,0,0,61\nJ6,1,1,52\nJ6,2,2,24\nJ6,3,3,96\nJ6,4,4,8\nJ7,0,0,62\nJ7,1,1,73\nJ7,2,2,74\nJ7,3,3,84\nJ7,4,4,17\nJ8,0,0,69\nJ8,1,1,95\nJ8,2,2,39\nJ8,3,3,46\nJ8,4,4,92\nJ9,0,0,82\nJ9,1,1,95\nJ9,2,2,36\nJ9,3,3,20\nJ9,4,4,10\nJ10,0,0,36\nJ10,1,1,89\nJ10,2,2,9\nJ10,3,3,36\nJ10,4,4,19\nJ11,0,0,98\nJ11,1,1,66\nJ11,2,2,27\nJ11,3,3,49\nJ11,4,4,56\nJ12,0,0,99\nJ12,1,1,19\nJ12,2,2,86\nJ12,3,3,55\nJ12,4,4,63\n\nOh, and when you send the schedule back, a little JSON shape like this makes it easy for me to pick apart who goes where and when:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that as a simple form: \"solution\" is the whole set of prints; each entry is one print (\"job\" — the print's id); \"tasks\" is the list of steps that print goes through; each step has which step number it is (\"task\"), when it starts (\"start\"), which station is doing it (\"machine\"), and how long it takes (\"duration\"). Super casual — just a sketch of the shape I expect, not the final plan.\n\nPlease 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 89 + ], + [ + 2, + 34 + ], + [ + 3, + 52 + ], + [ + 4, + 96 + ] + ], + [ + [ + 0, + 14 + ], + [ + 1, + 82 + ], + [ + 2, + 73 + ], + [ + 3, + 76 + ], + [ + 4, + 9 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 17 + ], + [ + 2, + 85 + ], + [ + 3, + 8 + ], + [ + 4, + 21 + ] + ], + [ + [ + 0, + 78 + ], + [ + 1, + 27 + ], + [ + 2, + 46 + ], + [ + 3, + 1 + ], + [ + 4, + 2 + ] + ], + [ + [ + 0, + 5 + ], + [ + 1, + 21 + ], + [ + 2, + 34 + ], + [ + 3, + 82 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 61 + ], + [ + 1, + 52 + ], + [ + 2, + 24 + ], + [ + 3, + 96 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 73 + ], + [ + 2, + 74 + ], + [ + 3, + 84 + ], + [ + 4, + 17 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 95 + ], + [ + 2, + 39 + ], + [ + 3, + 46 + ], + [ + 4, + 92 + ] + ], + [ + [ + 0, + 82 + ], + [ + 1, + 95 + ], + [ + 2, + 36 + ], + [ + 3, + 20 + ], + [ + 4, + 10 + ] + ], + [ + [ + 0, + 36 + ], + [ + 1, + 89 + ], + [ + 2, + 9 + ], + [ + 3, + 36 + ], + [ + 4, + 19 + ] + ], + [ + [ + 0, + 98 + ], + [ + 1, + 66 + ], + [ + 2, + 27 + ], + [ + 3, + 49 + ], + [ + 4, + 56 + ] + ], + [ + [ + 0, + 99 + ], + [ + 1, + 19 + ], + [ + 2, + 86 + ], + [ + 3, + 55 + ], + [ + 4, + 63 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 90, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 124, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 176, + "machine": 4, + "duration": 96 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 299, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 367, + "machine": 1, + "duration": 82 + }, + { + "task": 2, + "start": 542, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 615, + "machine": 3, + "duration": 76 + }, + { + "task": 4, + "start": 691, + "machine": 4, + "duration": 9 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 75, + "machine": 0, + "duration": 2 + }, + { + "task": 1, + "start": 111, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 158, + "machine": 2, + "duration": 85 + }, + { + "task": 3, + "start": 258, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 441, + "machine": 4, + "duration": 21 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 529, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 699, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 726, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 772, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 773, + "machine": 4, + "duration": 2 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 70, + "machine": 0, + "duration": 5 + }, + { + "task": 1, + "start": 90, + "machine": 1, + "duration": 21 + }, + { + "task": 2, + "start": 124, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 176, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 272, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 139, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 223, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 282, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 328, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 462, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 77, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 275, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 348, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 424, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 508, + "machine": 4, + "duration": 17 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 128, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 243, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 282, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 349, + "machine": 4, + "duration": 92 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 411, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 515, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 615, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 691, + "machine": 3, + "duration": 20 + }, + { + "task": 4, + "start": 711, + "machine": 4, + "duration": 10 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 493, + "machine": 0, + "duration": 36 + }, + { + "task": 1, + "start": 610, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 699, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 711, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 747, + "machine": 4, + "duration": 19 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 313, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 449, + "machine": 1, + "duration": 66 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 563, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 626, + "machine": 4, + "duration": 56 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 200, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 348, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 422, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 508, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 563, + "machine": 4, + "duration": 63 + } + ] + } + ], + "obj": 775.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 89 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 34 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 52 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 96 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 14 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 82 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "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": 0, + "duration": 2 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 17 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 85 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 8 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 21 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 78 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 27 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 46 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 1 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 2 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 5 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 21 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 34 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 82 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 77 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 61 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 52 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 24 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 96 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 62 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 73 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 74 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 84 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 17 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 69 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 95 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 39 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 46 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 92 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 82 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 95 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 36 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 20 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 10 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 36 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 89 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 9 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 19 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 98 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 66 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 56 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 0, + "duration": 99 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 1, + "duration": 19 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 2, + "duration": 86 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 3, + "duration": 55 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 4, + "duration": 63 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 90, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 124, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 176, + "machine": 4, + "duration": 96 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 299, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 367, + "machine": 1, + "duration": 82 + }, + { + "task": 2, + "start": 542, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 615, + "machine": 3, + "duration": 76 + }, + { + "task": 4, + "start": 691, + "machine": 4, + "duration": 9 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 75, + "machine": 0, + "duration": 2 + }, + { + "task": 1, + "start": 111, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 158, + "machine": 2, + "duration": 85 + }, + { + "task": 3, + "start": 258, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 441, + "machine": 4, + "duration": 21 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 529, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 699, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 726, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 772, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 773, + "machine": 4, + "duration": 2 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 70, + "machine": 0, + "duration": 5 + }, + { + "task": 1, + "start": 90, + "machine": 1, + "duration": 21 + }, + { + "task": 2, + "start": 124, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 176, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 272, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 139, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 223, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 282, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 328, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 462, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 77, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 275, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 348, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 424, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 508, + "machine": 4, + "duration": 17 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 128, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 243, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 282, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 349, + "machine": 4, + "duration": 92 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 411, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 515, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 615, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 691, + "machine": 3, + "duration": 20 + }, + { + "task": 4, + "start": 711, + "machine": 4, + "duration": 10 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 493, + "machine": 0, + "duration": 36 + }, + { + "task": 1, + "start": 610, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 699, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 711, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 747, + "machine": 4, + "duration": 19 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 313, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 449, + "machine": 1, + "duration": 66 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 563, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 626, + "machine": 4, + "duration": 56 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 200, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 348, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 422, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 508, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 563, + "machine": 4, + "duration": 63 + } + ] + } + ], + "context_index": 19, + "input_format": "csv", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone on the line has to choreograph the flow: each circuit board must go through soldering, then testing, then packing, always in that order. The task is to pick the order the boards pass through the three stations so no station tries to do two boards at once and every board gets each step exactly once. The goal is to minimize how long it takes until the last board is finished — the completion time of the final board from the packer. The exact boards and their step lengths are detailed below.\n\nThere are 12 boards to schedule across 5 stations; the board IDs are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 and the station sequence is 1, 2, 3, 4, 5.\n\n| board_id | step_index | station_id | processing_duration |\n|---|---|---|---|\n| J1 | 0 | 1 | 1 |\n| J1 | 1 | 2 | 3 |\n| J1 | 2 | 3 | 10 |\n| J1 | 3 | 4 | 97 |\n| J1 | 4 | 5 | 50 |\n| J2 | 0 | 1 | 36 |\n| J2 | 1 | 2 | 87 |\n| J2 | 2 | 3 | 41 |\n| J2 | 3 | 4 | 44 |\n| J2 | 4 | 5 | 2 |\n| J3 | 0 | 1 | 39 |\n| J3 | 1 | 2 | 68 |\n| J3 | 2 | 3 | 69 |\n| J3 | 3 | 4 | 11 |\n| J3 | 4 | 5 | 26 |\n| J4 | 0 | 1 | 31 |\n| J4 | 1 | 2 | 94 |\n| J4 | 2 | 3 | 47 |\n| J4 | 3 | 4 | 39 |\n| J4 | 4 | 5 | 8 |\n| J5 | 0 | 1 | 47 |\n| J5 | 1 | 2 | 89 |\n| J5 | 2 | 3 | 92 |\n| J5 | 3 | 4 | 75 |\n| J5 | 4 | 5 | 62 |\n| J6 | 0 | 1 | 15 |\n| J6 | 1 | 2 | 61 |\n| J6 | 2 | 3 | 89 |\n| J6 | 3 | 4 | 38 |\n| J6 | 4 | 5 | 77 |\n| J7 | 0 | 1 | 53 |\n| J7 | 1 | 2 | 49 |\n| J7 | 2 | 3 | 1 |\n| J7 | 3 | 4 | 89 |\n| J7 | 4 | 5 | 90 |\n| J8 | 0 | 1 | 3 |\n| J8 | 1 | 2 | 59 |\n| J8 | 2 | 3 | 14 |\n| J8 | 3 | 4 | 45 |\n| J8 | 4 | 5 | 29 |\n| J9 | 0 | 1 | 7 |\n| J9 | 1 | 2 | 93 |\n| J9 | 2 | 3 | 9 |\n| J9 | 3 | 4 | 95 |\n| J9 | 4 | 5 | 74 |\n| J10 | 0 | 1 | 43 |\n| J10 | 1 | 2 | 53 |\n| J10 | 2 | 3 | 96 |\n| J10 | 3 | 4 | 63 |\n| J10 | 4 | 5 | 62 |\n| J11 | 0 | 1 | 75 |\n| J11 | 1 | 2 | 15 |\n| J11 | 2 | 3 | 50 |\n| J11 | 3 | 4 | 77 |\n| J11 | 4 | 5 | 91 |\n| J12 | 0 | 1 | 16 |\n| J12 | 1 | 2 | 68 |\n| J12 | 2 | 3 | 75 |\n| J12 | 3 | 4 | 46 |\n| J12 | 4 | 5 | 69 |\n\nKeep the line moving to minimize the completion time of the final board.\n\nOh, and before you hand me the schedule, it'd be handy if you put it into this simple JSON shape so I can read it automatically:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThat's just a sketch of the shape I expect — \"solution\" is a list where each entry is one board (a job), and each board has a \"tasks\" list with each step's index, when it starts, which station/machine it uses, and how long that step takes. Treat it like a simple form to fill out, not the final timetable itself.\n\nPlease make sure all identifiers in your actual schedule match the instance input exactly — 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 3 + ], + [ + 2, + 10 + ], + [ + 3, + 97 + ], + [ + 4, + 50 + ] + ], + [ + [ + 0, + 36 + ], + [ + 1, + 87 + ], + [ + 2, + 41 + ], + [ + 3, + 44 + ], + [ + 4, + 2 + ] + ], + [ + [ + 0, + 39 + ], + [ + 1, + 68 + ], + [ + 2, + 69 + ], + [ + 3, + 11 + ], + [ + 4, + 26 + ] + ], + [ + [ + 0, + 31 + ], + [ + 1, + 94 + ], + [ + 2, + 47 + ], + [ + 3, + 39 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 47 + ], + [ + 1, + 89 + ], + [ + 2, + 92 + ], + [ + 3, + 75 + ], + [ + 4, + 62 + ] + ], + [ + [ + 0, + 15 + ], + [ + 1, + 61 + ], + [ + 2, + 89 + ], + [ + 3, + 38 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 53 + ], + [ + 1, + 49 + ], + [ + 2, + 1 + ], + [ + 3, + 89 + ], + [ + 4, + 90 + ] + ], + [ + [ + 0, + 3 + ], + [ + 1, + 59 + ], + [ + 2, + 14 + ], + [ + 3, + 45 + ], + [ + 4, + 29 + ] + ], + [ + [ + 0, + 7 + ], + [ + 1, + 93 + ], + [ + 2, + 9 + ], + [ + 3, + 95 + ], + [ + 4, + 74 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 53 + ], + [ + 2, + 96 + ], + [ + 3, + 63 + ], + [ + 4, + 62 + ] + ], + [ + [ + 0, + 75 + ], + [ + 1, + 15 + ], + [ + 2, + 50 + ], + [ + 3, + 77 + ], + [ + 4, + 91 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 68 + ], + [ + 2, + 75 + ], + [ + 3, + 46 + ], + [ + 4, + 69 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 4, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 14, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 111, + "machine": 4, + "duration": 50 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 330, + "machine": 0, + "duration": 36 + }, + { + "task": 1, + "start": 653, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 740, + "machine": 2, + "duration": 41 + }, + { + "task": 3, + "start": 781, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 825, + "machine": 4, + "duration": 2 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 85, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 585, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 653, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 735, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 788, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 299, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 491, + "machine": 1, + "duration": 94 + }, + { + "task": 2, + "start": 590, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 696, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 814, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 177, + "machine": 0, + "duration": 47 + }, + { + "task": 1, + "start": 334, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 423, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 575, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 657, + "machine": 4, + "duration": 62 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 47, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 63, + "machine": 1, + "duration": 61 + }, + { + "task": 2, + "start": 124, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 213, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 251, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 0, + "duration": 53 + }, + { + "task": 1, + "start": 177, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 226, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 251, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 340, + "machine": 4, + "duration": 90 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 3 + }, + { + "task": 1, + "start": 4, + "machine": 1, + "duration": 59 + }, + { + "task": 2, + "start": 63, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 111, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 161, + "machine": 4, + "duration": 29 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 62, + "machine": 0, + "duration": 7 + }, + { + "task": 1, + "start": 226, + "machine": 1, + "duration": 93 + }, + { + "task": 2, + "start": 323, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 480, + "machine": 3, + "duration": 95 + }, + { + "task": 4, + "start": 583, + "machine": 4, + "duration": 74 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 4, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 124, + "machine": 1, + "duration": 53 + }, + { + "task": 2, + "start": 227, + "machine": 2, + "duration": 96 + }, + { + "task": 3, + "start": 340, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 430, + "machine": 4, + "duration": 62 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 224, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 319, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 334, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 403, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 492, + "machine": 4, + "duration": 91 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 69, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 423, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 75 + }, + { + "task": 3, + "start": 650, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 719, + "machine": 4, + "duration": 69 + } + ] + } + ], + "obj": 827.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 3 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 10 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 97 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "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": 3, + "duration": 41 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 44 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 2 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 39 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 69 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 11 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 26 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 94 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 47 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 47 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 89 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 92 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 75 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 61 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 89 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 38 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 77 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 53 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 1 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 89 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 90 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 3 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 59 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 14 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 45 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 29 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 7 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "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": 5, + "duration": 74 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 43 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 53 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 96 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 63 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 62 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 1, + "duration": 75 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 2, + "duration": 15 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 3, + "duration": 50 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 4, + "duration": 77 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 5, + "duration": 91 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 3, + "duration": 75 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 5, + "duration": 69 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 3 + }, + { + "task": 2, + "start": 4, + "machine": 3, + "duration": 10 + }, + { + "task": 3, + "start": 14, + "machine": 4, + "duration": 97 + }, + { + "task": 4, + "start": 111, + "machine": 5, + "duration": 50 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 330, + "machine": 1, + "duration": 36 + }, + { + "task": 1, + "start": 653, + "machine": 2, + "duration": 87 + }, + { + "task": 2, + "start": 740, + "machine": 3, + "duration": 41 + }, + { + "task": 3, + "start": 781, + "machine": 4, + "duration": 44 + }, + { + "task": 4, + "start": 825, + "machine": 5, + "duration": 2 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 85, + "machine": 1, + "duration": 39 + }, + { + "task": 1, + "start": 585, + "machine": 2, + "duration": 68 + }, + { + "task": 2, + "start": 653, + "machine": 3, + "duration": 69 + }, + { + "task": 3, + "start": 735, + "machine": 4, + "duration": 11 + }, + { + "task": 4, + "start": 788, + "machine": 5, + "duration": 26 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 299, + "machine": 1, + "duration": 31 + }, + { + "task": 1, + "start": 491, + "machine": 2, + "duration": 94 + }, + { + "task": 2, + "start": 590, + "machine": 3, + "duration": 47 + }, + { + "task": 3, + "start": 696, + "machine": 4, + "duration": 39 + }, + { + "task": 4, + "start": 814, + "machine": 5, + "duration": 8 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 177, + "machine": 1, + "duration": 47 + }, + { + "task": 1, + "start": 334, + "machine": 2, + "duration": 89 + }, + { + "task": 2, + "start": 423, + "machine": 3, + "duration": 92 + }, + { + "task": 3, + "start": 575, + "machine": 4, + "duration": 75 + }, + { + "task": 4, + "start": 657, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 47, + "machine": 1, + "duration": 15 + }, + { + "task": 1, + "start": 63, + "machine": 2, + "duration": 61 + }, + { + "task": 2, + "start": 124, + "machine": 3, + "duration": 89 + }, + { + "task": 3, + "start": 213, + "machine": 4, + "duration": 38 + }, + { + "task": 4, + "start": 251, + "machine": 5, + "duration": 77 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 1, + "duration": 53 + }, + { + "task": 1, + "start": 177, + "machine": 2, + "duration": 49 + }, + { + "task": 2, + "start": 226, + "machine": 3, + "duration": 1 + }, + { + "task": 3, + "start": 251, + "machine": 4, + "duration": 89 + }, + { + "task": 4, + "start": 340, + "machine": 5, + "duration": 90 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 3 + }, + { + "task": 1, + "start": 4, + "machine": 2, + "duration": 59 + }, + { + "task": 2, + "start": 63, + "machine": 3, + "duration": 14 + }, + { + "task": 3, + "start": 111, + "machine": 4, + "duration": 45 + }, + { + "task": 4, + "start": 161, + "machine": 5, + "duration": 29 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 62, + "machine": 1, + "duration": 7 + }, + { + "task": 1, + "start": 226, + "machine": 2, + "duration": 93 + }, + { + "task": 2, + "start": 323, + "machine": 3, + "duration": 9 + }, + { + "task": 3, + "start": 480, + "machine": 4, + "duration": 95 + }, + { + "task": 4, + "start": 583, + "machine": 5, + "duration": 74 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 4, + "machine": 1, + "duration": 43 + }, + { + "task": 1, + "start": 124, + "machine": 2, + "duration": 53 + }, + { + "task": 2, + "start": 227, + "machine": 3, + "duration": 96 + }, + { + "task": 3, + "start": 340, + "machine": 4, + "duration": 63 + }, + { + "task": 4, + "start": 430, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 224, + "machine": 1, + "duration": 75 + }, + { + "task": 1, + "start": 319, + "machine": 2, + "duration": 15 + }, + { + "task": 2, + "start": 334, + "machine": 3, + "duration": 50 + }, + { + "task": 3, + "start": 403, + "machine": 4, + "duration": 77 + }, + { + "task": 4, + "start": 492, + "machine": 5, + "duration": 91 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 69, + "machine": 1, + "duration": 16 + }, + { + "task": 1, + "start": 423, + "machine": 2, + "duration": 68 + }, + { + "task": 2, + "start": 515, + "machine": 3, + "duration": 75 + }, + { + "task": 3, + "start": 650, + "machine": 4, + "duration": 46 + }, + { + "task": 4, + "start": 719, + "machine": 5, + "duration": 69 + } + ] + } + ], + "context_index": 20, + "input_format": "markdown_table", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Many people come through the clinic needing the same three stops in the same order — check-in, sample, then diagnostics — and the receptionist spaces their slots so those stops don’t overlap on the same equipment. Every step has a set duration, and a device can’t handle two patients at once. What makes one spacing better than another is how early the entire group is done: the best plan is the one that makes the finish time of the last patient as early as possible. No steps can be skipped or repeated, and the detailed timings are shown below.\n\nBelow are the detailed timings for the 11 patients and the 6 stations, listed by patient ids J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and station ids 0, 1, 2, 3, 4, 5.\nPatient J1 has step 0 at station 0 lasting 1.\nPatient J1 has step 1 at station 1 lasting 16.\nPatient J1 has step 2 at station 2 lasting 84.\nPatient J1 has step 3 at station 3 lasting 44.\nPatient J1 has step 4 at station 4 lasting 4.\nPatient J1 has step 5 at station 5 lasting 57.\nPatient J2 has step 0 at station 0 lasting 91.\nPatient J2 has step 1 at station 1 lasting 9.\nPatient J2 has step 2 at station 2 lasting 12.\nPatient J2 has step 3 at station 3 lasting 95.\nPatient J2 has step 4 at station 4 lasting 77.\nPatient J2 has step 5 at station 5 lasting 21.\nPatient J3 has step 0 at station 0 lasting 52.\nPatient J3 has step 1 at station 1 lasting 15.\nPatient J3 has step 2 at station 2 lasting 32.\nPatient J3 has step 3 at station 3 lasting 84.\nPatient J3 has step 4 at station 4 lasting 61.\nPatient J3 has step 5 at station 5 lasting 48.\nPatient J4 has step 0 at station 0 lasting 77.\nPatient J4 has step 1 at station 1 lasting 15.\nPatient J4 has step 2 at station 2 lasting 88.\nPatient J4 has step 3 at station 3 lasting 58.\nPatient J4 has step 4 at station 4 lasting 52.\nPatient J4 has step 5 at station 5 lasting 69.\nPatient J5 has step 0 at station 0 lasting 46.\nPatient J5 has step 1 at station 1 lasting 67.\nPatient J5 has step 2 at station 2 lasting 70.\nPatient J5 has step 3 at station 3 lasting 54.\nPatient J5 has step 4 at station 4 lasting 79.\nPatient J5 has step 5 at station 5 lasting 47.\nPatient J6 has step 0 at station 0 lasting 44.\nPatient J6 has step 1 at station 1 lasting 26.\nPatient J6 has step 2 at station 2 lasting 27.\nPatient J6 has step 3 at station 3 lasting 94.\nPatient J6 has step 4 at station 4 lasting 64.\nPatient J6 has step 5 at station 5 lasting 35.\nPatient J7 has step 0 at station 0 lasting 23.\nPatient J7 has step 1 at station 1 lasting 89.\nPatient J7 has step 2 at station 2 lasting 44.\nPatient J7 has step 3 at station 3 lasting 65.\nPatient J7 has step 4 at station 4 lasting 32.\nPatient J7 has step 5 at station 5 lasting 91.\nPatient J8 has step 0 at station 0 lasting 80.\nPatient J8 has step 1 at station 1 lasting 71.\nPatient J8 has step 2 at station 2 lasting 40.\nPatient J8 has step 3 at station 3 lasting 51.\nPatient J8 has step 4 at station 4 lasting 16.\nPatient J8 has step 5 at station 5 lasting 85.\nPatient J9 has step 0 at station 0 lasting 90.\nPatient J9 has step 1 at station 1 lasting 6.\nPatient J9 has step 2 at station 2 lasting 52.\nPatient J9 has step 3 at station 3 lasting 62.\nPatient J9 has step 4 at station 4 lasting 74.\nPatient J9 has step 5 at station 5 lasting 5.\nPatient J10 has step 0 at station 0 lasting 28.\nPatient J10 has step 1 at station 1 lasting 33.\nPatient J10 has step 2 at station 2 lasting 17.\nPatient J10 has step 3 at station 3 lasting 65.\nPatient J10 has step 4 at station 4 lasting 37.\nPatient J10 has step 5 at station 5 lasting 75.\nPatient J11 has step 0 at station 0 lasting 9.\nPatient J11 has step 1 at station 1 lasting 28.\nPatient J11 has step 2 at station 2 lasting 2.\nPatient J11 has step 3 at station 3 lasting 78.\nPatient J11 has step 4 at station 4 lasting 18.\nPatient J11 has step 5 at station 5 lasting 63.\nThe receptionist will use these timings to space slots so no station handles two patients at once and the goal is to finish the last patient as early as possible.\n\nIf you'd like the schedule in a machine-friendly form, I usually return it in this little JSON shape:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that like a simple form: \"solution\" is the whole plan; inside it there's one entry per patient (job). Each patient entry names the job and then lists their tasks in order. Each task line just says which step number it is, when it starts, which device it uses, and how long it takes. This is just the shape I need — a sketch, not the actual filled-in schedule.\n\nPlease make sure to use the exact identifiers from the instance input — don't 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 16 + ], + [ + 2, + 84 + ], + [ + 3, + 44 + ], + [ + 4, + 4 + ], + [ + 5, + 57 + ] + ], + [ + [ + 0, + 91 + ], + [ + 1, + 9 + ], + [ + 2, + 12 + ], + [ + 3, + 95 + ], + [ + 4, + 77 + ], + [ + 5, + 21 + ] + ], + [ + [ + 0, + 52 + ], + [ + 1, + 15 + ], + [ + 2, + 32 + ], + [ + 3, + 84 + ], + [ + 4, + 61 + ], + [ + 5, + 48 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 15 + ], + [ + 2, + 88 + ], + [ + 3, + 58 + ], + [ + 4, + 52 + ], + [ + 5, + 69 + ] + ], + [ + [ + 0, + 46 + ], + [ + 1, + 67 + ], + [ + 2, + 70 + ], + [ + 3, + 54 + ], + [ + 4, + 79 + ], + [ + 5, + 47 + ] + ], + [ + [ + 0, + 44 + ], + [ + 1, + 26 + ], + [ + 2, + 27 + ], + [ + 3, + 94 + ], + [ + 4, + 64 + ], + [ + 5, + 35 + ] + ], + [ + [ + 0, + 23 + ], + [ + 1, + 89 + ], + [ + 2, + 44 + ], + [ + 3, + 65 + ], + [ + 4, + 32 + ], + [ + 5, + 91 + ] + ], + [ + [ + 0, + 80 + ], + [ + 1, + 71 + ], + [ + 2, + 40 + ], + [ + 3, + 51 + ], + [ + 4, + 16 + ], + [ + 5, + 85 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 6 + ], + [ + 2, + 52 + ], + [ + 3, + 62 + ], + [ + 4, + 74 + ], + [ + 5, + 5 + ] + ], + [ + [ + 0, + 28 + ], + [ + 1, + 33 + ], + [ + 2, + 17 + ], + [ + 3, + 65 + ], + [ + 4, + 37 + ], + [ + 5, + 75 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 28 + ], + [ + 2, + 2 + ], + [ + 3, + 78 + ], + [ + 4, + 18 + ], + [ + 5, + 63 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 60, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 70, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 87, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 182, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 226, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 230, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 113, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 204, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 251, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 291, + "machine": 3, + "duration": 95 + }, + { + "task": 4, + "start": 386, + "machine": 4, + "duration": 77 + }, + { + "task": 5, + "start": 463, + "machine": 5, + "duration": 21 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 61, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 175, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 219, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 643, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 727, + "machine": 4, + "duration": 61 + }, + { + "task": 5, + "start": 813, + "machine": 5, + "duration": 48 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 204, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 281, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 296, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 386, + "machine": 3, + "duration": 58 + }, + { + "task": 4, + "start": 463, + "machine": 4, + "duration": 52 + }, + { + "task": 5, + "start": 515, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 325, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 371, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 438, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 538, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 602, + "machine": 4, + "duration": 79 + }, + { + "task": 5, + "start": 681, + "machine": 5, + "duration": 47 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 281, + "machine": 0, + "duration": 44 + }, + { + "task": 1, + "start": 325, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 384, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 444, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 538, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 602, + "machine": 5, + "duration": 35 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 37, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 86, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 175, + "machine": 2, + "duration": 44 + }, + { + "task": 3, + "start": 226, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 291, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 362, + "machine": 5, + "duration": 91 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 371, + "machine": 0, + "duration": 80 + }, + { + "task": 1, + "start": 451, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 522, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 592, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 681, + "machine": 4, + "duration": 16 + }, + { + "task": 5, + "start": 728, + "machine": 5, + "duration": 85 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 451, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 541, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 562, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 727, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 789, + "machine": 4, + "duration": 74 + }, + { + "task": 5, + "start": 863, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 9, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 37, + "machine": 1, + "duration": 33 + }, + { + "task": 2, + "start": 70, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 117, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 182, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 287, + "machine": 5, + "duration": 75 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 37, + "machine": 2, + "duration": 2 + }, + { + "task": 3, + "start": 39, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 117, + "machine": 4, + "duration": 18 + }, + { + "task": 5, + "start": 135, + "machine": 5, + "duration": 63 + } + ] + } + ], + "obj": 868.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 84 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 44 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 57 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 91 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 9 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 12 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 95 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 77 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 21 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 52 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 32 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 84 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 61 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 48 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 77 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 58 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 52 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 69 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 46 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 67 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 70 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 54 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 79 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 47 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 44 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 94 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 64 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 35 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 23 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 89 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 44 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 65 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 32 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 91 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 80 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 40 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 16 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 85 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 90 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 6 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 52 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 62 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 74 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 5 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 28 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 33 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 17 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 65 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 37 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 75 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 9 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 28 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 2 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 78 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 18 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": 5, + "duration": 63 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 60, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 70, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 87, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 182, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 226, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 230, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 113, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 204, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 251, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 291, + "machine": 3, + "duration": 95 + }, + { + "task": 4, + "start": 386, + "machine": 4, + "duration": 77 + }, + { + "task": 5, + "start": 463, + "machine": 5, + "duration": 21 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 61, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 175, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 219, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 643, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 727, + "machine": 4, + "duration": 61 + }, + { + "task": 5, + "start": 813, + "machine": 5, + "duration": 48 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 204, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 281, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 296, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 386, + "machine": 3, + "duration": 58 + }, + { + "task": 4, + "start": 463, + "machine": 4, + "duration": 52 + }, + { + "task": 5, + "start": 515, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 325, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 371, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 438, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 538, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 602, + "machine": 4, + "duration": 79 + }, + { + "task": 5, + "start": 681, + "machine": 5, + "duration": 47 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 281, + "machine": 0, + "duration": 44 + }, + { + "task": 1, + "start": 325, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 384, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 444, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 538, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 602, + "machine": 5, + "duration": 35 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 37, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 86, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 175, + "machine": 2, + "duration": 44 + }, + { + "task": 3, + "start": 226, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 291, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 362, + "machine": 5, + "duration": 91 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 371, + "machine": 0, + "duration": 80 + }, + { + "task": 1, + "start": 451, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 522, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 592, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 681, + "machine": 4, + "duration": 16 + }, + { + "task": 5, + "start": 728, + "machine": 5, + "duration": 85 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 451, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 541, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 562, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 727, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 789, + "machine": 4, + "duration": 74 + }, + { + "task": 5, + "start": 863, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 9, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 37, + "machine": 1, + "duration": 33 + }, + { + "task": 2, + "start": 70, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 117, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 182, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 287, + "machine": 5, + "duration": 75 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 37, + "machine": 2, + "duration": 2 + }, + { + "task": 3, + "start": 39, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 117, + "machine": 4, + "duration": 18 + }, + { + "task": 5, + "start": 135, + "machine": 5, + "duration": 63 + } + ] + } + ], + "context_index": 21, + "input_format": "nl", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "That afternoon the café had back-to-back orders and the only workflow is espresso first, then milk, then finishing — always in that order for each order. The job is to decide the order of operations so the espresso machine, steamer, and assembly table aren’t booked by overlapping drinks, and every order gets each step exactly once. The better the plan, the earlier the last drink is finished — the completion time of the final cup is how success is measured. The concrete order details and prep durations follow below.\n\n# orders_count=10\n# stations_count=5\n# orders_list=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10\n# stations_list=1, 2, 3, 4, 5\norder_id,step_index,station_id,step_duration\nJ1,0,1,1\nJ1,1,2,29\nJ1,2,3,60\nJ1,3,4,89\nJ1,4,5,56\nJ2,0,1,79\nJ2,1,2,96\nJ2,2,3,77\nJ2,3,4,79\nJ2,4,5,88\nJ3,0,1,16\nJ3,1,2,72\nJ3,2,3,35\nJ3,3,4,18\nJ3,4,5,37\nJ4,0,1,37\nJ4,1,2,28\nJ4,2,3,49\nJ4,3,4,16\nJ4,4,5,21\nJ5,0,1,30\nJ5,1,2,27\nJ5,2,3,11\nJ5,3,4,62\nJ5,4,5,31\nJ6,0,1,20\nJ6,1,2,79\nJ6,2,3,20\nJ6,3,4,21\nJ6,4,5,18\nJ7,0,1,35\nJ7,1,2,2\nJ7,2,3,53\nJ7,3,4,99\nJ7,4,5,37\nJ8,0,1,68\nJ8,1,2,85\nJ8,2,3,65\nJ8,3,4,44\nJ8,4,5,2\nJ9,0,1,56\nJ9,1,2,90\nJ9,2,3,53\nJ9,3,4,46\nJ9,4,5,5\nJ10,0,1,58\nJ10,1,2,79\nJ10,2,3,73\nJ10,3,4,18\nJ10,4,5,49\n\nOh, and one more thing — when you send the plan back, please keep it in a simple JSON shape so it's easy to read by humans and machines alike. Something like this is what I expect:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a sketch of the shape I want, not the actual schedule. In plain terms: each top-level \"job\" is one drink/order, \"tasks\" is the list of steps that drink needs (espresso, milk, assembly), \"task\" is which step in the sequence, \"start\" is when that step begins, \"machine\" names the station doing the step, and \"duration\" is how long that step takes.\n\nPlease use the exact identifiers that 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 29 + ], + [ + 2, + 60 + ], + [ + 3, + 89 + ], + [ + 4, + 56 + ] + ], + [ + [ + 0, + 79 + ], + [ + 1, + 96 + ], + [ + 2, + 77 + ], + [ + 3, + 79 + ], + [ + 4, + 88 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 72 + ], + [ + 2, + 35 + ], + [ + 3, + 18 + ], + [ + 4, + 37 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 28 + ], + [ + 2, + 49 + ], + [ + 3, + 16 + ], + [ + 4, + 21 + ] + ], + [ + [ + 0, + 30 + ], + [ + 1, + 27 + ], + [ + 2, + 11 + ], + [ + 3, + 62 + ], + [ + 4, + 31 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 79 + ], + [ + 2, + 20 + ], + [ + 3, + 21 + ], + [ + 4, + 18 + ] + ], + [ + [ + 0, + 35 + ], + [ + 1, + 2 + ], + [ + 2, + 53 + ], + [ + 3, + 99 + ], + [ + 4, + 37 + ] + ], + [ + [ + 0, + 68 + ], + [ + 1, + 85 + ], + [ + 2, + 65 + ], + [ + 3, + 44 + ], + [ + 4, + 2 + ] + ], + [ + [ + 0, + 56 + ], + [ + 1, + 90 + ], + [ + 2, + 53 + ], + [ + 3, + 46 + ], + [ + 4, + 5 + ] + ], + [ + [ + 0, + 58 + ], + [ + 1, + 79 + ], + [ + 2, + 73 + ], + [ + 3, + 18 + ], + [ + 4, + 49 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 29 + }, + { + "task": 2, + "start": 30, + "machine": 2, + "duration": 60 + }, + { + "task": 3, + "start": 90, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 179, + "machine": 4, + "duration": 56 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 110, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 189, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 285, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 362, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 441, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 30, + "machine": 1, + "duration": 72 + }, + { + "task": 2, + "start": 102, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 179, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 235, + "machine": 4, + "duration": 37 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 343, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 397, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 446, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 508, + "machine": 3, + "duration": 16 + }, + { + "task": 4, + "start": 529, + "machine": 4, + "duration": 21 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 257, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 370, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 435, + "machine": 2, + "duration": 11 + }, + { + "task": 3, + "start": 446, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 550, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 380, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 515, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 594, + "machine": 2, + "duration": 20 + }, + { + "task": 3, + "start": 614, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 635, + "machine": 4, + "duration": 18 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 17, + "machine": 0, + "duration": 35 + }, + { + "task": 1, + "start": 102, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 137, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 197, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 352, + "machine": 4, + "duration": 37 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 189, + "machine": 0, + "duration": 68 + }, + { + "task": 1, + "start": 285, + "machine": 1, + "duration": 85 + }, + { + "task": 2, + "start": 370, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 524, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 581, + "machine": 4, + "duration": 2 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 287, + "machine": 0, + "duration": 56 + }, + { + "task": 1, + "start": 425, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 568, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 614, + "machine": 4, + "duration": 5 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 52, + "machine": 0, + "duration": 58 + }, + { + "task": 1, + "start": 110, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 190, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 296, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 389, + "machine": 4, + "duration": 49 + } + ] + } + ], + "obj": 653.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 10, + "nr_machines": 5, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9", + "J10" + ], + "machines": [ + 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": 29 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 60 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 89 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 56 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 79 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 96 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 77 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 79 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 88 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 72 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 35 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 18 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 37 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 37 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 28 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 16 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 21 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 30 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 11 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 62 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 20 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 79 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 20 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 21 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 18 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 35 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 2 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 99 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 37 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 68 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 85 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 65 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 44 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 2 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 56 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 90 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 5 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 58 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 79 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 18 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 49 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 29 + }, + { + "task": 2, + "start": 30, + "machine": 3, + "duration": 60 + }, + { + "task": 3, + "start": 90, + "machine": 4, + "duration": 89 + }, + { + "task": 4, + "start": 179, + "machine": 5, + "duration": 56 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 110, + "machine": 1, + "duration": 79 + }, + { + "task": 1, + "start": 189, + "machine": 2, + "duration": 96 + }, + { + "task": 2, + "start": 285, + "machine": 3, + "duration": 77 + }, + { + "task": 3, + "start": 362, + "machine": 4, + "duration": 79 + }, + { + "task": 4, + "start": 441, + "machine": 5, + "duration": 88 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 16 + }, + { + "task": 1, + "start": 30, + "machine": 2, + "duration": 72 + }, + { + "task": 2, + "start": 102, + "machine": 3, + "duration": 35 + }, + { + "task": 3, + "start": 179, + "machine": 4, + "duration": 18 + }, + { + "task": 4, + "start": 235, + "machine": 5, + "duration": 37 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 343, + "machine": 1, + "duration": 37 + }, + { + "task": 1, + "start": 397, + "machine": 2, + "duration": 28 + }, + { + "task": 2, + "start": 446, + "machine": 3, + "duration": 49 + }, + { + "task": 3, + "start": 508, + "machine": 4, + "duration": 16 + }, + { + "task": 4, + "start": 529, + "machine": 5, + "duration": 21 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 257, + "machine": 1, + "duration": 30 + }, + { + "task": 1, + "start": 370, + "machine": 2, + "duration": 27 + }, + { + "task": 2, + "start": 435, + "machine": 3, + "duration": 11 + }, + { + "task": 3, + "start": 446, + "machine": 4, + "duration": 62 + }, + { + "task": 4, + "start": 550, + "machine": 5, + "duration": 31 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 380, + "machine": 1, + "duration": 20 + }, + { + "task": 1, + "start": 515, + "machine": 2, + "duration": 79 + }, + { + "task": 2, + "start": 594, + "machine": 3, + "duration": 20 + }, + { + "task": 3, + "start": 614, + "machine": 4, + "duration": 21 + }, + { + "task": 4, + "start": 635, + "machine": 5, + "duration": 18 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 17, + "machine": 1, + "duration": 35 + }, + { + "task": 1, + "start": 102, + "machine": 2, + "duration": 2 + }, + { + "task": 2, + "start": 137, + "machine": 3, + "duration": 53 + }, + { + "task": 3, + "start": 197, + "machine": 4, + "duration": 99 + }, + { + "task": 4, + "start": 352, + "machine": 5, + "duration": 37 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 189, + "machine": 1, + "duration": 68 + }, + { + "task": 1, + "start": 285, + "machine": 2, + "duration": 85 + }, + { + "task": 2, + "start": 370, + "machine": 3, + "duration": 65 + }, + { + "task": 3, + "start": 524, + "machine": 4, + "duration": 44 + }, + { + "task": 4, + "start": 581, + "machine": 5, + "duration": 2 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 287, + "machine": 1, + "duration": 56 + }, + { + "task": 1, + "start": 425, + "machine": 2, + "duration": 90 + }, + { + "task": 2, + "start": 515, + "machine": 3, + "duration": 53 + }, + { + "task": 3, + "start": 568, + "machine": 4, + "duration": 46 + }, + { + "task": 4, + "start": 614, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 52, + "machine": 1, + "duration": 58 + }, + { + "task": 1, + "start": 110, + "machine": 2, + "duration": 79 + }, + { + "task": 2, + "start": 190, + "machine": 3, + "duration": 73 + }, + { + "task": 3, + "start": 296, + "machine": 4, + "duration": 18 + }, + { + "task": 4, + "start": 389, + "machine": 5, + "duration": 49 + } + ] + } + ], + "context_index": 22, + "input_format": "csv", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "We try to keep the shop humming by sending each job through layout, printing, and binding in sequence, never changing the order of those stages. The job is to pick an order for the runs so no press or binder is asked to do two things at the same time and nothing is skipped or repeated. A good order is simply the one that makes the last job finish as early as possible — the finishing time of that last piece tells us how well we did. The concrete job details and timings are listed below.\n\n# total_jobs=9\n# total_machines=5\n# job_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9\n# machine_ids=1, 2, 3, 4, 5\njob_run_id,stage_index,required_machine_id,processing_time\nJ1,0,1,1\nJ1,1,2,42\nJ1,2,3,36\nJ1,3,4,36\nJ1,4,5,10\nJ2,0,1,2\nJ2,1,2,2\nJ2,2,3,45\nJ2,3,4,48\nJ2,4,5,82\nJ3,0,1,54\nJ3,1,2,25\nJ3,2,3,18\nJ3,3,4,22\nJ3,4,5,42\nJ4,0,1,90\nJ4,1,2,95\nJ4,2,3,49\nJ4,3,4,54\nJ4,4,5,28\nJ5,0,1,72\nJ5,1,2,95\nJ5,2,3,69\nJ5,3,4,55\nJ5,4,5,16\nJ6,0,1,72\nJ6,1,2,88\nJ6,2,3,85\nJ6,3,4,62\nJ6,4,5,87\nJ7,0,1,26\nJ7,1,2,78\nJ7,2,3,79\nJ7,3,4,4\nJ7,4,5,11\nJ8,0,1,1\nJ8,1,2,49\nJ8,2,3,41\nJ8,3,4,43\nJ8,4,5,38\nJ9,0,1,81\nJ9,1,2,88\nJ9,2,3,25\nJ9,3,4,22\nJ9,4,5,70\n\nAnd when you're ready to hand back the actual schedule, a little heads-up: I like to see it in this simple JSON shape so it's easy to check by eye or by a quick script.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that as a short form: \"solution\" is the list of jobs, each job gets its id and a list of its tasks. For each task we want the task index (which step it is), the start time when that step begins, the machine it's done on, and how long it takes. Easy to read, like filling out a little schedule card.\n\nThis is just a sketch of the shape I expect — please return the actual schedule following this layout.\n\nPlease also make sure to use the exact identifiers shown in 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 42 + ], + [ + 2, + 36 + ], + [ + 3, + 36 + ], + [ + 4, + 10 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 2 + ], + [ + 2, + 45 + ], + [ + 3, + 48 + ], + [ + 4, + 82 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 25 + ], + [ + 2, + 18 + ], + [ + 3, + 22 + ], + [ + 4, + 42 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 95 + ], + [ + 2, + 49 + ], + [ + 3, + 54 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 72 + ], + [ + 1, + 95 + ], + [ + 2, + 69 + ], + [ + 3, + 55 + ], + [ + 4, + 16 + ] + ], + [ + [ + 0, + 72 + ], + [ + 1, + 88 + ], + [ + 2, + 85 + ], + [ + 3, + 62 + ], + [ + 4, + 87 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 78 + ], + [ + 2, + 79 + ], + [ + 3, + 4 + ], + [ + 4, + 11 + ] + ], + [ + [ + 0, + 1 + ], + [ + 1, + 49 + ], + [ + 2, + 41 + ], + [ + 3, + 43 + ], + [ + 4, + 38 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 88 + ], + [ + 2, + 25 + ], + [ + 3, + 22 + ], + [ + 4, + 70 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 325, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 521, + "machine": 1, + "duration": 42 + }, + { + "task": 2, + "start": 563, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 599, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 638, + "machine": 4, + "duration": 10 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 27, + "machine": 0, + "duration": 2 + }, + { + "task": 1, + "start": 50, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 91, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 136, + "machine": 3, + "duration": 48 + }, + { + "task": 4, + "start": 184, + "machine": 4, + "duration": 82 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 101, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 218, + "machine": 1, + "duration": 25 + }, + { + "task": 2, + "start": 303, + "machine": 2, + "duration": 18 + }, + { + "task": 3, + "start": 365, + "machine": 3, + "duration": 22 + }, + { + "task": 4, + "start": 478, + "machine": 4, + "duration": 42 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 235, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 338, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 433, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 482, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 536, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 163, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 243, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 338, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 407, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 462, + "machine": 4, + "duration": 16 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 29, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 130, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 218, + "machine": 2, + "duration": 85 + }, + { + "task": 3, + "start": 303, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 365, + "machine": 4, + "duration": 87 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 52, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 136, + "machine": 2, + "duration": 79 + }, + { + "task": 3, + "start": 215, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 266, + "machine": 4, + "duration": 11 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 50, + "machine": 2, + "duration": 41 + }, + { + "task": 3, + "start": 91, + "machine": 3, + "duration": 43 + }, + { + "task": 4, + "start": 134, + "machine": 4, + "duration": 38 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 326, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 433, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 521, + "machine": 2, + "duration": 25 + }, + { + "task": 3, + "start": 546, + "machine": 3, + "duration": 22 + }, + { + "task": 4, + "start": 568, + "machine": 4, + "duration": 70 + } + ] + } + ], + "obj": 648.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 42 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 36 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 10 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 2 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 2 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 45 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 48 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 82 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 54 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 25 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 18 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 22 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 42 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 90 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 95 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 54 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 28 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 72 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 95 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 69 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 16 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 72 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 85 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 87 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 78 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 79 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 11 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 1 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 41 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 43 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 38 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 81 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 25 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 22 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 70 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 325, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 521, + "machine": 2, + "duration": 42 + }, + { + "task": 2, + "start": 563, + "machine": 3, + "duration": 36 + }, + { + "task": 3, + "start": 599, + "machine": 4, + "duration": 36 + }, + { + "task": 4, + "start": 638, + "machine": 5, + "duration": 10 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 27, + "machine": 1, + "duration": 2 + }, + { + "task": 1, + "start": 50, + "machine": 2, + "duration": 2 + }, + { + "task": 2, + "start": 91, + "machine": 3, + "duration": 45 + }, + { + "task": 3, + "start": 136, + "machine": 4, + "duration": 48 + }, + { + "task": 4, + "start": 184, + "machine": 5, + "duration": 82 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 101, + "machine": 1, + "duration": 54 + }, + { + "task": 1, + "start": 218, + "machine": 2, + "duration": 25 + }, + { + "task": 2, + "start": 303, + "machine": 3, + "duration": 18 + }, + { + "task": 3, + "start": 365, + "machine": 4, + "duration": 22 + }, + { + "task": 4, + "start": 478, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 235, + "machine": 1, + "duration": 90 + }, + { + "task": 1, + "start": 338, + "machine": 2, + "duration": 95 + }, + { + "task": 2, + "start": 433, + "machine": 3, + "duration": 49 + }, + { + "task": 3, + "start": 482, + "machine": 4, + "duration": 54 + }, + { + "task": 4, + "start": 536, + "machine": 5, + "duration": 28 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 163, + "machine": 1, + "duration": 72 + }, + { + "task": 1, + "start": 243, + "machine": 2, + "duration": 95 + }, + { + "task": 2, + "start": 338, + "machine": 3, + "duration": 69 + }, + { + "task": 3, + "start": 407, + "machine": 4, + "duration": 55 + }, + { + "task": 4, + "start": 462, + "machine": 5, + "duration": 16 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 29, + "machine": 1, + "duration": 72 + }, + { + "task": 1, + "start": 130, + "machine": 2, + "duration": 88 + }, + { + "task": 2, + "start": 218, + "machine": 3, + "duration": 85 + }, + { + "task": 3, + "start": 303, + "machine": 4, + "duration": 62 + }, + { + "task": 4, + "start": 365, + "machine": 5, + "duration": 87 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 26 + }, + { + "task": 1, + "start": 52, + "machine": 2, + "duration": 78 + }, + { + "task": 2, + "start": 136, + "machine": 3, + "duration": 79 + }, + { + "task": 3, + "start": 215, + "machine": 4, + "duration": 4 + }, + { + "task": 4, + "start": 266, + "machine": 5, + "duration": 11 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 49 + }, + { + "task": 2, + "start": 50, + "machine": 3, + "duration": 41 + }, + { + "task": 3, + "start": 91, + "machine": 4, + "duration": 43 + }, + { + "task": 4, + "start": 134, + "machine": 5, + "duration": 38 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 326, + "machine": 1, + "duration": 81 + }, + { + "task": 1, + "start": 433, + "machine": 2, + "duration": 88 + }, + { + "task": 2, + "start": 521, + "machine": 3, + "duration": 25 + }, + { + "task": 3, + "start": 546, + "machine": 4, + "duration": 22 + }, + { + "task": 4, + "start": 568, + "machine": 5, + "duration": 70 + } + ] + } + ], + "context_index": 23, + "input_format": "csv", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "We manage a studio schedule where every vessel must be shaped, left to dry, and then fired, always following the same three-stage sequence. The decision is how to order the pieces on the bench and in the kiln so no bench or kiln session overlaps for different pots, and every step happens exactly once per piece. What counts as a better choice is the one that gets the final piece done sooner — measured by the time the last pot is finished. The specific batch sizes and timings are given below.\n\n# num_vessels=11\n# num_stations=5\n# vessel_list=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11\n# station_list=A, B, C, D, E\nvessel_id,stage_index,station_id,stage_duration\nJ1,0,A,1\nJ1,1,B,55\nJ1,2,C,12\nJ1,3,D,81\nJ1,4,E,63\nJ2,0,A,24\nJ2,1,B,6\nJ2,2,C,13\nJ2,3,D,16\nJ2,4,E,75\nJ3,0,A,92\nJ3,1,B,76\nJ3,2,C,2\nJ3,3,D,25\nJ3,4,E,48\nJ4,0,A,43\nJ4,1,B,62\nJ4,2,C,50\nJ4,3,D,92\nJ4,4,E,35\nJ5,0,A,14\nJ5,1,B,64\nJ5,2,C,29\nJ5,3,D,48\nJ5,4,E,1\nJ6,0,A,25\nJ6,1,B,97\nJ6,2,C,50\nJ6,3,D,4\nJ6,4,E,58\nJ7,0,A,17\nJ7,1,B,54\nJ7,2,C,6\nJ7,3,D,9\nJ7,4,E,84\nJ8,0,A,34\nJ8,1,B,13\nJ8,2,C,17\nJ8,3,D,42\nJ8,4,E,74\nJ9,0,A,6\nJ9,1,B,86\nJ9,2,C,97\nJ9,3,D,96\nJ9,4,E,35\nJ10,0,A,72\nJ10,1,B,6\nJ10,2,C,51\nJ10,3,D,72\nJ10,4,E,37\nJ11,0,A,82\nJ11,1,B,6\nJ11,2,C,46\nJ11,3,D,87\nJ11,4,E,35\n\nAlso, when you return the schedule, please use this JSON layout so everything lines up nicely:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nQuick note on what the fields mean in plain terms: \"solution\" is the list of all pieces; each entry is one piece (\"job\") and its sequence of steps (\"tasks\"). Each task shows which step it is (\"task\"), when that step starts (\"start\"), which workspace or oven it uses (\"machine\"), and how long that step takes (\"duration\"). This JSON is just the shape I need — not the actual schedule yet.\n\nPlease make sure to use the exact identifiers from the instance input, with no renaming or extra labels. \n- 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”. \"", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 55 + ], + [ + 2, + 12 + ], + [ + 3, + 81 + ], + [ + 4, + 63 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 6 + ], + [ + 2, + 13 + ], + [ + 3, + 16 + ], + [ + 4, + 75 + ] + ], + [ + [ + 0, + 92 + ], + [ + 1, + 76 + ], + [ + 2, + 2 + ], + [ + 3, + 25 + ], + [ + 4, + 48 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 62 + ], + [ + 2, + 50 + ], + [ + 3, + 92 + ], + [ + 4, + 35 + ] + ], + [ + [ + 0, + 14 + ], + [ + 1, + 64 + ], + [ + 2, + 29 + ], + [ + 3, + 48 + ], + [ + 4, + 1 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 97 + ], + [ + 2, + 50 + ], + [ + 3, + 4 + ], + [ + 4, + 58 + ] + ], + [ + [ + 0, + 17 + ], + [ + 1, + 54 + ], + [ + 2, + 6 + ], + [ + 3, + 9 + ], + [ + 4, + 84 + ] + ], + [ + [ + 0, + 34 + ], + [ + 1, + 13 + ], + [ + 2, + 17 + ], + [ + 3, + 42 + ], + [ + 4, + 74 + ] + ], + [ + [ + 0, + 6 + ], + [ + 1, + 86 + ], + [ + 2, + 97 + ], + [ + 3, + 96 + ], + [ + 4, + 35 + ] + ], + [ + [ + 0, + 72 + ], + [ + 1, + 6 + ], + [ + 2, + 51 + ], + [ + 3, + 72 + ], + [ + 4, + 37 + ] + ], + [ + [ + 0, + 82 + ], + [ + 1, + 6 + ], + [ + 2, + 46 + ], + [ + 3, + 87 + ], + [ + 4, + 35 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 75, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 91, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 172, + "machine": 4, + "duration": 63 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 56, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 62, + "machine": 2, + "duration": 13 + }, + { + "task": 3, + "start": 75, + "machine": 3, + "duration": 16 + }, + { + "task": 4, + "start": 91, + "machine": 4, + "duration": 75 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 304, + "machine": 0, + "duration": 92 + }, + { + "task": 1, + "start": 474, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 550, + "machine": 2, + "duration": 2 + }, + { + "task": 3, + "start": 574, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 611, + "machine": 4, + "duration": 48 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 25, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 68, + "machine": 1, + "duration": 62 + }, + { + "task": 2, + "start": 160, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 214, + "machine": 3, + "duration": 92 + }, + { + "task": 4, + "start": 436, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 396, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 410, + "machine": 1, + "duration": 64 + }, + { + "task": 2, + "start": 482, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 599, + "machine": 3, + "duration": 48 + }, + { + "task": 4, + "start": 659, + "machine": 4, + "duration": 1 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 197, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 310, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 432, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 483, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 518, + "machine": 4, + "duration": 58 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 74, + "machine": 0, + "duration": 17 + }, + { + "task": 1, + "start": 143, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 261, + "machine": 2, + "duration": 6 + }, + { + "task": 3, + "start": 306, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 315, + "machine": 4, + "duration": 84 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 91, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 130, + "machine": 1, + "duration": 13 + }, + { + "task": 2, + "start": 143, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 172, + "machine": 3, + "duration": 42 + }, + { + "task": 4, + "start": 235, + "machine": 4, + "duration": 74 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 68, + "machine": 0, + "duration": 6 + }, + { + "task": 1, + "start": 203, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 289, + "machine": 2, + "duration": 97 + }, + { + "task": 3, + "start": 387, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 483, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 125, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 197, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 210, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 315, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 399, + "machine": 4, + "duration": 37 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 222, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 304, + "machine": 1, + "duration": 6 + }, + { + "task": 2, + "start": 386, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 487, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 576, + "machine": 4, + "duration": 35 + } + ] + } + ], + "obj": 660.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 55 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 12 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 81 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 63 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 24 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 6 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 13 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 16 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 75 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 92 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 76 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 2 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 25 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 48 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 43 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 62 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 50 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 92 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 35 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 14 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 64 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 29 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 48 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 1 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 25 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 97 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 50 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 4 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 58 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 17 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 54 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 6 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 9 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 84 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 34 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 13 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 17 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 42 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 74 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 6 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 86 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 97 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 96 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 35 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 72 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 6 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 51 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 72 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 37 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 82 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 6 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 46 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 87 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 35 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 55 + }, + { + "task": 2, + "start": 75, + "machine": "C", + "duration": 12 + }, + { + "task": 3, + "start": 91, + "machine": "D", + "duration": 81 + }, + { + "task": 4, + "start": 172, + "machine": "E", + "duration": 63 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 24 + }, + { + "task": 1, + "start": 56, + "machine": "B", + "duration": 6 + }, + { + "task": 2, + "start": 62, + "machine": "C", + "duration": 13 + }, + { + "task": 3, + "start": 75, + "machine": "D", + "duration": 16 + }, + { + "task": 4, + "start": 91, + "machine": "E", + "duration": 75 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 304, + "machine": "A", + "duration": 92 + }, + { + "task": 1, + "start": 474, + "machine": "B", + "duration": 76 + }, + { + "task": 2, + "start": 550, + "machine": "C", + "duration": 2 + }, + { + "task": 3, + "start": 574, + "machine": "D", + "duration": 25 + }, + { + "task": 4, + "start": 611, + "machine": "E", + "duration": 48 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 25, + "machine": "A", + "duration": 43 + }, + { + "task": 1, + "start": 68, + "machine": "B", + "duration": 62 + }, + { + "task": 2, + "start": 160, + "machine": "C", + "duration": 50 + }, + { + "task": 3, + "start": 214, + "machine": "D", + "duration": 92 + }, + { + "task": 4, + "start": 436, + "machine": "E", + "duration": 35 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 396, + "machine": "A", + "duration": 14 + }, + { + "task": 1, + "start": 410, + "machine": "B", + "duration": 64 + }, + { + "task": 2, + "start": 482, + "machine": "C", + "duration": 29 + }, + { + "task": 3, + "start": 599, + "machine": "D", + "duration": 48 + }, + { + "task": 4, + "start": 659, + "machine": "E", + "duration": 1 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 197, + "machine": "A", + "duration": 25 + }, + { + "task": 1, + "start": 310, + "machine": "B", + "duration": 97 + }, + { + "task": 2, + "start": 432, + "machine": "C", + "duration": 50 + }, + { + "task": 3, + "start": 483, + "machine": "D", + "duration": 4 + }, + { + "task": 4, + "start": 518, + "machine": "E", + "duration": 58 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 74, + "machine": "A", + "duration": 17 + }, + { + "task": 1, + "start": 143, + "machine": "B", + "duration": 54 + }, + { + "task": 2, + "start": 261, + "machine": "C", + "duration": 6 + }, + { + "task": 3, + "start": 306, + "machine": "D", + "duration": 9 + }, + { + "task": 4, + "start": 315, + "machine": "E", + "duration": 84 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 91, + "machine": "A", + "duration": 34 + }, + { + "task": 1, + "start": 130, + "machine": "B", + "duration": 13 + }, + { + "task": 2, + "start": 143, + "machine": "C", + "duration": 17 + }, + { + "task": 3, + "start": 172, + "machine": "D", + "duration": 42 + }, + { + "task": 4, + "start": 235, + "machine": "E", + "duration": 74 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 68, + "machine": "A", + "duration": 6 + }, + { + "task": 1, + "start": 203, + "machine": "B", + "duration": 86 + }, + { + "task": 2, + "start": 289, + "machine": "C", + "duration": 97 + }, + { + "task": 3, + "start": 387, + "machine": "D", + "duration": 96 + }, + { + "task": 4, + "start": 483, + "machine": "E", + "duration": 35 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 125, + "machine": "A", + "duration": 72 + }, + { + "task": 1, + "start": 197, + "machine": "B", + "duration": 6 + }, + { + "task": 2, + "start": 210, + "machine": "C", + "duration": 51 + }, + { + "task": 3, + "start": 315, + "machine": "D", + "duration": 72 + }, + { + "task": 4, + "start": 399, + "machine": "E", + "duration": 37 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 222, + "machine": "A", + "duration": 82 + }, + { + "task": 1, + "start": 304, + "machine": "B", + "duration": 6 + }, + { + "task": 2, + "start": 386, + "machine": "C", + "duration": 46 + }, + { + "task": 3, + "start": 487, + "machine": "D", + "duration": 87 + }, + { + "task": 4, + "start": 576, + "machine": "E", + "duration": 35 + } + ] + } + ], + "context_index": 24, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Recently the shop was swamped and the lead had to figure out how to queue phones through inspection, repair, and testing without letting any station work on more than one phone at a time. The problem is choosing the order every phone goes through those three stops, making sure each phone is checked, fixed, and tested once and not repeated, so the whole batch finishes sooner rather than later. Performance is measured by the time the last phone finishes testing — you can compute that by noting every phone’s finish time and taking the largest one — and the goal is to make that as small as possible. The specific job list and step times follow below.\n\nThere are 10 devices to route through 5 sequential workstations; device ids: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10; workstation ids: 1, 2, 3, 4, 5.\nDevice J1, step 0 requires workstation 1 for 1 time units.\nDevice J1, step 1 requires workstation 2 for 68 time units.\nDevice J1, step 2 requires workstation 3 for 87 time units.\nDevice J1, step 3 requires workstation 4 for 27 time units.\nDevice J1, step 4 requires workstation 5 for 17 time units.\nDevice J2, step 0 requires workstation 1 for 45 time units.\nDevice J2, step 1 requires workstation 2 for 11 time units.\nDevice J2, step 2 requires workstation 3 for 80 time units.\nDevice J2, step 3 requires workstation 4 for 83 time units.\nDevice J2, step 4 requires workstation 5 for 69 time units.\nDevice J3, step 0 requires workstation 1 for 31 time units.\nDevice J3, step 1 requires workstation 2 for 28 time units.\nDevice J3, step 2 requires workstation 3 for 84 time units.\nDevice J3, step 3 requires workstation 4 for 28 time units.\nDevice J3, step 4 requires workstation 5 for 53 time units.\nDevice J4, step 0 requires workstation 1 for 96 time units.\nDevice J4, step 1 requires workstation 2 for 30 time units.\nDevice J4, step 2 requires workstation 3 for 51 time units.\nDevice J4, step 3 requires workstation 4 for 31 time units.\nDevice J4, step 4 requires workstation 5 for 41 time units.\nDevice J5, step 0 requires workstation 1 for 55 time units.\nDevice J5, step 1 requires workstation 2 for 33 time units.\nDevice J5, step 2 requires workstation 3 for 87 time units.\nDevice J5, step 3 requires workstation 4 for 41 time units.\nDevice J5, step 4 requires workstation 5 for 84 time units.\nDevice J6, step 0 requires workstation 1 for 77 time units.\nDevice J6, step 1 requires workstation 2 for 7 time units.\nDevice J6, step 2 requires workstation 3 for 16 time units.\nDevice J6, step 3 requires workstation 4 for 46 time units.\nDevice J6, step 4 requires workstation 5 for 28 time units.\nDevice J7, step 0 requires workstation 1 for 9 time units.\nDevice J7, step 1 requires workstation 2 for 31 time units.\nDevice J7, step 2 requires workstation 3 for 32 time units.\nDevice J7, step 3 requires workstation 4 for 14 time units.\nDevice J7, step 4 requires workstation 5 for 58 time units.\nDevice J8, step 0 requires workstation 1 for 66 time units.\nDevice J8, step 1 requires workstation 2 for 75 time units.\nDevice J8, step 2 requires workstation 3 for 92 time units.\nDevice J8, step 3 requires workstation 4 for 41 time units.\nDevice J8, step 4 requires workstation 5 for 12 time units.\nDevice J9, step 0 requires workstation 1 for 31 time units.\nDevice J9, step 1 requires workstation 2 for 84 time units.\nDevice J9, step 2 requires workstation 3 for 69 time units.\nDevice J9, step 3 requires workstation 4 for 72 time units.\nDevice J9, step 4 requires workstation 5 for 1 time units.\nDevice J10, step 0 requires workstation 1 for 79 time units.\nDevice J10, step 1 requires workstation 2 for 69 time units.\nDevice J10, step 2 requires workstation 3 for 39 time units.\nDevice J10, step 3 requires workstation 4 for 99 time units.\nDevice J10, step 4 requires workstation 5 for 80 time units.\nThe lead will use the listed step times to compute each device’s finish time and minimize the final makespan.\n\nAlso, when you send the actual schedule back, please stick to a simple JSON layout like this so it's easy to read and check:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis little sketch just says: \"solution\" is a list of jobs; each job has an id and a list of its tasks; each task entry gives which step (task), when it starts, which machine it runs on, and how long it takes. Think of it like filling out a simple form for each phone: job = which phone, tasks = the checkpoints with start times, machines, and durations.\n\nNote that the JSON above is only the expected shape — it's a template, not the actual schedule. Also, please use the exact identifiers from the instance input with no renaming and no extra 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 68 + ], + [ + 2, + 87 + ], + [ + 3, + 27 + ], + [ + 4, + 17 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 11 + ], + [ + 2, + 80 + ], + [ + 3, + 83 + ], + [ + 4, + 69 + ] + ], + [ + [ + 0, + 31 + ], + [ + 1, + 28 + ], + [ + 2, + 84 + ], + [ + 3, + 28 + ], + [ + 4, + 53 + ] + ], + [ + [ + 0, + 96 + ], + [ + 1, + 30 + ], + [ + 2, + 51 + ], + [ + 3, + 31 + ], + [ + 4, + 41 + ] + ], + [ + [ + 0, + 55 + ], + [ + 1, + 33 + ], + [ + 2, + 87 + ], + [ + 3, + 41 + ], + [ + 4, + 84 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 7 + ], + [ + 2, + 16 + ], + [ + 3, + 46 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 31 + ], + [ + 2, + 32 + ], + [ + 3, + 14 + ], + [ + 4, + 58 + ] + ], + [ + [ + 0, + 66 + ], + [ + 1, + 75 + ], + [ + 2, + 92 + ], + [ + 3, + 41 + ], + [ + 4, + 12 + ] + ], + [ + [ + 0, + 31 + ], + [ + 1, + 84 + ], + [ + 2, + 69 + ], + [ + 3, + 72 + ], + [ + 4, + 1 + ] + ], + [ + [ + 0, + 79 + ], + [ + 1, + 69 + ], + [ + 2, + 39 + ], + [ + 3, + 99 + ], + [ + 4, + 80 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 489, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 496, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 590, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 677, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 704, + "machine": 4, + "duration": 17 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 205, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 250, + "machine": 1, + "duration": 11 + }, + { + "task": 2, + "start": 282, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 383, + "machine": 3, + "duration": 83 + }, + { + "task": 4, + "start": 466, + "machine": 4, + "duration": 69 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 9, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 40, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 72, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 156, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 184, + "machine": 4, + "duration": 53 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 316, + "machine": 0, + "duration": 96 + }, + { + "task": 1, + "start": 420, + "machine": 1, + "duration": 30 + }, + { + "task": 2, + "start": 523, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 579, + "machine": 3, + "duration": 31 + }, + { + "task": 4, + "start": 610, + "machine": 4, + "duration": 41 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 40, + "machine": 0, + "duration": 55 + }, + { + "task": 1, + "start": 95, + "machine": 1, + "duration": 33 + }, + { + "task": 2, + "start": 156, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 243, + "machine": 3, + "duration": 41 + }, + { + "task": 4, + "start": 284, + "machine": 4, + "duration": 84 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 412, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 489, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 574, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 610, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 656, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 40, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 72, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 86, + "machine": 4, + "duration": 58 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 250, + "machine": 0, + "duration": 66 + }, + { + "task": 1, + "start": 345, + "machine": 1, + "duration": 75 + }, + { + "task": 2, + "start": 431, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 538, + "machine": 3, + "duration": 41 + }, + { + "task": 4, + "start": 579, + "machine": 4, + "duration": 12 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 174, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 261, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 362, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 466, + "machine": 3, + "duration": 72 + }, + { + "task": 4, + "start": 538, + "machine": 4, + "duration": 1 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 95, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 174, + "machine": 1, + "duration": 69 + }, + { + "task": 2, + "start": 243, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 284, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 383, + "machine": 4, + "duration": 80 + } + ] + } + ], + "obj": 721.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 10, + "nr_machines": 5, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9", + "J10" + ], + "machines": [ + 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": 68 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 27 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 17 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 45 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 11 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 80 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 83 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 69 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 28 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 84 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 53 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 96 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 30 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 31 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 41 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 55 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 33 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 41 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 84 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 77 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 7 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 16 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 28 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 9 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 31 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 14 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 58 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 66 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 75 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 92 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 41 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 12 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 84 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 69 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 72 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 1 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 79 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 69 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 39 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 99 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 80 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 489, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 496, + "machine": 2, + "duration": 68 + }, + { + "task": 2, + "start": 590, + "machine": 3, + "duration": 87 + }, + { + "task": 3, + "start": 677, + "machine": 4, + "duration": 27 + }, + { + "task": 4, + "start": 704, + "machine": 5, + "duration": 17 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 205, + "machine": 1, + "duration": 45 + }, + { + "task": 1, + "start": 250, + "machine": 2, + "duration": 11 + }, + { + "task": 2, + "start": 282, + "machine": 3, + "duration": 80 + }, + { + "task": 3, + "start": 383, + "machine": 4, + "duration": 83 + }, + { + "task": 4, + "start": 466, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 9, + "machine": 1, + "duration": 31 + }, + { + "task": 1, + "start": 40, + "machine": 2, + "duration": 28 + }, + { + "task": 2, + "start": 72, + "machine": 3, + "duration": 84 + }, + { + "task": 3, + "start": 156, + "machine": 4, + "duration": 28 + }, + { + "task": 4, + "start": 184, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 316, + "machine": 1, + "duration": 96 + }, + { + "task": 1, + "start": 420, + "machine": 2, + "duration": 30 + }, + { + "task": 2, + "start": 523, + "machine": 3, + "duration": 51 + }, + { + "task": 3, + "start": 579, + "machine": 4, + "duration": 31 + }, + { + "task": 4, + "start": 610, + "machine": 5, + "duration": 41 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 40, + "machine": 1, + "duration": 55 + }, + { + "task": 1, + "start": 95, + "machine": 2, + "duration": 33 + }, + { + "task": 2, + "start": 156, + "machine": 3, + "duration": 87 + }, + { + "task": 3, + "start": 243, + "machine": 4, + "duration": 41 + }, + { + "task": 4, + "start": 284, + "machine": 5, + "duration": 84 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 412, + "machine": 1, + "duration": 77 + }, + { + "task": 1, + "start": 489, + "machine": 2, + "duration": 7 + }, + { + "task": 2, + "start": 574, + "machine": 3, + "duration": 16 + }, + { + "task": 3, + "start": 610, + "machine": 4, + "duration": 46 + }, + { + "task": 4, + "start": 656, + "machine": 5, + "duration": 28 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": 2, + "duration": 31 + }, + { + "task": 2, + "start": 40, + "machine": 3, + "duration": 32 + }, + { + "task": 3, + "start": 72, + "machine": 4, + "duration": 14 + }, + { + "task": 4, + "start": 86, + "machine": 5, + "duration": 58 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 250, + "machine": 1, + "duration": 66 + }, + { + "task": 1, + "start": 345, + "machine": 2, + "duration": 75 + }, + { + "task": 2, + "start": 431, + "machine": 3, + "duration": 92 + }, + { + "task": 3, + "start": 538, + "machine": 4, + "duration": 41 + }, + { + "task": 4, + "start": 579, + "machine": 5, + "duration": 12 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 174, + "machine": 1, + "duration": 31 + }, + { + "task": 1, + "start": 261, + "machine": 2, + "duration": 84 + }, + { + "task": 2, + "start": 362, + "machine": 3, + "duration": 69 + }, + { + "task": 3, + "start": 466, + "machine": 4, + "duration": 72 + }, + { + "task": 4, + "start": 538, + "machine": 5, + "duration": 1 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 95, + "machine": 1, + "duration": 79 + }, + { + "task": 1, + "start": 174, + "machine": 2, + "duration": 69 + }, + { + "task": 2, + "start": 243, + "machine": 3, + "duration": 39 + }, + { + "task": 3, + "start": 284, + "machine": 4, + "duration": 99 + }, + { + "task": 4, + "start": 383, + "machine": 5, + "duration": 80 + } + ] + } + ], + "context_index": 25, + "input_format": "nl", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Back at the shop, there’s a rhythm: every bike goes inspection → adjustment → road check, always in that sequence, and bays can’t work on overlapping bikes. The decision is how to sequence and time each bike through those stations so nothing is missed or duplicated and no bay is double-booked. The best arrangement is the one where the final bike finishes earliest — that final completion time is how we’ll compare options. The exact job details appear below.\n\n{\n \"total_bikes\": 12,\n \"nr_service_bays\": 6,\n \"bike_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\",\n \"J10\",\n \"J11\",\n \"J12\"\n ],\n \"bay_ids\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"tasks\": [\n {\n \"bike_id\": \"J1\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 1\n },\n {\n \"bike_id\": \"J1\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 81\n },\n {\n \"bike_id\": \"J1\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 62\n },\n {\n \"bike_id\": \"J1\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 73\n },\n {\n \"bike_id\": \"J1\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 69\n },\n {\n \"bike_id\": \"J1\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 67\n },\n {\n \"bike_id\": \"J2\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 16\n },\n {\n \"bike_id\": \"J2\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 48\n },\n {\n \"bike_id\": \"J2\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 51\n },\n {\n \"bike_id\": \"J2\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 62\n },\n {\n \"bike_id\": \"J2\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 69\n },\n {\n \"bike_id\": \"J2\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 80\n },\n {\n \"bike_id\": \"J3\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 67\n },\n {\n \"bike_id\": \"J3\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 32\n },\n {\n \"bike_id\": \"J3\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 58\n },\n {\n \"bike_id\": \"J3\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 49\n },\n {\n \"bike_id\": \"J3\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 96\n },\n {\n \"bike_id\": \"J3\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 52\n },\n {\n \"bike_id\": \"J4\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 69\n },\n {\n \"bike_id\": \"J4\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 48\n },\n {\n \"bike_id\": \"J4\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 97\n },\n {\n \"bike_id\": \"J4\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 2\n },\n {\n \"bike_id\": \"J4\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 46\n },\n {\n \"bike_id\": \"J4\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 34\n },\n {\n \"bike_id\": \"J5\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 69\n },\n {\n \"bike_id\": \"J5\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 31\n },\n {\n \"bike_id\": \"J5\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 17\n },\n {\n \"bike_id\": \"J5\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 81\n },\n {\n \"bike_id\": \"J5\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 87\n },\n {\n \"bike_id\": \"J5\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 97\n },\n {\n \"bike_id\": \"J6\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 99\n },\n {\n \"bike_id\": \"J6\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 7\n },\n {\n \"bike_id\": \"J6\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 58\n },\n {\n \"bike_id\": \"J6\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 18\n },\n {\n \"bike_id\": \"J6\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 32\n },\n {\n \"bike_id\": \"J6\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 99\n },\n {\n \"bike_id\": \"J7\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 39\n },\n {\n \"bike_id\": \"J7\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 68\n },\n {\n \"bike_id\": \"J7\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 40\n },\n {\n \"bike_id\": \"J7\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 48\n },\n {\n \"bike_id\": \"J7\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 55\n },\n {\n \"bike_id\": \"J7\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 83\n },\n {\n \"bike_id\": \"J8\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 42\n },\n {\n \"bike_id\": \"J8\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 48\n },\n {\n \"bike_id\": \"J8\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 65\n },\n {\n \"bike_id\": \"J8\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 87\n },\n {\n \"bike_id\": \"J8\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 32\n },\n {\n \"bike_id\": \"J8\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 28\n },\n {\n \"bike_id\": \"J9\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 27\n },\n {\n \"bike_id\": \"J9\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 24\n },\n {\n \"bike_id\": \"J9\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 36\n },\n {\n \"bike_id\": \"J9\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 1\n },\n {\n \"bike_id\": \"J9\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 93\n },\n {\n \"bike_id\": \"J9\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 42\n },\n {\n \"bike_id\": \"J10\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 8\n },\n {\n \"bike_id\": \"J10\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 16\n },\n {\n \"bike_id\": \"J10\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 60\n },\n {\n \"bike_id\": \"J10\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 15\n },\n {\n \"bike_id\": \"J10\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 91\n },\n {\n \"bike_id\": \"J10\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 6\n },\n {\n \"bike_id\": \"J11\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 61\n },\n {\n \"bike_id\": \"J11\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 80\n },\n {\n \"bike_id\": \"J11\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 59\n },\n {\n \"bike_id\": \"J11\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 38\n },\n {\n \"bike_id\": \"J11\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 11\n },\n {\n \"bike_id\": \"J11\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 10\n },\n {\n \"bike_id\": \"J12\",\n \"service_step\": 0,\n \"bay_id\": 0,\n \"service_duration\": 83\n },\n {\n \"bike_id\": \"J12\",\n \"service_step\": 1,\n \"bay_id\": 1,\n \"service_duration\": 8\n },\n {\n \"bike_id\": \"J12\",\n \"service_step\": 2,\n \"bay_id\": 2,\n \"service_duration\": 50\n },\n {\n \"bike_id\": \"J12\",\n \"service_step\": 3,\n \"bay_id\": 3,\n \"service_duration\": 94\n },\n {\n \"bike_id\": \"J12\",\n \"service_step\": 4,\n \"bay_id\": 4,\n \"service_duration\": 55\n },\n {\n \"bike_id\": \"J12\",\n \"service_step\": 5,\n \"bay_id\": 5,\n \"service_duration\": 74\n }\n ]\n}\n\nAlso, to keep things tidy, please reply using this JSON shape so I can read the schedule easily:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nQuick, laid-back guide to the fields:\n- \"solution\" is a list of jobs (each bike).\n- Each job entry has \"job\" for the job identifier and a \"tasks\" list.\n- Each task lists the task index (which step in the bike's sequence), the planned start time, which machine (bay/station) it runs on, and how long that step takes.\nThis JSON is just a sketch of the shape I want back — not the real schedule itself.\n\nPlease make sure to use the exact identifiers from the instance input, with 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 81 + ], + [ + 2, + 62 + ], + [ + 3, + 73 + ], + [ + 4, + 69 + ], + [ + 5, + 67 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 48 + ], + [ + 2, + 51 + ], + [ + 3, + 62 + ], + [ + 4, + 69 + ], + [ + 5, + 80 + ] + ], + [ + [ + 0, + 67 + ], + [ + 1, + 32 + ], + [ + 2, + 58 + ], + [ + 3, + 49 + ], + [ + 4, + 96 + ], + [ + 5, + 52 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 48 + ], + [ + 2, + 97 + ], + [ + 3, + 2 + ], + [ + 4, + 46 + ], + [ + 5, + 34 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 31 + ], + [ + 2, + 17 + ], + [ + 3, + 81 + ], + [ + 4, + 87 + ], + [ + 5, + 97 + ] + ], + [ + [ + 0, + 99 + ], + [ + 1, + 7 + ], + [ + 2, + 58 + ], + [ + 3, + 18 + ], + [ + 4, + 32 + ], + [ + 5, + 99 + ] + ], + [ + [ + 0, + 39 + ], + [ + 1, + 68 + ], + [ + 2, + 40 + ], + [ + 3, + 48 + ], + [ + 4, + 55 + ], + [ + 5, + 83 + ] + ], + [ + [ + 0, + 42 + ], + [ + 1, + 48 + ], + [ + 2, + 65 + ], + [ + 3, + 87 + ], + [ + 4, + 32 + ], + [ + 5, + 28 + ] + ], + [ + [ + 0, + 27 + ], + [ + 1, + 24 + ], + [ + 2, + 36 + ], + [ + 3, + 1 + ], + [ + 4, + 93 + ], + [ + 5, + 42 + ] + ], + [ + [ + 0, + 8 + ], + [ + 1, + 16 + ], + [ + 2, + 60 + ], + [ + 3, + 15 + ], + [ + 4, + 91 + ], + [ + 5, + 6 + ] + ], + [ + [ + 0, + 61 + ], + [ + 1, + 80 + ], + [ + 2, + 59 + ], + [ + 3, + 38 + ], + [ + 4, + 11 + ], + [ + 5, + 10 + ] + ], + [ + [ + 0, + 83 + ], + [ + 1, + 8 + ], + [ + 2, + 50 + ], + [ + 3, + 94 + ], + [ + 4, + 55 + ], + [ + 5, + 74 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 181, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 191, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 320, + "machine": 2, + "duration": 62 + }, + { + "task": 3, + "start": 402, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 501, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 710, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 66, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 134, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 182, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 233, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 345, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 459, + "machine": 5, + "duration": 80 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 384, + "machine": 0, + "duration": 67 + }, + { + "task": 1, + "start": 473, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 569, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 625, + "machine": 4, + "duration": 96 + }, + { + "task": 5, + "start": 811, + "machine": 5, + "duration": 52 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 451, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 520, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 568, + "machine": 2, + "duration": 97 + }, + { + "task": 3, + "start": 705, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 721, + "machine": 4, + "duration": 46 + }, + { + "task": 5, + "start": 777, + "machine": 5, + "duration": 34 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 182, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 272, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 303, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 320, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 414, + "machine": 4, + "duration": 87 + }, + { + "task": 5, + "start": 539, + "machine": 5, + "duration": 97 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 82, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 182, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 234, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 295, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 313, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 360, + "machine": 5, + "duration": 99 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 27, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 66, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 134, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 174, + "machine": 3, + "duration": 48 + }, + { + "task": 4, + "start": 222, + "machine": 4, + "duration": 55 + }, + { + "task": 5, + "start": 277, + "machine": 5, + "duration": 83 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 251, + "machine": 0, + "duration": 42 + }, + { + "task": 1, + "start": 303, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 442, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 618, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 767, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 863, + "machine": 5, + "duration": 28 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 29, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 53, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 89, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 90, + "machine": 4, + "duration": 93 + }, + { + "task": 5, + "start": 183, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 293, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 351, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 724, + "machine": 2, + "duration": 60 + }, + { + "task": 3, + "start": 784, + "machine": 3, + "duration": 15 + }, + { + "task": 4, + "start": 810, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 901, + "machine": 5, + "duration": 6 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 520, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 581, + "machine": 1, + "duration": 80 + }, + { + "task": 2, + "start": 665, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 724, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 799, + "machine": 4, + "duration": 11 + }, + { + "task": 5, + "start": 891, + "machine": 5, + "duration": 10 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 301, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 384, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 392, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 475, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 570, + "machine": 4, + "duration": 55 + }, + { + "task": 5, + "start": 636, + "machine": 5, + "duration": 74 + } + ] + } + ], + "obj": 907.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 81 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 62 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 69 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 67 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 16 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 48 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 51 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 62 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 69 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 80 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 67 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 32 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 96 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 52 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 69 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 48 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 97 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 2 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 34 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 69 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 17 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 81 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 97 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 99 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 7 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 18 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 32 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 99 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 39 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 68 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 40 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 48 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 83 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 42 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 48 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 65 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 32 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 28 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 27 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 24 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 36 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 1 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 93 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 42 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 8 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 60 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 15 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 91 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 6 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 61 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 80 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 59 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 38 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 11 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": 5, + "duration": 10 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 0, + "duration": 83 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 1, + "duration": 8 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 2, + "duration": 50 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 3, + "duration": 94 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": 5, + "duration": 74 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 181, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 191, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 320, + "machine": 2, + "duration": 62 + }, + { + "task": 3, + "start": 402, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 501, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 710, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 66, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 134, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 182, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 233, + "machine": 3, + "duration": 62 + }, + { + "task": 4, + "start": 345, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 459, + "machine": 5, + "duration": 80 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 384, + "machine": 0, + "duration": 67 + }, + { + "task": 1, + "start": 473, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 569, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 625, + "machine": 4, + "duration": 96 + }, + { + "task": 5, + "start": 811, + "machine": 5, + "duration": 52 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 451, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 520, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 568, + "machine": 2, + "duration": 97 + }, + { + "task": 3, + "start": 705, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 721, + "machine": 4, + "duration": 46 + }, + { + "task": 5, + "start": 777, + "machine": 5, + "duration": 34 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 182, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 272, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 303, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 320, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 414, + "machine": 4, + "duration": 87 + }, + { + "task": 5, + "start": 539, + "machine": 5, + "duration": 97 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 82, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 182, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 234, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 295, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 313, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 360, + "machine": 5, + "duration": 99 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 27, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 66, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 134, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 174, + "machine": 3, + "duration": 48 + }, + { + "task": 4, + "start": 222, + "machine": 4, + "duration": 55 + }, + { + "task": 5, + "start": 277, + "machine": 5, + "duration": 83 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 251, + "machine": 0, + "duration": 42 + }, + { + "task": 1, + "start": 303, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 442, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 618, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 767, + "machine": 4, + "duration": 32 + }, + { + "task": 5, + "start": 863, + "machine": 5, + "duration": 28 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 29, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 53, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 89, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 90, + "machine": 4, + "duration": 93 + }, + { + "task": 5, + "start": 183, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 293, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 351, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 724, + "machine": 2, + "duration": 60 + }, + { + "task": 3, + "start": 784, + "machine": 3, + "duration": 15 + }, + { + "task": 4, + "start": 810, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 901, + "machine": 5, + "duration": 6 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 520, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 581, + "machine": 1, + "duration": 80 + }, + { + "task": 2, + "start": 665, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 724, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 799, + "machine": 4, + "duration": 11 + }, + { + "task": 5, + "start": 891, + "machine": 5, + "duration": 10 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 301, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 384, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 392, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 475, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 570, + "machine": 4, + "duration": 55 + }, + { + "task": 5, + "start": 636, + "machine": 5, + "duration": 74 + } + ] + } + ], + "context_index": 26, + "input_format": "json", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s a stack of shirts, dresses, and coats that all need the same three stops in order — spot treatment, a wash, then a press — and each stop takes a set amount of time per item. Since each machine handles one garment at a time, the trick is deciding the sequence to feed them through so the last garment is done as early as possible; the finish time of that last piece is how to tell if the plan is better. Everything must go through each step exactly once, and no two garments can use the same machine simultaneously. The concrete details for this batch appear below.\n\n# num_garments=12\n# num_stations=6\n# garment_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# station_ids=A, B, C, D, E, F\ngarment_id,stage_index,station_id,processing_time\nJ1,0,A,1\nJ1,1,B,94\nJ1,2,C,38\nJ1,3,D,19\nJ1,4,E,23\nJ1,5,F,89\nJ2,0,A,20\nJ2,1,B,17\nJ2,2,C,20\nJ2,3,D,56\nJ2,4,E,8\nJ2,5,F,32\nJ3,0,A,51\nJ3,1,B,35\nJ3,2,C,63\nJ3,3,D,2\nJ3,4,E,64\nJ3,5,F,52\nJ4,0,A,8\nJ4,1,B,54\nJ4,2,C,39\nJ4,3,D,70\nJ4,4,E,5\nJ4,5,F,27\nJ5,0,A,54\nJ5,1,B,83\nJ5,2,C,26\nJ5,3,D,47\nJ5,4,E,29\nJ5,5,F,68\nJ6,0,A,90\nJ6,1,B,83\nJ6,2,C,84\nJ6,3,D,23\nJ6,4,E,6\nJ6,5,F,32\nJ7,0,A,2\nJ7,1,B,44\nJ7,2,C,39\nJ7,3,D,84\nJ7,4,E,80\nJ7,5,F,81\nJ8,0,A,14\nJ8,1,B,23\nJ8,2,C,31\nJ8,3,D,94\nJ8,4,E,95\nJ8,5,F,16\nJ9,0,A,54\nJ9,1,B,67\nJ9,2,C,13\nJ9,3,D,49\nJ9,4,E,17\nJ9,5,F,69\nJ10,0,A,43\nJ10,1,B,32\nJ10,2,C,9\nJ10,3,D,5\nJ10,4,E,82\nJ10,5,F,12\nJ11,0,A,52\nJ11,1,B,31\nJ11,2,C,11\nJ11,3,D,69\nJ11,4,E,10\nJ11,5,F,59\nJ12,0,A,10\nJ12,1,B,17\nJ12,2,C,45\nJ12,3,D,2\nJ12,4,E,5\nJ12,5,F,13\n\nYou can just follow this simple JSON layout when you send the actual schedule — nothing fancy, just a tidy form that lists each garment (job) and the tasks it goes through with timings and machines. Here’s the shape I expect:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a little checklist: \"solution\" holds all the garments, each garment has a \"job\" identifier and a \"tasks\" list, and each task entry tells you which step it is (\"task\"), when that step begins (\"start\"), which station handles it (\"machine\"), and how long it takes (\"duration\"). Super casual — it's just a way to keep everything consistent.\n\nThis JSON is just a sketch of the shape I need, not the actual scheduled times. 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 94 + ], + [ + 2, + 38 + ], + [ + 3, + 19 + ], + [ + 4, + 23 + ], + [ + 5, + 89 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 17 + ], + [ + 2, + 20 + ], + [ + 3, + 56 + ], + [ + 4, + 8 + ], + [ + 5, + 32 + ] + ], + [ + [ + 0, + 51 + ], + [ + 1, + 35 + ], + [ + 2, + 63 + ], + [ + 3, + 2 + ], + [ + 4, + 64 + ], + [ + 5, + 52 + ] + ], + [ + [ + 0, + 8 + ], + [ + 1, + 54 + ], + [ + 2, + 39 + ], + [ + 3, + 70 + ], + [ + 4, + 5 + ], + [ + 5, + 27 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 83 + ], + [ + 2, + 26 + ], + [ + 3, + 47 + ], + [ + 4, + 29 + ], + [ + 5, + 68 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 83 + ], + [ + 2, + 84 + ], + [ + 3, + 23 + ], + [ + 4, + 6 + ], + [ + 5, + 32 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 44 + ], + [ + 2, + 39 + ], + [ + 3, + 84 + ], + [ + 4, + 80 + ], + [ + 5, + 81 + ] + ], + [ + [ + 0, + 14 + ], + [ + 1, + 23 + ], + [ + 2, + 31 + ], + [ + 3, + 94 + ], + [ + 4, + 95 + ], + [ + 5, + 16 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 67 + ], + [ + 2, + 13 + ], + [ + 3, + 49 + ], + [ + 4, + 17 + ], + [ + 5, + 69 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 32 + ], + [ + 2, + 9 + ], + [ + 3, + 5 + ], + [ + 4, + 82 + ], + [ + 5, + 12 + ] + ], + [ + [ + 0, + 52 + ], + [ + 1, + 31 + ], + [ + 2, + 11 + ], + [ + 3, + 69 + ], + [ + 4, + 10 + ], + [ + 5, + 59 + ] + ], + [ + [ + 0, + 10 + ], + [ + 1, + 17 + ], + [ + 2, + 45 + ], + [ + 3, + 2 + ], + [ + 4, + 5 + ], + [ + 5, + 13 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 179, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 231, + "machine": 1, + "duration": 94 + }, + { + "task": 2, + "start": 325, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 365, + "machine": 3, + "duration": 19 + }, + { + "task": 4, + "start": 384, + "machine": 4, + "duration": 23 + }, + { + "task": 5, + "start": 415, + "machine": 5, + "duration": 89 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 2, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 46, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 63, + "machine": 2, + "duration": 20 + }, + { + "task": 3, + "start": 83, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 139, + "machine": 4, + "duration": 8 + }, + { + "task": 5, + "start": 147, + "machine": 5, + "duration": 32 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 128, + "machine": 0, + "duration": 51 + }, + { + "task": 1, + "start": 179, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 214, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 277, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 284, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 350, + "machine": 5, + "duration": 52 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 294, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 546, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 600, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 639, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 709, + "machine": 4, + "duration": 5 + }, + { + "task": 5, + "start": 714, + "machine": 5, + "duration": 27 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 345, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 431, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 26 + }, + { + "task": 3, + "start": 541, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 589, + "machine": 4, + "duration": 29 + }, + { + "task": 5, + "start": 633, + "machine": 5, + "duration": 68 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 204, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 348, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 431, + "machine": 2, + "duration": 84 + }, + { + "task": 3, + "start": 515, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 583, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 601, + "machine": 5, + "duration": 32 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 2 + }, + { + "task": 1, + "start": 2, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 83, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 279, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 407, + "machine": 4, + "duration": 80 + }, + { + "task": 5, + "start": 504, + "machine": 5, + "duration": 81 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 190, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 325, + "machine": 1, + "duration": 23 + }, + { + "task": 2, + "start": 363, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 394, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 488, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 585, + "machine": 5, + "duration": 16 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 22, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 76, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 143, + "machine": 2, + "duration": 13 + }, + { + "task": 3, + "start": 156, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 205, + "machine": 4, + "duration": 17 + }, + { + "task": 5, + "start": 222, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 302, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 514, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 546, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 588, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 618, + "machine": 4, + "duration": 82 + }, + { + "task": 5, + "start": 701, + "machine": 5, + "duration": 12 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 76, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 143, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 174, + "machine": 2, + "duration": 11 + }, + { + "task": 3, + "start": 205, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 274, + "machine": 4, + "duration": 10 + }, + { + "task": 5, + "start": 291, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 180, + "machine": 0, + "duration": 10 + }, + { + "task": 1, + "start": 214, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 277, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 363, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 365, + "machine": 4, + "duration": 5 + }, + { + "task": 5, + "start": 402, + "machine": 5, + "duration": 13 + } + ] + } + ], + "obj": 741.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 94 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 38 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 19 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 23 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": "F", + "duration": 89 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 20 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 17 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 20 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 56 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 8 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": "F", + "duration": 32 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 51 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 35 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 63 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 2 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 64 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": "F", + "duration": 52 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 8 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 54 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 70 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 5 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": "F", + "duration": 27 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 83 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 26 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 47 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 29 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": "F", + "duration": 68 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 90 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 83 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 84 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 6 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": "F", + "duration": 32 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 2 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 44 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 39 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 84 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 80 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": "F", + "duration": 81 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 14 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 23 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 31 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 94 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 95 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": "F", + "duration": 16 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 67 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 13 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 49 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 17 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": "F", + "duration": 69 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 43 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 32 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 9 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 5 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 82 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": "F", + "duration": 12 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 52 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 31 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 11 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 69 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 10 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": "F", + "duration": 59 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 10 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 17 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 45 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 2 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 5 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": "F", + "duration": 13 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 179, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 231, + "machine": "B", + "duration": 94 + }, + { + "task": 2, + "start": 325, + "machine": "C", + "duration": 38 + }, + { + "task": 3, + "start": 365, + "machine": "D", + "duration": 19 + }, + { + "task": 4, + "start": 384, + "machine": "E", + "duration": 23 + }, + { + "task": 5, + "start": 415, + "machine": "F", + "duration": 89 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 2, + "machine": "A", + "duration": 20 + }, + { + "task": 1, + "start": 46, + "machine": "B", + "duration": 17 + }, + { + "task": 2, + "start": 63, + "machine": "C", + "duration": 20 + }, + { + "task": 3, + "start": 83, + "machine": "D", + "duration": 56 + }, + { + "task": 4, + "start": 139, + "machine": "E", + "duration": 8 + }, + { + "task": 5, + "start": 147, + "machine": "F", + "duration": 32 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 128, + "machine": "A", + "duration": 51 + }, + { + "task": 1, + "start": 179, + "machine": "B", + "duration": 35 + }, + { + "task": 2, + "start": 214, + "machine": "C", + "duration": 63 + }, + { + "task": 3, + "start": 277, + "machine": "D", + "duration": 2 + }, + { + "task": 4, + "start": 284, + "machine": "E", + "duration": 64 + }, + { + "task": 5, + "start": 350, + "machine": "F", + "duration": 52 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 294, + "machine": "A", + "duration": 8 + }, + { + "task": 1, + "start": 546, + "machine": "B", + "duration": 54 + }, + { + "task": 2, + "start": 600, + "machine": "C", + "duration": 39 + }, + { + "task": 3, + "start": 639, + "machine": "D", + "duration": 70 + }, + { + "task": 4, + "start": 709, + "machine": "E", + "duration": 5 + }, + { + "task": 5, + "start": 714, + "machine": "F", + "duration": 27 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 345, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 431, + "machine": "B", + "duration": 83 + }, + { + "task": 2, + "start": 515, + "machine": "C", + "duration": 26 + }, + { + "task": 3, + "start": 541, + "machine": "D", + "duration": 47 + }, + { + "task": 4, + "start": 589, + "machine": "E", + "duration": 29 + }, + { + "task": 5, + "start": 633, + "machine": "F", + "duration": 68 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 204, + "machine": "A", + "duration": 90 + }, + { + "task": 1, + "start": 348, + "machine": "B", + "duration": 83 + }, + { + "task": 2, + "start": 431, + "machine": "C", + "duration": 84 + }, + { + "task": 3, + "start": 515, + "machine": "D", + "duration": 23 + }, + { + "task": 4, + "start": 583, + "machine": "E", + "duration": 6 + }, + { + "task": 5, + "start": 601, + "machine": "F", + "duration": 32 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 2 + }, + { + "task": 1, + "start": 2, + "machine": "B", + "duration": 44 + }, + { + "task": 2, + "start": 83, + "machine": "C", + "duration": 39 + }, + { + "task": 3, + "start": 279, + "machine": "D", + "duration": 84 + }, + { + "task": 4, + "start": 407, + "machine": "E", + "duration": 80 + }, + { + "task": 5, + "start": 504, + "machine": "F", + "duration": 81 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 190, + "machine": "A", + "duration": 14 + }, + { + "task": 1, + "start": 325, + "machine": "B", + "duration": 23 + }, + { + "task": 2, + "start": 363, + "machine": "C", + "duration": 31 + }, + { + "task": 3, + "start": 394, + "machine": "D", + "duration": 94 + }, + { + "task": 4, + "start": 488, + "machine": "E", + "duration": 95 + }, + { + "task": 5, + "start": 585, + "machine": "F", + "duration": 16 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 22, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 76, + "machine": "B", + "duration": 67 + }, + { + "task": 2, + "start": 143, + "machine": "C", + "duration": 13 + }, + { + "task": 3, + "start": 156, + "machine": "D", + "duration": 49 + }, + { + "task": 4, + "start": 205, + "machine": "E", + "duration": 17 + }, + { + "task": 5, + "start": 222, + "machine": "F", + "duration": 69 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 302, + "machine": "A", + "duration": 43 + }, + { + "task": 1, + "start": 514, + "machine": "B", + "duration": 32 + }, + { + "task": 2, + "start": 546, + "machine": "C", + "duration": 9 + }, + { + "task": 3, + "start": 588, + "machine": "D", + "duration": 5 + }, + { + "task": 4, + "start": 618, + "machine": "E", + "duration": 82 + }, + { + "task": 5, + "start": 701, + "machine": "F", + "duration": 12 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 76, + "machine": "A", + "duration": 52 + }, + { + "task": 1, + "start": 143, + "machine": "B", + "duration": 31 + }, + { + "task": 2, + "start": 174, + "machine": "C", + "duration": 11 + }, + { + "task": 3, + "start": 205, + "machine": "D", + "duration": 69 + }, + { + "task": 4, + "start": 274, + "machine": "E", + "duration": 10 + }, + { + "task": 5, + "start": 291, + "machine": "F", + "duration": 59 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 180, + "machine": "A", + "duration": 10 + }, + { + "task": 1, + "start": 214, + "machine": "B", + "duration": 17 + }, + { + "task": 2, + "start": 277, + "machine": "C", + "duration": 45 + }, + { + "task": 3, + "start": 363, + "machine": "D", + "duration": 2 + }, + { + "task": 4, + "start": 365, + "machine": "E", + "duration": 5 + }, + { + "task": 5, + "start": 402, + "machine": "F", + "duration": 13 + } + ] + } + ], + "context_index": 27, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s this constant puzzle at the studio: scenes move from shooting to a rough cut and finally to color, and they must all follow that same route. The task is picking the sequence so that no single editing or grading room gets two scenes at the same time. What matters is finishing the whole package as quickly as possible — checked by the time the last scene exits color grading. Every scene has to go through each of the three stages exactly once; details about durations and rooms follow below.\n\nBelow are the details for the 10 scenes and the 6 rooms: scene ids J1, J2, J3, J4, J5, J6, J7, J8, J9, J10; room ids 1, 2, 3, 4, 5, 6.\nScene J1, stage 0, requires room 1 for 1.\nScene J1, stage 1, requires room 2 for 8.\nScene J1, stage 2, requires room 3 for 14.\nScene J1, stage 3, requires room 4 for 65.\nScene J1, stage 4, requires room 5 for 76.\nScene J1, stage 5, requires room 6 for 11.\nScene J2, stage 0, requires room 1 for 25.\nScene J2, stage 1, requires room 2 for 84.\nScene J2, stage 2, requires room 3 for 87.\nScene J2, stage 3, requires room 4 for 49.\nScene J2, stage 4, requires room 5 for 46.\nScene J2, stage 5, requires room 6 for 84.\nScene J3, stage 0, requires room 1 for 34.\nScene J3, stage 1, requires room 2 for 39.\nScene J3, stage 2, requires room 3 for 69.\nScene J3, stage 3, requires room 4 for 55.\nScene J3, stage 4, requires room 5 for 31.\nScene J3, stage 5, requires room 6 for 53.\nScene J4, stage 0, requires room 1 for 46.\nScene J4, stage 1, requires room 2 for 61.\nScene J4, stage 2, requires room 3 for 80.\nScene J4, stage 3, requires room 4 for 39.\nScene J4, stage 4, requires room 5 for 64.\nScene J4, stage 5, requires room 6 for 20.\nScene J5, stage 0, requires room 1 for 39.\nScene J5, stage 1, requires room 2 for 36.\nScene J5, stage 2, requires room 3 for 35.\nScene J5, stage 3, requires room 4 for 12.\nScene J5, stage 4, requires room 5 for 70.\nScene J5, stage 5, requires room 6 for 38.\nScene J6, stage 0, requires room 1 for 81.\nScene J6, stage 1, requires room 2 for 59.\nScene J6, stage 2, requires room 3 for 11.\nScene J6, stage 3, requires room 4 for 28.\nScene J6, stage 4, requires room 5 for 79.\nScene J6, stage 5, requires room 6 for 65.\nScene J7, stage 0, requires room 1 for 65.\nScene J7, stage 1, requires room 2 for 20.\nScene J7, stage 2, requires room 3 for 38.\nScene J7, stage 3, requires room 4 for 21.\nScene J7, stage 4, requires room 5 for 5.\nScene J7, stage 5, requires room 6 for 79.\nScene J8, stage 0, requires room 1 for 86.\nScene J8, stage 1, requires room 2 for 98.\nScene J8, stage 2, requires room 3 for 95.\nScene J8, stage 3, requires room 4 for 2.\nScene J8, stage 4, requires room 5 for 58.\nScene J8, stage 5, requires room 6 for 5.\nScene J9, stage 0, requires room 1 for 81.\nScene J9, stage 1, requires room 2 for 12.\nScene J9, stage 2, requires room 3 for 88.\nScene J9, stage 3, requires room 4 for 96.\nScene J9, stage 4, requires room 5 for 41.\nScene J9, stage 5, requires room 6 for 96.\nScene J10, stage 0, requires room 1 for 79.\nScene J10, stage 1, requires room 2 for 49.\nScene J10, stage 2, requires room 3 for 57.\nScene J10, stage 3, requires room 4 for 93.\nScene J10, stage 4, requires room 5 for 73.\nScene J10, stage 5, requires room 6 for 18.\nThe aim is to sequence these entries so no room is double-booked and the last scene exits color grading as soon as possible.\n\nOh, and one more thing — when you send the schedule back, it'd be great if you follow a simple JSON layout so it's easy to read and parse. Something like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis just shows the shape I expect: each top-level entry is a job (a scene), inside each job there's a list of tasks (the three stages), and each task has when it starts, which room it uses, and how long it takes. It's just a template — not the actual schedule.\n\nPlease use the exact identifiers from the instance input (don’t rename them or invent new ones). \n- 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 8 + ], + [ + 2, + 14 + ], + [ + 3, + 65 + ], + [ + 4, + 76 + ], + [ + 5, + 11 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 84 + ], + [ + 2, + 87 + ], + [ + 3, + 49 + ], + [ + 4, + 46 + ], + [ + 5, + 84 + ] + ], + [ + [ + 0, + 34 + ], + [ + 1, + 39 + ], + [ + 2, + 69 + ], + [ + 3, + 55 + ], + [ + 4, + 31 + ], + [ + 5, + 53 + ] + ], + [ + [ + 0, + 46 + ], + [ + 1, + 61 + ], + [ + 2, + 80 + ], + [ + 3, + 39 + ], + [ + 4, + 64 + ], + [ + 5, + 20 + ] + ], + [ + [ + 0, + 39 + ], + [ + 1, + 36 + ], + [ + 2, + 35 + ], + [ + 3, + 12 + ], + [ + 4, + 70 + ], + [ + 5, + 38 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 59 + ], + [ + 2, + 11 + ], + [ + 3, + 28 + ], + [ + 4, + 79 + ], + [ + 5, + 65 + ] + ], + [ + [ + 0, + 65 + ], + [ + 1, + 20 + ], + [ + 2, + 38 + ], + [ + 3, + 21 + ], + [ + 4, + 5 + ], + [ + 5, + 79 + ] + ], + [ + [ + 0, + 86 + ], + [ + 1, + 98 + ], + [ + 2, + 95 + ], + [ + 3, + 2 + ], + [ + 4, + 58 + ], + [ + 5, + 5 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 12 + ], + [ + 2, + 88 + ], + [ + 3, + 96 + ], + [ + 4, + 41 + ], + [ + 5, + 96 + ] + ], + [ + [ + 0, + 79 + ], + [ + 1, + 49 + ], + [ + 2, + 57 + ], + [ + 3, + 93 + ], + [ + 4, + 73 + ], + [ + 5, + 18 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 9, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 23, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 88, + "machine": 4, + "duration": 76 + }, + { + "task": 5, + "start": 164, + "machine": 5, + "duration": 11 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 116, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 141, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 231, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 357, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 447, + "machine": 4, + "duration": 46 + }, + { + "task": 5, + "start": 529, + "machine": 5, + "duration": 84 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 35, + "machine": 1, + "duration": 39 + }, + { + "task": 2, + "start": 74, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 143, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 198, + "machine": 4, + "duration": 31 + }, + { + "task": 5, + "start": 229, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 301, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 350, + "machine": 1, + "duration": 61 + }, + { + "task": 2, + "start": 411, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 500, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 573, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 637, + "machine": 5, + "duration": 20 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 498, + "machine": 0, + "duration": 39 + }, + { + "task": 1, + "start": 551, + "machine": 1, + "duration": 36 + }, + { + "task": 2, + "start": 589, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 624, + "machine": 3, + "duration": 12 + }, + { + "task": 4, + "start": 642, + "machine": 4, + "duration": 70 + }, + { + "task": 5, + "start": 736, + "machine": 5, + "duration": 38 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 141, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 225, + "machine": 1, + "duration": 59 + }, + { + "task": 2, + "start": 318, + "machine": 2, + "duration": 11 + }, + { + "task": 3, + "start": 329, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 368, + "machine": 4, + "duration": 79 + }, + { + "task": 5, + "start": 464, + "machine": 5, + "duration": 65 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 433, + "machine": 0, + "duration": 65 + }, + { + "task": 1, + "start": 531, + "machine": 1, + "duration": 20 + }, + { + "task": 2, + "start": 551, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 589, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 637, + "machine": 4, + "duration": 5 + }, + { + "task": 5, + "start": 657, + "machine": 5, + "duration": 79 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 347, + "machine": 0, + "duration": 86 + }, + { + "task": 1, + "start": 433, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 624, + "machine": 2, + "duration": 95 + }, + { + "task": 3, + "start": 719, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 721, + "machine": 4, + "duration": 58 + }, + { + "task": 5, + "start": 779, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 35, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 116, + "machine": 1, + "duration": 12 + }, + { + "task": 2, + "start": 143, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 231, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 327, + "machine": 4, + "duration": 41 + }, + { + "task": 5, + "start": 368, + "machine": 5, + "duration": 96 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 222, + "machine": 0, + "duration": 79 + }, + { + "task": 1, + "start": 301, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 350, + "machine": 2, + "duration": 57 + }, + { + "task": 3, + "start": 407, + "machine": 3, + "duration": 93 + }, + { + "task": 4, + "start": 500, + "machine": 4, + "duration": 73 + }, + { + "task": 5, + "start": 613, + "machine": 5, + "duration": 18 + } + ] + } + ], + "obj": 784.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 8 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 14 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 65 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 76 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 6, + "duration": 11 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 25 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 84 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 49 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 46 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 6, + "duration": 84 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 34 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 39 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 69 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 31 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 6, + "duration": 53 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 46 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 61 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 80 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 64 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 6, + "duration": 20 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 39 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 36 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 35 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 12 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 70 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 6, + "duration": 38 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 81 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 59 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 11 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 79 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 6, + "duration": 65 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 65 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "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": 5, + "duration": 5 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 6, + "duration": 79 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 86 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 98 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 95 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 2 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 58 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 6, + "duration": 5 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 81 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "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": 5, + "duration": 41 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 6, + "duration": 96 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 79 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 57 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 93 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 73 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 6, + "duration": 18 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 8 + }, + { + "task": 2, + "start": 9, + "machine": 3, + "duration": 14 + }, + { + "task": 3, + "start": 23, + "machine": 4, + "duration": 65 + }, + { + "task": 4, + "start": 88, + "machine": 5, + "duration": 76 + }, + { + "task": 5, + "start": 164, + "machine": 6, + "duration": 11 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 116, + "machine": 1, + "duration": 25 + }, + { + "task": 1, + "start": 141, + "machine": 2, + "duration": 84 + }, + { + "task": 2, + "start": 231, + "machine": 3, + "duration": 87 + }, + { + "task": 3, + "start": 357, + "machine": 4, + "duration": 49 + }, + { + "task": 4, + "start": 447, + "machine": 5, + "duration": 46 + }, + { + "task": 5, + "start": 529, + "machine": 6, + "duration": 84 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 34 + }, + { + "task": 1, + "start": 35, + "machine": 2, + "duration": 39 + }, + { + "task": 2, + "start": 74, + "machine": 3, + "duration": 69 + }, + { + "task": 3, + "start": 143, + "machine": 4, + "duration": 55 + }, + { + "task": 4, + "start": 198, + "machine": 5, + "duration": 31 + }, + { + "task": 5, + "start": 229, + "machine": 6, + "duration": 53 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 301, + "machine": 1, + "duration": 46 + }, + { + "task": 1, + "start": 350, + "machine": 2, + "duration": 61 + }, + { + "task": 2, + "start": 411, + "machine": 3, + "duration": 80 + }, + { + "task": 3, + "start": 500, + "machine": 4, + "duration": 39 + }, + { + "task": 4, + "start": 573, + "machine": 5, + "duration": 64 + }, + { + "task": 5, + "start": 637, + "machine": 6, + "duration": 20 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 498, + "machine": 1, + "duration": 39 + }, + { + "task": 1, + "start": 551, + "machine": 2, + "duration": 36 + }, + { + "task": 2, + "start": 589, + "machine": 3, + "duration": 35 + }, + { + "task": 3, + "start": 624, + "machine": 4, + "duration": 12 + }, + { + "task": 4, + "start": 642, + "machine": 5, + "duration": 70 + }, + { + "task": 5, + "start": 736, + "machine": 6, + "duration": 38 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 141, + "machine": 1, + "duration": 81 + }, + { + "task": 1, + "start": 225, + "machine": 2, + "duration": 59 + }, + { + "task": 2, + "start": 318, + "machine": 3, + "duration": 11 + }, + { + "task": 3, + "start": 329, + "machine": 4, + "duration": 28 + }, + { + "task": 4, + "start": 368, + "machine": 5, + "duration": 79 + }, + { + "task": 5, + "start": 464, + "machine": 6, + "duration": 65 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 433, + "machine": 1, + "duration": 65 + }, + { + "task": 1, + "start": 531, + "machine": 2, + "duration": 20 + }, + { + "task": 2, + "start": 551, + "machine": 3, + "duration": 38 + }, + { + "task": 3, + "start": 589, + "machine": 4, + "duration": 21 + }, + { + "task": 4, + "start": 637, + "machine": 5, + "duration": 5 + }, + { + "task": 5, + "start": 657, + "machine": 6, + "duration": 79 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 347, + "machine": 1, + "duration": 86 + }, + { + "task": 1, + "start": 433, + "machine": 2, + "duration": 98 + }, + { + "task": 2, + "start": 624, + "machine": 3, + "duration": 95 + }, + { + "task": 3, + "start": 719, + "machine": 4, + "duration": 2 + }, + { + "task": 4, + "start": 721, + "machine": 5, + "duration": 58 + }, + { + "task": 5, + "start": 779, + "machine": 6, + "duration": 5 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 35, + "machine": 1, + "duration": 81 + }, + { + "task": 1, + "start": 116, + "machine": 2, + "duration": 12 + }, + { + "task": 2, + "start": 143, + "machine": 3, + "duration": 88 + }, + { + "task": 3, + "start": 231, + "machine": 4, + "duration": 96 + }, + { + "task": 4, + "start": 327, + "machine": 5, + "duration": 41 + }, + { + "task": 5, + "start": 368, + "machine": 6, + "duration": 96 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 222, + "machine": 1, + "duration": 79 + }, + { + "task": 1, + "start": 301, + "machine": 2, + "duration": 49 + }, + { + "task": 2, + "start": 350, + "machine": 3, + "duration": 57 + }, + { + "task": 3, + "start": 407, + "machine": 4, + "duration": 93 + }, + { + "task": 4, + "start": 500, + "machine": 5, + "duration": 73 + }, + { + "task": 5, + "start": 613, + "machine": 6, + "duration": 18 + } + ] + } + ], + "context_index": 28, + "input_format": "nl", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "As the teacher juggling multiple lab groups, the routine is the same for everyone — setup, run the experiment, then clean up — and no bench can take two groups at once. What needs deciding is the order and timing of those starts so the whole rotation wraps up fast. The thing to look at is the clock time when the final group is done cleaning: whoever finishes sooner wins in practice. Each group has set durations for the three parts, nothing is omitted or repeated, and the exact numbers are given below.\n\nThere are 11 student groups and 5 lab benches; the group ids are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11 and the bench ids are A, B, C, D, E.\n\n| group_id | step_index | bench_id | duration_minutes |\n|---|---|---|---|\n| J1 | 0 | A | 1 |\n| J1 | 1 | B | 21 |\n| J1 | 2 | C | 89 |\n| J1 | 3 | D | 11 |\n| J1 | 4 | E | 30 |\n| J2 | 0 | A | 33 |\n| J2 | 1 | B | 30 |\n| J2 | 2 | C | 52 |\n| J2 | 3 | D | 55 |\n| J2 | 4 | E | 43 |\n| J3 | 0 | A | 84 |\n| J3 | 1 | B | 36 |\n| J3 | 2 | C | 17 |\n| J3 | 3 | D | 42 |\n| J3 | 4 | E | 74 |\n| J4 | 0 | A | 8 |\n| J4 | 1 | B | 98 |\n| J4 | 2 | C | 54 |\n| J4 | 3 | D | 84 |\n| J4 | 4 | E | 68 |\n| J5 | 0 | A | 23 |\n| J5 | 1 | B | 8 |\n| J5 | 2 | C | 23 |\n| J5 | 3 | D | 13 |\n| J5 | 4 | E | 23 |\n| J6 | 0 | A | 88 |\n| J6 | 1 | B | 44 |\n| J6 | 2 | C | 77 |\n| J6 | 3 | D | 12 |\n| J6 | 4 | E | 9 |\n| J7 | 0 | A | 72 |\n| J7 | 1 | B | 36 |\n| J7 | 2 | C | 37 |\n| J7 | 3 | D | 32 |\n| J7 | 4 | E | 53 |\n| J8 | 0 | A | 97 |\n| J8 | 1 | B | 29 |\n| J8 | 2 | C | 94 |\n| J8 | 3 | D | 37 |\n| J8 | 4 | E | 57 |\n| J9 | 0 | A | 29 |\n| J9 | 1 | B | 78 |\n| J9 | 2 | C | 59 |\n| J9 | 3 | D | 73 |\n| J9 | 4 | E | 61 |\n| J10 | 0 | A | 9 |\n| J10 | 1 | B | 22 |\n| J10 | 2 | C | 93 |\n| J10 | 3 | D | 9 |\n| J10 | 4 | E | 55 |\n| J11 | 0 | A | 65 |\n| J11 | 1 | B | 44 |\n| J11 | 2 | C | 64 |\n| J11 | 3 | D | 25 |\n| J11 | 4 | E | 15 |\n\nKeep the goal in mind: minimize the clock time when the final group finishes cleaning.\n\nAlso, when you send the actual plan, please put it in this simple JSON shape so it's easy to read and check:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that JSON as a little form: \"solution\" holds a list of groups (jobs), each group gets a job id and a list of its steps. Each step (task) just records which numbered step it is, when it starts, which bench (machine) it uses, and how long it takes. It's just a sketch of the shape I need — not the real filled-in answer.\n\nPlease be sure to use the exact identifiers from the instance input — don't rename them or invent new labels. \n- 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 21 + ], + [ + 2, + 89 + ], + [ + 3, + 11 + ], + [ + 4, + 30 + ] + ], + [ + [ + 0, + 33 + ], + [ + 1, + 30 + ], + [ + 2, + 52 + ], + [ + 3, + 55 + ], + [ + 4, + 43 + ] + ], + [ + [ + 0, + 84 + ], + [ + 1, + 36 + ], + [ + 2, + 17 + ], + [ + 3, + 42 + ], + [ + 4, + 74 + ] + ], + [ + [ + 0, + 8 + ], + [ + 1, + 98 + ], + [ + 2, + 54 + ], + [ + 3, + 84 + ], + [ + 4, + 68 + ] + ], + [ + [ + 0, + 23 + ], + [ + 1, + 8 + ], + [ + 2, + 23 + ], + [ + 3, + 13 + ], + [ + 4, + 23 + ] + ], + [ + [ + 0, + 88 + ], + [ + 1, + 44 + ], + [ + 2, + 77 + ], + [ + 3, + 12 + ], + [ + 4, + 9 + ] + ], + [ + [ + 0, + 72 + ], + [ + 1, + 36 + ], + [ + 2, + 37 + ], + [ + 3, + 32 + ], + [ + 4, + 53 + ] + ], + [ + [ + 0, + 97 + ], + [ + 1, + 29 + ], + [ + 2, + 94 + ], + [ + 3, + 37 + ], + [ + 4, + 57 + ] + ], + [ + [ + 0, + 29 + ], + [ + 1, + 78 + ], + [ + 2, + 59 + ], + [ + 3, + 73 + ], + [ + 4, + 61 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 22 + ], + [ + 2, + 93 + ], + [ + 3, + 9 + ], + [ + 4, + 55 + ] + ], + [ + [ + 0, + 65 + ], + [ + 1, + 44 + ], + [ + 2, + 64 + ], + [ + 3, + 25 + ], + [ + 4, + 15 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 21 + }, + { + "task": 2, + "start": 22, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 111, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 122, + "machine": 4, + "duration": 30 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 204, + "machine": 0, + "duration": 33 + }, + { + "task": 1, + "start": 387, + "machine": 1, + "duration": 30 + }, + { + "task": 2, + "start": 465, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 517, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 621, + "machine": 4, + "duration": 43 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 31, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 115, + "machine": 1, + "duration": 36 + }, + { + "task": 2, + "start": 170, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 187, + "machine": 3, + "duration": 42 + }, + { + "task": 4, + "start": 229, + "machine": 4, + "duration": 74 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 179, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 280, + "machine": 2, + "duration": 54 + }, + { + "task": 3, + "start": 334, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 419, + "machine": 4, + "duration": 68 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 399, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 564, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 581, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 606, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 664, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 422, + "machine": 0, + "duration": 88 + }, + { + "task": 1, + "start": 510, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 604, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 681, + "machine": 3, + "duration": 12 + }, + { + "task": 4, + "start": 693, + "machine": 4, + "duration": 9 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 132, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 277, + "machine": 1, + "duration": 36 + }, + { + "task": 2, + "start": 334, + "machine": 2, + "duration": 37 + }, + { + "task": 3, + "start": 418, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 487, + "machine": 4, + "duration": 53 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 237, + "machine": 0, + "duration": 97 + }, + { + "task": 1, + "start": 336, + "machine": 1, + "duration": 29 + }, + { + "task": 2, + "start": 371, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 465, + "machine": 3, + "duration": 37 + }, + { + "task": 4, + "start": 540, + "machine": 4, + "duration": 57 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 2, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 31, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 111, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 229, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 303, + "machine": 4, + "duration": 61 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 115, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 157, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 187, + "machine": 2, + "duration": 93 + }, + { + "task": 3, + "start": 302, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 364, + "machine": 4, + "duration": 55 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 334, + "machine": 0, + "duration": 65 + }, + { + "task": 1, + "start": 417, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 517, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 581, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 606, + "machine": 4, + "duration": 15 + } + ] + } + ], + "obj": 702.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 21 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 89 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 11 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 30 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 33 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "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": "B", + "duration": 36 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 17 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 42 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 74 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 8 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 98 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 54 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 84 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 68 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 23 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 23 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 13 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 88 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "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": "E", + "duration": 9 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 72 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 36 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 37 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 32 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 53 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 97 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "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": "E", + "duration": 57 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 29 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 78 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "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": "A", + "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": "D", + "duration": 9 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 55 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 65 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 44 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 64 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 25 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 15 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 21 + }, + { + "task": 2, + "start": 22, + "machine": "C", + "duration": 89 + }, + { + "task": 3, + "start": 111, + "machine": "D", + "duration": 11 + }, + { + "task": 4, + "start": 122, + "machine": "E", + "duration": 30 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 204, + "machine": "A", + "duration": 33 + }, + { + "task": 1, + "start": 387, + "machine": "B", + "duration": 30 + }, + { + "task": 2, + "start": 465, + "machine": "C", + "duration": 52 + }, + { + "task": 3, + "start": 517, + "machine": "D", + "duration": 55 + }, + { + "task": 4, + "start": 621, + "machine": "E", + "duration": 43 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 31, + "machine": "A", + "duration": 84 + }, + { + "task": 1, + "start": 115, + "machine": "B", + "duration": 36 + }, + { + "task": 2, + "start": 170, + "machine": "C", + "duration": 17 + }, + { + "task": 3, + "start": 187, + "machine": "D", + "duration": 42 + }, + { + "task": 4, + "start": 229, + "machine": "E", + "duration": 74 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 124, + "machine": "A", + "duration": 8 + }, + { + "task": 1, + "start": 179, + "machine": "B", + "duration": 98 + }, + { + "task": 2, + "start": 280, + "machine": "C", + "duration": 54 + }, + { + "task": 3, + "start": 334, + "machine": "D", + "duration": 84 + }, + { + "task": 4, + "start": 419, + "machine": "E", + "duration": 68 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 399, + "machine": "A", + "duration": 23 + }, + { + "task": 1, + "start": 564, + "machine": "B", + "duration": 8 + }, + { + "task": 2, + "start": 581, + "machine": "C", + "duration": 23 + }, + { + "task": 3, + "start": 606, + "machine": "D", + "duration": 13 + }, + { + "task": 4, + "start": 664, + "machine": "E", + "duration": 23 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 422, + "machine": "A", + "duration": 88 + }, + { + "task": 1, + "start": 510, + "machine": "B", + "duration": 44 + }, + { + "task": 2, + "start": 604, + "machine": "C", + "duration": 77 + }, + { + "task": 3, + "start": 681, + "machine": "D", + "duration": 12 + }, + { + "task": 4, + "start": 693, + "machine": "E", + "duration": 9 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 132, + "machine": "A", + "duration": 72 + }, + { + "task": 1, + "start": 277, + "machine": "B", + "duration": 36 + }, + { + "task": 2, + "start": 334, + "machine": "C", + "duration": 37 + }, + { + "task": 3, + "start": 418, + "machine": "D", + "duration": 32 + }, + { + "task": 4, + "start": 487, + "machine": "E", + "duration": 53 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 237, + "machine": "A", + "duration": 97 + }, + { + "task": 1, + "start": 336, + "machine": "B", + "duration": 29 + }, + { + "task": 2, + "start": 371, + "machine": "C", + "duration": 94 + }, + { + "task": 3, + "start": 465, + "machine": "D", + "duration": 37 + }, + { + "task": 4, + "start": 540, + "machine": "E", + "duration": 57 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 2, + "machine": "A", + "duration": 29 + }, + { + "task": 1, + "start": 31, + "machine": "B", + "duration": 78 + }, + { + "task": 2, + "start": 111, + "machine": "C", + "duration": 59 + }, + { + "task": 3, + "start": 229, + "machine": "D", + "duration": 73 + }, + { + "task": 4, + "start": 303, + "machine": "E", + "duration": 61 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 115, + "machine": "A", + "duration": 9 + }, + { + "task": 1, + "start": 157, + "machine": "B", + "duration": 22 + }, + { + "task": 2, + "start": 187, + "machine": "C", + "duration": 93 + }, + { + "task": 3, + "start": 302, + "machine": "D", + "duration": 9 + }, + { + "task": 4, + "start": 364, + "machine": "E", + "duration": 55 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 334, + "machine": "A", + "duration": 65 + }, + { + "task": 1, + "start": 417, + "machine": "B", + "duration": 44 + }, + { + "task": 2, + "start": 517, + "machine": "C", + "duration": 64 + }, + { + "task": 3, + "start": 581, + "machine": "D", + "duration": 25 + }, + { + "task": 4, + "start": 606, + "machine": "E", + "duration": 15 + } + ] + } + ], + "context_index": 29, + "input_format": "markdown_table", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Recently the nursery has been juggling batches of saplings through potting, fertilizing, and then shading, and it’s clear the stations can’t share work at the same time. The task is to arrange the processing order and start times so each plant goes through those three steps in order, nobody skips a step, and no workstation is asked to handle two plants simultaneously. The way to compare plans is simple: look at the time the final sapling is completed (when it leaves the shading station) — the earlier that finish time, the better the plan. Concrete task durations and the batch list are given below.\n\nConcretely, the batch contains 11 saplings to process through 5 stations; sapling ids: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11; station sequence: A, B, C, D, E.\nSapling J1, step 0, needs station A for 1 time units.\nSapling J1, step 1, needs station B for 34 time units.\nSapling J1, step 2, needs station C for 65 time units.\nSapling J1, step 3, needs station D for 56 time units.\nSapling J1, step 4, needs station E for 82 time units.\nSapling J2, step 0, needs station A for 55 time units.\nSapling J2, step 1, needs station B for 34 time units.\nSapling J2, step 2, needs station C for 20 time units.\nSapling J2, step 3, needs station D for 23 time units.\nSapling J2, step 4, needs station E for 36 time units.\nSapling J3, step 0, needs station A for 23 time units.\nSapling J3, step 1, needs station B for 87 time units.\nSapling J3, step 2, needs station C for 99 time units.\nSapling J3, step 3, needs station D for 46 time units.\nSapling J3, step 4, needs station E for 79 time units.\nSapling J4, step 0, needs station A for 61 time units.\nSapling J4, step 1, needs station B for 65 time units.\nSapling J4, step 2, needs station C for 55 time units.\nSapling J4, step 3, needs station D for 23 time units.\nSapling J4, step 4, needs station E for 74 time units.\nSapling J5, step 0, needs station A for 64 time units.\nSapling J5, step 1, needs station B for 76 time units.\nSapling J5, step 2, needs station C for 81 time units.\nSapling J5, step 3, needs station D for 7 time units.\nSapling J5, step 4, needs station E for 8 time units.\nSapling J6, step 0, needs station A for 41 time units.\nSapling J6, step 1, needs station B for 53 time units.\nSapling J6, step 2, needs station C for 43 time units.\nSapling J6, step 3, needs station D for 54 time units.\nSapling J6, step 4, needs station E for 78 time units.\nSapling J7, step 0, needs station A for 63 time units.\nSapling J7, step 1, needs station B for 12 time units.\nSapling J7, step 2, needs station C for 63 time units.\nSapling J7, step 3, needs station D for 37 time units.\nSapling J7, step 4, needs station E for 26 time units.\nSapling J8, step 0, needs station A for 31 time units.\nSapling J8, step 1, needs station B for 91 time units.\nSapling J8, step 2, needs station C for 70 time units.\nSapling J8, step 3, needs station D for 37 time units.\nSapling J8, step 4, needs station E for 93 time units.\nSapling J9, step 0, needs station A for 54 time units.\nSapling J9, step 1, needs station B for 76 time units.\nSapling J9, step 2, needs station C for 31 time units.\nSapling J9, step 3, needs station D for 49 time units.\nSapling J9, step 4, needs station E for 26 time units.\nSapling J10, step 0, needs station A for 16 time units.\nSapling J10, step 1, needs station B for 84 time units.\nSapling J10, step 2, needs station C for 81 time units.\nSapling J10, step 3, needs station D for 36 time units.\nSapling J10, step 4, needs station E for 98 time units.\nSapling J11, step 0, needs station A for 42 time units.\nSapling J11, step 1, needs station B for 91 time units.\nSapling J11, step 2, needs station C for 88 time units.\nSapling J11, step 3, needs station D for 52 time units.\nSapling J11, step 4, needs station E for 51 time units.\nRespect these task entries so every sapling follows the three-step sequence without station overlap; the plan that minimizes the completion time of the last sapling is best.\n\nIf you want the plan in a machine-friendly form (or just to keep things tidy), I usually lay it out in a little JSON shape like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that as a simple form: \"solution\" is a list of the plants (jobs), each entry names the job and then lists its tasks in order. Each task entry has the task number, when it starts, which station (machine) it uses, and how long it runs. Super informal: it’s just a way to say “this job does task 1 on machine A at time 5 for 10 minutes,” but in a neat, copy-pasteable format.\n\nThis JSON is only a sketch of the shape I’ll use — not the actual schedule yet.\n\nPlease use the exact identifiers from the instance input when you give or expect results — no renaming 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 34 + ], + [ + 2, + 65 + ], + [ + 3, + 56 + ], + [ + 4, + 82 + ] + ], + [ + [ + 0, + 55 + ], + [ + 1, + 34 + ], + [ + 2, + 20 + ], + [ + 3, + 23 + ], + [ + 4, + 36 + ] + ], + [ + [ + 0, + 23 + ], + [ + 1, + 87 + ], + [ + 2, + 99 + ], + [ + 3, + 46 + ], + [ + 4, + 79 + ] + ], + [ + [ + 0, + 61 + ], + [ + 1, + 65 + ], + [ + 2, + 55 + ], + [ + 3, + 23 + ], + [ + 4, + 74 + ] + ], + [ + [ + 0, + 64 + ], + [ + 1, + 76 + ], + [ + 2, + 81 + ], + [ + 3, + 7 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 41 + ], + [ + 1, + 53 + ], + [ + 2, + 43 + ], + [ + 3, + 54 + ], + [ + 4, + 78 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 12 + ], + [ + 2, + 63 + ], + [ + 3, + 37 + ], + [ + 4, + 26 + ] + ], + [ + [ + 0, + 31 + ], + [ + 1, + 91 + ], + [ + 2, + 70 + ], + [ + 3, + 37 + ], + [ + 4, + 93 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 76 + ], + [ + 2, + 31 + ], + [ + 3, + 49 + ], + [ + 4, + 26 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 84 + ], + [ + 2, + 81 + ], + [ + 3, + 36 + ], + [ + 4, + 98 + ] + ], + [ + [ + 0, + 42 + ], + [ + 1, + 91 + ], + [ + 2, + 88 + ], + [ + 3, + 52 + ], + [ + 4, + 51 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 35, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 100, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 156, + "machine": 4, + "duration": 82 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 396, + "machine": 0, + "duration": 55 + }, + { + "task": 1, + "start": 582, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 691, + "machine": 2, + "duration": 20 + }, + { + "task": 3, + "start": 732, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 763, + "machine": 4, + "duration": 36 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 32, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 263, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 350, + "machine": 2, + "duration": 99 + }, + { + "task": 3, + "start": 449, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 507, + "machine": 4, + "duration": 79 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 272, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 350, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 449, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 504, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 586, + "machine": 4, + "duration": 74 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 208, + "machine": 0, + "duration": 64 + }, + { + "task": 1, + "start": 628, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 711, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 792, + "machine": 3, + "duration": 7 + }, + { + "task": 4, + "start": 799, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 71, + "machine": 0, + "duration": 41 + }, + { + "task": 1, + "start": 126, + "machine": 1, + "duration": 53 + }, + { + "task": 2, + "start": 196, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 239, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 331, + "machine": 4, + "duration": 78 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 333, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 616, + "machine": 1, + "duration": 12 + }, + { + "task": 2, + "start": 628, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 695, + "machine": 3, + "duration": 37 + }, + { + "task": 4, + "start": 737, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 35, + "machine": 1, + "duration": 91 + }, + { + "task": 2, + "start": 126, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 196, + "machine": 3, + "duration": 37 + }, + { + "task": 4, + "start": 238, + "machine": 4, + "duration": 93 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 154, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 506, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 594, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 646, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 711, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 55, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 179, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 263, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 344, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 409, + "machine": 4, + "duration": 98 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 112, + "machine": 0, + "duration": 42 + }, + { + "task": 1, + "start": 415, + "machine": 1, + "duration": 91 + }, + { + "task": 2, + "start": 506, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 594, + "machine": 3, + "duration": 52 + }, + { + "task": 4, + "start": 660, + "machine": 4, + "duration": 51 + } + ] + } + ], + "obj": 807.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 34 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 65 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 56 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 82 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 55 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 34 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 20 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 23 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 36 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 23 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 87 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 99 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 46 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 79 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 61 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 65 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 55 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 23 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 74 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 64 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 76 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 81 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 7 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 8 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 41 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 53 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 43 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 54 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 78 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 63 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 12 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 63 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 37 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 26 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 31 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 91 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 70 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 37 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 93 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 76 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 31 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 49 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 26 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 16 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "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": "E", + "duration": 98 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 42 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 91 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 88 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 52 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 51 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 34 + }, + { + "task": 2, + "start": 35, + "machine": "C", + "duration": 65 + }, + { + "task": 3, + "start": 100, + "machine": "D", + "duration": 56 + }, + { + "task": 4, + "start": 156, + "machine": "E", + "duration": 82 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 396, + "machine": "A", + "duration": 55 + }, + { + "task": 1, + "start": 582, + "machine": "B", + "duration": 34 + }, + { + "task": 2, + "start": 691, + "machine": "C", + "duration": 20 + }, + { + "task": 3, + "start": 732, + "machine": "D", + "duration": 23 + }, + { + "task": 4, + "start": 763, + "machine": "E", + "duration": 36 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 32, + "machine": "A", + "duration": 23 + }, + { + "task": 1, + "start": 263, + "machine": "B", + "duration": 87 + }, + { + "task": 2, + "start": 350, + "machine": "C", + "duration": 99 + }, + { + "task": 3, + "start": 449, + "machine": "D", + "duration": 46 + }, + { + "task": 4, + "start": 507, + "machine": "E", + "duration": 79 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 272, + "machine": "A", + "duration": 61 + }, + { + "task": 1, + "start": 350, + "machine": "B", + "duration": 65 + }, + { + "task": 2, + "start": 449, + "machine": "C", + "duration": 55 + }, + { + "task": 3, + "start": 504, + "machine": "D", + "duration": 23 + }, + { + "task": 4, + "start": 586, + "machine": "E", + "duration": 74 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 208, + "machine": "A", + "duration": 64 + }, + { + "task": 1, + "start": 628, + "machine": "B", + "duration": 76 + }, + { + "task": 2, + "start": 711, + "machine": "C", + "duration": 81 + }, + { + "task": 3, + "start": 792, + "machine": "D", + "duration": 7 + }, + { + "task": 4, + "start": 799, + "machine": "E", + "duration": 8 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 71, + "machine": "A", + "duration": 41 + }, + { + "task": 1, + "start": 126, + "machine": "B", + "duration": 53 + }, + { + "task": 2, + "start": 196, + "machine": "C", + "duration": 43 + }, + { + "task": 3, + "start": 239, + "machine": "D", + "duration": 54 + }, + { + "task": 4, + "start": 331, + "machine": "E", + "duration": 78 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 333, + "machine": "A", + "duration": 63 + }, + { + "task": 1, + "start": 616, + "machine": "B", + "duration": 12 + }, + { + "task": 2, + "start": 628, + "machine": "C", + "duration": 63 + }, + { + "task": 3, + "start": 695, + "machine": "D", + "duration": 37 + }, + { + "task": 4, + "start": 737, + "machine": "E", + "duration": 26 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 31 + }, + { + "task": 1, + "start": 35, + "machine": "B", + "duration": 91 + }, + { + "task": 2, + "start": 126, + "machine": "C", + "duration": 70 + }, + { + "task": 3, + "start": 196, + "machine": "D", + "duration": 37 + }, + { + "task": 4, + "start": 238, + "machine": "E", + "duration": 93 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 154, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 506, + "machine": "B", + "duration": 76 + }, + { + "task": 2, + "start": 594, + "machine": "C", + "duration": 31 + }, + { + "task": 3, + "start": 646, + "machine": "D", + "duration": 49 + }, + { + "task": 4, + "start": 711, + "machine": "E", + "duration": 26 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 55, + "machine": "A", + "duration": 16 + }, + { + "task": 1, + "start": 179, + "machine": "B", + "duration": 84 + }, + { + "task": 2, + "start": 263, + "machine": "C", + "duration": 81 + }, + { + "task": 3, + "start": 344, + "machine": "D", + "duration": 36 + }, + { + "task": 4, + "start": 409, + "machine": "E", + "duration": 98 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 112, + "machine": "A", + "duration": 42 + }, + { + "task": 1, + "start": 415, + "machine": "B", + "duration": 91 + }, + { + "task": 2, + "start": 506, + "machine": "C", + "duration": 88 + }, + { + "task": 3, + "start": 594, + "machine": "D", + "duration": 52 + }, + { + "task": 4, + "start": 660, + "machine": "E", + "duration": 51 + } + ] + } + ], + "context_index": 30, + "input_format": "nl", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s this rhythm to running a pizzeria: every pie needs shaping, then toppings, and then a turn in the oven, and the job is to schedule them so the last pie finishes as early as possible. Picking one schedule over another matters because the clock time when the final pie is done changes — that finishing time is what’s used to judge a plan. Rules are simple: every pizza must go through the three stations in the same order, nothing is duplicated or left out, and a station can’t handle overlapping pies. The exact order of pies and how long each step takes will be shown below.\n\n# number_of_pizzas=10\n# number_of_stations=5\n# pizza_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10\n# station_ids=A, B, C, D, E\npizza_id,step_index,required_station_id,processing_time_minutes\nJ1,0,A,1\nJ1,1,B,47\nJ1,2,C,40\nJ1,3,D,3\nJ1,4,E,36\nJ2,0,A,76\nJ2,1,B,39\nJ2,2,C,87\nJ2,3,D,91\nJ2,4,E,30\nJ3,0,A,61\nJ3,1,B,40\nJ3,2,C,83\nJ3,3,D,49\nJ3,4,E,85\nJ4,0,A,14\nJ4,1,B,32\nJ4,2,C,55\nJ4,3,D,60\nJ4,4,E,81\nJ5,0,A,6\nJ5,1,B,45\nJ5,2,C,41\nJ5,3,D,99\nJ5,4,E,92\nJ6,0,A,93\nJ6,1,B,62\nJ6,2,C,9\nJ6,3,D,95\nJ6,4,E,49\nJ7,0,A,54\nJ7,1,B,87\nJ7,2,C,89\nJ7,3,D,42\nJ7,4,E,99\nJ8,0,A,63\nJ8,1,B,55\nJ8,2,C,46\nJ8,3,D,36\nJ8,4,E,31\nJ9,0,A,78\nJ9,1,B,74\nJ9,2,C,4\nJ9,3,D,24\nJ9,4,E,91\nJ10,0,A,24\nJ10,1,B,48\nJ10,2,C,70\nJ10,3,D,63\nJ10,4,E,42\n\nAlso, when you give me the schedule, please follow this JSON layout so it's clear and machine-friendly — nothing fancy, just the shape below.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of the pieces like a simple form: \"solution\" is a list of pizzas (jobs), each entry names the job (\"job\") and lists its steps (\"tasks\"). Each step says which step number it is (\"task\"), when that step starts (\"start\"), which station handles it (\"machine\"), and how long it takes (\"duration\"). This JSON is just a sketch of the shape I expect — not the actual schedule.\n\nPlease also be 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 47 + ], + [ + 2, + 40 + ], + [ + 3, + 3 + ], + [ + 4, + 36 + ] + ], + [ + [ + 0, + 76 + ], + [ + 1, + 39 + ], + [ + 2, + 87 + ], + [ + 3, + 91 + ], + [ + 4, + 30 + ] + ], + [ + [ + 0, + 61 + ], + [ + 1, + 40 + ], + [ + 2, + 83 + ], + [ + 3, + 49 + ], + [ + 4, + 85 + ] + ], + [ + [ + 0, + 14 + ], + [ + 1, + 32 + ], + [ + 2, + 55 + ], + [ + 3, + 60 + ], + [ + 4, + 81 + ] + ], + [ + [ + 0, + 6 + ], + [ + 1, + 45 + ], + [ + 2, + 41 + ], + [ + 3, + 99 + ], + [ + 4, + 92 + ] + ], + [ + [ + 0, + 93 + ], + [ + 1, + 62 + ], + [ + 2, + 9 + ], + [ + 3, + 95 + ], + [ + 4, + 49 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 87 + ], + [ + 2, + 89 + ], + [ + 3, + 42 + ], + [ + 4, + 99 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 55 + ], + [ + 2, + 46 + ], + [ + 3, + 36 + ], + [ + 4, + 31 + ] + ], + [ + [ + 0, + 78 + ], + [ + 1, + 74 + ], + [ + 2, + 4 + ], + [ + 3, + 24 + ], + [ + 4, + 91 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 48 + ], + [ + 2, + 70 + ], + [ + 3, + 63 + ], + [ + 4, + 42 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 47 + }, + { + "task": 2, + "start": 49, + "machine": 2, + "duration": 40 + }, + { + "task": 3, + "start": 89, + "machine": 3, + "duration": 3 + }, + { + "task": 4, + "start": 92, + "machine": 4, + "duration": 36 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 394, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 504, + "machine": 1, + "duration": 39 + }, + { + "task": 2, + "start": 578, + "machine": 2, + "duration": 87 + }, + { + "task": 3, + "start": 665, + "machine": 3, + "duration": 91 + }, + { + "task": 4, + "start": 765, + "machine": 4, + "duration": 30 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 333, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 409, + "machine": 1, + "duration": 40 + }, + { + "task": 2, + "start": 449, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 614, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 680, + "machine": 4, + "duration": 85 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 48, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 89, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 195, + "machine": 3, + "duration": 60 + }, + { + "task": 4, + "start": 286, + "machine": 4, + "duration": 81 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 117, + "machine": 0, + "duration": 6 + }, + { + "task": 1, + "start": 167, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 212, + "machine": 2, + "duration": 41 + }, + { + "task": 3, + "start": 255, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 367, + "machine": 4, + "duration": 92 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 177, + "machine": 0, + "duration": 93 + }, + { + "task": 1, + "start": 347, + "machine": 1, + "duration": 62 + }, + { + "task": 2, + "start": 436, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 478, + "machine": 3, + "duration": 95 + }, + { + "task": 4, + "start": 600, + "machine": 4, + "duration": 49 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 123, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 260, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 347, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 436, + "machine": 3, + "duration": 42 + }, + { + "task": 4, + "start": 501, + "machine": 4, + "duration": 99 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 270, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 449, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 532, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 578, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 649, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 15, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 93, + "machine": 1, + "duration": 74 + }, + { + "task": 2, + "start": 167, + "machine": 2, + "duration": 4 + }, + { + "task": 3, + "start": 171, + "machine": 3, + "duration": 24 + }, + { + "task": 4, + "start": 195, + "machine": 4, + "duration": 91 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 93, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 212, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 260, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 354, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 459, + "machine": 4, + "duration": 42 + } + ] + } + ], + "obj": 795.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 47 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 40 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 3 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 36 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 76 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 39 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 87 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 91 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 30 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 61 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 40 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 83 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 85 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 14 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 32 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 55 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 60 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 81 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 6 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 45 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 41 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 99 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 92 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 93 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 9 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 95 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 49 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 87 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 89 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 42 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 99 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 63 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 55 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 46 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 36 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 31 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 78 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 74 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 4 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 24 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "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": "C", + "duration": 70 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 63 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 42 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 47 + }, + { + "task": 2, + "start": 49, + "machine": "C", + "duration": 40 + }, + { + "task": 3, + "start": 89, + "machine": "D", + "duration": 3 + }, + { + "task": 4, + "start": 92, + "machine": "E", + "duration": 36 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 394, + "machine": "A", + "duration": 76 + }, + { + "task": 1, + "start": 504, + "machine": "B", + "duration": 39 + }, + { + "task": 2, + "start": 578, + "machine": "C", + "duration": 87 + }, + { + "task": 3, + "start": 665, + "machine": "D", + "duration": 91 + }, + { + "task": 4, + "start": 765, + "machine": "E", + "duration": 30 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 333, + "machine": "A", + "duration": 61 + }, + { + "task": 1, + "start": 409, + "machine": "B", + "duration": 40 + }, + { + "task": 2, + "start": 449, + "machine": "C", + "duration": 83 + }, + { + "task": 3, + "start": 614, + "machine": "D", + "duration": 49 + }, + { + "task": 4, + "start": 680, + "machine": "E", + "duration": 85 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 14 + }, + { + "task": 1, + "start": 48, + "machine": "B", + "duration": 32 + }, + { + "task": 2, + "start": 89, + "machine": "C", + "duration": 55 + }, + { + "task": 3, + "start": 195, + "machine": "D", + "duration": 60 + }, + { + "task": 4, + "start": 286, + "machine": "E", + "duration": 81 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 117, + "machine": "A", + "duration": 6 + }, + { + "task": 1, + "start": 167, + "machine": "B", + "duration": 45 + }, + { + "task": 2, + "start": 212, + "machine": "C", + "duration": 41 + }, + { + "task": 3, + "start": 255, + "machine": "D", + "duration": 99 + }, + { + "task": 4, + "start": 367, + "machine": "E", + "duration": 92 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 177, + "machine": "A", + "duration": 93 + }, + { + "task": 1, + "start": 347, + "machine": "B", + "duration": 62 + }, + { + "task": 2, + "start": 436, + "machine": "C", + "duration": 9 + }, + { + "task": 3, + "start": 478, + "machine": "D", + "duration": 95 + }, + { + "task": 4, + "start": 600, + "machine": "E", + "duration": 49 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 123, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 260, + "machine": "B", + "duration": 87 + }, + { + "task": 2, + "start": 347, + "machine": "C", + "duration": 89 + }, + { + "task": 3, + "start": 436, + "machine": "D", + "duration": 42 + }, + { + "task": 4, + "start": 501, + "machine": "E", + "duration": 99 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 270, + "machine": "A", + "duration": 63 + }, + { + "task": 1, + "start": 449, + "machine": "B", + "duration": 55 + }, + { + "task": 2, + "start": 532, + "machine": "C", + "duration": 46 + }, + { + "task": 3, + "start": 578, + "machine": "D", + "duration": 36 + }, + { + "task": 4, + "start": 649, + "machine": "E", + "duration": 31 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 15, + "machine": "A", + "duration": 78 + }, + { + "task": 1, + "start": 93, + "machine": "B", + "duration": 74 + }, + { + "task": 2, + "start": 167, + "machine": "C", + "duration": 4 + }, + { + "task": 3, + "start": 171, + "machine": "D", + "duration": 24 + }, + { + "task": 4, + "start": 195, + "machine": "E", + "duration": 91 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 93, + "machine": "A", + "duration": 24 + }, + { + "task": 1, + "start": 212, + "machine": "B", + "duration": 48 + }, + { + "task": 2, + "start": 260, + "machine": "C", + "duration": 70 + }, + { + "task": 3, + "start": 354, + "machine": "D", + "duration": 63 + }, + { + "task": 4, + "start": 459, + "machine": "E", + "duration": 42 + } + ] + } + ], + "context_index": 31, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Back when the shop was busiest, the challenge was lining up vehicles so each went through inspection, repair, and paint in the same sequence, with known durations for each step. The goal was to choose an order that kept each bay from handling two cars at once, ensured every car received those three steps exactly once in order, and got everyone out fast. To tell which ordering is best, look at the clock when the final vehicle is completed — the earlier that finish time, the better the plan. The exact vehicle times are included below.\n\n{\n \"nr_vehicles\": 10,\n \"nr_service_bays\": 6,\n \"vehicles\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\",\n \"J10\"\n ],\n \"service_bays\": [\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\"\n ],\n \"tasks\": [\n {\n \"vehicle_id\": \"J1\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 1\n },\n {\n \"vehicle_id\": \"J1\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 60\n },\n {\n \"vehicle_id\": \"J1\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 16\n },\n {\n \"vehicle_id\": \"J1\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 48\n },\n {\n \"vehicle_id\": \"J1\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 89\n },\n {\n \"vehicle_id\": \"J1\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 98\n },\n {\n \"vehicle_id\": \"J2\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 43\n },\n {\n \"vehicle_id\": \"J2\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 56\n },\n {\n \"vehicle_id\": \"J2\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 59\n },\n {\n \"vehicle_id\": \"J2\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 24\n },\n {\n \"vehicle_id\": \"J2\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 99\n },\n {\n \"vehicle_id\": \"J2\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 91\n },\n {\n \"vehicle_id\": \"J3\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 66\n },\n {\n \"vehicle_id\": \"J3\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 52\n },\n {\n \"vehicle_id\": \"J3\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 90\n },\n {\n \"vehicle_id\": \"J3\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 67\n },\n {\n \"vehicle_id\": \"J3\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 99\n },\n {\n \"vehicle_id\": \"J3\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 56\n },\n {\n \"vehicle_id\": \"J4\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 98\n },\n {\n \"vehicle_id\": \"J4\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 88\n },\n {\n \"vehicle_id\": \"J4\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 48\n },\n {\n \"vehicle_id\": \"J4\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 14\n },\n {\n \"vehicle_id\": \"J4\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 99\n },\n {\n \"vehicle_id\": \"J4\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 92\n },\n {\n \"vehicle_id\": \"J5\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 77\n },\n {\n \"vehicle_id\": \"J5\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 47\n },\n {\n \"vehicle_id\": \"J5\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 71\n },\n {\n \"vehicle_id\": \"J5\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 73\n },\n {\n \"vehicle_id\": \"J5\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 37\n },\n {\n \"vehicle_id\": \"J5\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 19\n },\n {\n \"vehicle_id\": \"J6\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 45\n },\n {\n \"vehicle_id\": \"J6\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 64\n },\n {\n \"vehicle_id\": \"J6\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 16\n },\n {\n \"vehicle_id\": \"J6\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 47\n },\n {\n \"vehicle_id\": \"J6\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 73\n },\n {\n \"vehicle_id\": \"J6\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 96\n },\n {\n \"vehicle_id\": \"J7\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 19\n },\n {\n \"vehicle_id\": \"J7\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 22\n },\n {\n \"vehicle_id\": \"J7\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 35\n },\n {\n \"vehicle_id\": \"J7\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 67\n },\n {\n \"vehicle_id\": \"J7\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 4\n },\n {\n \"vehicle_id\": \"J7\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 72\n },\n {\n \"vehicle_id\": \"J8\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 75\n },\n {\n \"vehicle_id\": \"J8\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 99\n },\n {\n \"vehicle_id\": \"J8\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 56\n },\n {\n \"vehicle_id\": \"J8\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 31\n },\n {\n \"vehicle_id\": \"J8\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 11\n },\n {\n \"vehicle_id\": \"J8\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 58\n },\n {\n \"vehicle_id\": \"J9\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 90\n },\n {\n \"vehicle_id\": \"J9\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 85\n },\n {\n \"vehicle_id\": \"J9\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 95\n },\n {\n \"vehicle_id\": \"J9\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 87\n },\n {\n \"vehicle_id\": \"J9\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 36\n },\n {\n \"vehicle_id\": \"J9\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 7\n },\n {\n \"vehicle_id\": \"J10\",\n \"service_step_index\": 0,\n \"bay_id\": \"A\",\n \"service_duration\": 23\n },\n {\n \"vehicle_id\": \"J10\",\n \"service_step_index\": 1,\n \"bay_id\": \"B\",\n \"service_duration\": 16\n },\n {\n \"vehicle_id\": \"J10\",\n \"service_step_index\": 2,\n \"bay_id\": \"C\",\n \"service_duration\": 52\n },\n {\n \"vehicle_id\": \"J10\",\n \"service_step_index\": 3,\n \"bay_id\": \"D\",\n \"service_duration\": 53\n },\n {\n \"vehicle_id\": \"J10\",\n \"service_step_index\": 4,\n \"bay_id\": \"E\",\n \"service_duration\": 37\n },\n {\n \"vehicle_id\": \"J10\",\n \"service_step_index\": 5,\n \"bay_id\": \"F\",\n \"service_duration\": 42\n }\n ]\n}\n\nIf you want the plan from me, I’ll return it in a compact JSON layout so it’s easy to check or load into other tools. Here’s the little sketch of the shape I’ll follow:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that as a simple form: \"solution\" is a list of cars (jobs), each entry names the job and then lists its tasks in order. Each task entry just says which step number it is, when it starts, which bay (machine) handles it, and how long that step takes. It’s just a template — I’ll fill in the real numbers and IDs for the actual schedule.\n\nPlease 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 60 + ], + [ + 2, + 16 + ], + [ + 3, + 48 + ], + [ + 4, + 89 + ], + [ + 5, + 98 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 56 + ], + [ + 2, + 59 + ], + [ + 3, + 24 + ], + [ + 4, + 99 + ], + [ + 5, + 91 + ] + ], + [ + [ + 0, + 66 + ], + [ + 1, + 52 + ], + [ + 2, + 90 + ], + [ + 3, + 67 + ], + [ + 4, + 99 + ], + [ + 5, + 56 + ] + ], + [ + [ + 0, + 98 + ], + [ + 1, + 88 + ], + [ + 2, + 48 + ], + [ + 3, + 14 + ], + [ + 4, + 99 + ], + [ + 5, + 92 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 47 + ], + [ + 2, + 71 + ], + [ + 3, + 73 + ], + [ + 4, + 37 + ], + [ + 5, + 19 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 64 + ], + [ + 2, + 16 + ], + [ + 3, + 47 + ], + [ + 4, + 73 + ], + [ + 5, + 96 + ] + ], + [ + [ + 0, + 19 + ], + [ + 1, + 22 + ], + [ + 2, + 35 + ], + [ + 3, + 67 + ], + [ + 4, + 4 + ], + [ + 5, + 72 + ] + ], + [ + [ + 0, + 75 + ], + [ + 1, + 99 + ], + [ + 2, + 56 + ], + [ + 3, + 31 + ], + [ + 4, + 11 + ], + [ + 5, + 58 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 85 + ], + [ + 2, + 95 + ], + [ + 3, + 87 + ], + [ + 4, + 36 + ], + [ + 5, + 7 + ] + ], + [ + [ + 0, + 23 + ], + [ + 1, + 16 + ], + [ + 2, + 52 + ], + [ + 3, + 53 + ], + [ + 4, + 37 + ], + [ + 5, + 42 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 129, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 189, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 205, + "machine": 3, + "duration": 48 + }, + { + "task": 4, + "start": 265, + "machine": 4, + "duration": 89 + }, + { + "task": 5, + "start": 361, + "machine": 5, + "duration": 98 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 154, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 205, + "machine": 1, + "duration": 56 + }, + { + "task": 2, + "start": 261, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 320, + "machine": 3, + "duration": 24 + }, + { + "task": 4, + "start": 391, + "machine": 4, + "duration": 99 + }, + { + "task": 5, + "start": 501, + "machine": 5, + "duration": 91 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 65, + "machine": 0, + "duration": 66 + }, + { + "task": 1, + "start": 261, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 320, + "machine": 2, + "duration": 90 + }, + { + "task": 3, + "start": 472, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 589, + "machine": 4, + "duration": 99 + }, + { + "task": 5, + "start": 688, + "machine": 5, + "duration": 56 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 197, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 313, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 410, + "machine": 2, + "duration": 48 + }, + { + "task": 3, + "start": 458, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 490, + "machine": 4, + "duration": 99 + }, + { + "task": 5, + "start": 592, + "machine": 5, + "duration": 92 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 295, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 401, + "machine": 1, + "duration": 47 + }, + { + "task": 2, + "start": 458, + "machine": 2, + "duration": 71 + }, + { + "task": 3, + "start": 539, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 688, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 744, + "machine": 5, + "duration": 19 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 20, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 65, + "machine": 1, + "duration": 64 + }, + { + "task": 2, + "start": 129, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 145, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 192, + "machine": 4, + "duration": 73 + }, + { + "task": 5, + "start": 265, + "machine": 5, + "duration": 96 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 19 + }, + { + "task": 1, + "start": 20, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 42, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 77, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 144, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 148, + "machine": 5, + "duration": 72 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 462, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 547, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 646, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 729, + "machine": 3, + "duration": 31 + }, + { + "task": 4, + "start": 765, + "machine": 4, + "duration": 11 + }, + { + "task": 5, + "start": 776, + "machine": 5, + "duration": 58 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 372, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 462, + "machine": 1, + "duration": 85 + }, + { + "task": 2, + "start": 547, + "machine": 2, + "duration": 95 + }, + { + "task": 3, + "start": 642, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 729, + "machine": 4, + "duration": 36 + }, + { + "task": 5, + "start": 765, + "machine": 5, + "duration": 7 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 131, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 189, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 205, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 257, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 354, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 459, + "machine": 5, + "duration": 42 + } + ] + } + ], + "obj": 834.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 60 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 16 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 48 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 89 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": "F", + "duration": 98 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 43 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 56 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 59 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 24 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 99 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": "F", + "duration": 91 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 66 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 52 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 90 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 67 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 99 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": "F", + "duration": 56 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 98 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 88 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 48 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 14 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 99 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": "F", + "duration": 92 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 77 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 47 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 71 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 73 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 37 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": "F", + "duration": 19 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 45 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 64 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 16 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 47 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 73 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": "F", + "duration": 96 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 19 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 22 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 35 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 67 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 4 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": "F", + "duration": 72 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 75 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 99 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 56 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 31 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 11 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": "F", + "duration": 58 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 90 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 85 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 95 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 87 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 36 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": "F", + "duration": 7 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 23 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 16 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 52 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 53 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 37 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": "F", + "duration": 42 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 129, + "machine": "B", + "duration": 60 + }, + { + "task": 2, + "start": 189, + "machine": "C", + "duration": 16 + }, + { + "task": 3, + "start": 205, + "machine": "D", + "duration": 48 + }, + { + "task": 4, + "start": 265, + "machine": "E", + "duration": 89 + }, + { + "task": 5, + "start": 361, + "machine": "F", + "duration": 98 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 154, + "machine": "A", + "duration": 43 + }, + { + "task": 1, + "start": 205, + "machine": "B", + "duration": 56 + }, + { + "task": 2, + "start": 261, + "machine": "C", + "duration": 59 + }, + { + "task": 3, + "start": 320, + "machine": "D", + "duration": 24 + }, + { + "task": 4, + "start": 391, + "machine": "E", + "duration": 99 + }, + { + "task": 5, + "start": 501, + "machine": "F", + "duration": 91 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 65, + "machine": "A", + "duration": 66 + }, + { + "task": 1, + "start": 261, + "machine": "B", + "duration": 52 + }, + { + "task": 2, + "start": 320, + "machine": "C", + "duration": 90 + }, + { + "task": 3, + "start": 472, + "machine": "D", + "duration": 67 + }, + { + "task": 4, + "start": 589, + "machine": "E", + "duration": 99 + }, + { + "task": 5, + "start": 688, + "machine": "F", + "duration": 56 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 197, + "machine": "A", + "duration": 98 + }, + { + "task": 1, + "start": 313, + "machine": "B", + "duration": 88 + }, + { + "task": 2, + "start": 410, + "machine": "C", + "duration": 48 + }, + { + "task": 3, + "start": 458, + "machine": "D", + "duration": 14 + }, + { + "task": 4, + "start": 490, + "machine": "E", + "duration": 99 + }, + { + "task": 5, + "start": 592, + "machine": "F", + "duration": 92 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 295, + "machine": "A", + "duration": 77 + }, + { + "task": 1, + "start": 401, + "machine": "B", + "duration": 47 + }, + { + "task": 2, + "start": 458, + "machine": "C", + "duration": 71 + }, + { + "task": 3, + "start": 539, + "machine": "D", + "duration": 73 + }, + { + "task": 4, + "start": 688, + "machine": "E", + "duration": 37 + }, + { + "task": 5, + "start": 744, + "machine": "F", + "duration": 19 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 20, + "machine": "A", + "duration": 45 + }, + { + "task": 1, + "start": 65, + "machine": "B", + "duration": 64 + }, + { + "task": 2, + "start": 129, + "machine": "C", + "duration": 16 + }, + { + "task": 3, + "start": 145, + "machine": "D", + "duration": 47 + }, + { + "task": 4, + "start": 192, + "machine": "E", + "duration": 73 + }, + { + "task": 5, + "start": 265, + "machine": "F", + "duration": 96 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 19 + }, + { + "task": 1, + "start": 20, + "machine": "B", + "duration": 22 + }, + { + "task": 2, + "start": 42, + "machine": "C", + "duration": 35 + }, + { + "task": 3, + "start": 77, + "machine": "D", + "duration": 67 + }, + { + "task": 4, + "start": 144, + "machine": "E", + "duration": 4 + }, + { + "task": 5, + "start": 148, + "machine": "F", + "duration": 72 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 462, + "machine": "A", + "duration": 75 + }, + { + "task": 1, + "start": 547, + "machine": "B", + "duration": 99 + }, + { + "task": 2, + "start": 646, + "machine": "C", + "duration": 56 + }, + { + "task": 3, + "start": 729, + "machine": "D", + "duration": 31 + }, + { + "task": 4, + "start": 765, + "machine": "E", + "duration": 11 + }, + { + "task": 5, + "start": 776, + "machine": "F", + "duration": 58 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 372, + "machine": "A", + "duration": 90 + }, + { + "task": 1, + "start": 462, + "machine": "B", + "duration": 85 + }, + { + "task": 2, + "start": 547, + "machine": "C", + "duration": 95 + }, + { + "task": 3, + "start": 642, + "machine": "D", + "duration": 87 + }, + { + "task": 4, + "start": 729, + "machine": "E", + "duration": 36 + }, + { + "task": 5, + "start": 765, + "machine": "F", + "duration": 7 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 131, + "machine": "A", + "duration": 23 + }, + { + "task": 1, + "start": 189, + "machine": "B", + "duration": 16 + }, + { + "task": 2, + "start": 205, + "machine": "C", + "duration": 52 + }, + { + "task": 3, + "start": 257, + "machine": "D", + "duration": 53 + }, + { + "task": 4, + "start": 354, + "machine": "E", + "duration": 37 + }, + { + "task": 5, + "start": 459, + "machine": "F", + "duration": 42 + } + ] + } + ], + "context_index": 32, + "input_format": "json", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I run the little tailoring corner and my job is to line up a pile of garments so each one goes through cutting, then stitching, then pressing — always in that order. The decision is about which piece goes when and how to time them so the cutting table, sewing machines, and press never have two pieces fighting for the same spot at once. A better plan is simply one where the whole batch is done sooner: measure that by the clock time when the last garment comes off the press, and try to make that as small as possible. Every garment must go through all three steps exactly once, with the known time each step takes, and the exact timings and durations will be shown below.\n\n# nr_garments=12\n# nr_workstations=6\n# garment_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# workstation_ids=0, 1, 2, 3, 4, 5\ngarment_id,step_index,workstation_id,operation_time\nJ1,0,0,1\nJ1,1,1,73\nJ1,2,2,91\nJ1,3,3,94\nJ1,4,4,43\nJ1,5,5,21\nJ2,0,0,48\nJ2,1,1,24\nJ2,2,2,27\nJ2,3,3,17\nJ2,4,4,38\nJ2,5,5,44\nJ3,0,0,49\nJ3,1,1,56\nJ3,2,2,95\nJ3,3,3,20\nJ3,4,4,66\nJ3,5,5,57\nJ4,0,0,37\nJ4,1,1,94\nJ4,2,2,89\nJ4,3,3,82\nJ4,4,4,58\nJ4,5,5,85\nJ5,0,0,62\nJ5,1,1,99\nJ5,2,2,80\nJ5,3,3,39\nJ5,4,4,78\nJ5,5,5,88\nJ6,0,0,37\nJ6,1,1,40\nJ6,2,2,42\nJ6,3,3,51\nJ6,4,4,47\nJ6,5,5,29\nJ7,0,0,81\nJ7,1,1,97\nJ7,2,2,34\nJ7,3,3,4\nJ7,4,4,28\nJ7,5,5,71\nJ8,0,0,48\nJ8,1,1,75\nJ8,2,2,22\nJ8,3,3,38\nJ8,4,4,74\nJ8,5,5,47\nJ9,0,0,18\nJ9,1,1,30\nJ9,2,2,72\nJ9,3,3,35\nJ9,4,4,59\nJ9,5,5,34\nJ10,0,0,58\nJ10,1,1,32\nJ10,2,2,1\nJ10,3,3,43\nJ10,4,4,28\nJ10,5,5,48\nJ11,0,0,94\nJ11,1,1,34\nJ11,2,2,21\nJ11,3,3,61\nJ11,4,4,2\nJ11,5,5,55\nJ12,0,0,69\nJ12,1,1,71\nJ12,2,2,14\nJ12,3,3,46\nJ12,4,4,6\nJ12,5,5,43\n\nIf you want to send me a plan, a neat little JSON sketch makes it easy for me to read — nothing fancy, just this shape:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis shows the shape I'm expecting: a top-level \"solution\" list with one entry per garment (job). Each job has its identifier under \"job\" and a \"tasks\" list describing each step for that garment. Inside each task you'll put which step it is (\"task\"), when it starts (\"start\"), which machine it uses (\"machine\"), and how long it takes (\"duration\"). Think of it like filling out a simple work ticket for each piece.\n\nThis is just the sketch of the format — not the actual schedule itself. Please use the exact identifiers from the instance input when you fill it in — don't rename things or invent new labels.\n\nValid 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 73 + ], + [ + 2, + 91 + ], + [ + 3, + 94 + ], + [ + 4, + 43 + ], + [ + 5, + 21 + ] + ], + [ + [ + 0, + 48 + ], + [ + 1, + 24 + ], + [ + 2, + 27 + ], + [ + 3, + 17 + ], + [ + 4, + 38 + ], + [ + 5, + 44 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 56 + ], + [ + 2, + 95 + ], + [ + 3, + 20 + ], + [ + 4, + 66 + ], + [ + 5, + 57 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 94 + ], + [ + 2, + 89 + ], + [ + 3, + 82 + ], + [ + 4, + 58 + ], + [ + 5, + 85 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 99 + ], + [ + 2, + 80 + ], + [ + 3, + 39 + ], + [ + 4, + 78 + ], + [ + 5, + 88 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 40 + ], + [ + 2, + 42 + ], + [ + 3, + 51 + ], + [ + 4, + 47 + ], + [ + 5, + 29 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 97 + ], + [ + 2, + 34 + ], + [ + 3, + 4 + ], + [ + 4, + 28 + ], + [ + 5, + 71 + ] + ], + [ + [ + 0, + 48 + ], + [ + 1, + 75 + ], + [ + 2, + 22 + ], + [ + 3, + 38 + ], + [ + 4, + 74 + ], + [ + 5, + 47 + ] + ], + [ + [ + 0, + 18 + ], + [ + 1, + 30 + ], + [ + 2, + 72 + ], + [ + 3, + 35 + ], + [ + 4, + 59 + ], + [ + 5, + 34 + ] + ], + [ + [ + 0, + 58 + ], + [ + 1, + 32 + ], + [ + 2, + 1 + ], + [ + 3, + 43 + ], + [ + 4, + 28 + ], + [ + 5, + 48 + ] + ], + [ + [ + 0, + 94 + ], + [ + 1, + 34 + ], + [ + 2, + 21 + ], + [ + 3, + 61 + ], + [ + 4, + 2 + ], + [ + 5, + 55 + ] + ], + [ + [ + 0, + 69 + ], + [ + 1, + 71 + ], + [ + 2, + 14 + ], + [ + 3, + 46 + ], + [ + 4, + 6 + ], + [ + 5, + 43 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 103, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 205, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 295, + "machine": 2, + "duration": 91 + }, + { + "task": 3, + "start": 386, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 480, + "machine": 4, + "duration": 43 + }, + { + "task": 5, + "start": 523, + "machine": 5, + "duration": 21 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 55, + "machine": 0, + "duration": 48 + }, + { + "task": 1, + "start": 149, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 174, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 201, + "machine": 3, + "duration": 17 + }, + { + "task": 4, + "start": 310, + "machine": 4, + "duration": 38 + }, + { + "task": 5, + "start": 358, + "machine": 5, + "duration": 44 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 408, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 508, + "machine": 1, + "duration": 56 + }, + { + "task": 2, + "start": 564, + "machine": 2, + "duration": 95 + }, + { + "task": 3, + "start": 659, + "machine": 3, + "duration": 20 + }, + { + "task": 4, + "start": 679, + "machine": 4, + "duration": 66 + }, + { + "task": 5, + "start": 758, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 18, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 55, + "machine": 1, + "duration": 94 + }, + { + "task": 2, + "start": 206, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 295, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 377, + "machine": 4, + "duration": 58 + }, + { + "task": 5, + "start": 435, + "machine": 5, + "duration": 85 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 171, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 278, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 432, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 550, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 589, + "machine": 4, + "duration": 78 + }, + { + "task": 5, + "start": 670, + "machine": 5, + "duration": 88 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 574, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 710, + "machine": 1, + "duration": 40 + }, + { + "task": 2, + "start": 750, + "machine": 2, + "duration": 42 + }, + { + "task": 3, + "start": 792, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 850, + "machine": 4, + "duration": 47 + }, + { + "task": 5, + "start": 905, + "machine": 5, + "duration": 29 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 327, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 411, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 512, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 546, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 550, + "machine": 4, + "duration": 28 + }, + { + "task": 5, + "start": 599, + "machine": 5, + "duration": 71 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 457, + "machine": 0, + "duration": 48 + }, + { + "task": 1, + "start": 564, + "machine": 1, + "duration": 75 + }, + { + "task": 2, + "start": 659, + "machine": 2, + "duration": 22 + }, + { + "task": 3, + "start": 681, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 776, + "machine": 4, + "duration": 74 + }, + { + "task": 5, + "start": 858, + "machine": 5, + "duration": 47 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 18, + "machine": 1, + "duration": 30 + }, + { + "task": 2, + "start": 48, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 120, + "machine": 3, + "duration": 35 + }, + { + "task": 4, + "start": 155, + "machine": 4, + "duration": 59 + }, + { + "task": 5, + "start": 214, + "machine": 5, + "duration": 34 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 113, + "machine": 0, + "duration": 58 + }, + { + "task": 1, + "start": 173, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 205, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 239, + "machine": 3, + "duration": 43 + }, + { + "task": 4, + "start": 282, + "machine": 4, + "duration": 28 + }, + { + "task": 5, + "start": 310, + "machine": 5, + "duration": 48 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 233, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 377, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 411, + "machine": 2, + "duration": 21 + }, + { + "task": 3, + "start": 480, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 541, + "machine": 4, + "duration": 2 + }, + { + "task": 5, + "start": 544, + "machine": 5, + "duration": 55 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 505, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 639, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 710, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 724, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 770, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 815, + "machine": 5, + "duration": 43 + } + ] + } + ], + "obj": 934.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 73 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 91 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 94 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 43 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 21 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 48 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 24 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 17 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 38 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 44 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 56 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 95 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 20 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 66 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 57 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 37 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 94 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 89 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 82 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 58 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 85 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 62 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 99 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 80 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 39 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 78 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 88 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 37 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 40 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 42 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 47 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 29 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 81 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 97 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 34 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 4 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 71 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 48 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 75 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 22 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 38 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 74 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 47 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 18 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 30 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 72 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 35 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 59 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 34 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 58 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 32 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 1 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 43 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 48 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 94 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 34 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 21 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 61 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 2 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": 5, + "duration": 55 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 0, + "duration": 69 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 2, + "duration": 14 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 3, + "duration": 46 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 4, + "duration": 6 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": 5, + "duration": 43 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 103, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 205, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 295, + "machine": 2, + "duration": 91 + }, + { + "task": 3, + "start": 386, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 480, + "machine": 4, + "duration": 43 + }, + { + "task": 5, + "start": 523, + "machine": 5, + "duration": 21 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 55, + "machine": 0, + "duration": 48 + }, + { + "task": 1, + "start": 149, + "machine": 1, + "duration": 24 + }, + { + "task": 2, + "start": 174, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 201, + "machine": 3, + "duration": 17 + }, + { + "task": 4, + "start": 310, + "machine": 4, + "duration": 38 + }, + { + "task": 5, + "start": 358, + "machine": 5, + "duration": 44 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 408, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 508, + "machine": 1, + "duration": 56 + }, + { + "task": 2, + "start": 564, + "machine": 2, + "duration": 95 + }, + { + "task": 3, + "start": 659, + "machine": 3, + "duration": 20 + }, + { + "task": 4, + "start": 679, + "machine": 4, + "duration": 66 + }, + { + "task": 5, + "start": 758, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 18, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 55, + "machine": 1, + "duration": 94 + }, + { + "task": 2, + "start": 206, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 295, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 377, + "machine": 4, + "duration": 58 + }, + { + "task": 5, + "start": 435, + "machine": 5, + "duration": 85 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 171, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 278, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 432, + "machine": 2, + "duration": 80 + }, + { + "task": 3, + "start": 550, + "machine": 3, + "duration": 39 + }, + { + "task": 4, + "start": 589, + "machine": 4, + "duration": 78 + }, + { + "task": 5, + "start": 670, + "machine": 5, + "duration": 88 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 574, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 710, + "machine": 1, + "duration": 40 + }, + { + "task": 2, + "start": 750, + "machine": 2, + "duration": 42 + }, + { + "task": 3, + "start": 792, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 850, + "machine": 4, + "duration": 47 + }, + { + "task": 5, + "start": 905, + "machine": 5, + "duration": 29 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 327, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 411, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 512, + "machine": 2, + "duration": 34 + }, + { + "task": 3, + "start": 546, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 550, + "machine": 4, + "duration": 28 + }, + { + "task": 5, + "start": 599, + "machine": 5, + "duration": 71 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 457, + "machine": 0, + "duration": 48 + }, + { + "task": 1, + "start": 564, + "machine": 1, + "duration": 75 + }, + { + "task": 2, + "start": 659, + "machine": 2, + "duration": 22 + }, + { + "task": 3, + "start": 681, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 776, + "machine": 4, + "duration": 74 + }, + { + "task": 5, + "start": 858, + "machine": 5, + "duration": 47 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 18, + "machine": 1, + "duration": 30 + }, + { + "task": 2, + "start": 48, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 120, + "machine": 3, + "duration": 35 + }, + { + "task": 4, + "start": 155, + "machine": 4, + "duration": 59 + }, + { + "task": 5, + "start": 214, + "machine": 5, + "duration": 34 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 113, + "machine": 0, + "duration": 58 + }, + { + "task": 1, + "start": 173, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 205, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 239, + "machine": 3, + "duration": 43 + }, + { + "task": 4, + "start": 282, + "machine": 4, + "duration": 28 + }, + { + "task": 5, + "start": 310, + "machine": 5, + "duration": 48 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 233, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 377, + "machine": 1, + "duration": 34 + }, + { + "task": 2, + "start": 411, + "machine": 2, + "duration": 21 + }, + { + "task": 3, + "start": 480, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 541, + "machine": 4, + "duration": 2 + }, + { + "task": 5, + "start": 544, + "machine": 5, + "duration": 55 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 505, + "machine": 0, + "duration": 69 + }, + { + "task": 1, + "start": 639, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 710, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 724, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 770, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 815, + "machine": 5, + "duration": 43 + } + ] + } + ], + "context_index": 33, + "input_format": "csv", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "On a typical day the process is the same for everyone: sign in, get scanned, then meet the reviewer, with each segment taking a predictable amount of time. The goal is to schedule people into registration desks, scanners, and review rooms so no resource is handling more than one person at a time and nobody skips or repeats any step. Which schedule is best is decided by the clock time when the final patient is completely done — earlier finish times win. The detailed instance information is shown below.\n\nThere are 10 patients and 6 sequential stages; patient IDs: J1, J2, J3, J4, J5, J6, J7, J8, J9, J10; stage IDs: 0, 1, 2, 3, 4, 5.\n\n| patient_id | stage_index | stage_id | duration_minutes |\n|---|---|---|---|\n| J1 | 0 | 0 | 1 |\n| J1 | 1 | 1 | 86 |\n| J1 | 2 | 2 | 67 |\n| J1 | 3 | 3 | 40 |\n| J1 | 4 | 4 | 95 |\n| J1 | 5 | 5 | 42 |\n| J2 | 0 | 0 | 53 |\n| J2 | 1 | 1 | 91 |\n| J2 | 2 | 2 | 94 |\n| J2 | 3 | 3 | 11 |\n| J2 | 4 | 4 | 76 |\n| J2 | 5 | 5 | 95 |\n| J3 | 0 | 0 | 32 |\n| J3 | 1 | 1 | 59 |\n| J3 | 2 | 2 | 1 |\n| J3 | 3 | 3 | 73 |\n| J3 | 4 | 4 | 34 |\n| J3 | 5 | 5 | 58 |\n| J4 | 0 | 0 | 75 |\n| J4 | 1 | 1 | 2 |\n| J4 | 2 | 2 | 31 |\n| J4 | 3 | 3 | 51 |\n| J4 | 4 | 4 | 18 |\n| J4 | 5 | 5 | 78 |\n| J5 | 0 | 0 | 46 |\n| J5 | 1 | 1 | 52 |\n| J5 | 2 | 2 | 89 |\n| J5 | 3 | 3 | 5 |\n| J5 | 4 | 4 | 20 |\n| J5 | 5 | 5 | 59 |\n| J6 | 0 | 0 | 28 |\n| J6 | 1 | 1 | 17 |\n| J6 | 2 | 2 | 68 |\n| J6 | 3 | 3 | 56 |\n| J6 | 4 | 4 | 21 |\n| J6 | 5 | 5 | 62 |\n| J7 | 0 | 0 | 45 |\n| J7 | 1 | 1 | 73 |\n| J7 | 2 | 2 | 33 |\n| J7 | 3 | 3 | 40 |\n| J7 | 4 | 4 | 53 |\n| J7 | 5 | 5 | 69 |\n| J8 | 0 | 0 | 20 |\n| J8 | 1 | 1 | 50 |\n| J8 | 2 | 2 | 86 |\n| J8 | 3 | 3 | 45 |\n| J8 | 4 | 4 | 37 |\n| J8 | 5 | 5 | 35 |\n| J9 | 0 | 0 | 45 |\n| J9 | 1 | 1 | 73 |\n| J9 | 2 | 2 | 49 |\n| J9 | 3 | 3 | 83 |\n| J9 | 4 | 4 | 83 |\n| J9 | 5 | 5 | 62 |\n| J10 | 0 | 0 | 94 |\n| J10 | 1 | 1 | 49 |\n| J10 | 2 | 2 | 49 |\n| J10 | 3 | 3 | 33 |\n| J10 | 4 | 4 | 19 |\n| J10 | 5 | 5 | 54 |\n\nUse these details to build schedules and determine the earliest completion time.\n\nAlso, just so we're on the same page about how I'd like the reply laid out, a relaxed little JSON sketch is easiest for me to read — just list the jobs and their tasks. Something like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a simple form: each \"job\" is one person going through the process, the \"tasks\" array lists the steps they take in order, and for each step you give which task number it is, when it starts, which machine/desk/room it uses, and how long that step lasts. That JSON is just the shape I want — a template, not the actual filled-in schedule.\n\nPlease use the exact identifiers from the instance input — don't rename them or invent new labels. \n- 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 86 + ], + [ + 2, + 67 + ], + [ + 3, + 40 + ], + [ + 4, + 95 + ], + [ + 5, + 42 + ] + ], + [ + [ + 0, + 53 + ], + [ + 1, + 91 + ], + [ + 2, + 94 + ], + [ + 3, + 11 + ], + [ + 4, + 76 + ], + [ + 5, + 95 + ] + ], + [ + [ + 0, + 32 + ], + [ + 1, + 59 + ], + [ + 2, + 1 + ], + [ + 3, + 73 + ], + [ + 4, + 34 + ], + [ + 5, + 58 + ] + ], + [ + [ + 0, + 75 + ], + [ + 1, + 2 + ], + [ + 2, + 31 + ], + [ + 3, + 51 + ], + [ + 4, + 18 + ], + [ + 5, + 78 + ] + ], + [ + [ + 0, + 46 + ], + [ + 1, + 52 + ], + [ + 2, + 89 + ], + [ + 3, + 5 + ], + [ + 4, + 20 + ], + [ + 5, + 59 + ] + ], + [ + [ + 0, + 28 + ], + [ + 1, + 17 + ], + [ + 2, + 68 + ], + [ + 3, + 56 + ], + [ + 4, + 21 + ], + [ + 5, + 62 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 73 + ], + [ + 2, + 33 + ], + [ + 3, + 40 + ], + [ + 4, + 53 + ], + [ + 5, + 69 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 50 + ], + [ + 2, + 86 + ], + [ + 3, + 45 + ], + [ + 4, + 37 + ], + [ + 5, + 35 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 73 + ], + [ + 2, + 49 + ], + [ + 3, + 83 + ], + [ + 4, + 83 + ], + [ + 5, + 62 + ] + ], + [ + [ + 0, + 94 + ], + [ + 1, + 49 + ], + [ + 2, + 49 + ], + [ + 3, + 33 + ], + [ + 4, + 19 + ], + [ + 5, + 54 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 438, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 474, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 560, + "machine": 2, + "duration": 67 + }, + { + "task": 3, + "start": 627, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 667, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 762, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 106, + "machine": 0, + "duration": 53 + }, + { + "task": 1, + "start": 175, + "machine": 1, + "duration": 91 + }, + { + "task": 2, + "start": 299, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 393, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 404, + "machine": 4, + "duration": 76 + }, + { + "task": 5, + "start": 480, + "machine": 5, + "duration": 95 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 32, + "machine": 1, + "duration": 59 + }, + { + "task": 2, + "start": 91, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 92, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 165, + "machine": 4, + "duration": 34 + }, + { + "task": 5, + "start": 199, + "machine": 5, + "duration": 58 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 159, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 266, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 268, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 299, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 350, + "machine": 4, + "duration": 18 + }, + { + "task": 5, + "start": 389, + "machine": 5, + "duration": 78 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 60, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 123, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 176, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 280, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 285, + "machine": 4, + "duration": 20 + }, + { + "task": 5, + "start": 330, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 32, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 91, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 108, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 191, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 247, + "machine": 4, + "duration": 21 + }, + { + "task": 5, + "start": 268, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 234, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 279, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 393, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 438, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 480, + "machine": 4, + "duration": 53 + }, + { + "task": 5, + "start": 575, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 439, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 580, + "machine": 1, + "duration": 50 + }, + { + "task": 2, + "start": 630, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 716, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 762, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 804, + "machine": 5, + "duration": 35 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 279, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 352, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 426, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 478, + "machine": 3, + "duration": 83 + }, + { + "task": 4, + "start": 561, + "machine": 4, + "duration": 83 + }, + { + "task": 5, + "start": 644, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 324, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 425, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 495, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 570, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 644, + "machine": 4, + "duration": 19 + }, + { + "task": 5, + "start": 706, + "machine": 5, + "duration": 54 + } + ] + } + ], + "obj": 839.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 86 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 67 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 40 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 95 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 42 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 53 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 91 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 94 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 11 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 76 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 95 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 32 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 59 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 1 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 34 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 58 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 75 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 2 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 31 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 18 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 78 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 46 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 52 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 89 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 5 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 20 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 59 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 28 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 17 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 56 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 21 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 62 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 45 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 73 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 33 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 40 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 53 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "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": 0, + "duration": 45 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 73 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 83 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "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": 1, + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 19 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 54 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 438, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 474, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 560, + "machine": 2, + "duration": 67 + }, + { + "task": 3, + "start": 627, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 667, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 762, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 106, + "machine": 0, + "duration": 53 + }, + { + "task": 1, + "start": 175, + "machine": 1, + "duration": 91 + }, + { + "task": 2, + "start": 299, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 393, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 404, + "machine": 4, + "duration": 76 + }, + { + "task": 5, + "start": 480, + "machine": 5, + "duration": 95 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 32, + "machine": 1, + "duration": 59 + }, + { + "task": 2, + "start": 91, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 92, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 165, + "machine": 4, + "duration": 34 + }, + { + "task": 5, + "start": 199, + "machine": 5, + "duration": 58 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 159, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 266, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 268, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 299, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 350, + "machine": 4, + "duration": 18 + }, + { + "task": 5, + "start": 389, + "machine": 5, + "duration": 78 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 60, + "machine": 0, + "duration": 46 + }, + { + "task": 1, + "start": 123, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 176, + "machine": 2, + "duration": 89 + }, + { + "task": 3, + "start": 280, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 285, + "machine": 4, + "duration": 20 + }, + { + "task": 5, + "start": 330, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 32, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 91, + "machine": 1, + "duration": 17 + }, + { + "task": 2, + "start": 108, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 191, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 247, + "machine": 4, + "duration": 21 + }, + { + "task": 5, + "start": 268, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 234, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 279, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 393, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 438, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 480, + "machine": 4, + "duration": 53 + }, + { + "task": 5, + "start": 575, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 439, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 580, + "machine": 1, + "duration": 50 + }, + { + "task": 2, + "start": 630, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 716, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 762, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 804, + "machine": 5, + "duration": 35 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 279, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 352, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 426, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 478, + "machine": 3, + "duration": 83 + }, + { + "task": 4, + "start": 561, + "machine": 4, + "duration": 83 + }, + { + "task": 5, + "start": 644, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 324, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 425, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 495, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 570, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 644, + "machine": 4, + "duration": 19 + }, + { + "task": 5, + "start": 706, + "machine": 5, + "duration": 54 + } + ] + } + ], + "context_index": 34, + "input_format": "markdown_table", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone in the shop has to line up the pieces so each one goes through cutting, sanding, and varnishing in that exact sequence, with each operation taking a predetermined amount of time. No station can handle overlapping pieces and nothing can be skipped or repeated; the decision is just the order of the pieces, and the goal is to minimize the total time until the very last piece is finished — basically the elapsed time from the start of work to the last varnished piece. The detailed list of pieces and times is below.\n\nThere are 9 pieces and 5 stations; the pieces are J1, J2, J3, J4, J5, J6, J7, J8, J9 and the stations are 0, 1, 2, 3, 4.\nPiece J1, operation 0 at station 0, processing time 1.\nPiece J1, operation 1 at station 1, processing time 99.\nPiece J1, operation 2 at station 2, processing time 43.\nPiece J1, operation 3 at station 3, processing time 85.\nPiece J1, operation 4 at station 4, processing time 49.\nPiece J2, operation 0 at station 0, processing time 64.\nPiece J2, operation 1 at station 1, processing time 57.\nPiece J2, operation 2 at station 2, processing time 59.\nPiece J2, operation 3 at station 3, processing time 63.\nPiece J2, operation 4 at station 4, processing time 4.\nPiece J3, operation 0 at station 0, processing time 15.\nPiece J3, operation 1 at station 1, processing time 48.\nPiece J3, operation 2 at station 2, processing time 16.\nPiece J3, operation 3 at station 3, processing time 63.\nPiece J3, operation 4 at station 4, processing time 7.\nPiece J4, operation 0 at station 0, processing time 26.\nPiece J4, operation 1 at station 1, processing time 1.\nPiece J4, operation 2 at station 2, processing time 58.\nPiece J4, operation 3 at station 3, processing time 14.\nPiece J4, operation 4 at station 4, processing time 8.\nPiece J5, operation 0 at station 0, processing time 73.\nPiece J5, operation 1 at station 1, processing time 20.\nPiece J5, operation 2 at station 2, processing time 76.\nPiece J5, operation 3 at station 3, processing time 71.\nPiece J5, operation 4 at station 4, processing time 31.\nPiece J6, operation 0 at station 0, processing time 5.\nPiece J6, operation 1 at station 1, processing time 98.\nPiece J6, operation 2 at station 2, processing time 70.\nPiece J6, operation 3 at station 3, processing time 61.\nPiece J6, operation 4 at station 4, processing time 29.\nPiece J7, operation 0 at station 0, processing time 19.\nPiece J7, operation 1 at station 1, processing time 92.\nPiece J7, operation 2 at station 2, processing time 94.\nPiece J7, operation 3 at station 3, processing time 61.\nPiece J7, operation 4 at station 4, processing time 94.\nPiece J8, operation 0 at station 0, processing time 94.\nPiece J8, operation 1 at station 1, processing time 8.\nPiece J8, operation 2 at station 2, processing time 49.\nPiece J8, operation 3 at station 3, processing time 32.\nPiece J8, operation 4 at station 4, processing time 76.\nPiece J9, operation 0 at station 0, processing time 77.\nPiece J9, operation 1 at station 1, processing time 67.\nPiece J9, operation 2 at station 2, processing time 92.\nPiece J9, operation 3 at station 3, processing time 26.\nPiece J9, operation 4 at station 4, processing time 52.\nThe goal remains to minimize the elapsed time until the last piece is varnished.\n\nAlso, when you send the schedule back, please shape it like this JSON so it's easy to read and parse:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just the form I expect: each item in \"solution\" is a job (a piece), \"tasks\" lists that job's operations in order, and each task shows which step it is, when it starts, which machine it uses, and how long it takes. Think of it like filling out a simple form — it's the shape I need, not the final numbers.\n\nPlease use the exact identifiers from the instance input — don't rename jobs or machines or invent new labels. \n- 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 99 + ], + [ + 2, + 43 + ], + [ + 3, + 85 + ], + [ + 4, + 49 + ] + ], + [ + [ + 0, + 64 + ], + [ + 1, + 57 + ], + [ + 2, + 59 + ], + [ + 3, + 63 + ], + [ + 4, + 4 + ] + ], + [ + [ + 0, + 15 + ], + [ + 1, + 48 + ], + [ + 2, + 16 + ], + [ + 3, + 63 + ], + [ + 4, + 7 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 1 + ], + [ + 2, + 58 + ], + [ + 3, + 14 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 73 + ], + [ + 1, + 20 + ], + [ + 2, + 76 + ], + [ + 3, + 71 + ], + [ + 4, + 31 + ] + ], + [ + [ + 0, + 5 + ], + [ + 1, + 98 + ], + [ + 2, + 70 + ], + [ + 3, + 61 + ], + [ + 4, + 29 + ] + ], + [ + [ + 0, + 19 + ], + [ + 1, + 92 + ], + [ + 2, + 94 + ], + [ + 3, + 61 + ], + [ + 4, + 94 + ] + ], + [ + [ + 0, + 94 + ], + [ + 1, + 8 + ], + [ + 2, + 49 + ], + [ + 3, + 32 + ], + [ + 4, + 76 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 67 + ], + [ + 2, + 92 + ], + [ + 3, + 26 + ], + [ + 4, + 52 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 100, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 143, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 228, + "machine": 4, + "duration": 49 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 192, + "machine": 0, + "duration": 64 + }, + { + "task": 1, + "start": 441, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 540, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 599, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 662, + "machine": 4, + "duration": 4 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 256, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 319, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 432, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 493, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 639, + "machine": 4, + "duration": 7 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 271, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 318, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 599, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 662, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 676, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 100, + "machine": 1, + "duration": 20 + }, + { + "task": 2, + "start": 143, + "machine": 2, + "duration": 76 + }, + { + "task": 3, + "start": 228, + "machine": 3, + "duration": 71 + }, + { + "task": 4, + "start": 299, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 74, + "machine": 0, + "duration": 5 + }, + { + "task": 1, + "start": 120, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 219, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 299, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 360, + "machine": 4, + "duration": 29 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 173, + "machine": 0, + "duration": 19 + }, + { + "task": 1, + "start": 226, + "machine": 1, + "duration": 92 + }, + { + "task": 2, + "start": 338, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 432, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 493, + "machine": 4, + "duration": 94 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 79, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 218, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 289, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 360, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 392, + "machine": 4, + "duration": 76 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 297, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 374, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 448, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 556, + "machine": 3, + "duration": 26 + }, + { + "task": 4, + "start": 587, + "machine": 4, + "duration": 52 + } + ] + } + ], + "obj": 684.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 99 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 43 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 85 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 49 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 64 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 57 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 59 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 63 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 15 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 48 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 16 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 63 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 7 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 26 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 1 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 58 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 14 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 73 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 20 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 76 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 71 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 61 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 29 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 19 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 92 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 94 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 61 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 94 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 94 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 8 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 76 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 77 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 67 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 92 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 26 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 52 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 99 + }, + { + "task": 2, + "start": 100, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 143, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 228, + "machine": 4, + "duration": 49 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 192, + "machine": 0, + "duration": 64 + }, + { + "task": 1, + "start": 441, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 540, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 599, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 662, + "machine": 4, + "duration": 4 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 256, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 319, + "machine": 1, + "duration": 48 + }, + { + "task": 2, + "start": 432, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 493, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 639, + "machine": 4, + "duration": 7 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 271, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 318, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 599, + "machine": 2, + "duration": 58 + }, + { + "task": 3, + "start": 662, + "machine": 3, + "duration": 14 + }, + { + "task": 4, + "start": 676, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 100, + "machine": 1, + "duration": 20 + }, + { + "task": 2, + "start": 143, + "machine": 2, + "duration": 76 + }, + { + "task": 3, + "start": 228, + "machine": 3, + "duration": 71 + }, + { + "task": 4, + "start": 299, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 74, + "machine": 0, + "duration": 5 + }, + { + "task": 1, + "start": 120, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 219, + "machine": 2, + "duration": 70 + }, + { + "task": 3, + "start": 299, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 360, + "machine": 4, + "duration": 29 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 173, + "machine": 0, + "duration": 19 + }, + { + "task": 1, + "start": 226, + "machine": 1, + "duration": 92 + }, + { + "task": 2, + "start": 338, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 432, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 493, + "machine": 4, + "duration": 94 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 79, + "machine": 0, + "duration": 94 + }, + { + "task": 1, + "start": 218, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 289, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 360, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 392, + "machine": 4, + "duration": 76 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 297, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 374, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 448, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 556, + "machine": 3, + "duration": 26 + }, + { + "task": 4, + "start": 587, + "machine": 4, + "duration": 52 + } + ] + } + ], + "context_index": 35, + "input_format": "nl", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s a steady rhythm on the shop floor: every frame needs cutting, then assembly, then stitching, and we know how long each of those tasks takes. The puzzle is arranging which frame goes through which station at what time so a station never handles two frames simultaneously, each frame gets each step in order exactly once, and the total job is wrapped up as early as possible — determined by the time the very last frame comes off the final station. Concrete details will be shown below.\n\nBelow are the concrete details for 9 frames processed across 6 stations: frame IDs J1, J2, J3, J4, J5, J6, J7, J8, J9, station IDs 1, 2, 3, 4, 5, 6.\nFrame J1 requires step 0 on station 1 for 1 time units.\nFrame J1 requires step 1 on station 2 for 13 time units.\nFrame J1 requires step 2 on station 3 for 18 time units.\nFrame J1 requires step 3 on station 4 for 32 time units.\nFrame J1 requires step 4 on station 5 for 3 time units.\nFrame J1 requires step 5 on station 6 for 86 time units.\nFrame J2 requires step 0 on station 1 for 62 time units.\nFrame J2 requires step 1 on station 2 for 27 time units.\nFrame J2 requires step 2 on station 3 for 31 time units.\nFrame J2 requires step 3 on station 4 for 97 time units.\nFrame J2 requires step 4 on station 5 for 53 time units.\nFrame J2 requires step 5 on station 6 for 99 time units.\nFrame J3 requires step 0 on station 1 for 98 time units.\nFrame J3 requires step 1 on station 2 for 66 time units.\nFrame J3 requires step 2 on station 3 for 12 time units.\nFrame J3 requires step 3 on station 4 for 78 time units.\nFrame J3 requires step 4 on station 5 for 68 time units.\nFrame J3 requires step 5 on station 6 for 59 time units.\nFrame J4 requires step 0 on station 1 for 52 time units.\nFrame J4 requires step 1 on station 2 for 15 time units.\nFrame J4 requires step 2 on station 3 for 15 time units.\nFrame J4 requires step 3 on station 4 for 88 time units.\nFrame J4 requires step 4 on station 5 for 35 time units.\nFrame J4 requires step 5 on station 6 for 64 time units.\nFrame J5 requires step 0 on station 1 for 16 time units.\nFrame J5 requires step 1 on station 2 for 57 time units.\nFrame J5 requires step 2 on station 3 for 9 time units.\nFrame J5 requires step 3 on station 4 for 35 time units.\nFrame J5 requires step 4 on station 5 for 4 time units.\nFrame J5 requires step 5 on station 6 for 99 time units.\nFrame J6 requires step 0 on station 1 for 10 time units.\nFrame J6 requires step 1 on station 2 for 69 time units.\nFrame J6 requires step 2 on station 3 for 21 time units.\nFrame J6 requires step 3 on station 4 for 65 time units.\nFrame J6 requires step 4 on station 5 for 68 time units.\nFrame J6 requires step 5 on station 6 for 28 time units.\nFrame J7 requires step 0 on station 1 for 71 time units.\nFrame J7 requires step 1 on station 2 for 25 time units.\nFrame J7 requires step 2 on station 3 for 31 time units.\nFrame J7 requires step 3 on station 4 for 13 time units.\nFrame J7 requires step 4 on station 5 for 3 time units.\nFrame J7 requires step 5 on station 6 for 65 time units.\nFrame J8 requires step 0 on station 1 for 64 time units.\nFrame J8 requires step 1 on station 2 for 1 time units.\nFrame J8 requires step 2 on station 3 for 17 time units.\nFrame J8 requires step 3 on station 4 for 60 time units.\nFrame J8 requires step 4 on station 5 for 63 time units.\nFrame J8 requires step 5 on station 6 for 13 time units.\nFrame J9 requires step 0 on station 1 for 99 time units.\nFrame J9 requires step 1 on station 2 for 60 time units.\nFrame J9 requires step 2 on station 3 for 2 time units.\nFrame J9 requires step 3 on station 4 for 78 time units.\nFrame J9 requires step 4 on station 5 for 31 time units.\nFrame J9 requires step 5 on station 6 for 17 time units.\nWe’ll arrange these task entries so no station handles two frames at once and each frame’s steps occur in order to minimize the overall completion time.\n\nI'll return the schedule in a simple JSON layout so it's easy to read and machine-friendly — something like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis sketch shows the shape I'll use: each job gets an entry, with a list of its tasks. For each task you'll see which step it is (task), when it starts (start), which machine/station it runs on (machine), and how long it takes (duration). Think of it as a little form for each frame going through cut → assemble → stitch.\n\nPlease remember to use the exact identifiers from the instance input with no renaming or added labels. \nValid 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 13 + ], + [ + 2, + 18 + ], + [ + 3, + 32 + ], + [ + 4, + 3 + ], + [ + 5, + 86 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 27 + ], + [ + 2, + 31 + ], + [ + 3, + 97 + ], + [ + 4, + 53 + ], + [ + 5, + 99 + ] + ], + [ + [ + 0, + 98 + ], + [ + 1, + 66 + ], + [ + 2, + 12 + ], + [ + 3, + 78 + ], + [ + 4, + 68 + ], + [ + 5, + 59 + ] + ], + [ + [ + 0, + 52 + ], + [ + 1, + 15 + ], + [ + 2, + 15 + ], + [ + 3, + 88 + ], + [ + 4, + 35 + ], + [ + 5, + 64 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 57 + ], + [ + 2, + 9 + ], + [ + 3, + 35 + ], + [ + 4, + 4 + ], + [ + 5, + 99 + ] + ], + [ + [ + 0, + 10 + ], + [ + 1, + 69 + ], + [ + 2, + 21 + ], + [ + 3, + 65 + ], + [ + 4, + 68 + ], + [ + 5, + 28 + ] + ], + [ + [ + 0, + 71 + ], + [ + 1, + 25 + ], + [ + 2, + 31 + ], + [ + 3, + 13 + ], + [ + 4, + 3 + ], + [ + 5, + 65 + ] + ], + [ + [ + 0, + 64 + ], + [ + 1, + 1 + ], + [ + 2, + 17 + ], + [ + 3, + 60 + ], + [ + 4, + 63 + ], + [ + 5, + 13 + ] + ], + [ + [ + 0, + 99 + ], + [ + 1, + 60 + ], + [ + 2, + 2 + ], + [ + 3, + 78 + ], + [ + 4, + 31 + ], + [ + 5, + 17 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 13 + }, + { + "task": 2, + "start": 14, + "machine": 2, + "duration": 18 + }, + { + "task": 3, + "start": 32, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 64, + "machine": 4, + "duration": 3 + }, + { + "task": 5, + "start": 67, + "machine": 5, + "duration": 86 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 63, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 137, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 164, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 271, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 384, + "machine": 4, + "duration": 53 + }, + { + "task": 5, + "start": 467, + "machine": 5, + "duration": 99 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 141, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 239, + "machine": 1, + "duration": 66 + }, + { + "task": 2, + "start": 305, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 381, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 459, + "machine": 4, + "duration": 68 + }, + { + "task": 5, + "start": 566, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 53, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 68, + "machine": 2, + "duration": 15 + }, + { + "task": 3, + "start": 83, + "machine": 3, + "duration": 88 + }, + { + "task": 4, + "start": 171, + "machine": 4, + "duration": 35 + }, + { + "task": 5, + "start": 206, + "machine": 5, + "duration": 64 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 125, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 164, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 221, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 236, + "machine": 3, + "duration": 35 + }, + { + "task": 4, + "start": 271, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 275, + "machine": 5, + "duration": 99 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 53, + "machine": 0, + "duration": 10 + }, + { + "task": 1, + "start": 68, + "machine": 1, + "duration": 69 + }, + { + "task": 2, + "start": 137, + "machine": 2, + "duration": 21 + }, + { + "task": 3, + "start": 171, + "machine": 3, + "duration": 65 + }, + { + "task": 4, + "start": 275, + "machine": 4, + "duration": 68 + }, + { + "task": 5, + "start": 374, + "machine": 5, + "duration": 28 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 239, + "machine": 0, + "duration": 71 + }, + { + "task": 1, + "start": 310, + "machine": 1, + "duration": 25 + }, + { + "task": 2, + "start": 335, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 368, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 381, + "machine": 4, + "duration": 3 + }, + { + "task": 5, + "start": 402, + "machine": 5, + "duration": 65 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 310, + "machine": 0, + "duration": 64 + }, + { + "task": 1, + "start": 374, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 375, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 459, + "machine": 3, + "duration": 60 + }, + { + "task": 4, + "start": 527, + "machine": 4, + "duration": 63 + }, + { + "task": 5, + "start": 625, + "machine": 5, + "duration": 13 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 374, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 473, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 533, + "machine": 2, + "duration": 2 + }, + { + "task": 3, + "start": 535, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 613, + "machine": 4, + "duration": 31 + }, + { + "task": 5, + "start": 644, + "machine": 5, + "duration": 17 + } + ] + } + ], + "obj": 661.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 13 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 18 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 32 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 3 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 6, + "duration": 86 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 62 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 31 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 97 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 53 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 6, + "duration": 99 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 98 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 66 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 12 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 78 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 68 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 6, + "duration": 59 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 52 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 15 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 15 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 88 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 35 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 6, + "duration": 64 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 57 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 9 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 35 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 4 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 6, + "duration": 99 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 10 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 69 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 21 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 65 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 68 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 6, + "duration": 28 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 25 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 31 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 13 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 3 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 6, + "duration": 65 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 64 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 1 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 17 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 60 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 63 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 6, + "duration": 13 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 99 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 60 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 2 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 78 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 31 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 6, + "duration": 17 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 13 + }, + { + "task": 2, + "start": 14, + "machine": 3, + "duration": 18 + }, + { + "task": 3, + "start": 32, + "machine": 4, + "duration": 32 + }, + { + "task": 4, + "start": 64, + "machine": 5, + "duration": 3 + }, + { + "task": 5, + "start": 67, + "machine": 6, + "duration": 86 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 63, + "machine": 1, + "duration": 62 + }, + { + "task": 1, + "start": 137, + "machine": 2, + "duration": 27 + }, + { + "task": 2, + "start": 164, + "machine": 3, + "duration": 31 + }, + { + "task": 3, + "start": 271, + "machine": 4, + "duration": 97 + }, + { + "task": 4, + "start": 384, + "machine": 5, + "duration": 53 + }, + { + "task": 5, + "start": 467, + "machine": 6, + "duration": 99 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 141, + "machine": 1, + "duration": 98 + }, + { + "task": 1, + "start": 239, + "machine": 2, + "duration": 66 + }, + { + "task": 2, + "start": 305, + "machine": 3, + "duration": 12 + }, + { + "task": 3, + "start": 381, + "machine": 4, + "duration": 78 + }, + { + "task": 4, + "start": 459, + "machine": 5, + "duration": 68 + }, + { + "task": 5, + "start": 566, + "machine": 6, + "duration": 59 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 52 + }, + { + "task": 1, + "start": 53, + "machine": 2, + "duration": 15 + }, + { + "task": 2, + "start": 68, + "machine": 3, + "duration": 15 + }, + { + "task": 3, + "start": 83, + "machine": 4, + "duration": 88 + }, + { + "task": 4, + "start": 171, + "machine": 5, + "duration": 35 + }, + { + "task": 5, + "start": 206, + "machine": 6, + "duration": 64 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 125, + "machine": 1, + "duration": 16 + }, + { + "task": 1, + "start": 164, + "machine": 2, + "duration": 57 + }, + { + "task": 2, + "start": 221, + "machine": 3, + "duration": 9 + }, + { + "task": 3, + "start": 236, + "machine": 4, + "duration": 35 + }, + { + "task": 4, + "start": 271, + "machine": 5, + "duration": 4 + }, + { + "task": 5, + "start": 275, + "machine": 6, + "duration": 99 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 53, + "machine": 1, + "duration": 10 + }, + { + "task": 1, + "start": 68, + "machine": 2, + "duration": 69 + }, + { + "task": 2, + "start": 137, + "machine": 3, + "duration": 21 + }, + { + "task": 3, + "start": 171, + "machine": 4, + "duration": 65 + }, + { + "task": 4, + "start": 275, + "machine": 5, + "duration": 68 + }, + { + "task": 5, + "start": 374, + "machine": 6, + "duration": 28 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 239, + "machine": 1, + "duration": 71 + }, + { + "task": 1, + "start": 310, + "machine": 2, + "duration": 25 + }, + { + "task": 2, + "start": 335, + "machine": 3, + "duration": 31 + }, + { + "task": 3, + "start": 368, + "machine": 4, + "duration": 13 + }, + { + "task": 4, + "start": 381, + "machine": 5, + "duration": 3 + }, + { + "task": 5, + "start": 402, + "machine": 6, + "duration": 65 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 310, + "machine": 1, + "duration": 64 + }, + { + "task": 1, + "start": 374, + "machine": 2, + "duration": 1 + }, + { + "task": 2, + "start": 375, + "machine": 3, + "duration": 17 + }, + { + "task": 3, + "start": 459, + "machine": 4, + "duration": 60 + }, + { + "task": 4, + "start": 527, + "machine": 5, + "duration": 63 + }, + { + "task": 5, + "start": 625, + "machine": 6, + "duration": 13 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 374, + "machine": 1, + "duration": 99 + }, + { + "task": 1, + "start": 473, + "machine": 2, + "duration": 60 + }, + { + "task": 2, + "start": 533, + "machine": 3, + "duration": 2 + }, + { + "task": 3, + "start": 535, + "machine": 4, + "duration": 78 + }, + { + "task": 4, + "start": 613, + "machine": 5, + "duration": 31 + }, + { + "task": 5, + "start": 644, + "machine": 6, + "duration": 17 + } + ] + } + ], + "context_index": 36, + "input_format": "nl", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There's a cramped shop where every part must be stamped, then assembled, then inspected in that order, and the supervisor needs to arrange the batch flow so machines aren’t stuck doing two things at once. The whole point is to get the entire set of parts done as quickly as possible — you track that by the time the last part clears inspection — and you can’t drop or duplicate any operation. The specific job times and items follow below.\n\n{\n \"batch_size\": 12,\n \"workstation_count\": 6,\n \"item_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\",\n \"J10\",\n \"J11\",\n \"J12\"\n ],\n \"workstation_ids\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"tasks\": [\n {\n \"item_id\": \"J1\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 1\n },\n {\n \"item_id\": \"J1\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 26\n },\n {\n \"item_id\": \"J1\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 93\n },\n {\n \"item_id\": \"J1\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 77\n },\n {\n \"item_id\": \"J1\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 56\n },\n {\n \"item_id\": \"J1\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 8\n },\n {\n \"item_id\": \"J2\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 67\n },\n {\n \"item_id\": \"J2\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 95\n },\n {\n \"item_id\": \"J2\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 98\n },\n {\n \"item_id\": \"J2\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 90\n },\n {\n \"item_id\": \"J2\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 91\n },\n {\n \"item_id\": \"J2\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 51\n },\n {\n \"item_id\": \"J3\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 81\n },\n {\n \"item_id\": \"J3\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 69\n },\n {\n \"item_id\": \"J3\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 17\n },\n {\n \"item_id\": \"J3\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 32\n },\n {\n \"item_id\": \"J3\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 35\n },\n {\n \"item_id\": \"J3\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 60\n },\n {\n \"item_id\": \"J4\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 90\n },\n {\n \"item_id\": \"J4\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 22\n },\n {\n \"item_id\": \"J4\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 56\n },\n {\n \"item_id\": \"J4\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 57\n },\n {\n \"item_id\": \"J4\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 94\n },\n {\n \"item_id\": \"J4\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 57\n },\n {\n \"item_id\": \"J5\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 1\n },\n {\n \"item_id\": \"J5\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 10\n },\n {\n \"item_id\": \"J5\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 18\n },\n {\n \"item_id\": \"J5\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 1\n },\n {\n \"item_id\": \"J5\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 45\n },\n {\n \"item_id\": \"J5\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 69\n },\n {\n \"item_id\": \"J6\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 1\n },\n {\n \"item_id\": \"J6\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 45\n },\n {\n \"item_id\": \"J6\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 47\n },\n {\n \"item_id\": \"J6\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 70\n },\n {\n \"item_id\": \"J6\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 42\n },\n {\n \"item_id\": \"J6\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 60\n },\n {\n \"item_id\": \"J7\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 35\n },\n {\n \"item_id\": \"J7\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 1\n },\n {\n \"item_id\": \"J7\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 30\n },\n {\n \"item_id\": \"J7\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 50\n },\n {\n \"item_id\": \"J7\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 27\n },\n {\n \"item_id\": \"J7\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 64\n },\n {\n \"item_id\": \"J8\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 37\n },\n {\n \"item_id\": \"J8\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 76\n },\n {\n \"item_id\": \"J8\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 82\n },\n {\n \"item_id\": \"J8\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 67\n },\n {\n \"item_id\": \"J8\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 27\n },\n {\n \"item_id\": \"J8\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 1\n },\n {\n \"item_id\": \"J9\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 27\n },\n {\n \"item_id\": \"J9\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 4\n },\n {\n \"item_id\": \"J9\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 78\n },\n {\n \"item_id\": \"J9\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 27\n },\n {\n \"item_id\": \"J9\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 55\n },\n {\n \"item_id\": \"J9\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 44\n },\n {\n \"item_id\": \"J10\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 3\n },\n {\n \"item_id\": \"J10\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 98\n },\n {\n \"item_id\": \"J10\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 94\n },\n {\n \"item_id\": \"J10\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 2\n },\n {\n \"item_id\": \"J10\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 91\n },\n {\n \"item_id\": \"J10\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 72\n },\n {\n \"item_id\": \"J11\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 56\n },\n {\n \"item_id\": \"J11\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 35\n },\n {\n \"item_id\": \"J11\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 27\n },\n {\n \"item_id\": \"J11\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 88\n },\n {\n \"item_id\": \"J11\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 95\n },\n {\n \"item_id\": \"J11\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 53\n },\n {\n \"item_id\": \"J12\",\n \"operation_step\": 0,\n \"station_id\": 0,\n \"operation_time\": 76\n },\n {\n \"item_id\": \"J12\",\n \"operation_step\": 1,\n \"station_id\": 1,\n \"operation_time\": 8\n },\n {\n \"item_id\": \"J12\",\n \"operation_step\": 2,\n \"station_id\": 2,\n \"operation_time\": 92\n },\n {\n \"item_id\": \"J12\",\n \"operation_step\": 3,\n \"station_id\": 3,\n \"operation_time\": 75\n },\n {\n \"item_id\": \"J12\",\n \"operation_step\": 4,\n \"station_id\": 4,\n \"operation_time\": 6\n },\n {\n \"item_id\": \"J12\",\n \"operation_step\": 5,\n \"station_id\": 5,\n \"operation_time\": 96\n }\n ]\n}\n\nAlso, when you hand me the actual schedule, please stick to this simple JSON layout so everything lines up neatly:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that JSON as a little form: \"solution\" holds the whole batch, each entry is one job with its id, and under \"tasks\" you list the operations for that job. For each task you fill in which task number it is, when it starts, which machine does it, and how long it takes. Super straightforward — like filling in a work ticket.\n\nThis is just a sketch of the expected shape, not the actual schedule. Also, please make sure to use the exact identifiers from the instance input — no renaming and no inventing new labels. \n\n- 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 26 + ], + [ + 2, + 93 + ], + [ + 3, + 77 + ], + [ + 4, + 56 + ], + [ + 5, + 8 + ] + ], + [ + [ + 0, + 67 + ], + [ + 1, + 95 + ], + [ + 2, + 98 + ], + [ + 3, + 90 + ], + [ + 4, + 91 + ], + [ + 5, + 51 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 69 + ], + [ + 2, + 17 + ], + [ + 3, + 32 + ], + [ + 4, + 35 + ], + [ + 5, + 60 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 22 + ], + [ + 2, + 56 + ], + [ + 3, + 57 + ], + [ + 4, + 94 + ], + [ + 5, + 57 + ] + ], + [ + [ + 0, + 1 + ], + [ + 1, + 10 + ], + [ + 2, + 18 + ], + [ + 3, + 1 + ], + [ + 4, + 45 + ], + [ + 5, + 69 + ] + ], + [ + [ + 0, + 1 + ], + [ + 1, + 45 + ], + [ + 2, + 47 + ], + [ + 3, + 70 + ], + [ + 4, + 42 + ], + [ + 5, + 60 + ] + ], + [ + [ + 0, + 35 + ], + [ + 1, + 1 + ], + [ + 2, + 30 + ], + [ + 3, + 50 + ], + [ + 4, + 27 + ], + [ + 5, + 64 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 76 + ], + [ + 2, + 82 + ], + [ + 3, + 67 + ], + [ + 4, + 27 + ], + [ + 5, + 1 + ] + ], + [ + [ + 0, + 27 + ], + [ + 1, + 4 + ], + [ + 2, + 78 + ], + [ + 3, + 27 + ], + [ + 4, + 55 + ], + [ + 5, + 44 + ] + ], + [ + [ + 0, + 3 + ], + [ + 1, + 98 + ], + [ + 2, + 94 + ], + [ + 3, + 2 + ], + [ + 4, + 91 + ], + [ + 5, + 72 + ] + ], + [ + [ + 0, + 56 + ], + [ + 1, + 35 + ], + [ + 2, + 27 + ], + [ + 3, + 88 + ], + [ + 4, + 95 + ], + [ + 5, + 53 + ] + ], + [ + [ + 0, + 76 + ], + [ + 1, + 8 + ], + [ + 2, + 92 + ], + [ + 3, + 75 + ], + [ + 4, + 6 + ], + [ + 5, + 96 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 474, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 520, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 571, + "machine": 2, + "duration": 93 + }, + { + "task": 3, + "start": 676, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 770, + "machine": 4, + "duration": 56 + }, + { + "task": 5, + "start": 846, + "machine": 5, + "duration": 8 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 289, + "machine": 0, + "duration": 67 + }, + { + "task": 1, + "start": 356, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 456, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 554, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 644, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 735, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 356, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 451, + "machine": 1, + "duration": 69 + }, + { + "task": 2, + "start": 554, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 644, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 735, + "machine": 4, + "duration": 35 + }, + { + "task": 5, + "start": 786, + "machine": 5, + "duration": 60 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 199, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 305, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 400, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 456, + "machine": 3, + "duration": 57 + }, + { + "task": 4, + "start": 540, + "machine": 4, + "duration": 94 + }, + { + "task": 5, + "start": 664, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 3, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 13, + "machine": 2, + "duration": 18 + }, + { + "task": 3, + "start": 31, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 32, + "machine": 4, + "duration": 45 + }, + { + "task": 5, + "start": 77, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 63, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 64, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 140, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 190, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 260, + "machine": 4, + "duration": 42 + }, + { + "task": 5, + "start": 303, + "machine": 5, + "duration": 60 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 28, + "machine": 0, + "duration": 35 + }, + { + "task": 1, + "start": 109, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 110, + "machine": 2, + "duration": 30 + }, + { + "task": 3, + "start": 140, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 195, + "machine": 4, + "duration": 27 + }, + { + "task": 5, + "start": 239, + "machine": 5, + "duration": 64 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 437, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 546, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 664, + "machine": 2, + "duration": 82 + }, + { + "task": 3, + "start": 753, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 826, + "machine": 4, + "duration": 27 + }, + { + "task": 5, + "start": 854, + "machine": 5, + "duration": 1 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 28, + "machine": 1, + "duration": 4 + }, + { + "task": 2, + "start": 32, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 113, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 140, + "machine": 4, + "duration": 55 + }, + { + "task": 5, + "start": 195, + "machine": 5, + "duration": 44 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 64, + "machine": 0, + "duration": 3 + }, + { + "task": 1, + "start": 207, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 306, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 431, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 449, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 592, + "machine": 5, + "duration": 72 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 67, + "machine": 0, + "duration": 56 + }, + { + "task": 1, + "start": 123, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 187, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 260, + "machine": 3, + "duration": 88 + }, + { + "task": 4, + "start": 348, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 443, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 123, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 199, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 214, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 348, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 443, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 496, + "machine": 5, + "duration": 96 + } + ] + } + ], + "obj": 855.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 93 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 77 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 56 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 8 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 67 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 95 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 98 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 90 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 91 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 51 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 81 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 69 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 17 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 35 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 60 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 90 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 22 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 56 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 57 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 94 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 57 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 10 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 18 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 45 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 69 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 1 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 45 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 47 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 70 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 42 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 60 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 35 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 1 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 30 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 50 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 27 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 64 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 67 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 27 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 1 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 27 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 4 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 78 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 27 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 44 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 3 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 98 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 94 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 2 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 91 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 72 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 56 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 35 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 27 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 88 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 95 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": 5, + "duration": 53 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 0, + "duration": 76 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 1, + "duration": 8 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 2, + "duration": 92 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 3, + "duration": 75 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 4, + "duration": 6 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": 5, + "duration": 96 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 474, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 520, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 571, + "machine": 2, + "duration": 93 + }, + { + "task": 3, + "start": 676, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 770, + "machine": 4, + "duration": 56 + }, + { + "task": 5, + "start": 846, + "machine": 5, + "duration": 8 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 289, + "machine": 0, + "duration": 67 + }, + { + "task": 1, + "start": 356, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 456, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 554, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 644, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 735, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 356, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 451, + "machine": 1, + "duration": 69 + }, + { + "task": 2, + "start": 554, + "machine": 2, + "duration": 17 + }, + { + "task": 3, + "start": 644, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 735, + "machine": 4, + "duration": 35 + }, + { + "task": 5, + "start": 786, + "machine": 5, + "duration": 60 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 199, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 305, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 400, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 456, + "machine": 3, + "duration": 57 + }, + { + "task": 4, + "start": 540, + "machine": 4, + "duration": 94 + }, + { + "task": 5, + "start": 664, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 3, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 13, + "machine": 2, + "duration": 18 + }, + { + "task": 3, + "start": 31, + "machine": 3, + "duration": 1 + }, + { + "task": 4, + "start": 32, + "machine": 4, + "duration": 45 + }, + { + "task": 5, + "start": 77, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 63, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 64, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 140, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 190, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 260, + "machine": 4, + "duration": 42 + }, + { + "task": 5, + "start": 303, + "machine": 5, + "duration": 60 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 28, + "machine": 0, + "duration": 35 + }, + { + "task": 1, + "start": 109, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 110, + "machine": 2, + "duration": 30 + }, + { + "task": 3, + "start": 140, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 195, + "machine": 4, + "duration": 27 + }, + { + "task": 5, + "start": 239, + "machine": 5, + "duration": 64 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 437, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 546, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 664, + "machine": 2, + "duration": 82 + }, + { + "task": 3, + "start": 753, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 826, + "machine": 4, + "duration": 27 + }, + { + "task": 5, + "start": 854, + "machine": 5, + "duration": 1 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 28, + "machine": 1, + "duration": 4 + }, + { + "task": 2, + "start": 32, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 113, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 140, + "machine": 4, + "duration": 55 + }, + { + "task": 5, + "start": 195, + "machine": 5, + "duration": 44 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 64, + "machine": 0, + "duration": 3 + }, + { + "task": 1, + "start": 207, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 306, + "machine": 2, + "duration": 94 + }, + { + "task": 3, + "start": 431, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 449, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 592, + "machine": 5, + "duration": 72 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 67, + "machine": 0, + "duration": 56 + }, + { + "task": 1, + "start": 123, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 187, + "machine": 2, + "duration": 27 + }, + { + "task": 3, + "start": 260, + "machine": 3, + "duration": 88 + }, + { + "task": 4, + "start": 348, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 443, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 123, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 199, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 214, + "machine": 2, + "duration": 92 + }, + { + "task": 3, + "start": 348, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 443, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 496, + "machine": 5, + "duration": 96 + } + ] + } + ], + "context_index": 37, + "input_format": "json", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone at the dispatch desk juggles parcels through scan, label, and sort every shift, and they have to decide which parcel to send first, second, third, and so on. The rule is rigid: every parcel must go through the three steps in that order, no step can be skipped or repeated, and a station can only work on one parcel at a time. A sequence is judged by when the very last parcel is done — the sooner that time happens, the better the sequence. The full list of parcel times and the setup follows below.\n\nThere are 9 parcels (J1, J2, J3, J4, J5, J6, J7, J8, J9), each routed through 5 sequential workstations in order: 0, 1, 2, 3, 4.\n\n| parcel_id | step_index | workstation_id | handling_time |\n|---|---|---|---|\n| J1 | 0 | 0 | 1 |\n| J1 | 1 | 1 | 39 |\n| J1 | 2 | 2 | 69 |\n| J1 | 3 | 3 | 24 |\n| J1 | 4 | 4 | 9 |\n| J2 | 0 | 0 | 30 |\n| J2 | 1 | 1 | 71 |\n| J2 | 2 | 2 | 63 |\n| J2 | 3 | 3 | 66 |\n| J2 | 4 | 4 | 84 |\n| J3 | 0 | 0 | 30 |\n| J3 | 1 | 1 | 4 |\n| J3 | 2 | 2 | 64 |\n| J3 | 3 | 3 | 73 |\n| J3 | 4 | 4 | 23 |\n| J4 | 0 | 0 | 84 |\n| J4 | 1 | 1 | 3 |\n| J4 | 2 | 2 | 61 |\n| J4 | 3 | 3 | 29 |\n| J4 | 4 | 4 | 28 |\n| J5 | 0 | 0 | 98 |\n| J5 | 1 | 1 | 26 |\n| J5 | 2 | 2 | 53 |\n| J5 | 3 | 3 | 50 |\n| J5 | 4 | 4 | 84 |\n| J6 | 0 | 0 | 63 |\n| J6 | 1 | 1 | 27 |\n| J6 | 2 | 2 | 66 |\n| J6 | 3 | 3 | 86 |\n| J6 | 4 | 4 | 40 |\n| J7 | 0 | 0 | 91 |\n| J7 | 1 | 1 | 22 |\n| J7 | 2 | 2 | 73 |\n| J7 | 3 | 3 | 75 |\n| J7 | 4 | 4 | 15 |\n| J8 | 0 | 0 | 93 |\n| J8 | 1 | 1 | 97 |\n| J8 | 2 | 2 | 75 |\n| J8 | 3 | 3 | 29 |\n| J8 | 4 | 4 | 86 |\n| J9 | 0 | 0 | 52 |\n| J9 | 1 | 1 | 62 |\n| J9 | 2 | 2 | 9 |\n| J9 | 3 | 3 | 51 |\n| J9 | 4 | 4 | 47 |\n\nUse this list to pick the parcel order that minimizes when the very last parcel is done.\n\nAlso, when you send back the schedule, please use this simple JSON layout so I can read it easily:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nPretty straightforward — in story terms, each \"job\" is a parcel, and the tasks list shows the steps that parcel goes through (scan, label, sort) in order. \"task\" is the step index in that job's sequence, \"start\" is when that step begins, \"machine\" is which station handles it, and \"duration\" is how long that step takes. Think of it as filling out a little form for each parcel: which parcel, which steps, when each step starts, which station does it, and how long it runs.\n\nThis JSON is just a sketch of the shape I expect, not the actual schedule — you'll fill in the real numbers and IDs when you answer.\n\nPlease 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\".", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 39 + ], + [ + 2, + 69 + ], + [ + 3, + 24 + ], + [ + 4, + 9 + ] + ], + [ + [ + 0, + 30 + ], + [ + 1, + 71 + ], + [ + 2, + 63 + ], + [ + 3, + 66 + ], + [ + 4, + 84 + ] + ], + [ + [ + 0, + 30 + ], + [ + 1, + 4 + ], + [ + 2, + 64 + ], + [ + 3, + 73 + ], + [ + 4, + 23 + ] + ], + [ + [ + 0, + 84 + ], + [ + 1, + 3 + ], + [ + 2, + 61 + ], + [ + 3, + 29 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 98 + ], + [ + 1, + 26 + ], + [ + 2, + 53 + ], + [ + 3, + 50 + ], + [ + 4, + 84 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 27 + ], + [ + 2, + 66 + ], + [ + 3, + 86 + ], + [ + 4, + 40 + ] + ], + [ + [ + 0, + 91 + ], + [ + 1, + 22 + ], + [ + 2, + 73 + ], + [ + 3, + 75 + ], + [ + 4, + 15 + ] + ], + [ + [ + 0, + 93 + ], + [ + 1, + 97 + ], + [ + 2, + 75 + ], + [ + 3, + 29 + ], + [ + 4, + 86 + ] + ], + [ + [ + 0, + 52 + ], + [ + 1, + 62 + ], + [ + 2, + 9 + ], + [ + 3, + 51 + ], + [ + 4, + 47 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 35, + "machine": 1, + "duration": 39 + }, + { + "task": 2, + "start": 99, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 172, + "machine": 3, + "duration": 24 + }, + { + "task": 4, + "start": 196, + "machine": 4, + "duration": 9 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 31, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 74, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 168, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 231, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 297, + "machine": 4, + "duration": 84 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 31, + "machine": 1, + "duration": 4 + }, + { + "task": 2, + "start": 35, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 99, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 172, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 458, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 542, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 553, + "machine": 2, + "duration": 61 + }, + { + "task": 3, + "start": 628, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 657, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 217, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 315, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 389, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 442, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 509, + "machine": 4, + "duration": 84 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 61, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 145, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 231, + "machine": 2, + "duration": 66 + }, + { + "task": 3, + "start": 297, + "machine": 3, + "duration": 86 + }, + { + "task": 4, + "start": 383, + "machine": 4, + "duration": 40 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 367, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 458, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 480, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 553, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 640, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 0, + "duration": 93 + }, + { + "task": 1, + "start": 217, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 314, + "machine": 2, + "duration": 75 + }, + { + "task": 3, + "start": 389, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 423, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 315, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 367, + "machine": 1, + "duration": 62 + }, + { + "task": 2, + "start": 442, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 492, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 593, + "machine": 4, + "duration": 47 + } + ] + } + ], + "obj": 685.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "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": 4, + "duration": 9 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 30 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 63 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 66 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 84 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 30 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 4 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 64 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 23 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 84 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 3 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 61 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 29 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 98 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 53 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 50 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 84 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 63 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 27 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "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": 2, + "duration": 73 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 75 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 15 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 93 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 97 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 75 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 29 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 86 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 52 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 62 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 9 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 47 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 35, + "machine": 1, + "duration": 39 + }, + { + "task": 2, + "start": 99, + "machine": 2, + "duration": 69 + }, + { + "task": 3, + "start": 172, + "machine": 3, + "duration": 24 + }, + { + "task": 4, + "start": 196, + "machine": 4, + "duration": 9 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 31, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 74, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 168, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 231, + "machine": 3, + "duration": 66 + }, + { + "task": 4, + "start": 297, + "machine": 4, + "duration": 84 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 31, + "machine": 1, + "duration": 4 + }, + { + "task": 2, + "start": 35, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 99, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 172, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 458, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 542, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 553, + "machine": 2, + "duration": 61 + }, + { + "task": 3, + "start": 628, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 657, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 217, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 315, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 389, + "machine": 2, + "duration": 53 + }, + { + "task": 3, + "start": 442, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 509, + "machine": 4, + "duration": 84 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 61, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 145, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 231, + "machine": 2, + "duration": 66 + }, + { + "task": 3, + "start": 297, + "machine": 3, + "duration": 86 + }, + { + "task": 4, + "start": 383, + "machine": 4, + "duration": 40 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 367, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 458, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 480, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 553, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 640, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 124, + "machine": 0, + "duration": 93 + }, + { + "task": 1, + "start": 217, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 314, + "machine": 2, + "duration": 75 + }, + { + "task": 3, + "start": 389, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 423, + "machine": 4, + "duration": 86 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 315, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 367, + "machine": 1, + "duration": 62 + }, + { + "task": 2, + "start": 442, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 492, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 593, + "machine": 4, + "duration": 47 + } + ] + } + ], + "context_index": 38, + "input_format": "markdown_table", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "At my job the pipeline is strict — compile, then test, then deploy for every change — and each stage takes a fixed time. I have to slot changes into the build agents without letting any agent do two tasks at once, and every change must go through each stage once. The aim is to have the entire batch finished as soon as possible: the important number is the time when the last deployment completes, found by looking at each change’s deploy finish time and taking the latest. The concrete schedules and durations are provided below.\n\n# nr_changes=11\n# nr_pipeline_stages=5\n# changes=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11\n# pipeline_stages=A, B, C, D, E\nchange_id,stage_index,stage_id,stage_duration\nJ1,0,A,1\nJ1,1,B,52\nJ1,2,C,45\nJ1,3,D,69\nJ1,4,E,62\nJ2,0,A,52\nJ2,1,B,76\nJ2,2,C,31\nJ2,3,D,35\nJ2,4,E,77\nJ3,0,A,68\nJ3,1,B,55\nJ3,2,C,48\nJ3,3,D,76\nJ3,4,E,28\nJ4,0,A,38\nJ4,1,B,69\nJ4,2,C,61\nJ4,3,D,67\nJ4,4,E,35\nJ5,0,A,40\nJ5,1,B,94\nJ5,2,C,12\nJ5,3,D,44\nJ5,4,E,69\nJ6,0,A,16\nJ6,1,B,36\nJ6,2,C,32\nJ6,3,D,28\nJ6,4,E,10\nJ7,0,A,82\nJ7,1,B,97\nJ7,2,C,99\nJ7,3,D,79\nJ7,4,E,88\nJ8,0,A,26\nJ8,1,B,61\nJ8,2,C,51\nJ8,3,D,29\nJ8,4,E,23\nJ9,0,A,76\nJ9,1,B,60\nJ9,2,C,81\nJ9,3,D,27\nJ9,4,E,13\nJ10,0,A,81\nJ10,1,B,53\nJ10,2,C,77\nJ10,3,D,81\nJ10,4,E,91\nJ11,0,A,32\nJ11,1,B,22\nJ11,2,C,3\nJ11,3,D,99\nJ11,4,E,74\n\nIf you want the result in a predictable, machine-friendly layout, just use this JSON shape — nothing fancy, just a list of jobs and their tasks:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a simple form: each top-level entry is a job (a single change), \"tasks\" lists its stages in order, \"task\" is the stage index, \"start\" is when that stage begins, \"machine\" is which build agent handles it, and \"duration\" is how long that stage runs. This JSON is just a sketch of the shape I want back — not the actual filled-in schedule.\n\nPlease make sure to use the exact identifiers from the instance input — don't rename them 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 52 + ], + [ + 2, + 45 + ], + [ + 3, + 69 + ], + [ + 4, + 62 + ] + ], + [ + [ + 0, + 52 + ], + [ + 1, + 76 + ], + [ + 2, + 31 + ], + [ + 3, + 35 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 68 + ], + [ + 1, + 55 + ], + [ + 2, + 48 + ], + [ + 3, + 76 + ], + [ + 4, + 28 + ] + ], + [ + [ + 0, + 38 + ], + [ + 1, + 69 + ], + [ + 2, + 61 + ], + [ + 3, + 67 + ], + [ + 4, + 35 + ] + ], + [ + [ + 0, + 40 + ], + [ + 1, + 94 + ], + [ + 2, + 12 + ], + [ + 3, + 44 + ], + [ + 4, + 69 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 36 + ], + [ + 2, + 32 + ], + [ + 3, + 28 + ], + [ + 4, + 10 + ] + ], + [ + [ + 0, + 82 + ], + [ + 1, + 97 + ], + [ + 2, + 99 + ], + [ + 3, + 79 + ], + [ + 4, + 88 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 61 + ], + [ + 2, + 51 + ], + [ + 3, + 29 + ], + [ + 4, + 23 + ] + ], + [ + [ + 0, + 76 + ], + [ + 1, + 60 + ], + [ + 2, + 81 + ], + [ + 3, + 27 + ], + [ + 4, + 13 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 53 + ], + [ + 2, + 77 + ], + [ + 3, + 81 + ], + [ + 4, + 91 + ] + ], + [ + [ + 0, + 32 + ], + [ + 1, + 22 + ], + [ + 2, + 3 + ], + [ + 3, + 99 + ], + [ + 4, + 74 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 52 + }, + { + "task": 2, + "start": 53, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 98, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 167, + "machine": 4, + "duration": 62 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 381, + "machine": 0, + "duration": 52 + }, + { + "task": 1, + "start": 448, + "machine": 1, + "duration": 76 + }, + { + "task": 2, + "start": 561, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 592, + "machine": 3, + "duration": 35 + }, + { + "task": 4, + "start": 628, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 237, + "machine": 0, + "duration": 68 + }, + { + "task": 1, + "start": 333, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 432, + "machine": 2, + "duration": 48 + }, + { + "task": 3, + "start": 512, + "machine": 3, + "duration": 76 + }, + { + "task": 4, + "start": 600, + "machine": 4, + "duration": 28 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 433, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 524, + "machine": 1, + "duration": 69 + }, + { + "task": 2, + "start": 593, + "machine": 2, + "duration": 61 + }, + { + "task": 3, + "start": 654, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 721, + "machine": 4, + "duration": 35 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 40 + }, + { + "task": 1, + "start": 53, + "machine": 1, + "duration": 94 + }, + { + "task": 2, + "start": 147, + "machine": 2, + "duration": 12 + }, + { + "task": 3, + "start": 167, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 229, + "machine": 4, + "duration": 69 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 471, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 655, + "machine": 1, + "duration": 36 + }, + { + "task": 2, + "start": 706, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 751, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 779, + "machine": 4, + "duration": 10 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 154, + "machine": 0, + "duration": 82 + }, + { + "task": 1, + "start": 236, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 333, + "machine": 2, + "duration": 99 + }, + { + "task": 3, + "start": 433, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 512, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 487, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 594, + "machine": 1, + "duration": 61 + }, + { + "task": 2, + "start": 655, + "machine": 2, + "duration": 51 + }, + { + "task": 3, + "start": 722, + "machine": 3, + "duration": 29 + }, + { + "task": 4, + "start": 756, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 305, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 388, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 480, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 627, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 705, + "machine": 4, + "duration": 13 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 73, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 169, + "machine": 1, + "duration": 53 + }, + { + "task": 2, + "start": 225, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 324, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 405, + "machine": 4, + "duration": 91 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 41, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 147, + "machine": 1, + "duration": 22 + }, + { + "task": 2, + "start": 222, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 225, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 324, + "machine": 4, + "duration": 74 + } + ] + } + ], + "obj": 789.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 52 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 45 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 69 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 62 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 52 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 76 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 31 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 35 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 77 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 68 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 55 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 48 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 76 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 28 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 38 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 69 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 61 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 67 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 35 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 40 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 94 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 12 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 44 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 69 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 16 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 36 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 32 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 28 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 10 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 82 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 97 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 99 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 79 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 88 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 26 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 61 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 51 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 29 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 23 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 76 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 60 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 81 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 27 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 13 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 81 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 53 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 77 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 81 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 91 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 32 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 22 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 3 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 99 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 74 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": "B", + "duration": 52 + }, + { + "task": 2, + "start": 53, + "machine": "C", + "duration": 45 + }, + { + "task": 3, + "start": 98, + "machine": "D", + "duration": 69 + }, + { + "task": 4, + "start": 167, + "machine": "E", + "duration": 62 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 381, + "machine": "A", + "duration": 52 + }, + { + "task": 1, + "start": 448, + "machine": "B", + "duration": 76 + }, + { + "task": 2, + "start": 561, + "machine": "C", + "duration": 31 + }, + { + "task": 3, + "start": 592, + "machine": "D", + "duration": 35 + }, + { + "task": 4, + "start": 628, + "machine": "E", + "duration": 77 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 237, + "machine": "A", + "duration": 68 + }, + { + "task": 1, + "start": 333, + "machine": "B", + "duration": 55 + }, + { + "task": 2, + "start": 432, + "machine": "C", + "duration": 48 + }, + { + "task": 3, + "start": 512, + "machine": "D", + "duration": 76 + }, + { + "task": 4, + "start": 600, + "machine": "E", + "duration": 28 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 433, + "machine": "A", + "duration": 38 + }, + { + "task": 1, + "start": 524, + "machine": "B", + "duration": 69 + }, + { + "task": 2, + "start": 593, + "machine": "C", + "duration": 61 + }, + { + "task": 3, + "start": 654, + "machine": "D", + "duration": 67 + }, + { + "task": 4, + "start": 721, + "machine": "E", + "duration": 35 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": "A", + "duration": 40 + }, + { + "task": 1, + "start": 53, + "machine": "B", + "duration": 94 + }, + { + "task": 2, + "start": 147, + "machine": "C", + "duration": 12 + }, + { + "task": 3, + "start": 167, + "machine": "D", + "duration": 44 + }, + { + "task": 4, + "start": 229, + "machine": "E", + "duration": 69 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 471, + "machine": "A", + "duration": 16 + }, + { + "task": 1, + "start": 655, + "machine": "B", + "duration": 36 + }, + { + "task": 2, + "start": 706, + "machine": "C", + "duration": 32 + }, + { + "task": 3, + "start": 751, + "machine": "D", + "duration": 28 + }, + { + "task": 4, + "start": 779, + "machine": "E", + "duration": 10 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 154, + "machine": "A", + "duration": 82 + }, + { + "task": 1, + "start": 236, + "machine": "B", + "duration": 97 + }, + { + "task": 2, + "start": 333, + "machine": "C", + "duration": 99 + }, + { + "task": 3, + "start": 433, + "machine": "D", + "duration": 79 + }, + { + "task": 4, + "start": 512, + "machine": "E", + "duration": 88 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 487, + "machine": "A", + "duration": 26 + }, + { + "task": 1, + "start": 594, + "machine": "B", + "duration": 61 + }, + { + "task": 2, + "start": 655, + "machine": "C", + "duration": 51 + }, + { + "task": 3, + "start": 722, + "machine": "D", + "duration": 29 + }, + { + "task": 4, + "start": 756, + "machine": "E", + "duration": 23 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 305, + "machine": "A", + "duration": 76 + }, + { + "task": 1, + "start": 388, + "machine": "B", + "duration": 60 + }, + { + "task": 2, + "start": 480, + "machine": "C", + "duration": 81 + }, + { + "task": 3, + "start": 627, + "machine": "D", + "duration": 27 + }, + { + "task": 4, + "start": 705, + "machine": "E", + "duration": 13 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 73, + "machine": "A", + "duration": 81 + }, + { + "task": 1, + "start": 169, + "machine": "B", + "duration": 53 + }, + { + "task": 2, + "start": 225, + "machine": "C", + "duration": 77 + }, + { + "task": 3, + "start": 324, + "machine": "D", + "duration": 81 + }, + { + "task": 4, + "start": 405, + "machine": "E", + "duration": 91 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 41, + "machine": "A", + "duration": 32 + }, + { + "task": 1, + "start": 147, + "machine": "B", + "duration": 22 + }, + { + "task": 2, + "start": 222, + "machine": "C", + "duration": 3 + }, + { + "task": 3, + "start": 225, + "machine": "D", + "duration": 99 + }, + { + "task": 4, + "start": 324, + "machine": "E", + "duration": 74 + } + ] + } + ], + "context_index": 39, + "input_format": "csv", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I run the little canning line and every day I have to line up a batch of cans so each one goes through sterilization, then filling, then sealing — in that exact order. The choice to make is how to time and order those cans down the line so no station ever tries to work on two cans at once and no can skips or repeats a step. A better plan is simply the one that gets the very last can finished sooner; the clock time when the final sealed can leaves the line is the number to watch, and the aim is to make that time as small as possible. The exact batch sizes and step times are shown below.\n\nToday that means I have 12 cans and 6 stations — their identifiers are J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 and A, B, C, D, E, F.\nCan J1, step 0, goes to station A and takes 1.\nCan J1, step 1, goes to station B and takes 65.\nCan J1, step 2, goes to station C and takes 21.\nCan J1, step 3, goes to station D and takes 15.\nCan J1, step 4, goes to station E and takes 16.\nCan J1, step 5, goes to station F and takes 73.\nCan J2, step 0, goes to station A and takes 81.\nCan J2, step 1, goes to station B and takes 98.\nCan J2, step 2, goes to station C and takes 3.\nCan J2, step 3, goes to station D and takes 71.\nCan J2, step 4, goes to station E and takes 7.\nCan J2, step 5, goes to station F and takes 8.\nCan J3, step 0, goes to station A and takes 31.\nCan J3, step 1, goes to station B and takes 80.\nCan J3, step 2, goes to station C and takes 33.\nCan J3, step 3, goes to station D and takes 90.\nCan J3, step 4, goes to station E and takes 36.\nCan J3, step 5, goes to station F and takes 62.\nCan J4, step 0, goes to station A and takes 6.\nCan J4, step 1, goes to station B and takes 42.\nCan J4, step 2, goes to station C and takes 81.\nCan J4, step 3, goes to station D and takes 63.\nCan J4, step 4, goes to station E and takes 71.\nCan J4, step 5, goes to station F and takes 37.\nCan J5, step 0, goes to station A and takes 54.\nCan J5, step 1, goes to station B and takes 68.\nCan J5, step 2, goes to station C and takes 45.\nCan J5, step 3, goes to station D and takes 96.\nCan J5, step 4, goes to station E and takes 69.\nCan J5, step 5, goes to station F and takes 79.\nCan J6, step 0, goes to station A and takes 73.\nCan J6, step 1, goes to station B and takes 74.\nCan J6, step 2, goes to station C and takes 26.\nCan J6, step 3, goes to station D and takes 84.\nCan J6, step 4, goes to station E and takes 62.\nCan J6, step 5, goes to station F and takes 59.\nCan J7, step 0, goes to station A and takes 25.\nCan J7, step 1, goes to station B and takes 27.\nCan J7, step 2, goes to station C and takes 28.\nCan J7, step 3, goes to station D and takes 59.\nCan J7, step 4, goes to station E and takes 2.\nCan J7, step 5, goes to station F and takes 59.\nCan J8, step 0, goes to station A and takes 54.\nCan J8, step 1, goes to station B and takes 3.\nCan J8, step 2, goes to station C and takes 77.\nCan J8, step 3, goes to station D and takes 88.\nCan J8, step 4, goes to station E and takes 17.\nCan J8, step 5, goes to station F and takes 66.\nCan J9, step 0, goes to station A and takes 9.\nCan J9, step 1, goes to station B and takes 35.\nCan J9, step 2, goes to station C and takes 9.\nCan J9, step 3, goes to station D and takes 69.\nCan J9, step 4, goes to station E and takes 26.\nCan J9, step 5, goes to station F and takes 27.\nCan J10, step 0, goes to station A and takes 10.\nCan J10, step 1, goes to station B and takes 49.\nCan J10, step 2, goes to station C and takes 41.\nCan J10, step 3, goes to station D and takes 71.\nCan J10, step 4, goes to station E and takes 64.\nCan J10, step 5, goes to station F and takes 90.\nCan J11, step 0, goes to station A and takes 28.\nCan J11, step 1, goes to station B and takes 86.\nCan J11, step 2, goes to station C and takes 82.\nCan J11, step 3, goes to station D and takes 84.\nCan J11, step 4, goes to station E and takes 91.\nCan J11, step 5, goes to station F and takes 2.\nCan J12, step 0, goes to station A and takes 56.\nCan J12, step 1, goes to station B and takes 35.\nCan J12, step 2, goes to station C and takes 77.\nCan J12, step 3, goes to station D and takes 97.\nCan J12, step 4, goes to station E and takes 56.\nCan J12, step 5, goes to station F and takes 12.\nThat's the lot; I'll sequence these steps to get the final sealed can out as soon as possible.\n\nAlso, when you send the actual schedule back, it'd be handy if you stick to this little JSON layout so I can read it straightaway:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nIt's just a simple form: \"solution\" holds a list of jobs; each job has a job id and a list of its tasks. For each task, \"task\" is which step in the job's sequence, \"start\" is the clock time that step begins, \"machine\" tells which station does it, and \"duration\" is how long that step takes. Think of it like filling out a little card for every can and every step it goes through.\n\nThis JSON is only a sketch of the expected shape, not the real answer. Please make sure to 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 65 + ], + [ + 2, + 21 + ], + [ + 3, + 15 + ], + [ + 4, + 16 + ], + [ + 5, + 73 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 98 + ], + [ + 2, + 3 + ], + [ + 3, + 71 + ], + [ + 4, + 7 + ], + [ + 5, + 8 + ] + ], + [ + [ + 0, + 31 + ], + [ + 1, + 80 + ], + [ + 2, + 33 + ], + [ + 3, + 90 + ], + [ + 4, + 36 + ], + [ + 5, + 62 + ] + ], + [ + [ + 0, + 6 + ], + [ + 1, + 42 + ], + [ + 2, + 81 + ], + [ + 3, + 63 + ], + [ + 4, + 71 + ], + [ + 5, + 37 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 68 + ], + [ + 2, + 45 + ], + [ + 3, + 96 + ], + [ + 4, + 69 + ], + [ + 5, + 79 + ] + ], + [ + [ + 0, + 73 + ], + [ + 1, + 74 + ], + [ + 2, + 26 + ], + [ + 3, + 84 + ], + [ + 4, + 62 + ], + [ + 5, + 59 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 27 + ], + [ + 2, + 28 + ], + [ + 3, + 59 + ], + [ + 4, + 2 + ], + [ + 5, + 59 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 3 + ], + [ + 2, + 77 + ], + [ + 3, + 88 + ], + [ + 4, + 17 + ], + [ + 5, + 66 + ] + ], + [ + [ + 0, + 9 + ], + [ + 1, + 35 + ], + [ + 2, + 9 + ], + [ + 3, + 69 + ], + [ + 4, + 26 + ], + [ + 5, + 27 + ] + ], + [ + [ + 0, + 10 + ], + [ + 1, + 49 + ], + [ + 2, + 41 + ], + [ + 3, + 71 + ], + [ + 4, + 64 + ], + [ + 5, + 90 + ] + ], + [ + [ + 0, + 28 + ], + [ + 1, + 86 + ], + [ + 2, + 82 + ], + [ + 3, + 84 + ], + [ + 4, + 91 + ], + [ + 5, + 2 + ] + ], + [ + [ + 0, + 56 + ], + [ + 1, + 35 + ], + [ + 2, + 77 + ], + [ + 3, + 97 + ], + [ + 4, + 56 + ], + [ + 5, + 12 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 573, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 671, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 736, + "machine": 2, + "duration": 21 + }, + { + "task": 3, + "start": 757, + "machine": 3, + "duration": 15 + }, + { + "task": 4, + "start": 793, + "machine": 4, + "duration": 16 + }, + { + "task": 5, + "start": 855, + "machine": 5, + "duration": 73 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 492, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 573, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 733, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 869, + "machine": 3, + "duration": 71 + }, + { + "task": 4, + "start": 940, + "machine": 4, + "duration": 7 + }, + { + "task": 5, + "start": 947, + "machine": 5, + "duration": 8 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 461, + "machine": 0, + "duration": 31 + }, + { + "task": 1, + "start": 493, + "machine": 1, + "duration": 80 + }, + { + "task": 2, + "start": 577, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 667, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 757, + "machine": 4, + "duration": 36 + }, + { + "task": 5, + "start": 793, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 363, + "machine": 0, + "duration": 6 + }, + { + "task": 1, + "start": 451, + "machine": 1, + "duration": 42 + }, + { + "task": 2, + "start": 496, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 604, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 673, + "machine": 4, + "duration": 71 + }, + { + "task": 5, + "start": 752, + "machine": 5, + "duration": 37 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 309, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 383, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 451, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 508, + "machine": 3, + "duration": 96 + }, + { + "task": 4, + "start": 604, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 673, + "machine": 5, + "duration": 79 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 236, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 309, + "machine": 1, + "duration": 74 + }, + { + "task": 2, + "start": 398, + "machine": 2, + "duration": 26 + }, + { + "task": 3, + "start": 424, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 517, + "machine": 4, + "duration": 62 + }, + { + "task": 5, + "start": 579, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 9, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 44, + "machine": 1, + "duration": 27 + }, + { + "task": 2, + "start": 71, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 122, + "machine": 3, + "duration": 59 + }, + { + "task": 4, + "start": 515, + "machine": 4, + "duration": 2 + }, + { + "task": 5, + "start": 517, + "machine": 5, + "duration": 59 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 72, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 126, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 162, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 252, + "machine": 3, + "duration": 88 + }, + { + "task": 4, + "start": 342, + "machine": 4, + "duration": 17 + }, + { + "task": 5, + "start": 433, + "machine": 5, + "duration": 66 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 44, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 53, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 316, + "machine": 4, + "duration": 26 + }, + { + "task": 5, + "start": 406, + "machine": 5, + "duration": 27 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 62, + "machine": 0, + "duration": 10 + }, + { + "task": 1, + "start": 72, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 121, + "machine": 2, + "duration": 41 + }, + { + "task": 3, + "start": 181, + "machine": 3, + "duration": 71 + }, + { + "task": 4, + "start": 252, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 316, + "machine": 5, + "duration": 90 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 34, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 153, + "machine": 1, + "duration": 86 + }, + { + "task": 2, + "start": 239, + "machine": 2, + "duration": 82 + }, + { + "task": 3, + "start": 340, + "machine": 3, + "duration": 84 + }, + { + "task": 4, + "start": 424, + "machine": 4, + "duration": 91 + }, + { + "task": 5, + "start": 945, + "machine": 5, + "duration": 2 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 180, + "machine": 0, + "duration": 56 + }, + { + "task": 1, + "start": 239, + "machine": 1, + "duration": 35 + }, + { + "task": 2, + "start": 321, + "machine": 2, + "duration": 77 + }, + { + "task": 3, + "start": 772, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 869, + "machine": 4, + "duration": 56 + }, + { + "task": 5, + "start": 933, + "machine": 5, + "duration": 12 + } + ] + } + ], + "obj": 955.0, + "instance_variant": { + "problem_type": "FSP", + "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": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 65 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 21 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 15 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 16 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": "F", + "duration": 73 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 81 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 98 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 3 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 71 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 7 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": "F", + "duration": 8 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 31 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 80 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 33 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 90 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 36 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": "F", + "duration": 62 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 6 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 42 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 81 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 63 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 71 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": "F", + "duration": 37 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 68 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 45 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 96 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 69 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": "F", + "duration": 79 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 73 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 74 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 26 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 84 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": "F", + "duration": 59 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 25 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 27 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 28 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 59 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 2 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": "F", + "duration": 59 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 54 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 3 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 77 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 88 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 17 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": "F", + "duration": 66 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 9 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 35 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 9 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 69 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 26 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": "F", + "duration": 27 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 10 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 41 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 71 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 64 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": "F", + "duration": 90 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 28 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 86 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 82 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 84 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 91 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": "F", + "duration": 2 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 56 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 35 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 77 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 97 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 56 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": "F", + "duration": 12 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 573, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 671, + "machine": "B", + "duration": 65 + }, + { + "task": 2, + "start": 736, + "machine": "C", + "duration": 21 + }, + { + "task": 3, + "start": 757, + "machine": "D", + "duration": 15 + }, + { + "task": 4, + "start": 793, + "machine": "E", + "duration": 16 + }, + { + "task": 5, + "start": 855, + "machine": "F", + "duration": 73 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 492, + "machine": "A", + "duration": 81 + }, + { + "task": 1, + "start": 573, + "machine": "B", + "duration": 98 + }, + { + "task": 2, + "start": 733, + "machine": "C", + "duration": 3 + }, + { + "task": 3, + "start": 869, + "machine": "D", + "duration": 71 + }, + { + "task": 4, + "start": 940, + "machine": "E", + "duration": 7 + }, + { + "task": 5, + "start": 947, + "machine": "F", + "duration": 8 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 461, + "machine": "A", + "duration": 31 + }, + { + "task": 1, + "start": 493, + "machine": "B", + "duration": 80 + }, + { + "task": 2, + "start": 577, + "machine": "C", + "duration": 33 + }, + { + "task": 3, + "start": 667, + "machine": "D", + "duration": 90 + }, + { + "task": 4, + "start": 757, + "machine": "E", + "duration": 36 + }, + { + "task": 5, + "start": 793, + "machine": "F", + "duration": 62 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 363, + "machine": "A", + "duration": 6 + }, + { + "task": 1, + "start": 451, + "machine": "B", + "duration": 42 + }, + { + "task": 2, + "start": 496, + "machine": "C", + "duration": 81 + }, + { + "task": 3, + "start": 604, + "machine": "D", + "duration": 63 + }, + { + "task": 4, + "start": 673, + "machine": "E", + "duration": 71 + }, + { + "task": 5, + "start": 752, + "machine": "F", + "duration": 37 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 309, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 383, + "machine": "B", + "duration": 68 + }, + { + "task": 2, + "start": 451, + "machine": "C", + "duration": 45 + }, + { + "task": 3, + "start": 508, + "machine": "D", + "duration": 96 + }, + { + "task": 4, + "start": 604, + "machine": "E", + "duration": 69 + }, + { + "task": 5, + "start": 673, + "machine": "F", + "duration": 79 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 236, + "machine": "A", + "duration": 73 + }, + { + "task": 1, + "start": 309, + "machine": "B", + "duration": 74 + }, + { + "task": 2, + "start": 398, + "machine": "C", + "duration": 26 + }, + { + "task": 3, + "start": 424, + "machine": "D", + "duration": 84 + }, + { + "task": 4, + "start": 517, + "machine": "E", + "duration": 62 + }, + { + "task": 5, + "start": 579, + "machine": "F", + "duration": 59 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 9, + "machine": "A", + "duration": 25 + }, + { + "task": 1, + "start": 44, + "machine": "B", + "duration": 27 + }, + { + "task": 2, + "start": 71, + "machine": "C", + "duration": 28 + }, + { + "task": 3, + "start": 122, + "machine": "D", + "duration": 59 + }, + { + "task": 4, + "start": 515, + "machine": "E", + "duration": 2 + }, + { + "task": 5, + "start": 517, + "machine": "F", + "duration": 59 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 72, + "machine": "A", + "duration": 54 + }, + { + "task": 1, + "start": 126, + "machine": "B", + "duration": 3 + }, + { + "task": 2, + "start": 162, + "machine": "C", + "duration": 77 + }, + { + "task": 3, + "start": 252, + "machine": "D", + "duration": 88 + }, + { + "task": 4, + "start": 342, + "machine": "E", + "duration": 17 + }, + { + "task": 5, + "start": 433, + "machine": "F", + "duration": 66 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 9 + }, + { + "task": 1, + "start": 9, + "machine": "B", + "duration": 35 + }, + { + "task": 2, + "start": 44, + "machine": "C", + "duration": 9 + }, + { + "task": 3, + "start": 53, + "machine": "D", + "duration": 69 + }, + { + "task": 4, + "start": 316, + "machine": "E", + "duration": 26 + }, + { + "task": 5, + "start": 406, + "machine": "F", + "duration": 27 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 62, + "machine": "A", + "duration": 10 + }, + { + "task": 1, + "start": 72, + "machine": "B", + "duration": 49 + }, + { + "task": 2, + "start": 121, + "machine": "C", + "duration": 41 + }, + { + "task": 3, + "start": 181, + "machine": "D", + "duration": 71 + }, + { + "task": 4, + "start": 252, + "machine": "E", + "duration": 64 + }, + { + "task": 5, + "start": 316, + "machine": "F", + "duration": 90 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 34, + "machine": "A", + "duration": 28 + }, + { + "task": 1, + "start": 153, + "machine": "B", + "duration": 86 + }, + { + "task": 2, + "start": 239, + "machine": "C", + "duration": 82 + }, + { + "task": 3, + "start": 340, + "machine": "D", + "duration": 84 + }, + { + "task": 4, + "start": 424, + "machine": "E", + "duration": 91 + }, + { + "task": 5, + "start": 945, + "machine": "F", + "duration": 2 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 180, + "machine": "A", + "duration": 56 + }, + { + "task": 1, + "start": 239, + "machine": "B", + "duration": 35 + }, + { + "task": 2, + "start": 321, + "machine": "C", + "duration": 77 + }, + { + "task": 3, + "start": 772, + "machine": "D", + "duration": 97 + }, + { + "task": 4, + "start": 869, + "machine": "E", + "duration": 56 + }, + { + "task": 5, + "start": 933, + "machine": "F", + "duration": 12 + } + ] + } + ], + "context_index": 40, + "input_format": "nl", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "We manage a small appliances repair shop where every item must go through diagnosis, parts replacement, then final testing in that order. The job is to line things up so no station is double-booked and nothing gets skipped or repeated, and to pick the sequence that gets the very last unit ready for pickup as early as possible — that completion moment is found by looking at the end times of the final tests and taking the largest. Concrete runtimes and the list of units are shown below.\n\nWe have 12 units and 5 stations, with unit IDs J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12 and station IDs A, B, C, D, E.\n\n| unit_id | step_index | station_id | step_duration_minutes |\n|---|---|---|---|\n| J1 | 0 | A | 1 |\n| J1 | 1 | B | 78 |\n| J1 | 2 | C | 96 |\n| J1 | 3 | D | 61 |\n| J1 | 4 | E | 69 |\n| J2 | 0 | A | 95 |\n| J2 | 1 | B | 85 |\n| J2 | 2 | C | 67 |\n| J2 | 3 | D | 70 |\n| J2 | 4 | E | 64 |\n| J3 | 0 | A | 45 |\n| J3 | 1 | B | 59 |\n| J3 | 2 | C | 14 |\n| J3 | 3 | D | 83 |\n| J3 | 4 | E | 39 |\n| J4 | 0 | A | 44 |\n| J4 | 1 | B | 4 |\n| J4 | 2 | C | 63 |\n| J4 | 3 | D | 44 |\n| J4 | 4 | E | 48 |\n| J5 | 0 | A | 24 |\n| J5 | 1 | B | 32 |\n| J5 | 2 | C | 30 |\n| J5 | 3 | D | 30 |\n| J5 | 4 | E | 39 |\n| J6 | 0 | A | 21 |\n| J6 | 1 | B | 54 |\n| J6 | 2 | C | 62 |\n| J6 | 3 | D | 12 |\n| J6 | 4 | E | 50 |\n| J7 | 0 | A | 64 |\n| J7 | 1 | B | 50 |\n| J7 | 2 | C | 52 |\n| J7 | 3 | D | 89 |\n| J7 | 4 | E | 36 |\n| J8 | 0 | A | 91 |\n| J8 | 1 | B | 87 |\n| J8 | 2 | C | 3 |\n| J8 | 3 | D | 27 |\n| J8 | 4 | E | 95 |\n| J9 | 0 | A | 26 |\n| J9 | 1 | B | 57 |\n| J9 | 2 | C | 26 |\n| J9 | 3 | D | 77 |\n| J9 | 4 | E | 43 |\n| J10 | 0 | A | 96 |\n| J10 | 1 | B | 79 |\n| J10 | 2 | C | 55 |\n| J10 | 3 | D | 36 |\n| J10 | 4 | E | 78 |\n| J11 | 0 | A | 85 |\n| J11 | 1 | B | 18 |\n| J11 | 2 | C | 50 |\n| J11 | 3 | D | 54 |\n| J11 | 4 | E | 46 |\n| J12 | 0 | A | 65 |\n| J12 | 1 | B | 89 |\n| J12 | 2 | C | 61 |\n| J12 | 3 | D | 55 |\n| J12 | 4 | E | 96 |\n\nWe schedule these steps to avoid double-booking and to minimize when the last final test finishes.\n\nOh, and when you send the planned schedule back, a simple JSON sketch like this is perfect to capture the structure:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it as a little form: \"solution\" is a list of repair jobs; each job entry has the job identifier under \"job\" and a \"tasks\" list showing the steps that job goes through. For each task we note which step number it is (\"task\"), when that step starts (\"start\"), which station handles it (\"machine\"), and how long it takes (\"duration\"). This is just the expected shape — a sketch of the format, not the actual schedule.\n\nPlease make sure to use the exact identifiers given in the instance input — no renaming and no invented labels. \nFor 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 78 + ], + [ + 2, + 96 + ], + [ + 3, + 61 + ], + [ + 4, + 69 + ] + ], + [ + [ + 0, + 95 + ], + [ + 1, + 85 + ], + [ + 2, + 67 + ], + [ + 3, + 70 + ], + [ + 4, + 64 + ] + ], + [ + [ + 0, + 45 + ], + [ + 1, + 59 + ], + [ + 2, + 14 + ], + [ + 3, + 83 + ], + [ + 4, + 39 + ] + ], + [ + [ + 0, + 44 + ], + [ + 1, + 4 + ], + [ + 2, + 63 + ], + [ + 3, + 44 + ], + [ + 4, + 48 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 32 + ], + [ + 2, + 30 + ], + [ + 3, + 30 + ], + [ + 4, + 39 + ] + ], + [ + [ + 0, + 21 + ], + [ + 1, + 54 + ], + [ + 2, + 62 + ], + [ + 3, + 12 + ], + [ + 4, + 50 + ] + ], + [ + [ + 0, + 64 + ], + [ + 1, + 50 + ], + [ + 2, + 52 + ], + [ + 3, + 89 + ], + [ + 4, + 36 + ] + ], + [ + [ + 0, + 91 + ], + [ + 1, + 87 + ], + [ + 2, + 3 + ], + [ + 3, + 27 + ], + [ + 4, + 95 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 57 + ], + [ + 2, + 26 + ], + [ + 3, + 77 + ], + [ + 4, + 43 + ] + ], + [ + [ + 0, + 96 + ], + [ + 1, + 79 + ], + [ + 2, + 55 + ], + [ + 3, + 36 + ], + [ + 4, + 78 + ] + ], + [ + [ + 0, + 85 + ], + [ + 1, + 18 + ], + [ + 2, + 50 + ], + [ + 3, + 54 + ], + [ + 4, + 46 + ] + ], + [ + [ + 0, + 65 + ], + [ + 1, + 89 + ], + [ + 2, + 61 + ], + [ + 3, + 55 + ], + [ + 4, + 96 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 94, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 117, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 202, + "machine": 2, + "duration": 96 + }, + { + "task": 3, + "start": 428, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 519, + "machine": 4, + "duration": 69 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 402, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 502, + "machine": 1, + "duration": 85 + }, + { + "task": 2, + "start": 587, + "machine": 2, + "duration": 67 + }, + { + "task": 3, + "start": 654, + "machine": 3, + "duration": 70 + }, + { + "task": 4, + "start": 724, + "machine": 4, + "duration": 64 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 292, + "machine": 0, + "duration": 45 + }, + { + "task": 1, + "start": 354, + "machine": 1, + "duration": 59 + }, + { + "task": 2, + "start": 416, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 489, + "machine": 3, + "duration": 83 + }, + { + "task": 4, + "start": 588, + "machine": 4, + "duration": 39 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 50, + "machine": 0, + "duration": 44 + }, + { + "task": 1, + "start": 113, + "machine": 1, + "duration": 4 + }, + { + "task": 2, + "start": 139, + "machine": 2, + "duration": 63 + }, + { + "task": 3, + "start": 216, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 262, + "machine": 4, + "duration": 48 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 24, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 56, + "machine": 2, + "duration": 30 + }, + { + "task": 3, + "start": 86, + "machine": 3, + "duration": 30 + }, + { + "task": 4, + "start": 116, + "machine": 4, + "duration": 39 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 271, + "machine": 0, + "duration": 21 + }, + { + "task": 1, + "start": 300, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 354, + "machine": 2, + "duration": 62 + }, + { + "task": 3, + "start": 416, + "machine": 3, + "duration": 12 + }, + { + "task": 4, + "start": 469, + "machine": 4, + "duration": 50 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 593, + "machine": 0, + "duration": 64 + }, + { + "task": 1, + "start": 672, + "machine": 1, + "duration": 50 + }, + { + "task": 2, + "start": 727, + "machine": 2, + "duration": 52 + }, + { + "task": 3, + "start": 779, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 868, + "machine": 4, + "duration": 36 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 95, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 195, + "machine": 1, + "duration": 87 + }, + { + "task": 2, + "start": 298, + "machine": 2, + "duration": 3 + }, + { + "task": 3, + "start": 301, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 328, + "machine": 4, + "duration": 95 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 24, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 56, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 113, + "machine": 2, + "duration": 26 + }, + { + "task": 3, + "start": 139, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 216, + "machine": 4, + "duration": 43 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 497, + "machine": 0, + "duration": 96 + }, + { + "task": 1, + "start": 593, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 672, + "machine": 2, + "duration": 55 + }, + { + "task": 3, + "start": 727, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 788, + "machine": 4, + "duration": 78 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 186, + "machine": 0, + "duration": 85 + }, + { + "task": 1, + "start": 282, + "machine": 1, + "duration": 18 + }, + { + "task": 2, + "start": 301, + "machine": 2, + "duration": 50 + }, + { + "task": 3, + "start": 351, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 423, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 337, + "machine": 0, + "duration": 65 + }, + { + "task": 1, + "start": 413, + "machine": 1, + "duration": 89 + }, + { + "task": 2, + "start": 502, + "machine": 2, + "duration": 61 + }, + { + "task": 3, + "start": 572, + "machine": 3, + "duration": 55 + }, + { + "task": 4, + "start": 627, + "machine": 4, + "duration": 96 + } + ] + } + ], + "obj": 904.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 12, + "nr_machines": 5, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9", + "J10", + "J11", + "J12" + ], + "machines": [ + "A", + "B", + "C", + "D", + "E" + ], + "records": [ + { + "job_id": "J1", + "task_id": 0, + "machine_id": "A", + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": "B", + "duration": 78 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": "C", + "duration": 96 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": "D", + "duration": 61 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": "E", + "duration": 69 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": "A", + "duration": 95 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": "B", + "duration": 85 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": "C", + "duration": 67 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": "D", + "duration": 70 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": "E", + "duration": 64 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": "A", + "duration": 45 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": "B", + "duration": 59 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": "C", + "duration": 14 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": "D", + "duration": 83 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": "E", + "duration": 39 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": "A", + "duration": 44 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": "B", + "duration": 4 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": "C", + "duration": 63 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": "D", + "duration": 44 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": "E", + "duration": 48 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": "A", + "duration": 24 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": "B", + "duration": 32 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": "C", + "duration": 30 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": "D", + "duration": 30 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": "E", + "duration": 39 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": "A", + "duration": 21 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": "B", + "duration": 54 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": "C", + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": "D", + "duration": 12 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": "E", + "duration": 50 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": "A", + "duration": 64 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": "B", + "duration": 50 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": "C", + "duration": 52 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": "D", + "duration": 89 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": "E", + "duration": 36 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": "A", + "duration": 91 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": "B", + "duration": 87 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": "C", + "duration": 3 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": "D", + "duration": 27 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": "E", + "duration": 95 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": "A", + "duration": 26 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": "B", + "duration": 57 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": "C", + "duration": 26 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": "D", + "duration": 77 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": "E", + "duration": 43 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": "A", + "duration": 96 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": "B", + "duration": 79 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": "C", + "duration": 55 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": "D", + "duration": 36 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": "E", + "duration": 78 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": "A", + "duration": 85 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": "B", + "duration": 18 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": "C", + "duration": 50 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": "D", + "duration": 54 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": "E", + "duration": 46 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": "A", + "duration": 65 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": "B", + "duration": 89 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": "C", + "duration": 61 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": "D", + "duration": 55 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": "E", + "duration": 96 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 94, + "machine": "A", + "duration": 1 + }, + { + "task": 1, + "start": 117, + "machine": "B", + "duration": 78 + }, + { + "task": 2, + "start": 202, + "machine": "C", + "duration": 96 + }, + { + "task": 3, + "start": 428, + "machine": "D", + "duration": 61 + }, + { + "task": 4, + "start": 519, + "machine": "E", + "duration": 69 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 402, + "machine": "A", + "duration": 95 + }, + { + "task": 1, + "start": 502, + "machine": "B", + "duration": 85 + }, + { + "task": 2, + "start": 587, + "machine": "C", + "duration": 67 + }, + { + "task": 3, + "start": 654, + "machine": "D", + "duration": 70 + }, + { + "task": 4, + "start": 724, + "machine": "E", + "duration": 64 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 292, + "machine": "A", + "duration": 45 + }, + { + "task": 1, + "start": 354, + "machine": "B", + "duration": 59 + }, + { + "task": 2, + "start": 416, + "machine": "C", + "duration": 14 + }, + { + "task": 3, + "start": 489, + "machine": "D", + "duration": 83 + }, + { + "task": 4, + "start": 588, + "machine": "E", + "duration": 39 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 50, + "machine": "A", + "duration": 44 + }, + { + "task": 1, + "start": 113, + "machine": "B", + "duration": 4 + }, + { + "task": 2, + "start": 139, + "machine": "C", + "duration": 63 + }, + { + "task": 3, + "start": 216, + "machine": "D", + "duration": 44 + }, + { + "task": 4, + "start": 262, + "machine": "E", + "duration": 48 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": "A", + "duration": 24 + }, + { + "task": 1, + "start": 24, + "machine": "B", + "duration": 32 + }, + { + "task": 2, + "start": 56, + "machine": "C", + "duration": 30 + }, + { + "task": 3, + "start": 86, + "machine": "D", + "duration": 30 + }, + { + "task": 4, + "start": 116, + "machine": "E", + "duration": 39 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 271, + "machine": "A", + "duration": 21 + }, + { + "task": 1, + "start": 300, + "machine": "B", + "duration": 54 + }, + { + "task": 2, + "start": 354, + "machine": "C", + "duration": 62 + }, + { + "task": 3, + "start": 416, + "machine": "D", + "duration": 12 + }, + { + "task": 4, + "start": 469, + "machine": "E", + "duration": 50 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 593, + "machine": "A", + "duration": 64 + }, + { + "task": 1, + "start": 672, + "machine": "B", + "duration": 50 + }, + { + "task": 2, + "start": 727, + "machine": "C", + "duration": 52 + }, + { + "task": 3, + "start": 779, + "machine": "D", + "duration": 89 + }, + { + "task": 4, + "start": 868, + "machine": "E", + "duration": 36 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 95, + "machine": "A", + "duration": 91 + }, + { + "task": 1, + "start": 195, + "machine": "B", + "duration": 87 + }, + { + "task": 2, + "start": 298, + "machine": "C", + "duration": 3 + }, + { + "task": 3, + "start": 301, + "machine": "D", + "duration": 27 + }, + { + "task": 4, + "start": 328, + "machine": "E", + "duration": 95 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 24, + "machine": "A", + "duration": 26 + }, + { + "task": 1, + "start": 56, + "machine": "B", + "duration": 57 + }, + { + "task": 2, + "start": 113, + "machine": "C", + "duration": 26 + }, + { + "task": 3, + "start": 139, + "machine": "D", + "duration": 77 + }, + { + "task": 4, + "start": 216, + "machine": "E", + "duration": 43 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 497, + "machine": "A", + "duration": 96 + }, + { + "task": 1, + "start": 593, + "machine": "B", + "duration": 79 + }, + { + "task": 2, + "start": 672, + "machine": "C", + "duration": 55 + }, + { + "task": 3, + "start": 727, + "machine": "D", + "duration": 36 + }, + { + "task": 4, + "start": 788, + "machine": "E", + "duration": 78 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 186, + "machine": "A", + "duration": 85 + }, + { + "task": 1, + "start": 282, + "machine": "B", + "duration": 18 + }, + { + "task": 2, + "start": 301, + "machine": "C", + "duration": 50 + }, + { + "task": 3, + "start": 351, + "machine": "D", + "duration": 54 + }, + { + "task": 4, + "start": 423, + "machine": "E", + "duration": 46 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 337, + "machine": "A", + "duration": 65 + }, + { + "task": 1, + "start": 413, + "machine": "B", + "duration": 89 + }, + { + "task": 2, + "start": 502, + "machine": "C", + "duration": 61 + }, + { + "task": 3, + "start": 572, + "machine": "D", + "duration": 55 + }, + { + "task": 4, + "start": 627, + "machine": "E", + "duration": 96 + } + ] + } + ], + "context_index": 41, + "input_format": "markdown_table", + "input_index_base": "names" + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone set up a potluck and left a batch of casseroles to be handled — each one needs prep, then baking, then cooling, and the challenge is to schedule when each casserole starts each step so the meal is ready fast. Because the prep station, oven, and cooling area can only work on one casserole at a time and no step can be skipped or repeated, the timing choices matter. The better the timing, the sooner the last casserole is completed; the plan is evaluated by that final finish time on the clock. Specifics about how long each step takes and how many dishes there are appear below.\n\n{\n \"nr_casseroles\": 11,\n \"nr_appliances\": 5,\n \"casserole_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\",\n \"J10\",\n \"J11\"\n ],\n \"appliance_ids\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"tasks\": [\n {\n \"casserole_id\": \"J1\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 1\n },\n {\n \"casserole_id\": \"J1\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 91\n },\n {\n \"casserole_id\": \"J1\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 71\n },\n {\n \"casserole_id\": \"J1\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 7\n },\n {\n \"casserole_id\": \"J1\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 22\n },\n {\n \"casserole_id\": \"J2\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 18\n },\n {\n \"casserole_id\": \"J2\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 90\n },\n {\n \"casserole_id\": \"J2\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 35\n },\n {\n \"casserole_id\": \"J2\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 38\n },\n {\n \"casserole_id\": \"J2\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 58\n },\n {\n \"casserole_id\": \"J3\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 83\n },\n {\n \"casserole_id\": \"J3\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 12\n },\n {\n \"casserole_id\": \"J3\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 97\n },\n {\n \"casserole_id\": \"J3\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 87\n },\n {\n \"casserole_id\": \"J3\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 44\n },\n {\n \"casserole_id\": \"J4\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 96\n },\n {\n \"casserole_id\": \"J4\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 70\n },\n {\n \"casserole_id\": \"J4\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 64\n },\n {\n \"casserole_id\": \"J4\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 82\n },\n {\n \"casserole_id\": \"J4\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 55\n },\n {\n \"casserole_id\": \"J5\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 65\n },\n {\n \"casserole_id\": \"J5\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 1\n },\n {\n \"casserole_id\": \"J5\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 88\n },\n {\n \"casserole_id\": \"J5\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 23\n },\n {\n \"casserole_id\": \"J5\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 23\n },\n {\n \"casserole_id\": \"J6\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 73\n },\n {\n \"casserole_id\": \"J6\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 63\n },\n {\n \"casserole_id\": \"J6\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 28\n },\n {\n \"casserole_id\": \"J6\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 53\n },\n {\n \"casserole_id\": \"J6\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 20\n },\n {\n \"casserole_id\": \"J7\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 56\n },\n {\n \"casserole_id\": \"J7\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 26\n },\n {\n \"casserole_id\": \"J7\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 78\n },\n {\n \"casserole_id\": \"J7\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 94\n },\n {\n \"casserole_id\": \"J7\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 10\n },\n {\n \"casserole_id\": \"J8\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 25\n },\n {\n \"casserole_id\": \"J8\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 51\n },\n {\n \"casserole_id\": \"J8\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 78\n },\n {\n \"casserole_id\": \"J8\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 26\n },\n {\n \"casserole_id\": \"J8\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 32\n },\n {\n \"casserole_id\": \"J9\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 50\n },\n {\n \"casserole_id\": \"J9\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 55\n },\n {\n \"casserole_id\": \"J9\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 98\n },\n {\n \"casserole_id\": \"J9\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 53\n },\n {\n \"casserole_id\": \"J9\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 8\n },\n {\n \"casserole_id\": \"J10\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 4\n },\n {\n \"casserole_id\": \"J10\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 43\n },\n {\n \"casserole_id\": \"J10\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 43\n },\n {\n \"casserole_id\": \"J10\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 63\n },\n {\n \"casserole_id\": \"J10\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 22\n },\n {\n \"casserole_id\": \"J11\",\n \"step_index\": 0,\n \"appliance_id\": 0,\n \"duration_minutes\": 62\n },\n {\n \"casserole_id\": \"J11\",\n \"step_index\": 1,\n \"appliance_id\": 1,\n \"duration_minutes\": 65\n },\n {\n \"casserole_id\": \"J11\",\n \"step_index\": 2,\n \"appliance_id\": 2,\n \"duration_minutes\": 73\n },\n {\n \"casserole_id\": \"J11\",\n \"step_index\": 3,\n \"appliance_id\": 3,\n \"duration_minutes\": 81\n },\n {\n \"casserole_id\": \"J11\",\n \"step_index\": 4,\n \"appliance_id\": 4,\n \"duration_minutes\": 82\n }\n ]\n}\n\nIf you want to hand me the schedule, a simple JSON layout works nicely — something like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it as a little form: \"solution\" holds a list of casseroles, each entry's \"job\" is the dish identifier, and \"tasks\" is the sequence of steps for that dish. Each task line says which step it is (\"task\"), when that step starts on the clock (\"start\"), which station it's on (\"machine\"), and how long it runs (\"duration\"). This is just a sketch of the shape I expect, not the actual plan.\n\nPlease make sure to use the exact identifiers from the instance input — don't 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 91 + ], + [ + 2, + 71 + ], + [ + 3, + 7 + ], + [ + 4, + 22 + ] + ], + [ + [ + 0, + 18 + ], + [ + 1, + 90 + ], + [ + 2, + 35 + ], + [ + 3, + 38 + ], + [ + 4, + 58 + ] + ], + [ + [ + 0, + 83 + ], + [ + 1, + 12 + ], + [ + 2, + 97 + ], + [ + 3, + 87 + ], + [ + 4, + 44 + ] + ], + [ + [ + 0, + 96 + ], + [ + 1, + 70 + ], + [ + 2, + 64 + ], + [ + 3, + 82 + ], + [ + 4, + 55 + ] + ], + [ + [ + 0, + 65 + ], + [ + 1, + 1 + ], + [ + 2, + 88 + ], + [ + 3, + 23 + ], + [ + 4, + 23 + ] + ], + [ + [ + 0, + 73 + ], + [ + 1, + 63 + ], + [ + 2, + 28 + ], + [ + 3, + 53 + ], + [ + 4, + 20 + ] + ], + [ + [ + 0, + 56 + ], + [ + 1, + 26 + ], + [ + 2, + 78 + ], + [ + 3, + 94 + ], + [ + 4, + 10 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 51 + ], + [ + 2, + 78 + ], + [ + 3, + 26 + ], + [ + 4, + 32 + ] + ], + [ + [ + 0, + 50 + ], + [ + 1, + 55 + ], + [ + 2, + 98 + ], + [ + 3, + 53 + ], + [ + 4, + 8 + ] + ], + [ + [ + 0, + 4 + ], + [ + 1, + 43 + ], + [ + 2, + 43 + ], + [ + 3, + 63 + ], + [ + 4, + 22 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 65 + ], + [ + 2, + 73 + ], + [ + 3, + 81 + ], + [ + 4, + 82 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 4, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 608, + "machine": 1, + "duration": 91 + }, + { + "task": 2, + "start": 729, + "machine": 2, + "duration": 71 + }, + { + "task": 3, + "start": 800, + "machine": 3, + "duration": 7 + }, + { + "task": 4, + "start": 807, + "machine": 4, + "duration": 22 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 70, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 88, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 178, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 213, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 251, + "machine": 4, + "duration": 58 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 88, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 178, + "machine": 1, + "duration": 12 + }, + { + "task": 2, + "start": 213, + "machine": 2, + "duration": 97 + }, + { + "task": 3, + "start": 310, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 397, + "machine": 4, + "duration": 44 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 387, + "machine": 0, + "duration": 96 + }, + { + "task": 1, + "start": 483, + "machine": 1, + "duration": 70 + }, + { + "task": 2, + "start": 567, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 662, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 744, + "machine": 4, + "duration": 55 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 5, + "machine": 0, + "duration": 65 + }, + { + "task": 1, + "start": 70, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 90, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 178, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 201, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 233, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 382, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 461, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 489, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 560, + "machine": 4, + "duration": 20 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 331, + "machine": 0, + "duration": 56 + }, + { + "task": 1, + "start": 445, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 489, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 568, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 662, + "machine": 4, + "duration": 10 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 306, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 331, + "machine": 1, + "duration": 51 + }, + { + "task": 2, + "start": 383, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 542, + "machine": 3, + "duration": 26 + }, + { + "task": 4, + "start": 580, + "machine": 4, + "duration": 32 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 483, + "machine": 0, + "duration": 50 + }, + { + "task": 1, + "start": 553, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 631, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 744, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 799, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 4, + "machine": 1, + "duration": 43 + }, + { + "task": 2, + "start": 47, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 90, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 153, + "machine": 4, + "duration": 22 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 171, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 233, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 310, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 397, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 478, + "machine": 4, + "duration": 82 + } + ] + } + ], + "obj": 829.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 91 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 71 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 7 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 22 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 18 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 90 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "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": 0, + "duration": 83 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 12 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 97 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 44 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 96 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 70 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 64 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 82 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 55 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 65 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 23 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 23 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 73 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 63 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 28 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 20 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 56 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 78 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 94 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 10 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 25 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 51 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 78 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 26 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 32 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 50 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 55 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 98 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 4 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 43 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "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": 0, + "duration": 62 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 65 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 73 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 81 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 82 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 4, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 608, + "machine": 1, + "duration": 91 + }, + { + "task": 2, + "start": 729, + "machine": 2, + "duration": 71 + }, + { + "task": 3, + "start": 800, + "machine": 3, + "duration": 7 + }, + { + "task": 4, + "start": 807, + "machine": 4, + "duration": 22 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 70, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 88, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 178, + "machine": 2, + "duration": 35 + }, + { + "task": 3, + "start": 213, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 251, + "machine": 4, + "duration": 58 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 88, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 178, + "machine": 1, + "duration": 12 + }, + { + "task": 2, + "start": 213, + "machine": 2, + "duration": 97 + }, + { + "task": 3, + "start": 310, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 397, + "machine": 4, + "duration": 44 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 387, + "machine": 0, + "duration": 96 + }, + { + "task": 1, + "start": 483, + "machine": 1, + "duration": 70 + }, + { + "task": 2, + "start": 567, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 662, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 744, + "machine": 4, + "duration": 55 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 5, + "machine": 0, + "duration": 65 + }, + { + "task": 1, + "start": 70, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 90, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 178, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 201, + "machine": 4, + "duration": 23 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 233, + "machine": 0, + "duration": 73 + }, + { + "task": 1, + "start": 382, + "machine": 1, + "duration": 63 + }, + { + "task": 2, + "start": 461, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 489, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 560, + "machine": 4, + "duration": 20 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 331, + "machine": 0, + "duration": 56 + }, + { + "task": 1, + "start": 445, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 489, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 568, + "machine": 3, + "duration": 94 + }, + { + "task": 4, + "start": 662, + "machine": 4, + "duration": 10 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 306, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 331, + "machine": 1, + "duration": 51 + }, + { + "task": 2, + "start": 383, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 542, + "machine": 3, + "duration": 26 + }, + { + "task": 4, + "start": 580, + "machine": 4, + "duration": 32 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 483, + "machine": 0, + "duration": 50 + }, + { + "task": 1, + "start": 553, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 631, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 744, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 799, + "machine": 4, + "duration": 8 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 4, + "machine": 1, + "duration": 43 + }, + { + "task": 2, + "start": 47, + "machine": 2, + "duration": 43 + }, + { + "task": 3, + "start": 90, + "machine": 3, + "duration": 63 + }, + { + "task": 4, + "start": 153, + "machine": 4, + "duration": 22 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 171, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 233, + "machine": 1, + "duration": 65 + }, + { + "task": 2, + "start": 310, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 397, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 478, + "machine": 4, + "duration": 82 + } + ] + } + ], + "context_index": 42, + "input_format": "json", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "I was thinking about a busy bakery where every loaf has to go from the mixer to the oven to the glazing bench in that exact order, each step taking a set amount of time. The decision is how to line up the loaves so that the whole batch is finished as quickly as possible — the plan that finishes the very last loaf sooner is the better one. To see which plan wins, look at when each loaf comes off the glazing bench and take the latest finishing time; that number is what needs to be as small as possible. Remember, the mixer, oven, and glazing station can each handle only one loaf at a time, and every loaf must go through all three steps exactly once. The exact loaf times and details are shown below.\n\nBelow are the details for the 10 loaves, the 6 stations, the loaf IDs J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, and the station sequence 0, 1, 2, 3, 4, 5.\n\n| loaf_id | step_index | station_id | processing_time |\n|---|---|---|---|\n| J1 | 0 | 0 | 1 |\n| J1 | 1 | 1 | 5 |\n| J1 | 2 | 2 | 47 |\n| J1 | 3 | 3 | 53 |\n| J1 | 4 | 4 | 75 |\n| J1 | 5 | 5 | 39 |\n| J2 | 0 | 0 | 95 |\n| J2 | 1 | 1 | 3 |\n| J2 | 2 | 2 | 7 |\n| J2 | 3 | 3 | 51 |\n| J2 | 4 | 4 | 22 |\n| J2 | 5 | 5 | 63 |\n| J3 | 0 | 0 | 80 |\n| J3 | 1 | 1 | 90 |\n| J3 | 2 | 2 | 49 |\n| J3 | 3 | 3 | 49 |\n| J3 | 4 | 4 | 38 |\n| J3 | 5 | 5 | 65 |\n| J4 | 0 | 0 | 21 |\n| J4 | 1 | 1 | 61 |\n| J4 | 2 | 2 | 7 |\n| J4 | 3 | 3 | 69 |\n| J4 | 4 | 4 | 47 |\n| J4 | 5 | 5 | 16 |\n| J5 | 0 | 0 | 8 |\n| J5 | 1 | 1 | 26 |\n| J5 | 2 | 2 | 72 |\n| J5 | 3 | 3 | 92 |\n| J5 | 4 | 4 | 94 |\n| J5 | 5 | 5 | 90 |\n| J6 | 0 | 0 | 47 |\n| J6 | 1 | 1 | 3 |\n| J6 | 2 | 2 | 5 |\n| J6 | 3 | 3 | 98 |\n| J6 | 4 | 4 | 83 |\n| J6 | 5 | 5 | 57 |\n| J7 | 0 | 0 | 15 |\n| J7 | 1 | 1 | 54 |\n| J7 | 2 | 2 | 25 |\n| J7 | 3 | 3 | 69 |\n| J7 | 4 | 4 | 75 |\n| J7 | 5 | 5 | 53 |\n| J8 | 0 | 0 | 70 |\n| J8 | 1 | 1 | 28 |\n| J8 | 2 | 2 | 73 |\n| J8 | 3 | 3 | 11 |\n| J8 | 4 | 4 | 6 |\n| J8 | 5 | 5 | 32 |\n| J9 | 0 | 0 | 90 |\n| J9 | 1 | 1 | 66 |\n| J9 | 2 | 2 | 39 |\n| J9 | 3 | 3 | 13 |\n| J9 | 4 | 4 | 97 |\n| J9 | 5 | 5 | 10 |\n| J10 | 0 | 0 | 18 |\n| J10 | 1 | 1 | 98 |\n| J10 | 2 | 2 | 86 |\n| J10 | 3 | 3 | 40 |\n| J10 | 4 | 4 | 37 |\n| J10 | 5 | 5 | 9 |\n\nI will use these details to compute each loaf's start and finish times and to determine which lineup gives the smallest makespan.\n\nOh, and when you send back the actual plan, please follow this simple JSON layout so I can read it easily:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a little form: \"solution\" is the list of loaves, each loaf object has a \"job\" label and a \"tasks\" list, and each task entry says which step it is (\"task\"), when that step starts (\"start\"), which station handles it (\"machine\"), and how long it takes (\"duration\"). Pretty informal — just the shape of what I expect, not the real answers.\n\nThis JSON is only a sketch of the expected shape, not the actual schedule. Also make sure to use the exact identifiers from the instance input — do not rename them and don't invent new labels.\n\nValid 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 5 + ], + [ + 2, + 47 + ], + [ + 3, + 53 + ], + [ + 4, + 75 + ], + [ + 5, + 39 + ] + ], + [ + [ + 0, + 95 + ], + [ + 1, + 3 + ], + [ + 2, + 7 + ], + [ + 3, + 51 + ], + [ + 4, + 22 + ], + [ + 5, + 63 + ] + ], + [ + [ + 0, + 80 + ], + [ + 1, + 90 + ], + [ + 2, + 49 + ], + [ + 3, + 49 + ], + [ + 4, + 38 + ], + [ + 5, + 65 + ] + ], + [ + [ + 0, + 21 + ], + [ + 1, + 61 + ], + [ + 2, + 7 + ], + [ + 3, + 69 + ], + [ + 4, + 47 + ], + [ + 5, + 16 + ] + ], + [ + [ + 0, + 8 + ], + [ + 1, + 26 + ], + [ + 2, + 72 + ], + [ + 3, + 92 + ], + [ + 4, + 94 + ], + [ + 5, + 90 + ] + ], + [ + [ + 0, + 47 + ], + [ + 1, + 3 + ], + [ + 2, + 5 + ], + [ + 3, + 98 + ], + [ + 4, + 83 + ], + [ + 5, + 57 + ] + ], + [ + [ + 0, + 15 + ], + [ + 1, + 54 + ], + [ + 2, + 25 + ], + [ + 3, + 69 + ], + [ + 4, + 75 + ], + [ + 5, + 53 + ] + ], + [ + [ + 0, + 70 + ], + [ + 1, + 28 + ], + [ + 2, + 73 + ], + [ + 3, + 11 + ], + [ + 4, + 6 + ], + [ + 5, + 32 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 66 + ], + [ + 2, + 39 + ], + [ + 3, + 13 + ], + [ + 4, + 97 + ], + [ + 5, + 10 + ] + ], + [ + [ + 0, + 18 + ], + [ + 1, + 98 + ], + [ + 2, + 86 + ], + [ + 3, + 40 + ], + [ + 4, + 37 + ], + [ + 5, + 9 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 6, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 53, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 107, + "machine": 4, + "duration": 75 + }, + { + "task": 5, + "start": 182, + "machine": 5, + "duration": 39 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 329, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 424, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 427, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 436, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 496, + "machine": 4, + "duration": 22 + }, + { + "task": 5, + "start": 558, + "machine": 5, + "duration": 63 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 42, + "machine": 0, + "duration": 80 + }, + { + "task": 1, + "start": 122, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 212, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 267, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 361, + "machine": 4, + "duration": 38 + }, + { + "task": 5, + "start": 451, + "machine": 5, + "duration": 65 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 424, + "machine": 0, + "duration": 21 + }, + { + "task": 1, + "start": 445, + "machine": 1, + "duration": 61 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 518, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 607, + "machine": 4, + "duration": 47 + }, + { + "task": 5, + "start": 678, + "machine": 5, + "duration": 16 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 34, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 70, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 96, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 175, + "machine": 3, + "duration": 92 + }, + { + "task": 4, + "start": 267, + "machine": 4, + "duration": 94 + }, + { + "task": 5, + "start": 361, + "machine": 5, + "duration": 90 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 212, + "machine": 0, + "duration": 47 + }, + { + "task": 1, + "start": 278, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 281, + "machine": 2, + "duration": 5 + }, + { + "task": 3, + "start": 338, + "machine": 3, + "duration": 98 + }, + { + "task": 4, + "start": 524, + "machine": 4, + "duration": 83 + }, + { + "task": 5, + "start": 621, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 16, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 70, + "machine": 2, + "duration": 25 + }, + { + "task": 3, + "start": 106, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 182, + "machine": 4, + "duration": 75 + }, + { + "task": 5, + "start": 257, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 259, + "machine": 0, + "duration": 70 + }, + { + "task": 1, + "start": 379, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 434, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 507, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 518, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 526, + "machine": 5, + "duration": 32 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 122, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 212, + "machine": 1, + "duration": 66 + }, + { + "task": 2, + "start": 286, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 325, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 399, + "machine": 4, + "duration": 97 + }, + { + "task": 5, + "start": 516, + "machine": 5, + "duration": 10 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 16, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 281, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 514, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 600, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 654, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 694, + "machine": 5, + "duration": 9 + } + ] + } + ], + "obj": 703.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 5 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 47 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 53 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 75 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 39 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 95 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 3 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 7 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 22 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 63 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 80 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 90 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 38 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 65 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 69 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 47 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 16 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 8 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 26 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 72 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 92 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 94 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 90 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 47 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 3 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 5 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 98 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 83 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 57 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 15 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "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": 4, + "duration": 75 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 53 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 11 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 6 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 32 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 90 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 66 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 39 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 13 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 97 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 10 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 18 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 98 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 86 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 40 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 37 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 9 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 6, + "machine": 2, + "duration": 47 + }, + { + "task": 3, + "start": 53, + "machine": 3, + "duration": 53 + }, + { + "task": 4, + "start": 107, + "machine": 4, + "duration": 75 + }, + { + "task": 5, + "start": 182, + "machine": 5, + "duration": 39 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 329, + "machine": 0, + "duration": 95 + }, + { + "task": 1, + "start": 424, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 427, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 436, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 496, + "machine": 4, + "duration": 22 + }, + { + "task": 5, + "start": 558, + "machine": 5, + "duration": 63 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 42, + "machine": 0, + "duration": 80 + }, + { + "task": 1, + "start": 122, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 212, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 267, + "machine": 3, + "duration": 49 + }, + { + "task": 4, + "start": 361, + "machine": 4, + "duration": 38 + }, + { + "task": 5, + "start": 451, + "machine": 5, + "duration": 65 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 424, + "machine": 0, + "duration": 21 + }, + { + "task": 1, + "start": 445, + "machine": 1, + "duration": 61 + }, + { + "task": 2, + "start": 507, + "machine": 2, + "duration": 7 + }, + { + "task": 3, + "start": 518, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 607, + "machine": 4, + "duration": 47 + }, + { + "task": 5, + "start": 678, + "machine": 5, + "duration": 16 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 34, + "machine": 0, + "duration": 8 + }, + { + "task": 1, + "start": 70, + "machine": 1, + "duration": 26 + }, + { + "task": 2, + "start": 96, + "machine": 2, + "duration": 72 + }, + { + "task": 3, + "start": 175, + "machine": 3, + "duration": 92 + }, + { + "task": 4, + "start": 267, + "machine": 4, + "duration": 94 + }, + { + "task": 5, + "start": 361, + "machine": 5, + "duration": 90 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 212, + "machine": 0, + "duration": 47 + }, + { + "task": 1, + "start": 278, + "machine": 1, + "duration": 3 + }, + { + "task": 2, + "start": 281, + "machine": 2, + "duration": 5 + }, + { + "task": 3, + "start": 338, + "machine": 3, + "duration": 98 + }, + { + "task": 4, + "start": 524, + "machine": 4, + "duration": 83 + }, + { + "task": 5, + "start": 621, + "machine": 5, + "duration": 57 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 16, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 70, + "machine": 2, + "duration": 25 + }, + { + "task": 3, + "start": 106, + "machine": 3, + "duration": 69 + }, + { + "task": 4, + "start": 182, + "machine": 4, + "duration": 75 + }, + { + "task": 5, + "start": 257, + "machine": 5, + "duration": 53 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 259, + "machine": 0, + "duration": 70 + }, + { + "task": 1, + "start": 379, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 434, + "machine": 2, + "duration": 73 + }, + { + "task": 3, + "start": 507, + "machine": 3, + "duration": 11 + }, + { + "task": 4, + "start": 518, + "machine": 4, + "duration": 6 + }, + { + "task": 5, + "start": 526, + "machine": 5, + "duration": 32 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 122, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 212, + "machine": 1, + "duration": 66 + }, + { + "task": 2, + "start": 286, + "machine": 2, + "duration": 39 + }, + { + "task": 3, + "start": 325, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 399, + "machine": 4, + "duration": 97 + }, + { + "task": 5, + "start": 516, + "machine": 5, + "duration": 10 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 16, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 281, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 514, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 600, + "machine": 3, + "duration": 40 + }, + { + "task": 4, + "start": 654, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 694, + "machine": 5, + "duration": 9 + } + ] + } + ], + "context_index": 43, + "input_format": "markdown_table", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "At the shop the workflow is straightforward: every booklet goes through printing, then trimming, then binding. The decision is how to schedule the batches through those three stations so that the final booklet is finished as early as possible — the finish time of the last job is the way to tell which plan is better. Machines can't handle more than one batch simultaneously, and every job must complete all three steps in order. The exact timings and batches are shown below.\n\n# nr_booklets=12\n# nr_stations=6\n# booklet_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J12\n# station_ids=1, 2, 3, 4, 5, 6\nbooklet_id,step_index,station_id,processing_time\nJ1,0,1,1\nJ1,1,2,18\nJ1,2,3,23\nJ1,3,4,98\nJ1,4,5,29\nJ1,5,6,61\nJ2,0,1,99\nJ2,1,2,70\nJ2,2,3,74\nJ2,3,4,45\nJ2,4,5,60\nJ2,5,6,15\nJ3,0,1,63\nJ3,1,2,93\nJ3,2,3,54\nJ3,3,4,3\nJ3,4,5,5\nJ3,5,6,65\nJ4,0,1,59\nJ4,1,2,68\nJ4,2,3,49\nJ4,3,4,38\nJ4,4,5,7\nJ4,5,6,9\nJ5,0,1,92\nJ5,1,2,79\nJ5,2,3,81\nJ5,3,4,58\nJ5,4,5,36\nJ5,5,6,60\nJ6,0,1,38\nJ6,1,2,78\nJ6,2,3,31\nJ6,3,4,4\nJ6,4,5,57\nJ6,5,6,90\nJ7,0,1,77\nJ7,1,2,30\nJ7,2,3,24\nJ7,3,4,6\nJ7,4,5,99\nJ7,5,6,52\nJ8,0,1,43\nJ8,1,2,4\nJ8,2,3,38\nJ8,3,4,18\nJ8,4,5,69\nJ8,5,6,20\nJ9,0,1,18\nJ9,1,2,10\nJ9,2,3,16\nJ9,3,4,61\nJ9,4,5,21\nJ9,5,6,37\nJ10,0,1,54\nJ10,1,2,16\nJ10,2,3,36\nJ10,3,4,30\nJ10,4,5,28\nJ10,5,6,15\nJ11,0,1,89\nJ11,1,2,88\nJ11,2,3,88\nJ11,3,4,12\nJ11,4,5,86\nJ11,5,6,98\nJ12,0,1,62\nJ12,1,2,71\nJ12,2,3,56\nJ12,3,4,27\nJ12,4,5,56\nJ12,5,6,65\n\nAlso, when you give me the actual schedule, please follow this simple JSON layout so I can read it programmatically — nothing fancy, just the shape shown below.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of that JSON as a little form: \"solution\" holds a list of jobs, each job has an id and a list of its tasks; each task notes which step it is, when it starts, which machine does it, and how long it takes. It's just a sketch of the expected shape — not the actual schedule yet.\n\nPlease make sure to 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 12, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 18 + ], + [ + 2, + 23 + ], + [ + 3, + 98 + ], + [ + 4, + 29 + ], + [ + 5, + 61 + ] + ], + [ + [ + 0, + 99 + ], + [ + 1, + 70 + ], + [ + 2, + 74 + ], + [ + 3, + 45 + ], + [ + 4, + 60 + ], + [ + 5, + 15 + ] + ], + [ + [ + 0, + 63 + ], + [ + 1, + 93 + ], + [ + 2, + 54 + ], + [ + 3, + 3 + ], + [ + 4, + 5 + ], + [ + 5, + 65 + ] + ], + [ + [ + 0, + 59 + ], + [ + 1, + 68 + ], + [ + 2, + 49 + ], + [ + 3, + 38 + ], + [ + 4, + 7 + ], + [ + 5, + 9 + ] + ], + [ + [ + 0, + 92 + ], + [ + 1, + 79 + ], + [ + 2, + 81 + ], + [ + 3, + 58 + ], + [ + 4, + 36 + ], + [ + 5, + 60 + ] + ], + [ + [ + 0, + 38 + ], + [ + 1, + 78 + ], + [ + 2, + 31 + ], + [ + 3, + 4 + ], + [ + 4, + 57 + ], + [ + 5, + 90 + ] + ], + [ + [ + 0, + 77 + ], + [ + 1, + 30 + ], + [ + 2, + 24 + ], + [ + 3, + 6 + ], + [ + 4, + 99 + ], + [ + 5, + 52 + ] + ], + [ + [ + 0, + 43 + ], + [ + 1, + 4 + ], + [ + 2, + 38 + ], + [ + 3, + 18 + ], + [ + 4, + 69 + ], + [ + 5, + 20 + ] + ], + [ + [ + 0, + 18 + ], + [ + 1, + 10 + ], + [ + 2, + 16 + ], + [ + 3, + 61 + ], + [ + 4, + 21 + ], + [ + 5, + 37 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 16 + ], + [ + 2, + 36 + ], + [ + 3, + 30 + ], + [ + 4, + 28 + ], + [ + 5, + 15 + ] + ], + [ + [ + 0, + 89 + ], + [ + 1, + 88 + ], + [ + 2, + 88 + ], + [ + 3, + 12 + ], + [ + 4, + 86 + ], + [ + 5, + 98 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 71 + ], + [ + 2, + 56 + ], + [ + 3, + 27 + ], + [ + 4, + 56 + ], + [ + 5, + 65 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 18 + }, + { + "task": 2, + "start": 19, + "machine": 2, + "duration": 23 + }, + { + "task": 3, + "start": 42, + "machine": 3, + "duration": 98 + }, + { + "task": 4, + "start": 140, + "machine": 4, + "duration": 29 + }, + { + "task": 5, + "start": 169, + "machine": 5, + "duration": 61 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 300, + "machine": 0, + "duration": 99 + }, + { + "task": 1, + "start": 399, + "machine": 1, + "duration": 70 + }, + { + "task": 2, + "start": 530, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 604, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 652, + "machine": 4, + "duration": 60 + }, + { + "task": 5, + "start": 712, + "machine": 5, + "duration": 15 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 476, + "machine": 0, + "duration": 63 + }, + { + "task": 1, + "start": 539, + "machine": 1, + "duration": 93 + }, + { + "task": 2, + "start": 632, + "machine": 2, + "duration": 54 + }, + { + "task": 3, + "start": 695, + "machine": 3, + "duration": 3 + }, + { + "task": 4, + "start": 712, + "machine": 4, + "duration": 5 + }, + { + "task": 5, + "start": 727, + "machine": 5, + "duration": 65 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 582, + "machine": 0, + "duration": 59 + }, + { + "task": 1, + "start": 641, + "machine": 1, + "duration": 68 + }, + { + "task": 2, + "start": 761, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 810, + "machine": 3, + "duration": 38 + }, + { + "task": 4, + "start": 848, + "machine": 4, + "duration": 7 + }, + { + "task": 5, + "start": 855, + "machine": 5, + "duration": 9 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 146, + "machine": 0, + "duration": 92 + }, + { + "task": 1, + "start": 238, + "machine": 1, + "duration": 79 + }, + { + "task": 2, + "start": 322, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 403, + "machine": 3, + "duration": 58 + }, + { + "task": 4, + "start": 461, + "machine": 4, + "duration": 36 + }, + { + "task": 5, + "start": 518, + "machine": 5, + "duration": 60 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 38 + }, + { + "task": 1, + "start": 39, + "machine": 1, + "duration": 78 + }, + { + "task": 2, + "start": 117, + "machine": 2, + "duration": 31 + }, + { + "task": 3, + "start": 148, + "machine": 3, + "duration": 4 + }, + { + "task": 4, + "start": 169, + "machine": 4, + "duration": 57 + }, + { + "task": 5, + "start": 230, + "machine": 5, + "duration": 90 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 399, + "machine": 0, + "duration": 77 + }, + { + "task": 1, + "start": 476, + "machine": 1, + "duration": 30 + }, + { + "task": 2, + "start": 506, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 530, + "machine": 3, + "duration": 6 + }, + { + "task": 4, + "start": 553, + "machine": 4, + "duration": 99 + }, + { + "task": 5, + "start": 652, + "machine": 5, + "duration": 52 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 539, + "machine": 0, + "duration": 43 + }, + { + "task": 1, + "start": 633, + "machine": 1, + "duration": 4 + }, + { + "task": 2, + "start": 686, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 724, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 742, + "machine": 4, + "duration": 69 + }, + { + "task": 5, + "start": 811, + "machine": 5, + "duration": 20 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 39, + "machine": 0, + "duration": 18 + }, + { + "task": 1, + "start": 117, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 148, + "machine": 2, + "duration": 16 + }, + { + "task": 3, + "start": 230, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 291, + "machine": 4, + "duration": 21 + }, + { + "task": 5, + "start": 320, + "machine": 5, + "duration": 37 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 641, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 709, + "machine": 1, + "duration": 16 + }, + { + "task": 2, + "start": 725, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 761, + "machine": 3, + "duration": 30 + }, + { + "task": 4, + "start": 812, + "machine": 4, + "duration": 28 + }, + { + "task": 5, + "start": 840, + "machine": 5, + "duration": 15 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 57, + "machine": 0, + "duration": 89 + }, + { + "task": 1, + "start": 146, + "machine": 1, + "duration": 88 + }, + { + "task": 2, + "start": 234, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 322, + "machine": 3, + "duration": 12 + }, + { + "task": 4, + "start": 334, + "machine": 4, + "duration": 86 + }, + { + "task": 5, + "start": 420, + "machine": 5, + "duration": 98 + } + ] + }, + { + "job": 11, + "tasks": [ + { + "task": 0, + "start": 238, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 317, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 403, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 461, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 497, + "machine": 4, + "duration": 56 + }, + { + "task": 5, + "start": 586, + "machine": 5, + "duration": 65 + } + ] + } + ], + "obj": 864.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 18 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 23 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 98 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 29 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 6, + "duration": 61 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 99 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 70 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 74 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 45 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 60 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 6, + "duration": 15 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 63 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 93 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 54 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 3 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 5 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 6, + "duration": 65 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 59 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 49 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 38 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 7 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 6, + "duration": 9 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 92 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 79 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 81 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 58 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 36 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 6, + "duration": 60 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 38 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 78 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 57 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 6, + "duration": 90 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 77 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 30 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 24 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 6 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 99 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 6, + "duration": 52 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 43 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 4 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 38 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 18 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 69 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 6, + "duration": 20 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 18 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 10 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 16 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 61 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 21 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 6, + "duration": 37 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 54 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 16 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 30 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 28 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 6, + "duration": 15 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 1, + "duration": 89 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 3, + "duration": 88 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 4, + "duration": 12 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 5, + "duration": 86 + }, + { + "job_id": "J11", + "task_id": 5, + "machine_id": 6, + "duration": 98 + }, + { + "job_id": "J12", + "task_id": 0, + "machine_id": 1, + "duration": 62 + }, + { + "job_id": "J12", + "task_id": 1, + "machine_id": 2, + "duration": 71 + }, + { + "job_id": "J12", + "task_id": 2, + "machine_id": 3, + "duration": 56 + }, + { + "job_id": "J12", + "task_id": 3, + "machine_id": 4, + "duration": 27 + }, + { + "job_id": "J12", + "task_id": 4, + "machine_id": 5, + "duration": 56 + }, + { + "job_id": "J12", + "task_id": 5, + "machine_id": 6, + "duration": 65 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 18 + }, + { + "task": 2, + "start": 19, + "machine": 3, + "duration": 23 + }, + { + "task": 3, + "start": 42, + "machine": 4, + "duration": 98 + }, + { + "task": 4, + "start": 140, + "machine": 5, + "duration": 29 + }, + { + "task": 5, + "start": 169, + "machine": 6, + "duration": 61 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 300, + "machine": 1, + "duration": 99 + }, + { + "task": 1, + "start": 399, + "machine": 2, + "duration": 70 + }, + { + "task": 2, + "start": 530, + "machine": 3, + "duration": 74 + }, + { + "task": 3, + "start": 604, + "machine": 4, + "duration": 45 + }, + { + "task": 4, + "start": 652, + "machine": 5, + "duration": 60 + }, + { + "task": 5, + "start": 712, + "machine": 6, + "duration": 15 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 476, + "machine": 1, + "duration": 63 + }, + { + "task": 1, + "start": 539, + "machine": 2, + "duration": 93 + }, + { + "task": 2, + "start": 632, + "machine": 3, + "duration": 54 + }, + { + "task": 3, + "start": 695, + "machine": 4, + "duration": 3 + }, + { + "task": 4, + "start": 712, + "machine": 5, + "duration": 5 + }, + { + "task": 5, + "start": 727, + "machine": 6, + "duration": 65 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 582, + "machine": 1, + "duration": 59 + }, + { + "task": 1, + "start": 641, + "machine": 2, + "duration": 68 + }, + { + "task": 2, + "start": 761, + "machine": 3, + "duration": 49 + }, + { + "task": 3, + "start": 810, + "machine": 4, + "duration": 38 + }, + { + "task": 4, + "start": 848, + "machine": 5, + "duration": 7 + }, + { + "task": 5, + "start": 855, + "machine": 6, + "duration": 9 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 146, + "machine": 1, + "duration": 92 + }, + { + "task": 1, + "start": 238, + "machine": 2, + "duration": 79 + }, + { + "task": 2, + "start": 322, + "machine": 3, + "duration": 81 + }, + { + "task": 3, + "start": 403, + "machine": 4, + "duration": 58 + }, + { + "task": 4, + "start": 461, + "machine": 5, + "duration": 36 + }, + { + "task": 5, + "start": 518, + "machine": 6, + "duration": 60 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 38 + }, + { + "task": 1, + "start": 39, + "machine": 2, + "duration": 78 + }, + { + "task": 2, + "start": 117, + "machine": 3, + "duration": 31 + }, + { + "task": 3, + "start": 148, + "machine": 4, + "duration": 4 + }, + { + "task": 4, + "start": 169, + "machine": 5, + "duration": 57 + }, + { + "task": 5, + "start": 230, + "machine": 6, + "duration": 90 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 399, + "machine": 1, + "duration": 77 + }, + { + "task": 1, + "start": 476, + "machine": 2, + "duration": 30 + }, + { + "task": 2, + "start": 506, + "machine": 3, + "duration": 24 + }, + { + "task": 3, + "start": 530, + "machine": 4, + "duration": 6 + }, + { + "task": 4, + "start": 553, + "machine": 5, + "duration": 99 + }, + { + "task": 5, + "start": 652, + "machine": 6, + "duration": 52 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 539, + "machine": 1, + "duration": 43 + }, + { + "task": 1, + "start": 633, + "machine": 2, + "duration": 4 + }, + { + "task": 2, + "start": 686, + "machine": 3, + "duration": 38 + }, + { + "task": 3, + "start": 724, + "machine": 4, + "duration": 18 + }, + { + "task": 4, + "start": 742, + "machine": 5, + "duration": 69 + }, + { + "task": 5, + "start": 811, + "machine": 6, + "duration": 20 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 39, + "machine": 1, + "duration": 18 + }, + { + "task": 1, + "start": 117, + "machine": 2, + "duration": 10 + }, + { + "task": 2, + "start": 148, + "machine": 3, + "duration": 16 + }, + { + "task": 3, + "start": 230, + "machine": 4, + "duration": 61 + }, + { + "task": 4, + "start": 291, + "machine": 5, + "duration": 21 + }, + { + "task": 5, + "start": 320, + "machine": 6, + "duration": 37 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 641, + "machine": 1, + "duration": 54 + }, + { + "task": 1, + "start": 709, + "machine": 2, + "duration": 16 + }, + { + "task": 2, + "start": 725, + "machine": 3, + "duration": 36 + }, + { + "task": 3, + "start": 761, + "machine": 4, + "duration": 30 + }, + { + "task": 4, + "start": 812, + "machine": 5, + "duration": 28 + }, + { + "task": 5, + "start": 840, + "machine": 6, + "duration": 15 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 57, + "machine": 1, + "duration": 89 + }, + { + "task": 1, + "start": 146, + "machine": 2, + "duration": 88 + }, + { + "task": 2, + "start": 234, + "machine": 3, + "duration": 88 + }, + { + "task": 3, + "start": 322, + "machine": 4, + "duration": 12 + }, + { + "task": 4, + "start": 334, + "machine": 5, + "duration": 86 + }, + { + "task": 5, + "start": 420, + "machine": 6, + "duration": 98 + } + ] + }, + { + "job": "J12", + "tasks": [ + { + "task": 0, + "start": 238, + "machine": 1, + "duration": 62 + }, + { + "task": 1, + "start": 317, + "machine": 2, + "duration": 71 + }, + { + "task": 2, + "start": 403, + "machine": 3, + "duration": 56 + }, + { + "task": 3, + "start": 461, + "machine": 4, + "duration": 27 + }, + { + "task": 4, + "start": 497, + "machine": 5, + "duration": 56 + }, + { + "task": 5, + "start": 586, + "machine": 6, + "duration": 65 + } + ] + } + ], + "context_index": 44, + "input_format": "csv", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Many people on the floor watch three stations — roast, cool, pack — and every load must pass through them in that order, once each. The choice to make is the order of the loads through the line; the better the choice, the sooner the last load will finish, and that finish time is the simple way to compare plans. No station can be doing two loads at the same time. The detailed timings for each load are listed below.\n\n# nr_loads=11\n# nr_stations=5\n# load_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11\n# station_ids=0, 1, 2, 3, 4\nload_id,stage_index,station_id,processing_time\nJ1,0,0,1\nJ1,1,1,31\nJ1,2,2,98\nJ1,3,3,44\nJ1,4,4,81\nJ2,0,0,83\nJ2,1,1,5\nJ2,2,2,38\nJ2,3,3,42\nJ2,4,4,38\nJ3,0,0,98\nJ3,1,1,67\nJ3,2,2,46\nJ3,3,3,97\nJ3,4,4,60\nJ4,0,0,55\nJ4,1,1,72\nJ4,2,2,66\nJ4,3,3,97\nJ4,4,4,75\nJ5,0,0,90\nJ5,1,1,7\nJ5,2,2,65\nJ5,3,3,2\nJ5,4,4,77\nJ6,0,0,32\nJ6,1,1,90\nJ6,2,2,24\nJ6,3,3,77\nJ6,4,4,30\nJ7,0,0,29\nJ7,1,1,55\nJ7,2,2,57\nJ7,3,3,9\nJ7,4,4,31\nJ8,0,0,23\nJ8,1,1,41\nJ8,2,2,6\nJ8,3,3,23\nJ8,4,4,42\nJ9,0,0,25\nJ9,1,1,50\nJ9,2,2,15\nJ9,3,3,79\nJ9,4,4,4\nJ10,0,0,25\nJ10,1,1,32\nJ10,2,2,9\nJ10,3,3,45\nJ10,4,4,53\nJ11,0,0,91\nJ11,1,1,9\nJ11,2,2,45\nJ11,3,3,64\nJ11,4,4,89\n\nOh, and when you send the actual plan back, please use this simple JSON shape so I can read it easily — something like:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a little form: \"solution\" is the list of loads, each entry names the job and then lists its tasks in order. Each task line just says which step it is, when it starts, which machine (station) it runs on, and how long it takes. This is just the shape I want — not the actual schedule.\n\nPlease use the exact identifiers from the input — no renaming and no new labels. \n- 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 11, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 31 + ], + [ + 2, + 98 + ], + [ + 3, + 44 + ], + [ + 4, + 81 + ] + ], + [ + [ + 0, + 83 + ], + [ + 1, + 5 + ], + [ + 2, + 38 + ], + [ + 3, + 42 + ], + [ + 4, + 38 + ] + ], + [ + [ + 0, + 98 + ], + [ + 1, + 67 + ], + [ + 2, + 46 + ], + [ + 3, + 97 + ], + [ + 4, + 60 + ] + ], + [ + [ + 0, + 55 + ], + [ + 1, + 72 + ], + [ + 2, + 66 + ], + [ + 3, + 97 + ], + [ + 4, + 75 + ] + ], + [ + [ + 0, + 90 + ], + [ + 1, + 7 + ], + [ + 2, + 65 + ], + [ + 3, + 2 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 32 + ], + [ + 1, + 90 + ], + [ + 2, + 24 + ], + [ + 3, + 77 + ], + [ + 4, + 30 + ] + ], + [ + [ + 0, + 29 + ], + [ + 1, + 55 + ], + [ + 2, + 57 + ], + [ + 3, + 9 + ], + [ + 4, + 31 + ] + ], + [ + [ + 0, + 23 + ], + [ + 1, + 41 + ], + [ + 2, + 6 + ], + [ + 3, + 23 + ], + [ + 4, + 42 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 50 + ], + [ + 2, + 15 + ], + [ + 3, + 79 + ], + [ + 4, + 4 + ] + ], + [ + [ + 0, + 25 + ], + [ + 1, + 32 + ], + [ + 2, + 9 + ], + [ + 3, + 45 + ], + [ + 4, + 53 + ] + ], + [ + [ + 0, + 91 + ], + [ + 1, + 9 + ], + [ + 2, + 45 + ], + [ + 3, + 64 + ], + [ + 4, + 89 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 73, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 200, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 244, + "machine": 4, + "duration": 81 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 444, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 527, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 532, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 602, + "machine": 3, + "duration": 42 + }, + { + "task": 4, + "start": 693, + "machine": 4, + "duration": 38 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 227, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 325, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 392, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 505, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 602, + "machine": 4, + "duration": 60 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 49, + "machine": 0, + "duration": 55 + }, + { + "task": 1, + "start": 105, + "machine": 1, + "duration": 72 + }, + { + "task": 2, + "start": 249, + "machine": 2, + "duration": 66 + }, + { + "task": 3, + "start": 315, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 414, + "machine": 4, + "duration": 75 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 325, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 415, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 438, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 503, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 519, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 195, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 227, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 317, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 412, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 489, + "machine": 4, + "duration": 30 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 415, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 444, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 570, + "machine": 2, + "duration": 57 + }, + { + "task": 3, + "start": 644, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 662, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 26, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 64, + "machine": 1, + "duration": 41 + }, + { + "task": 2, + "start": 171, + "machine": 2, + "duration": 6 + }, + { + "task": 3, + "start": 177, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 200, + "machine": 4, + "duration": 42 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 527, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 553, + "machine": 1, + "duration": 50 + }, + { + "task": 2, + "start": 627, + "machine": 2, + "duration": 15 + }, + { + "task": 3, + "start": 653, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 732, + "machine": 4, + "duration": 4 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 32, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 64, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 73, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 118, + "machine": 4, + "duration": 53 + } + ] + }, + { + "job": 10, + "tasks": [ + { + "task": 0, + "start": 104, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 195, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 204, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 249, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 325, + "machine": 4, + "duration": 89 + } + ] + } + ], + "obj": 736.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 98 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 44 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 81 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 83 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 5 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 38 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 42 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 38 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 98 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 67 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 46 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 97 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 60 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 55 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 72 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 66 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 97 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 75 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 90 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 7 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 65 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 2 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 77 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 77 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 30 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 9 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 31 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 23 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 41 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 6 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 23 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 42 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 25 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 50 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 15 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 79 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 25 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 32 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 9 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 45 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 53 + }, + { + "job_id": "J11", + "task_id": 0, + "machine_id": 0, + "duration": 91 + }, + { + "job_id": "J11", + "task_id": 1, + "machine_id": 1, + "duration": 9 + }, + { + "job_id": "J11", + "task_id": 2, + "machine_id": 2, + "duration": 45 + }, + { + "job_id": "J11", + "task_id": 3, + "machine_id": 3, + "duration": 64 + }, + { + "job_id": "J11", + "task_id": 4, + "machine_id": 4, + "duration": 89 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 73, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 200, + "machine": 3, + "duration": 44 + }, + { + "task": 4, + "start": 244, + "machine": 4, + "duration": 81 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 444, + "machine": 0, + "duration": 83 + }, + { + "task": 1, + "start": 527, + "machine": 1, + "duration": 5 + }, + { + "task": 2, + "start": 532, + "machine": 2, + "duration": 38 + }, + { + "task": 3, + "start": 602, + "machine": 3, + "duration": 42 + }, + { + "task": 4, + "start": 693, + "machine": 4, + "duration": 38 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 227, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 325, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 392, + "machine": 2, + "duration": 46 + }, + { + "task": 3, + "start": 505, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 602, + "machine": 4, + "duration": 60 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 49, + "machine": 0, + "duration": 55 + }, + { + "task": 1, + "start": 105, + "machine": 1, + "duration": 72 + }, + { + "task": 2, + "start": 249, + "machine": 2, + "duration": 66 + }, + { + "task": 3, + "start": 315, + "machine": 3, + "duration": 97 + }, + { + "task": 4, + "start": 414, + "machine": 4, + "duration": 75 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 325, + "machine": 0, + "duration": 90 + }, + { + "task": 1, + "start": 415, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 438, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 503, + "machine": 3, + "duration": 2 + }, + { + "task": 4, + "start": 519, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 195, + "machine": 0, + "duration": 32 + }, + { + "task": 1, + "start": 227, + "machine": 1, + "duration": 90 + }, + { + "task": 2, + "start": 317, + "machine": 2, + "duration": 24 + }, + { + "task": 3, + "start": 412, + "machine": 3, + "duration": 77 + }, + { + "task": 4, + "start": 489, + "machine": 4, + "duration": 30 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 415, + "machine": 0, + "duration": 29 + }, + { + "task": 1, + "start": 444, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 570, + "machine": 2, + "duration": 57 + }, + { + "task": 3, + "start": 644, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 662, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 26, + "machine": 0, + "duration": 23 + }, + { + "task": 1, + "start": 64, + "machine": 1, + "duration": 41 + }, + { + "task": 2, + "start": 171, + "machine": 2, + "duration": 6 + }, + { + "task": 3, + "start": 177, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 200, + "machine": 4, + "duration": 42 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 527, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 553, + "machine": 1, + "duration": 50 + }, + { + "task": 2, + "start": 627, + "machine": 2, + "duration": 15 + }, + { + "task": 3, + "start": 653, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 732, + "machine": 4, + "duration": 4 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 25 + }, + { + "task": 1, + "start": 32, + "machine": 1, + "duration": 32 + }, + { + "task": 2, + "start": 64, + "machine": 2, + "duration": 9 + }, + { + "task": 3, + "start": 73, + "machine": 3, + "duration": 45 + }, + { + "task": 4, + "start": 118, + "machine": 4, + "duration": 53 + } + ] + }, + { + "job": "J11", + "tasks": [ + { + "task": 0, + "start": 104, + "machine": 0, + "duration": 91 + }, + { + "task": 1, + "start": 195, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 204, + "machine": 2, + "duration": 45 + }, + { + "task": 3, + "start": 249, + "machine": 3, + "duration": 64 + }, + { + "task": 4, + "start": 325, + "machine": 4, + "duration": 89 + } + ] + } + ], + "context_index": 45, + "input_format": "csv", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "There’s a small factory scene: parts come in, hit the molding machine, then the trimmer, then the inspector — always in that sequence. The task is to arrange which part goes when so the whole group clears inspection as quickly as possible; the result is judged by the moment the last part is finished. Each part has its own times for each stage, none of the stages can be done in parallel on multiple parts, and every part must go through all three stations exactly once. The concrete details will be shown below.\n\n# nr_parts=10\n# nr_stations=6\n# parts=J1, J2, J3, J4, J5, J6, J7, J8, J9, J10\n# stations=0, 1, 2, 3, 4, 5\npart_id,stage_index,station_id,processing_time\nJ1,0,0,1\nJ1,1,1,44\nJ1,2,2,74\nJ1,3,3,90\nJ1,4,4,35\nJ1,5,5,5\nJ2,0,0,10\nJ2,1,1,7\nJ2,2,2,10\nJ2,3,3,32\nJ2,4,4,37\nJ2,5,5,19\nJ3,0,0,30\nJ3,1,1,1\nJ3,2,2,65\nJ3,3,3,9\nJ3,4,4,39\nJ3,5,5,67\nJ4,0,0,36\nJ4,1,1,81\nJ4,2,2,32\nJ4,3,3,75\nJ4,4,4,24\nJ4,5,5,94\nJ5,0,0,62\nJ5,1,1,84\nJ5,2,2,1\nJ5,3,3,89\nJ5,4,4,20\nJ5,5,5,1\nJ6,0,0,20\nJ6,1,1,31\nJ6,2,2,83\nJ6,3,3,13\nJ6,4,4,4\nJ6,5,5,56\nJ7,0,0,4\nJ7,1,1,80\nJ7,2,2,22\nJ7,3,3,78\nJ7,4,4,49\nJ7,5,5,48\nJ8,0,0,87\nJ8,1,1,54\nJ8,2,2,68\nJ8,3,3,33\nJ8,4,4,95\nJ8,5,5,96\nJ9,0,0,72\nJ9,1,1,96\nJ9,2,2,68\nJ9,3,3,56\nJ9,4,4,68\nJ9,5,5,91\nJ10,0,0,26\nJ10,1,1,49\nJ10,2,2,33\nJ10,3,3,10\nJ10,4,4,11\nJ10,5,5,27\n\nOh, and when you send the schedule back, please use this little JSON shape so I can read it easily:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a simple form: \"solution\" is the list of parts, each entry says which part (job) it is and then lists the tasks for that part. Each task entry notes which step it is (task), when that step starts (start), which station/machine handles it (machine), and how long it runs (duration). It's just a sketch of the shape I need, not the actual schedule yet.\n\nAlso: 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”.\"", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 44 + ], + [ + 2, + 74 + ], + [ + 3, + 90 + ], + [ + 4, + 35 + ], + [ + 5, + 5 + ] + ], + [ + [ + 0, + 10 + ], + [ + 1, + 7 + ], + [ + 2, + 10 + ], + [ + 3, + 32 + ], + [ + 4, + 37 + ], + [ + 5, + 19 + ] + ], + [ + [ + 0, + 30 + ], + [ + 1, + 1 + ], + [ + 2, + 65 + ], + [ + 3, + 9 + ], + [ + 4, + 39 + ], + [ + 5, + 67 + ] + ], + [ + [ + 0, + 36 + ], + [ + 1, + 81 + ], + [ + 2, + 32 + ], + [ + 3, + 75 + ], + [ + 4, + 24 + ], + [ + 5, + 94 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 84 + ], + [ + 2, + 1 + ], + [ + 3, + 89 + ], + [ + 4, + 20 + ], + [ + 5, + 1 + ] + ], + [ + [ + 0, + 20 + ], + [ + 1, + 31 + ], + [ + 2, + 83 + ], + [ + 3, + 13 + ], + [ + 4, + 4 + ], + [ + 5, + 56 + ] + ], + [ + [ + 0, + 4 + ], + [ + 1, + 80 + ], + [ + 2, + 22 + ], + [ + 3, + 78 + ], + [ + 4, + 49 + ], + [ + 5, + 48 + ] + ], + [ + [ + 0, + 87 + ], + [ + 1, + 54 + ], + [ + 2, + 68 + ], + [ + 3, + 33 + ], + [ + 4, + 95 + ], + [ + 5, + 96 + ] + ], + [ + [ + 0, + 72 + ], + [ + 1, + 96 + ], + [ + 2, + 68 + ], + [ + 3, + 56 + ], + [ + 4, + 68 + ], + [ + 5, + 91 + ] + ], + [ + [ + 0, + 26 + ], + [ + 1, + 49 + ], + [ + 2, + 33 + ], + [ + 3, + 10 + ], + [ + 4, + 11 + ], + [ + 5, + 27 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 14, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 438, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 482, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 563, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 674, + "machine": 4, + "duration": 35 + }, + { + "task": 5, + "start": 714, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 4, + "machine": 0, + "duration": 10 + }, + { + "task": 1, + "start": 84, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 91, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 101, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 133, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 199, + "machine": 5, + "duration": 19 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 97, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 203, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 238, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 315, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 342, + "machine": 4, + "duration": 39 + }, + { + "task": 5, + "start": 431, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 61, + "machine": 0, + "duration": 36 + }, + { + "task": 1, + "start": 122, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 206, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 238, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 313, + "machine": 4, + "duration": 24 + }, + { + "task": 5, + "start": 337, + "machine": 5, + "duration": 94 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 286, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 354, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 441, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 474, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 592, + "machine": 4, + "duration": 20 + }, + { + "task": 5, + "start": 686, + "machine": 5, + "duration": 1 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 41, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 91, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 123, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 211, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 224, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 228, + "machine": 5, + "duration": 56 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 4, + "machine": 1, + "duration": 80 + }, + { + "task": 2, + "start": 101, + "machine": 2, + "duration": 22 + }, + { + "task": 3, + "start": 133, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 228, + "machine": 4, + "duration": 49 + }, + { + "task": 5, + "start": 284, + "machine": 5, + "duration": 48 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 199, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 300, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 373, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 441, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 495, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 590, + "machine": 5, + "duration": 96 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 127, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 204, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 303, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 371, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 427, + "machine": 4, + "duration": 68 + }, + { + "task": 5, + "start": 498, + "machine": 5, + "duration": 91 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 15, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 482, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 556, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 653, + "machine": 3, + "duration": 10 + }, + { + "task": 4, + "start": 663, + "machine": 4, + "duration": 11 + }, + { + "task": 5, + "start": 687, + "machine": 5, + "duration": 27 + } + ] + } + ], + "obj": 719.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 44 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 74 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 90 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 35 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 5 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 10 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 7 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 10 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 37 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 19 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 30 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 1 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 65 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 9 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 39 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 67 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 36 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 81 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 32 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 75 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 24 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 94 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 62 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 84 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 89 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 20 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 1 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 20 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 31 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 83 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 13 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 4 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 56 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 4 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 80 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 22 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 78 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 49 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 48 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 87 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 54 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 33 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 95 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 96 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 72 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 96 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 56 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 68 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 91 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 0, + "duration": 26 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 1, + "duration": 49 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 2, + "duration": 33 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 3, + "duration": 10 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 4, + "duration": 11 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 5, + "duration": 27 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 14, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 438, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 482, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 563, + "machine": 3, + "duration": 90 + }, + { + "task": 4, + "start": 674, + "machine": 4, + "duration": 35 + }, + { + "task": 5, + "start": 714, + "machine": 5, + "duration": 5 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 4, + "machine": 0, + "duration": 10 + }, + { + "task": 1, + "start": 84, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 91, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 101, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 133, + "machine": 4, + "duration": 37 + }, + { + "task": 5, + "start": 199, + "machine": 5, + "duration": 19 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 97, + "machine": 0, + "duration": 30 + }, + { + "task": 1, + "start": 203, + "machine": 1, + "duration": 1 + }, + { + "task": 2, + "start": 238, + "machine": 2, + "duration": 65 + }, + { + "task": 3, + "start": 315, + "machine": 3, + "duration": 9 + }, + { + "task": 4, + "start": 342, + "machine": 4, + "duration": 39 + }, + { + "task": 5, + "start": 431, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 61, + "machine": 0, + "duration": 36 + }, + { + "task": 1, + "start": 122, + "machine": 1, + "duration": 81 + }, + { + "task": 2, + "start": 206, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 238, + "machine": 3, + "duration": 75 + }, + { + "task": 4, + "start": 313, + "machine": 4, + "duration": 24 + }, + { + "task": 5, + "start": 337, + "machine": 5, + "duration": 94 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 286, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 354, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 441, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 474, + "machine": 3, + "duration": 89 + }, + { + "task": 4, + "start": 592, + "machine": 4, + "duration": 20 + }, + { + "task": 5, + "start": 686, + "machine": 5, + "duration": 1 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 41, + "machine": 0, + "duration": 20 + }, + { + "task": 1, + "start": 91, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 123, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 211, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 224, + "machine": 4, + "duration": 4 + }, + { + "task": 5, + "start": 228, + "machine": 5, + "duration": 56 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 4, + "machine": 1, + "duration": 80 + }, + { + "task": 2, + "start": 101, + "machine": 2, + "duration": 22 + }, + { + "task": 3, + "start": 133, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 228, + "machine": 4, + "duration": 49 + }, + { + "task": 5, + "start": 284, + "machine": 5, + "duration": 48 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 199, + "machine": 0, + "duration": 87 + }, + { + "task": 1, + "start": 300, + "machine": 1, + "duration": 54 + }, + { + "task": 2, + "start": 373, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 441, + "machine": 3, + "duration": 33 + }, + { + "task": 4, + "start": 495, + "machine": 4, + "duration": 95 + }, + { + "task": 5, + "start": 590, + "machine": 5, + "duration": 96 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 127, + "machine": 0, + "duration": 72 + }, + { + "task": 1, + "start": 204, + "machine": 1, + "duration": 96 + }, + { + "task": 2, + "start": 303, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 371, + "machine": 3, + "duration": 56 + }, + { + "task": 4, + "start": 427, + "machine": 4, + "duration": 68 + }, + { + "task": 5, + "start": 498, + "machine": 5, + "duration": 91 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 15, + "machine": 0, + "duration": 26 + }, + { + "task": 1, + "start": 482, + "machine": 1, + "duration": 49 + }, + { + "task": 2, + "start": 556, + "machine": 2, + "duration": 33 + }, + { + "task": 3, + "start": 653, + "machine": 3, + "duration": 10 + }, + { + "task": 4, + "start": 663, + "machine": 4, + "duration": 11 + }, + { + "task": 5, + "start": 687, + "machine": 5, + "duration": 27 + } + ] + } + ], + "context_index": 46, + "input_format": "csv", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Backstage at the reception, the coordinator had to line platters up so they’d each go through making, cooling, and setting out in that order, and the only real choice was the sequence in which they’d take turns at each station. Each platter’s make, chill, and staging times were known ahead of time, and since every station can handle only one platter at a time and every platter must visit all three stations exactly once, the order can’t break those rules. The whole thing is judged by when the final platter is ready on the serving table — the earlier that finish time, the better the schedule. The detailed platter times are shown below.\n\n# total_platters=9\n# total_stations=5\n# platter_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9\n# station_ids=0, 1, 2, 3, 4\nplatter_id,step_index,station_id,processing_time\nJ1,0,0,1\nJ1,1,1,57\nJ1,2,2,49\nJ1,3,3,36\nJ1,4,4,88\nJ2,0,0,27\nJ2,1,1,14\nJ2,2,2,74\nJ2,3,3,78\nJ2,4,4,26\nJ3,0,0,75\nJ3,1,1,71\nJ3,2,2,13\nJ3,3,3,5\nJ3,4,4,70\nJ4,0,0,61\nJ4,1,1,7\nJ4,2,2,68\nJ4,3,3,74\nJ4,4,4,88\nJ5,0,0,74\nJ5,1,1,44\nJ5,2,2,83\nJ5,3,3,87\nJ5,4,4,46\nJ6,0,0,37\nJ6,1,1,10\nJ6,2,2,54\nJ6,3,3,61\nJ6,4,4,70\nJ7,0,0,11\nJ7,1,1,8\nJ7,2,2,10\nJ7,3,3,18\nJ7,4,4,77\nJ8,0,0,88\nJ8,1,1,67\nJ8,2,2,56\nJ8,3,3,21\nJ8,4,4,15\nJ9,0,0,74\nJ9,1,1,46\nJ9,2,2,59\nJ9,3,3,30\nJ9,4,4,34\n\nIf you want the schedule back in a tidy, machine-friendly way, just follow this little JSON layout when you send it over:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a simple form: \"solution\" holds a list of platters (jobs). Each platter entry names the platter (\"job\") and then lists its steps (\"tasks\"). For each step you say which step number it is (\"task\"), when that step should start (\"start\"), which station it's on (\"machine\"), and how long that step takes (\"duration\"). This is just the sketch of the shape I need, not the actual schedule.\n\nPlease 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”.", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 57 + ], + [ + 2, + 49 + ], + [ + 3, + 36 + ], + [ + 4, + 88 + ] + ], + [ + [ + 0, + 27 + ], + [ + 1, + 14 + ], + [ + 2, + 74 + ], + [ + 3, + 78 + ], + [ + 4, + 26 + ] + ], + [ + [ + 0, + 75 + ], + [ + 1, + 71 + ], + [ + 2, + 13 + ], + [ + 3, + 5 + ], + [ + 4, + 70 + ] + ], + [ + [ + 0, + 61 + ], + [ + 1, + 7 + ], + [ + 2, + 68 + ], + [ + 3, + 74 + ], + [ + 4, + 88 + ] + ], + [ + [ + 0, + 74 + ], + [ + 1, + 44 + ], + [ + 2, + 83 + ], + [ + 3, + 87 + ], + [ + 4, + 46 + ] + ], + [ + [ + 0, + 37 + ], + [ + 1, + 10 + ], + [ + 2, + 54 + ], + [ + 3, + 61 + ], + [ + 4, + 70 + ] + ], + [ + [ + 0, + 11 + ], + [ + 1, + 8 + ], + [ + 2, + 10 + ], + [ + 3, + 18 + ], + [ + 4, + 77 + ] + ], + [ + [ + 0, + 88 + ], + [ + 1, + 67 + ], + [ + 2, + 56 + ], + [ + 3, + 21 + ], + [ + 4, + 15 + ] + ], + [ + [ + 0, + 74 + ], + [ + 1, + 46 + ], + [ + 2, + 59 + ], + [ + 3, + 30 + ], + [ + 4, + 34 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 11, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 19, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 76, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 125, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 161, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 110, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 137, + "machine": 1, + "duration": 14 + }, + { + "task": 2, + "start": 247, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 409, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 211, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 286, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 404, + "machine": 2, + "duration": 13 + }, + { + "task": 3, + "start": 417, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 435, + "machine": 4, + "duration": 70 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 76, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 179, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 247, + "machine": 3, + "duration": 74 + }, + { + "task": 4, + "start": 321, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 137, + "machine": 0, + "duration": 74 + }, + { + "task": 1, + "start": 211, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 321, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 422, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 509, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 73, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 110, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 125, + "machine": 2, + "duration": 54 + }, + { + "task": 3, + "start": 179, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 249, + "machine": 4, + "duration": 70 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 11, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 19, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 29, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 47, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 360, + "machine": 0, + "duration": 88 + }, + { + "task": 1, + "start": 448, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 571, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 592, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 286, + "machine": 0, + "duration": 74 + }, + { + "task": 1, + "start": 360, + "machine": 1, + "duration": 46 + }, + { + "task": 2, + "start": 417, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 509, + "machine": 3, + "duration": 30 + }, + { + "task": 4, + "start": 555, + "machine": 4, + "duration": 34 + } + ] + } + ], + "obj": 607.0, + "instance_variant": { + "problem_type": "FSP", + "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": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 57 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 49 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 88 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "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": 3, + "duration": 78 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 26 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 75 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 13 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 5 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 70 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 61 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 7 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 68 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 74 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 88 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 74 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 44 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 83 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 87 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 37 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 10 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 54 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 61 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 70 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 11 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 8 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 10 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 18 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 77 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 88 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 67 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "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": 0, + "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": 3, + "duration": 30 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 34 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 11, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 19, + "machine": 1, + "duration": 57 + }, + { + "task": 2, + "start": 76, + "machine": 2, + "duration": 49 + }, + { + "task": 3, + "start": 125, + "machine": 3, + "duration": 36 + }, + { + "task": 4, + "start": 161, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 110, + "machine": 0, + "duration": 27 + }, + { + "task": 1, + "start": 137, + "machine": 1, + "duration": 14 + }, + { + "task": 2, + "start": 247, + "machine": 2, + "duration": 74 + }, + { + "task": 3, + "start": 321, + "machine": 3, + "duration": 78 + }, + { + "task": 4, + "start": 409, + "machine": 4, + "duration": 26 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 211, + "machine": 0, + "duration": 75 + }, + { + "task": 1, + "start": 286, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 404, + "machine": 2, + "duration": 13 + }, + { + "task": 3, + "start": 417, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 435, + "machine": 4, + "duration": 70 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 12, + "machine": 0, + "duration": 61 + }, + { + "task": 1, + "start": 76, + "machine": 1, + "duration": 7 + }, + { + "task": 2, + "start": 179, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 247, + "machine": 3, + "duration": 74 + }, + { + "task": 4, + "start": 321, + "machine": 4, + "duration": 88 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 137, + "machine": 0, + "duration": 74 + }, + { + "task": 1, + "start": 211, + "machine": 1, + "duration": 44 + }, + { + "task": 2, + "start": 321, + "machine": 2, + "duration": 83 + }, + { + "task": 3, + "start": 422, + "machine": 3, + "duration": 87 + }, + { + "task": 4, + "start": 509, + "machine": 4, + "duration": 46 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 73, + "machine": 0, + "duration": 37 + }, + { + "task": 1, + "start": 110, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 125, + "machine": 2, + "duration": 54 + }, + { + "task": 3, + "start": 179, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 249, + "machine": 4, + "duration": 70 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 11 + }, + { + "task": 1, + "start": 11, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 19, + "machine": 2, + "duration": 10 + }, + { + "task": 3, + "start": 29, + "machine": 3, + "duration": 18 + }, + { + "task": 4, + "start": 47, + "machine": 4, + "duration": 77 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 360, + "machine": 0, + "duration": 88 + }, + { + "task": 1, + "start": 448, + "machine": 1, + "duration": 67 + }, + { + "task": 2, + "start": 515, + "machine": 2, + "duration": 56 + }, + { + "task": 3, + "start": 571, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 592, + "machine": 4, + "duration": 15 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 286, + "machine": 0, + "duration": 74 + }, + { + "task": 1, + "start": 360, + "machine": 1, + "duration": 46 + }, + { + "task": 2, + "start": 417, + "machine": 2, + "duration": 59 + }, + { + "task": 3, + "start": 509, + "machine": 3, + "duration": 30 + }, + { + "task": 4, + "start": 555, + "machine": 4, + "duration": 34 + } + ] + } + ], + "context_index": 47, + "input_format": "csv", + "input_index_base": 0 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Picture a simple route through the kitchen — prep, warming, serving — with a bunch of trays that each have to travel those three steps; the job is slotting each tray’s passage so the last tray is done sooner and nobody tries to use the same station at the same time. To judge a plan, look at the finish time of the last tray; that’s the number to bring down. No tray can skip or repeat a step, every tray follows the same sequence, and the concrete timings and tray details follow below.\n\n{\n \"number_of_trays\": 9,\n \"number_of_stations\": 5,\n \"tray_ids\": [\n \"J1\",\n \"J2\",\n \"J3\",\n \"J4\",\n \"J5\",\n \"J6\",\n \"J7\",\n \"J8\",\n \"J9\"\n ],\n \"station_ids\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"tasks\": [\n {\n \"tray_id\": \"J1\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 1\n },\n {\n \"tray_id\": \"J1\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 70\n },\n {\n \"tray_id\": \"J1\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 25\n },\n {\n \"tray_id\": \"J1\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 82\n },\n {\n \"tray_id\": \"J1\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 42\n },\n {\n \"tray_id\": \"J2\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 49\n },\n {\n \"tray_id\": \"J2\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 19\n },\n {\n \"tray_id\": \"J2\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 42\n },\n {\n \"tray_id\": \"J2\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 46\n },\n {\n \"tray_id\": \"J2\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 19\n },\n {\n \"tray_id\": \"J3\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 14\n },\n {\n \"tray_id\": \"J3\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 23\n },\n {\n \"tray_id\": \"J3\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 95\n },\n {\n \"tray_id\": \"J3\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 8\n },\n {\n \"tray_id\": \"J3\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 76\n },\n {\n \"tray_id\": \"J4\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 15\n },\n {\n \"tray_id\": \"J4\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 73\n },\n {\n \"tray_id\": \"J4\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 68\n },\n {\n \"tray_id\": \"J4\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 13\n },\n {\n \"tray_id\": \"J4\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 94\n },\n {\n \"tray_id\": \"J5\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 16\n },\n {\n \"tray_id\": \"J5\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 13\n },\n {\n \"tray_id\": \"J5\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 42\n },\n {\n \"tray_id\": \"J5\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 81\n },\n {\n \"tray_id\": \"J5\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 31\n },\n {\n \"tray_id\": \"J6\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 89\n },\n {\n \"tray_id\": \"J6\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 19\n },\n {\n \"tray_id\": \"J6\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 20\n },\n {\n \"tray_id\": \"J6\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 3\n },\n {\n \"tray_id\": \"J6\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 41\n },\n {\n \"tray_id\": \"J7\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 2\n },\n {\n \"tray_id\": \"J7\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 83\n },\n {\n \"tray_id\": \"J7\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 36\n },\n {\n \"tray_id\": \"J7\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 23\n },\n {\n \"tray_id\": \"J7\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 51\n },\n {\n \"tray_id\": \"J8\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 22\n },\n {\n \"tray_id\": \"J8\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 31\n },\n {\n \"tray_id\": \"J8\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 32\n },\n {\n \"tray_id\": \"J8\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 21\n },\n {\n \"tray_id\": \"J8\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 51\n },\n {\n \"tray_id\": \"J9\",\n \"step_index\": 0,\n \"station_id\": 1,\n \"task_duration\": 98\n },\n {\n \"tray_id\": \"J9\",\n \"step_index\": 1,\n \"station_id\": 2,\n \"task_duration\": 45\n },\n {\n \"tray_id\": \"J9\",\n \"step_index\": 2,\n \"station_id\": 3,\n \"task_duration\": 32\n },\n {\n \"tray_id\": \"J9\",\n \"step_index\": 3,\n \"station_id\": 4,\n \"task_duration\": 5\n },\n {\n \"tray_id\": \"J9\",\n \"step_index\": 4,\n \"station_id\": 5,\n \"task_duration\": 98\n }\n ]\n}\n\nIf you want to hand me a plan, the easiest is to use a tiny JSON form — think of it like filling out a little schedule sheet. Here’s the shape I expect:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a sketch of the shape, not the actual plan. In plain terms: \"solution\" is a list of trays (jobs). Each job has a job id and a list of tasks. Each task records which step it is (task), when that step starts (start), which station it uses (machine), and how long it takes (duration). Keep it simple and human-readable, like filling in a timetable.\n\nPlease use the instance’s identifiers exactly as given — don’t rename them or invent new labels. \n- 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”.\"", + "instance": { + "nr_machines": 5, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 70 + ], + [ + 2, + 25 + ], + [ + 3, + 82 + ], + [ + 4, + 42 + ] + ], + [ + [ + 0, + 49 + ], + [ + 1, + 19 + ], + [ + 2, + 42 + ], + [ + 3, + 46 + ], + [ + 4, + 19 + ] + ], + [ + [ + 0, + 14 + ], + [ + 1, + 23 + ], + [ + 2, + 95 + ], + [ + 3, + 8 + ], + [ + 4, + 76 + ] + ], + [ + [ + 0, + 15 + ], + [ + 1, + 73 + ], + [ + 2, + 68 + ], + [ + 3, + 13 + ], + [ + 4, + 94 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 13 + ], + [ + 2, + 42 + ], + [ + 3, + 81 + ], + [ + 4, + 31 + ] + ], + [ + [ + 0, + 89 + ], + [ + 1, + 19 + ], + [ + 2, + 20 + ], + [ + 3, + 3 + ], + [ + 4, + 41 + ] + ], + [ + [ + 0, + 2 + ], + [ + 1, + 83 + ], + [ + 2, + 36 + ], + [ + 3, + 23 + ], + [ + 4, + 51 + ] + ], + [ + [ + 0, + 22 + ], + [ + 1, + 31 + ], + [ + 2, + 32 + ], + [ + 3, + 21 + ], + [ + 4, + 51 + ] + ], + [ + [ + 0, + 98 + ], + [ + 1, + 45 + ], + [ + 2, + 32 + ], + [ + 3, + 5 + ], + [ + 4, + 98 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 37, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 149, + "machine": 1, + "duration": 70 + }, + { + "task": 2, + "start": 248, + "machine": 2, + "duration": 25 + }, + { + "task": 3, + "start": 273, + "machine": 3, + "duration": 82 + }, + { + "task": 4, + "start": 358, + "machine": 4, + "duration": 42 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 168, + "machine": 0, + "duration": 49 + }, + { + "task": 1, + "start": 360, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 421, + "machine": 2, + "duration": 42 + }, + { + "task": 3, + "start": 502, + "machine": 3, + "duration": 46 + }, + { + "task": 4, + "start": 621, + "machine": 4, + "duration": 19 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 38, + "machine": 0, + "duration": 14 + }, + { + "task": 1, + "start": 53, + "machine": 1, + "duration": 23 + }, + { + "task": 2, + "start": 85, + "machine": 2, + "duration": 95 + }, + { + "task": 3, + "start": 180, + "machine": 3, + "duration": 8 + }, + { + "task": 4, + "start": 188, + "machine": 4, + "duration": 76 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 22, + "machine": 0, + "duration": 15 + }, + { + "task": 1, + "start": 76, + "machine": 1, + "duration": 73 + }, + { + "task": 2, + "start": 180, + "machine": 2, + "duration": 68 + }, + { + "task": 3, + "start": 248, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 264, + "machine": 4, + "duration": 94 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 152, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 347, + "machine": 1, + "duration": 13 + }, + { + "task": 2, + "start": 379, + "machine": 2, + "duration": 42 + }, + { + "task": 3, + "start": 421, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 549, + "machine": 4, + "duration": 31 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 217, + "machine": 0, + "duration": 89 + }, + { + "task": 1, + "start": 379, + "machine": 1, + "duration": 19 + }, + { + "task": 2, + "start": 463, + "machine": 2, + "duration": 20 + }, + { + "task": 3, + "start": 548, + "machine": 3, + "duration": 3 + }, + { + "task": 4, + "start": 580, + "machine": 4, + "duration": 41 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 150, + "machine": 0, + "duration": 2 + }, + { + "task": 1, + "start": 219, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 302, + "machine": 2, + "duration": 36 + }, + { + "task": 3, + "start": 355, + "machine": 3, + "duration": 23 + }, + { + "task": 4, + "start": 498, + "machine": 4, + "duration": 51 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 22 + }, + { + "task": 1, + "start": 22, + "machine": 1, + "duration": 31 + }, + { + "task": 2, + "start": 53, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 85, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 106, + "machine": 4, + "duration": 51 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 52, + "machine": 0, + "duration": 98 + }, + { + "task": 1, + "start": 302, + "machine": 1, + "duration": 45 + }, + { + "task": 2, + "start": 347, + "machine": 2, + "duration": 32 + }, + { + "task": 3, + "start": 379, + "machine": 3, + "duration": 5 + }, + { + "task": 4, + "start": 400, + "machine": 4, + "duration": 98 + } + ] + } + ], + "obj": 640.0, + "instance_variant": { + "problem_type": "FSP", + "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": 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": 5, + "duration": 42 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 49 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 19 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 42 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 46 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 19 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 14 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 23 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 95 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 76 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 73 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 68 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 13 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 94 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 13 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 42 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 81 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "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": 3, + "duration": 20 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 3 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 41 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 2 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 83 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 36 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 23 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 51 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 22 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 31 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 21 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 51 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 98 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 45 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 5 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 98 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 37, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 149, + "machine": 2, + "duration": 70 + }, + { + "task": 2, + "start": 248, + "machine": 3, + "duration": 25 + }, + { + "task": 3, + "start": 273, + "machine": 4, + "duration": 82 + }, + { + "task": 4, + "start": 358, + "machine": 5, + "duration": 42 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 168, + "machine": 1, + "duration": 49 + }, + { + "task": 1, + "start": 360, + "machine": 2, + "duration": 19 + }, + { + "task": 2, + "start": 421, + "machine": 3, + "duration": 42 + }, + { + "task": 3, + "start": 502, + "machine": 4, + "duration": 46 + }, + { + "task": 4, + "start": 621, + "machine": 5, + "duration": 19 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 38, + "machine": 1, + "duration": 14 + }, + { + "task": 1, + "start": 53, + "machine": 2, + "duration": 23 + }, + { + "task": 2, + "start": 85, + "machine": 3, + "duration": 95 + }, + { + "task": 3, + "start": 180, + "machine": 4, + "duration": 8 + }, + { + "task": 4, + "start": 188, + "machine": 5, + "duration": 76 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 22, + "machine": 1, + "duration": 15 + }, + { + "task": 1, + "start": 76, + "machine": 2, + "duration": 73 + }, + { + "task": 2, + "start": 180, + "machine": 3, + "duration": 68 + }, + { + "task": 3, + "start": 248, + "machine": 4, + "duration": 13 + }, + { + "task": 4, + "start": 264, + "machine": 5, + "duration": 94 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 152, + "machine": 1, + "duration": 16 + }, + { + "task": 1, + "start": 347, + "machine": 2, + "duration": 13 + }, + { + "task": 2, + "start": 379, + "machine": 3, + "duration": 42 + }, + { + "task": 3, + "start": 421, + "machine": 4, + "duration": 81 + }, + { + "task": 4, + "start": 549, + "machine": 5, + "duration": 31 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 217, + "machine": 1, + "duration": 89 + }, + { + "task": 1, + "start": 379, + "machine": 2, + "duration": 19 + }, + { + "task": 2, + "start": 463, + "machine": 3, + "duration": 20 + }, + { + "task": 3, + "start": 548, + "machine": 4, + "duration": 3 + }, + { + "task": 4, + "start": 580, + "machine": 5, + "duration": 41 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 150, + "machine": 1, + "duration": 2 + }, + { + "task": 1, + "start": 219, + "machine": 2, + "duration": 83 + }, + { + "task": 2, + "start": 302, + "machine": 3, + "duration": 36 + }, + { + "task": 3, + "start": 355, + "machine": 4, + "duration": 23 + }, + { + "task": 4, + "start": 498, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 22 + }, + { + "task": 1, + "start": 22, + "machine": 2, + "duration": 31 + }, + { + "task": 2, + "start": 53, + "machine": 3, + "duration": 32 + }, + { + "task": 3, + "start": 85, + "machine": 4, + "duration": 21 + }, + { + "task": 4, + "start": 106, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 52, + "machine": 1, + "duration": 98 + }, + { + "task": 1, + "start": 302, + "machine": 2, + "duration": 45 + }, + { + "task": 2, + "start": 347, + "machine": 3, + "duration": 32 + }, + { + "task": 3, + "start": 379, + "machine": 4, + "duration": 5 + }, + { + "task": 4, + "start": 400, + "machine": 5, + "duration": 98 + } + ] + } + ], + "context_index": 48, + "input_format": "json", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Someone in the workshop is juggling a stack of tabletops and a calendar: each tabletop must be cut, sanded and finished, and the only choice is the order to feed them through those machines. A good ordering is the one that makes the last tabletop come off the finishing stage sooner rather than later — that final completion time is the score for the plan. All tabletops must go through cutting → sanding → finishing exactly once, and machines can’t handle two pieces at once. The detailed task times are laid out below.\n\nThere are 10 tabletops and 6 stations, listed as J1, J2, J3, J4, J5, J6, J7, J8, J9, J10 and 1, 2, 3, 4, 5, 6.\nTabletop J1: operation 0 on station 1 takes 1.\nTabletop J1: operation 1 on station 2 takes 84.\nTabletop J1: operation 2 on station 3 takes 1.\nTabletop J1: operation 3 on station 4 takes 28.\nTabletop J1: operation 4 on station 5 takes 94.\nTabletop J1: operation 5 on station 6 takes 70.\nTabletop J2: operation 0 on station 1 takes 24.\nTabletop J2: operation 1 on station 2 takes 10.\nTabletop J2: operation 2 on station 3 takes 14.\nTabletop J2: operation 3 on station 4 takes 13.\nTabletop J2: operation 4 on station 5 takes 52.\nTabletop J2: operation 5 on station 6 takes 74.\nTabletop J3: operation 0 on station 1 takes 78.\nTabletop J3: operation 1 on station 2 takes 12.\nTabletop J3: operation 2 on station 3 takes 81.\nTabletop J3: operation 3 on station 4 takes 67.\nTabletop J3: operation 4 on station 5 takes 40.\nTabletop J3: operation 5 on station 6 takes 69.\nTabletop J4: operation 0 on station 1 takes 51.\nTabletop J4: operation 1 on station 2 takes 2.\nTabletop J4: operation 2 on station 3 takes 57.\nTabletop J4: operation 3 on station 4 takes 81.\nTabletop J4: operation 4 on station 5 takes 1.\nTabletop J4: operation 5 on station 6 takes 74.\nTabletop J5: operation 0 on station 1 takes 16.\nTabletop J5: operation 1 on station 2 takes 42.\nTabletop J5: operation 2 on station 3 takes 28.\nTabletop J5: operation 3 on station 4 takes 85.\nTabletop J5: operation 4 on station 5 takes 44.\nTabletop J5: operation 5 on station 6 takes 11.\nTabletop J6: operation 0 on station 1 takes 92.\nTabletop J6: operation 1 on station 2 takes 60.\nTabletop J6: operation 2 on station 3 takes 62.\nTabletop J6: operation 3 on station 4 takes 27.\nTabletop J6: operation 4 on station 5 takes 25.\nTabletop J6: operation 5 on station 6 takes 54.\nTabletop J7: operation 0 on station 1 takes 93.\nTabletop J7: operation 1 on station 2 takes 8.\nTabletop J7: operation 2 on station 3 takes 20.\nTabletop J7: operation 3 on station 4 takes 88.\nTabletop J7: operation 4 on station 5 takes 24.\nTabletop J7: operation 5 on station 6 takes 43.\nTabletop J8: operation 0 on station 1 takes 4.\nTabletop J8: operation 1 on station 2 takes 80.\nTabletop J8: operation 2 on station 3 takes 64.\nTabletop J8: operation 3 on station 4 takes 54.\nTabletop J8: operation 4 on station 5 takes 84.\nTabletop J8: operation 5 on station 6 takes 62.\nTabletop J9: operation 0 on station 1 takes 54.\nTabletop J9: operation 1 on station 2 takes 28.\nTabletop J9: operation 2 on station 3 takes 98.\nTabletop J9: operation 3 on station 4 takes 99.\nTabletop J9: operation 4 on station 5 takes 40.\nTabletop J9: operation 5 on station 6 takes 74.\nTabletop J10: operation 0 on station 1 takes 34.\nTabletop J10: operation 1 on station 2 takes 98.\nTabletop J10: operation 2 on station 3 takes 78.\nTabletop J10: operation 3 on station 4 takes 79.\nTabletop J10: operation 4 on station 5 takes 83.\nTabletop J10: operation 5 on station 6 takes 45.\nOrder them to minimize when the last of the 10 tabletops finishes.\n\nAlso, when you hand me the plan, please put it in a simple JSON shape so it's easy to read and reuse. Something like this:\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThis is just a sketch of the shape I expect: \"solution\" is an array of jobs, each job entry gives the job identifier and a list of its tasks. Each task entry shows which task number it is, when that task starts, which machine it runs on, and how long it takes. Keep it casual — it's like filling out a little form for each tabletop as it moves through cutting, sanding and finishing.\n\nThis JSON block is only the expected shape, not the actual schedule. Please use the exact identifiers from the instance input — do not rename them or invent new labels. \n\nValid 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 10, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 84 + ], + [ + 2, + 1 + ], + [ + 3, + 28 + ], + [ + 4, + 94 + ], + [ + 5, + 70 + ] + ], + [ + [ + 0, + 24 + ], + [ + 1, + 10 + ], + [ + 2, + 14 + ], + [ + 3, + 13 + ], + [ + 4, + 52 + ], + [ + 5, + 74 + ] + ], + [ + [ + 0, + 78 + ], + [ + 1, + 12 + ], + [ + 2, + 81 + ], + [ + 3, + 67 + ], + [ + 4, + 40 + ], + [ + 5, + 69 + ] + ], + [ + [ + 0, + 51 + ], + [ + 1, + 2 + ], + [ + 2, + 57 + ], + [ + 3, + 81 + ], + [ + 4, + 1 + ], + [ + 5, + 74 + ] + ], + [ + [ + 0, + 16 + ], + [ + 1, + 42 + ], + [ + 2, + 28 + ], + [ + 3, + 85 + ], + [ + 4, + 44 + ], + [ + 5, + 11 + ] + ], + [ + [ + 0, + 92 + ], + [ + 1, + 60 + ], + [ + 2, + 62 + ], + [ + 3, + 27 + ], + [ + 4, + 25 + ], + [ + 5, + 54 + ] + ], + [ + [ + 0, + 93 + ], + [ + 1, + 8 + ], + [ + 2, + 20 + ], + [ + 3, + 88 + ], + [ + 4, + 24 + ], + [ + 5, + 43 + ] + ], + [ + [ + 0, + 4 + ], + [ + 1, + 80 + ], + [ + 2, + 64 + ], + [ + 3, + 54 + ], + [ + 4, + 84 + ], + [ + 5, + 62 + ] + ], + [ + [ + 0, + 54 + ], + [ + 1, + 28 + ], + [ + 2, + 98 + ], + [ + 3, + 99 + ], + [ + 4, + 40 + ], + [ + 5, + 74 + ] + ], + [ + [ + 0, + 34 + ], + [ + 1, + 98 + ], + [ + 2, + 78 + ], + [ + 3, + 79 + ], + [ + 4, + 83 + ], + [ + 5, + 45 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 84 + }, + { + "task": 2, + "start": 85, + "machine": 2, + "duration": 1 + }, + { + "task": 3, + "start": 86, + "machine": 3, + "duration": 28 + }, + { + "task": 4, + "start": 114, + "machine": 4, + "duration": 94 + }, + { + "task": 5, + "start": 300, + "machine": 5, + "duration": 70 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 106, + "machine": 0, + "duration": 24 + }, + { + "task": 1, + "start": 134, + "machine": 1, + "duration": 10 + }, + { + "task": 2, + "start": 144, + "machine": 2, + "duration": 14 + }, + { + "task": 3, + "start": 225, + "machine": 3, + "duration": 13 + }, + { + "task": 4, + "start": 238, + "machine": 4, + "duration": 52 + }, + { + "task": 5, + "start": 370, + "machine": 5, + "duration": 74 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 257, + "machine": 0, + "duration": 78 + }, + { + "task": 1, + "start": 335, + "machine": 1, + "duration": 12 + }, + { + "task": 2, + "start": 347, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 434, + "machine": 3, + "duration": 67 + }, + { + "task": 4, + "start": 517, + "machine": 4, + "duration": 40 + }, + { + "task": 5, + "start": 563, + "machine": 5, + "duration": 69 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 51 + }, + { + "task": 1, + "start": 85, + "machine": 1, + "duration": 2 + }, + { + "task": 2, + "start": 87, + "machine": 2, + "duration": 57 + }, + { + "task": 3, + "start": 144, + "machine": 3, + "duration": 81 + }, + { + "task": 4, + "start": 225, + "machine": 4, + "duration": 1 + }, + { + "task": 5, + "start": 226, + "machine": 5, + "duration": 74 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 431, + "machine": 0, + "duration": 16 + }, + { + "task": 1, + "start": 492, + "machine": 1, + "duration": 42 + }, + { + "task": 2, + "start": 582, + "machine": 2, + "duration": 28 + }, + { + "task": 3, + "start": 670, + "machine": 3, + "duration": 85 + }, + { + "task": 4, + "start": 755, + "machine": 4, + "duration": 44 + }, + { + "task": 5, + "start": 799, + "machine": 5, + "duration": 11 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 339, + "machine": 0, + "duration": 92 + }, + { + "task": 1, + "start": 432, + "machine": 1, + "duration": 60 + }, + { + "task": 2, + "start": 492, + "machine": 2, + "duration": 62 + }, + { + "task": 3, + "start": 555, + "machine": 3, + "duration": 27 + }, + { + "task": 4, + "start": 582, + "machine": 4, + "duration": 25 + }, + { + "task": 5, + "start": 632, + "machine": 5, + "duration": 54 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 164, + "machine": 0, + "duration": 93 + }, + { + "task": 1, + "start": 277, + "machine": 1, + "duration": 8 + }, + { + "task": 2, + "start": 554, + "machine": 2, + "duration": 20 + }, + { + "task": 3, + "start": 582, + "machine": 3, + "duration": 88 + }, + { + "task": 4, + "start": 694, + "machine": 4, + "duration": 24 + }, + { + "task": 5, + "start": 756, + "machine": 5, + "duration": 43 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 335, + "machine": 0, + "duration": 4 + }, + { + "task": 1, + "start": 347, + "machine": 1, + "duration": 80 + }, + { + "task": 2, + "start": 428, + "machine": 2, + "duration": 64 + }, + { + "task": 3, + "start": 501, + "machine": 3, + "duration": 54 + }, + { + "task": 4, + "start": 610, + "machine": 4, + "duration": 84 + }, + { + "task": 5, + "start": 694, + "machine": 5, + "duration": 62 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 52, + "machine": 0, + "duration": 54 + }, + { + "task": 1, + "start": 106, + "machine": 1, + "duration": 28 + }, + { + "task": 2, + "start": 158, + "machine": 2, + "duration": 98 + }, + { + "task": 3, + "start": 256, + "machine": 3, + "duration": 99 + }, + { + "task": 4, + "start": 355, + "machine": 4, + "duration": 40 + }, + { + "task": 5, + "start": 444, + "machine": 5, + "duration": 74 + } + ] + }, + { + "job": 9, + "tasks": [ + { + "task": 0, + "start": 130, + "machine": 0, + "duration": 34 + }, + { + "task": 1, + "start": 164, + "machine": 1, + "duration": 98 + }, + { + "task": 2, + "start": 262, + "machine": 2, + "duration": 78 + }, + { + "task": 3, + "start": 355, + "machine": 3, + "duration": 79 + }, + { + "task": 4, + "start": 434, + "machine": 4, + "duration": 83 + }, + { + "task": 5, + "start": 518, + "machine": 5, + "duration": 45 + } + ] + } + ], + "obj": 810.0, + "instance_variant": { + "problem_type": "FSP", + "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": 1, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 2, + "duration": 84 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 3, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 4, + "duration": 28 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 5, + "duration": 94 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 6, + "duration": 70 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 1, + "duration": 24 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 2, + "duration": 10 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 3, + "duration": 14 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 4, + "duration": 13 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 5, + "duration": 52 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 6, + "duration": 74 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 1, + "duration": 78 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 2, + "duration": 12 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 3, + "duration": 81 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 4, + "duration": 67 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 5, + "duration": 40 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 6, + "duration": 69 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 1, + "duration": 51 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 2, + "duration": 2 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 3, + "duration": 57 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 4, + "duration": 81 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 5, + "duration": 1 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 6, + "duration": 74 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 1, + "duration": 16 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 2, + "duration": 42 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 3, + "duration": 28 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 4, + "duration": 85 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 5, + "duration": 44 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 6, + "duration": 11 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 1, + "duration": 92 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 2, + "duration": 60 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 3, + "duration": 62 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 4, + "duration": 27 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 5, + "duration": 25 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 6, + "duration": 54 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 1, + "duration": 93 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 2, + "duration": 8 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 3, + "duration": 20 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 4, + "duration": 88 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 5, + "duration": 24 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 6, + "duration": 43 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 1, + "duration": 4 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 2, + "duration": 80 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 3, + "duration": 64 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 4, + "duration": 54 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 5, + "duration": 84 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 6, + "duration": 62 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 1, + "duration": 54 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 2, + "duration": 28 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 3, + "duration": 98 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 4, + "duration": 99 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 5, + "duration": 40 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 6, + "duration": 74 + }, + { + "job_id": "J10", + "task_id": 0, + "machine_id": 1, + "duration": 34 + }, + { + "job_id": "J10", + "task_id": 1, + "machine_id": 2, + "duration": 98 + }, + { + "job_id": "J10", + "task_id": 2, + "machine_id": 3, + "duration": 78 + }, + { + "job_id": "J10", + "task_id": 3, + "machine_id": 4, + "duration": 79 + }, + { + "job_id": "J10", + "task_id": 4, + "machine_id": 5, + "duration": 83 + }, + { + "job_id": "J10", + "task_id": 5, + "machine_id": 6, + "duration": 45 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 1, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 2, + "duration": 84 + }, + { + "task": 2, + "start": 85, + "machine": 3, + "duration": 1 + }, + { + "task": 3, + "start": 86, + "machine": 4, + "duration": 28 + }, + { + "task": 4, + "start": 114, + "machine": 5, + "duration": 94 + }, + { + "task": 5, + "start": 300, + "machine": 6, + "duration": 70 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 106, + "machine": 1, + "duration": 24 + }, + { + "task": 1, + "start": 134, + "machine": 2, + "duration": 10 + }, + { + "task": 2, + "start": 144, + "machine": 3, + "duration": 14 + }, + { + "task": 3, + "start": 225, + "machine": 4, + "duration": 13 + }, + { + "task": 4, + "start": 238, + "machine": 5, + "duration": 52 + }, + { + "task": 5, + "start": 370, + "machine": 6, + "duration": 74 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 257, + "machine": 1, + "duration": 78 + }, + { + "task": 1, + "start": 335, + "machine": 2, + "duration": 12 + }, + { + "task": 2, + "start": 347, + "machine": 3, + "duration": 81 + }, + { + "task": 3, + "start": 434, + "machine": 4, + "duration": 67 + }, + { + "task": 4, + "start": 517, + "machine": 5, + "duration": 40 + }, + { + "task": 5, + "start": 563, + "machine": 6, + "duration": 69 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 1, + "duration": 51 + }, + { + "task": 1, + "start": 85, + "machine": 2, + "duration": 2 + }, + { + "task": 2, + "start": 87, + "machine": 3, + "duration": 57 + }, + { + "task": 3, + "start": 144, + "machine": 4, + "duration": 81 + }, + { + "task": 4, + "start": 225, + "machine": 5, + "duration": 1 + }, + { + "task": 5, + "start": 226, + "machine": 6, + "duration": 74 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 431, + "machine": 1, + "duration": 16 + }, + { + "task": 1, + "start": 492, + "machine": 2, + "duration": 42 + }, + { + "task": 2, + "start": 582, + "machine": 3, + "duration": 28 + }, + { + "task": 3, + "start": 670, + "machine": 4, + "duration": 85 + }, + { + "task": 4, + "start": 755, + "machine": 5, + "duration": 44 + }, + { + "task": 5, + "start": 799, + "machine": 6, + "duration": 11 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 339, + "machine": 1, + "duration": 92 + }, + { + "task": 1, + "start": 432, + "machine": 2, + "duration": 60 + }, + { + "task": 2, + "start": 492, + "machine": 3, + "duration": 62 + }, + { + "task": 3, + "start": 555, + "machine": 4, + "duration": 27 + }, + { + "task": 4, + "start": 582, + "machine": 5, + "duration": 25 + }, + { + "task": 5, + "start": 632, + "machine": 6, + "duration": 54 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 164, + "machine": 1, + "duration": 93 + }, + { + "task": 1, + "start": 277, + "machine": 2, + "duration": 8 + }, + { + "task": 2, + "start": 554, + "machine": 3, + "duration": 20 + }, + { + "task": 3, + "start": 582, + "machine": 4, + "duration": 88 + }, + { + "task": 4, + "start": 694, + "machine": 5, + "duration": 24 + }, + { + "task": 5, + "start": 756, + "machine": 6, + "duration": 43 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 335, + "machine": 1, + "duration": 4 + }, + { + "task": 1, + "start": 347, + "machine": 2, + "duration": 80 + }, + { + "task": 2, + "start": 428, + "machine": 3, + "duration": 64 + }, + { + "task": 3, + "start": 501, + "machine": 4, + "duration": 54 + }, + { + "task": 4, + "start": 610, + "machine": 5, + "duration": 84 + }, + { + "task": 5, + "start": 694, + "machine": 6, + "duration": 62 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 52, + "machine": 1, + "duration": 54 + }, + { + "task": 1, + "start": 106, + "machine": 2, + "duration": 28 + }, + { + "task": 2, + "start": 158, + "machine": 3, + "duration": 98 + }, + { + "task": 3, + "start": 256, + "machine": 4, + "duration": 99 + }, + { + "task": 4, + "start": 355, + "machine": 5, + "duration": 40 + }, + { + "task": 5, + "start": 444, + "machine": 6, + "duration": 74 + } + ] + }, + { + "job": "J10", + "tasks": [ + { + "task": 0, + "start": 130, + "machine": 1, + "duration": 34 + }, + { + "task": 1, + "start": 164, + "machine": 2, + "duration": 98 + }, + { + "task": 2, + "start": 262, + "machine": 3, + "duration": 78 + }, + { + "task": 3, + "start": 355, + "machine": 4, + "duration": 79 + }, + { + "task": 4, + "start": 434, + "machine": 5, + "duration": 83 + }, + { + "task": 5, + "start": 518, + "machine": 6, + "duration": 45 + } + ] + } + ], + "context_index": 49, + "input_format": "nl", + "input_index_base": 1 + }, + { + "task_name": "FSP", + "problem_type": "FSP", + "instruction": "Many people don’t realize how much planning goes into a simple run: samples must go through a centrifuge, then an incubator, then an assay, and the order you send them in determines how long the whole batch takes. The better plan is the one where the last sample exits the assay sooner — that finish time is what you compare. All samples have set times for each stage, none can skip or repeat a stage, and equipment can’t work on more than one sample at once. The exact sample timings are listed below.\n\n# nr_samples=9\n# nr_equipment=6\n# sample_ids=J1, J2, J3, J4, J5, J6, J7, J8, J9\n# equipment_ids=0, 1, 2, 3, 4, 5\nsample_id,step_index,equipment_id,processing_time\nJ1,0,0,1\nJ1,1,1,97\nJ1,2,2,76\nJ1,3,3,73\nJ1,4,4,48\nJ1,5,5,92\nJ2,0,0,28\nJ2,1,1,77\nJ2,2,2,81\nJ2,3,3,6\nJ2,4,4,89\nJ2,5,5,27\nJ3,0,0,62\nJ3,1,1,15\nJ3,2,2,86\nJ3,3,3,21\nJ3,4,4,8\nJ3,5,5,70\nJ4,0,0,89\nJ4,1,1,9\nJ4,2,2,99\nJ4,3,3,50\nJ4,4,4,60\nJ4,5,5,67\nJ5,0,0,1\nJ5,1,1,95\nJ5,2,2,37\nJ5,3,3,51\nJ5,4,4,85\nJ5,5,5,81\nJ6,0,0,84\nJ6,1,1,36\nJ6,2,2,88\nJ6,3,3,32\nJ6,4,4,98\nJ6,5,5,87\nJ7,0,0,57\nJ7,1,1,83\nJ7,2,2,19\nJ7,3,3,25\nJ7,4,4,48\nJ7,5,5,41\nJ8,0,0,76\nJ8,1,1,55\nJ8,2,2,29\nJ8,3,3,61\nJ8,4,4,48\nJ8,5,5,51\nJ9,0,0,81\nJ9,1,1,71\nJ9,2,2,75\nJ9,3,3,47\nJ9,4,4,64\nJ9,5,5,2\n\nIf you prefer the schedule in a neat, machine-friendly layout, I'll use the JSON shape below so it's easy to read and parse.\n\n{\n \"solution\": [\n {\n \"job\": ,\n \"tasks\": [\n {\n \"task\": ,\n \"start\": ,\n \"machine\": ,\n \"duration\": \n }\n ]\n }\n ]\n}\n\nThink of it like a simple form: \"solution\" holds a list of jobs; each job entry names the job and then lists its tasks. Each task entry says which step it is (\"task\"), when that step starts (\"start\"), which piece of equipment it uses (\"machine\"), and how long it runs (\"duration\"). It's just a sketch of the shape I need — not the real schedule yet.\n\nPlease use the exact identifiers from the instance input when filling this in — 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”.", + "instance": { + "nr_machines": 6, + "nr_jobs": 9, + "jobs": [ + [ + [ + 0, + 1 + ], + [ + 1, + 97 + ], + [ + 2, + 76 + ], + [ + 3, + 73 + ], + [ + 4, + 48 + ], + [ + 5, + 92 + ] + ], + [ + [ + 0, + 28 + ], + [ + 1, + 77 + ], + [ + 2, + 81 + ], + [ + 3, + 6 + ], + [ + 4, + 89 + ], + [ + 5, + 27 + ] + ], + [ + [ + 0, + 62 + ], + [ + 1, + 15 + ], + [ + 2, + 86 + ], + [ + 3, + 21 + ], + [ + 4, + 8 + ], + [ + 5, + 70 + ] + ], + [ + [ + 0, + 89 + ], + [ + 1, + 9 + ], + [ + 2, + 99 + ], + [ + 3, + 50 + ], + [ + 4, + 60 + ], + [ + 5, + 67 + ] + ], + [ + [ + 0, + 1 + ], + [ + 1, + 95 + ], + [ + 2, + 37 + ], + [ + 3, + 51 + ], + [ + 4, + 85 + ], + [ + 5, + 81 + ] + ], + [ + [ + 0, + 84 + ], + [ + 1, + 36 + ], + [ + 2, + 88 + ], + [ + 3, + 32 + ], + [ + 4, + 98 + ], + [ + 5, + 87 + ] + ], + [ + [ + 0, + 57 + ], + [ + 1, + 83 + ], + [ + 2, + 19 + ], + [ + 3, + 25 + ], + [ + 4, + 48 + ], + [ + 5, + 41 + ] + ], + [ + [ + 0, + 76 + ], + [ + 1, + 55 + ], + [ + 2, + 29 + ], + [ + 3, + 61 + ], + [ + 4, + 48 + ], + [ + 5, + 51 + ] + ], + [ + [ + 0, + 81 + ], + [ + 1, + 71 + ], + [ + 2, + 75 + ], + [ + 3, + 47 + ], + [ + 4, + 64 + ], + [ + 5, + 2 + ] + ] + ] + }, + "solution": [ + { + "job": 0, + "tasks": [ + { + "task": 0, + "start": 223, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 238, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 336, + "machine": 2, + "duration": 76 + }, + { + "task": 3, + "start": 412, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 485, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 570, + "machine": 5, + "duration": 92 + } + ] + }, + { + "job": 1, + "tasks": [ + { + "task": 0, + "start": 224, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 335, + "machine": 1, + "duration": 77 + }, + { + "task": 2, + "start": 412, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 493, + "machine": 3, + "duration": 6 + }, + { + "task": 4, + "start": 533, + "machine": 4, + "duration": 89 + }, + { + "task": 5, + "start": 662, + "machine": 5, + "duration": 27 + } + ] + }, + { + "job": 2, + "tasks": [ + { + "task": 0, + "start": 161, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 223, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 250, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 336, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 362, + "machine": 4, + "duration": 8 + }, + { + "task": 5, + "start": 413, + "machine": 5, + "duration": 70 + } + ] + }, + { + "job": 3, + "tasks": [ + { + "task": 0, + "start": 390, + "machine": 0, + "duration": 89 + }, + { + "task": 1, + "start": 495, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 514, + "machine": 2, + "duration": 99 + }, + { + "task": 3, + "start": 613, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 670, + "machine": 4, + "duration": 60 + }, + { + "task": 5, + "start": 730, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": 4, + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 96, + "machine": 2, + "duration": 37 + }, + { + "task": 3, + "start": 133, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 184, + "machine": 4, + "duration": 85 + }, + { + "task": 5, + "start": 269, + "machine": 5, + "duration": 81 + } + ] + }, + { + "job": 5, + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 96, + "machine": 1, + "duration": 36 + }, + { + "task": 2, + "start": 133, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 221, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 370, + "machine": 4, + "duration": 98 + }, + { + "task": 5, + "start": 483, + "machine": 5, + "duration": 87 + } + ] + }, + { + "job": 6, + "tasks": [ + { + "task": 0, + "start": 333, + "machine": 0, + "duration": 57 + }, + { + "task": 1, + "start": 412, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 495, + "machine": 2, + "duration": 19 + }, + { + "task": 3, + "start": 514, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 622, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 689, + "machine": 5, + "duration": 41 + } + ] + }, + { + "job": 7, + "tasks": [ + { + "task": 0, + "start": 85, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 161, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 221, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 253, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 314, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 362, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": 8, + "tasks": [ + { + "task": 0, + "start": 252, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 504, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 613, + "machine": 2, + "duration": 75 + }, + { + "task": 3, + "start": 688, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 735, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 799, + "machine": 5, + "duration": 2 + } + ] + } + ], + "obj": 801.0, + "instance_variant": { + "problem_type": "FSP", + "nr_jobs": 9, + "nr_machines": 6, + "jobs": [ + "J1", + "J2", + "J3", + "J4", + "J5", + "J6", + "J7", + "J8", + "J9" + ], + "machines": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "records": [ + { + "job_id": "J1", + "task_id": 0, + "machine_id": 0, + "duration": 1 + }, + { + "job_id": "J1", + "task_id": 1, + "machine_id": 1, + "duration": 97 + }, + { + "job_id": "J1", + "task_id": 2, + "machine_id": 2, + "duration": 76 + }, + { + "job_id": "J1", + "task_id": 3, + "machine_id": 3, + "duration": 73 + }, + { + "job_id": "J1", + "task_id": 4, + "machine_id": 4, + "duration": 48 + }, + { + "job_id": "J1", + "task_id": 5, + "machine_id": 5, + "duration": 92 + }, + { + "job_id": "J2", + "task_id": 0, + "machine_id": 0, + "duration": 28 + }, + { + "job_id": "J2", + "task_id": 1, + "machine_id": 1, + "duration": 77 + }, + { + "job_id": "J2", + "task_id": 2, + "machine_id": 2, + "duration": 81 + }, + { + "job_id": "J2", + "task_id": 3, + "machine_id": 3, + "duration": 6 + }, + { + "job_id": "J2", + "task_id": 4, + "machine_id": 4, + "duration": 89 + }, + { + "job_id": "J2", + "task_id": 5, + "machine_id": 5, + "duration": 27 + }, + { + "job_id": "J3", + "task_id": 0, + "machine_id": 0, + "duration": 62 + }, + { + "job_id": "J3", + "task_id": 1, + "machine_id": 1, + "duration": 15 + }, + { + "job_id": "J3", + "task_id": 2, + "machine_id": 2, + "duration": 86 + }, + { + "job_id": "J3", + "task_id": 3, + "machine_id": 3, + "duration": 21 + }, + { + "job_id": "J3", + "task_id": 4, + "machine_id": 4, + "duration": 8 + }, + { + "job_id": "J3", + "task_id": 5, + "machine_id": 5, + "duration": 70 + }, + { + "job_id": "J4", + "task_id": 0, + "machine_id": 0, + "duration": 89 + }, + { + "job_id": "J4", + "task_id": 1, + "machine_id": 1, + "duration": 9 + }, + { + "job_id": "J4", + "task_id": 2, + "machine_id": 2, + "duration": 99 + }, + { + "job_id": "J4", + "task_id": 3, + "machine_id": 3, + "duration": 50 + }, + { + "job_id": "J4", + "task_id": 4, + "machine_id": 4, + "duration": 60 + }, + { + "job_id": "J4", + "task_id": 5, + "machine_id": 5, + "duration": 67 + }, + { + "job_id": "J5", + "task_id": 0, + "machine_id": 0, + "duration": 1 + }, + { + "job_id": "J5", + "task_id": 1, + "machine_id": 1, + "duration": 95 + }, + { + "job_id": "J5", + "task_id": 2, + "machine_id": 2, + "duration": 37 + }, + { + "job_id": "J5", + "task_id": 3, + "machine_id": 3, + "duration": 51 + }, + { + "job_id": "J5", + "task_id": 4, + "machine_id": 4, + "duration": 85 + }, + { + "job_id": "J5", + "task_id": 5, + "machine_id": 5, + "duration": 81 + }, + { + "job_id": "J6", + "task_id": 0, + "machine_id": 0, + "duration": 84 + }, + { + "job_id": "J6", + "task_id": 1, + "machine_id": 1, + "duration": 36 + }, + { + "job_id": "J6", + "task_id": 2, + "machine_id": 2, + "duration": 88 + }, + { + "job_id": "J6", + "task_id": 3, + "machine_id": 3, + "duration": 32 + }, + { + "job_id": "J6", + "task_id": 4, + "machine_id": 4, + "duration": 98 + }, + { + "job_id": "J6", + "task_id": 5, + "machine_id": 5, + "duration": 87 + }, + { + "job_id": "J7", + "task_id": 0, + "machine_id": 0, + "duration": 57 + }, + { + "job_id": "J7", + "task_id": 1, + "machine_id": 1, + "duration": 83 + }, + { + "job_id": "J7", + "task_id": 2, + "machine_id": 2, + "duration": 19 + }, + { + "job_id": "J7", + "task_id": 3, + "machine_id": 3, + "duration": 25 + }, + { + "job_id": "J7", + "task_id": 4, + "machine_id": 4, + "duration": 48 + }, + { + "job_id": "J7", + "task_id": 5, + "machine_id": 5, + "duration": 41 + }, + { + "job_id": "J8", + "task_id": 0, + "machine_id": 0, + "duration": 76 + }, + { + "job_id": "J8", + "task_id": 1, + "machine_id": 1, + "duration": 55 + }, + { + "job_id": "J8", + "task_id": 2, + "machine_id": 2, + "duration": 29 + }, + { + "job_id": "J8", + "task_id": 3, + "machine_id": 3, + "duration": 61 + }, + { + "job_id": "J8", + "task_id": 4, + "machine_id": 4, + "duration": 48 + }, + { + "job_id": "J8", + "task_id": 5, + "machine_id": 5, + "duration": 51 + }, + { + "job_id": "J9", + "task_id": 0, + "machine_id": 0, + "duration": 81 + }, + { + "job_id": "J9", + "task_id": 1, + "machine_id": 1, + "duration": 71 + }, + { + "job_id": "J9", + "task_id": 2, + "machine_id": 2, + "duration": 75 + }, + { + "job_id": "J9", + "task_id": 3, + "machine_id": 3, + "duration": 47 + }, + { + "job_id": "J9", + "task_id": 4, + "machine_id": 4, + "duration": 64 + }, + { + "job_id": "J9", + "task_id": 5, + "machine_id": 5, + "duration": 2 + } + ] + }, + "solution_variant": [ + { + "job": "J1", + "tasks": [ + { + "task": 0, + "start": 223, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 238, + "machine": 1, + "duration": 97 + }, + { + "task": 2, + "start": 336, + "machine": 2, + "duration": 76 + }, + { + "task": 3, + "start": 412, + "machine": 3, + "duration": 73 + }, + { + "task": 4, + "start": 485, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 570, + "machine": 5, + "duration": 92 + } + ] + }, + { + "job": "J2", + "tasks": [ + { + "task": 0, + "start": 224, + "machine": 0, + "duration": 28 + }, + { + "task": 1, + "start": 335, + "machine": 1, + "duration": 77 + }, + { + "task": 2, + "start": 412, + "machine": 2, + "duration": 81 + }, + { + "task": 3, + "start": 493, + "machine": 3, + "duration": 6 + }, + { + "task": 4, + "start": 533, + "machine": 4, + "duration": 89 + }, + { + "task": 5, + "start": 662, + "machine": 5, + "duration": 27 + } + ] + }, + { + "job": "J3", + "tasks": [ + { + "task": 0, + "start": 161, + "machine": 0, + "duration": 62 + }, + { + "task": 1, + "start": 223, + "machine": 1, + "duration": 15 + }, + { + "task": 2, + "start": 250, + "machine": 2, + "duration": 86 + }, + { + "task": 3, + "start": 336, + "machine": 3, + "duration": 21 + }, + { + "task": 4, + "start": 362, + "machine": 4, + "duration": 8 + }, + { + "task": 5, + "start": 413, + "machine": 5, + "duration": 70 + } + ] + }, + { + "job": "J4", + "tasks": [ + { + "task": 0, + "start": 390, + "machine": 0, + "duration": 89 + }, + { + "task": 1, + "start": 495, + "machine": 1, + "duration": 9 + }, + { + "task": 2, + "start": 514, + "machine": 2, + "duration": 99 + }, + { + "task": 3, + "start": 613, + "machine": 3, + "duration": 50 + }, + { + "task": 4, + "start": 670, + "machine": 4, + "duration": 60 + }, + { + "task": 5, + "start": 730, + "machine": 5, + "duration": 67 + } + ] + }, + { + "job": "J5", + "tasks": [ + { + "task": 0, + "start": 0, + "machine": 0, + "duration": 1 + }, + { + "task": 1, + "start": 1, + "machine": 1, + "duration": 95 + }, + { + "task": 2, + "start": 96, + "machine": 2, + "duration": 37 + }, + { + "task": 3, + "start": 133, + "machine": 3, + "duration": 51 + }, + { + "task": 4, + "start": 184, + "machine": 4, + "duration": 85 + }, + { + "task": 5, + "start": 269, + "machine": 5, + "duration": 81 + } + ] + }, + { + "job": "J6", + "tasks": [ + { + "task": 0, + "start": 1, + "machine": 0, + "duration": 84 + }, + { + "task": 1, + "start": 96, + "machine": 1, + "duration": 36 + }, + { + "task": 2, + "start": 133, + "machine": 2, + "duration": 88 + }, + { + "task": 3, + "start": 221, + "machine": 3, + "duration": 32 + }, + { + "task": 4, + "start": 370, + "machine": 4, + "duration": 98 + }, + { + "task": 5, + "start": 483, + "machine": 5, + "duration": 87 + } + ] + }, + { + "job": "J7", + "tasks": [ + { + "task": 0, + "start": 333, + "machine": 0, + "duration": 57 + }, + { + "task": 1, + "start": 412, + "machine": 1, + "duration": 83 + }, + { + "task": 2, + "start": 495, + "machine": 2, + "duration": 19 + }, + { + "task": 3, + "start": 514, + "machine": 3, + "duration": 25 + }, + { + "task": 4, + "start": 622, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 689, + "machine": 5, + "duration": 41 + } + ] + }, + { + "job": "J8", + "tasks": [ + { + "task": 0, + "start": 85, + "machine": 0, + "duration": 76 + }, + { + "task": 1, + "start": 161, + "machine": 1, + "duration": 55 + }, + { + "task": 2, + "start": 221, + "machine": 2, + "duration": 29 + }, + { + "task": 3, + "start": 253, + "machine": 3, + "duration": 61 + }, + { + "task": 4, + "start": 314, + "machine": 4, + "duration": 48 + }, + { + "task": 5, + "start": 362, + "machine": 5, + "duration": 51 + } + ] + }, + { + "job": "J9", + "tasks": [ + { + "task": 0, + "start": 252, + "machine": 0, + "duration": 81 + }, + { + "task": 1, + "start": 504, + "machine": 1, + "duration": 71 + }, + { + "task": 2, + "start": 613, + "machine": 2, + "duration": 75 + }, + { + "task": 3, + "start": 688, + "machine": 3, + "duration": 47 + }, + { + "task": 4, + "start": 735, + "machine": 4, + "duration": 64 + }, + { + "task": 5, + "start": 799, + "machine": 5, + "duration": 2 + } + ] + } + ], + "context_index": 50, + "input_format": "csv", + "input_index_base": 0 + } +] \ No newline at end of file