DOI: 10.5281/zenodo.17787666
title: Job Shop Scheduling Problem: Makespan Prediction Dataset

description: This repository contains a dataset of 184,320 samples of the Job Shop Scheduling Problem (JSSP), primarily generated to train and evaluate machine learning models for predicting the optimal makespan (Cmax).

1. Data Dictionary (Columns)

The dataset is provided in a single tabular file (tab-separated format) with the following columns:




Column Name
Data Type
Description


id
Integer
A unique identifier for the specific JSSP instance.


replication
Integer
Identifies the generation run of the instance.


sampling_type
String
Method used to generate the instance ("Min-coverage", "Max-coverage").


makespan
Integer
The Optimal Makespan (Copt).


cputime
Float
CPU time (in seconds) required by the solver to find the optimal makespan.


p_matrix
String
Processing Time Matrix (P). Stored as a stringified list-of-lists.


m_matrix
String
Machine Allocation Matrix (M). Stored as a stringified list-of-lists.


NumberMachines
Integer
The number of machines (m).


NumberJobs
Integer
The number of jobs (n).




2. JSSP Instance Definition and Format

Problem Definition

Following the format introduced by Taillard (1993), each JSSP instance consists of two matrices: the processing time matrix P and the machine allocation matrix M, both of dimension n × m.



Pij specifies the duration of operation j of job i.

Mij specifies on which machine that operation must be executed.

Each operation of the same job must be assigned to a different machine.

Operations within each job follow a fixed sequence and cannot overlap.


The objective is to compute a schedule with minimal makespan (Copt), respecting precedence and machine constraints.

Data Format

P (p_matrix) and M (m_matrix) are stored as stringified nested lists. Users must parse these strings back into matrix form before use.

3. Generation and Solution Methodology

Instances were generated for the following (Jobs × Machines) configurations:




Configuration (N × M)
Sample Count


10 × 10
10,240


10 × 11
10,240


10 × 12
10,240


11 × 10
10,240


11 × 11
10,240


11 × 12
10,240


12 × 10
10,240


12 × 11
10,240


12 × 12
102,400


Total Samples
184,320




Optimal Solutions

Optimal makespans were computed using the Constraint Programming (CP) solver in Google’s open-source OR-Tools.



Implementation: OR-Tools Python CP-SAT solver (version as of 30-01-2025).

Hardware: 2.90 GHz Intel Core i9-8950HK, 6 cores (12 threads), 32GB RAM.


Full methodological details are provided in the accompanying research paper.

4. Citation

If you use this dataset in your work, please cite the accompanying paper:

[Final Paper Citation]

References

Taillard, E. (1993). Benchmarks for basic scheduling problems. European Journal of Operational Research, 64(2), 278–285.

Example Usage

A common approach to reading the matrices in Python:


import pandas as pd
import ast

df = pd.read_csv('jssp_dataset.txt', sep='\t')

df['p_matrix_parsed'] = df['p_matrix'].apply(ast.literal_eval)
df['m_matrix_parsed'] = df['m_matrix'].apply(ast.literal_eval)

first_p_matrix = df['p_matrix_parsed'].iloc[0]
print("Processing Matrix (Instance 1):", first_p_matrix)