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

description: Instance Structure

Definition

A filename such as 5_5_0_2_5_0.json contains the following information:



5: Number of jobs

5: Number of machines

0: Type of distribution (0 = exponential, 1 = normal, 2 = uniform)

2: Each task of a job has a release and due date

5: Number of speed scaling options for each machine

0: Instance number


Job IDs

An array of integers representing the job IDs, ranging from 0 to 4.



json

Copiar código


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



Number of Machines

An array of integers representing the number of machines, ranging from 0 to 4.



json

Copiar código


"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.



jobId: Integer representing the job ID.

operations: Object where keys are operation IDs and values are objects containing:



speed-scaling: Array of objects with:



procTime: Integer representing the processing time of the operation on the machine (milliseconds).

energyCons: Integer representing the energy consumption of the operation on the machine (Kw).



release-date: Integer representing the release date of the operation (milliseconds).

due-date: Integer representing the due date of the operation (milliseconds).






json

Copiar código


"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:



release-date: Integer representing the release date of the operation (milliseconds).

due-date: Integer representing the due date of the operation (milliseconds).


Speed Scaling Options

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



json

Copiar código


"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:



json

Copiar código


{
    "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
                },
                ...
            }
        },
        ...
    ]
}