DOI: 10.5281/zenodo.12750148
title: Job Shop Scheduling instances (SS + RD + EC)

description: Instance Structure

📁 Definition:

For example, the filename `5_5_0_2_5_0.json` is defined as follows: 5 represents the number of jobs, 5 represents the number of machines, 0 indicates the type of distribution (0 = exponential, 1 = normal, 2 = uniform), 2 indicates the type of release and due date (0 = no restriction, 1 = by job, 2 = by operations), 5 denotes the quantity of speed scaling options for each machine, and 0 is the instance number.

📊 Job IDs: 

An array of integers representing the job IDs (from 0 to 4).

"nbJobs": [0, 1, 2, 3, 4]

🛠 Number of Machines: 

An array of integers representing the number of machines (from 0 to 4). Each machine refeer an operation of a job that should be procedeed.

"nbMchs": [0, 1, 2, 3, 4]

 

⏱️ Time and Energy:

An array of objects, each containing information about a job processed on a machine, including multiple speed-scaling options. Each job object includes the job ID, operations (with operation IDs as keys), and details such as processing time, energy consumption, release date, and due date.

"timeEnergy": [    {        "jobId": 0,        "operations": {            "1": {                "speed-scaling": [                    {"procTime": 209, "energyCons": 12},                    ...                ],                "release-date": 0,                "due-date": 31            },            ...        }    },    ...]

📅 Due Dates and Release Dates:

Within each operation in the `timeEnergy` array, the `release-date` represents the release date of the operation (in milliseconds) and the `due-date` represents the due date of the operation (in milliseconds).

🔄 Speed Scaling Options:

 Each operation contains multiple speed-scaling options, providing different combinations of processing times and energy consumption levels.

"speed-scaling": [    {"procTime": 209, "energyCons": 12},    {"procTime": 52, "energyCons": 59},    {"procTime": 40, "energyCons": 67},    {"procTime": 32, "energyCons": 72},    {"procTime": 30, "energyCons": 74}]

🧩 Example:

Here is an example of how the data is structured for a specific job and its operations:

{    "nbJobs": [0, 1, 2, 3, 4],    "nbMchs": [0, 1, 2, 3, 4],    "timeEnergy": [        {            "jobId": 0,            "operations": {                "1": {                    "speed-scaling": [                        {"procTime": 209, "energyCons": 12},                        {"procTime": 52, "energyCons": 59},                        {"procTime": 40, "energyCons": 67},                        {"procTime": 32, "energyCons": 72},                        {"procTime": 30, "energyCons": 74}                    ],                    "release-date": 0,                    "due-date": 31                },                "3": {                    "speed-scaling": [                        {"procTime": 135, "energyCons": 25},                        {"procTime": 40, "energyCons": 67},                        {"procTime": 30, "energyCons": 74},                        {"procTime": 28, "energyCons": 75},                        {"procTime": 23, "energyCons": 79}                    ],                    "release-date": 32,                    "due-date": 72                },                ...            }        },        ...    ]}