The jobshop scheduling problem benchmark library

JSPLib is a comprehensive benchmark library for the Job Shop Scheduling Problem (JSP). It serves as a centralized repository for standard instances (ft, la, abz, orb, yn, swv, ta, dmu and tai), industrial instances (dct and bel) and tracks the current State-of-the-Art (SOTA) by maintaining verified Best Known Solutions (BKS).

The data and source code can be found in the Github repository This document is visible as a README.md in the Github folder jobshop or as a webpage. Instances are now available in json or text formats. A json file of best known solutions is also provided.

Table of Contents


Overview of the jsplib

jobshop instances (332)

  • 3 instances ft from Fisher and Thompson 1963
  • 40 instances la from Lawrence 1984
  • 5 instances abz from Adams, Balas and Zawack 1988
  • 10 instances orb from Applegate and Cook 1991
  • 20 instances swv from Storer, Wu and Vaccari 1992
  • 4 instances yn from Yamada Nakano 1992
  • 80 instances ta from Taillard 1993
  • 80 instances dmu from Demikol, Mehta and Uzsoy 1998
  • 90 instances tai from Da Col and Teppan 2022

reentrant jobshop instances (44)

  • 24 instances dct from Da Col and Teppan 2022
  • 20 instances bel from Boveroux, Ernst and Louveaux 2025

The lack of industrial instances

There is a gap in the existing literature regarding job shop scheduling benchmarks. Most commonly referenced instances, such as those proposed by Taillard et al., Adams et al. or Demirkol et al. , focus on small and rectangular configurations where the number of machines equals the number of operations for each job. This structure does not adequately represent the complexities of larger, unbalanced scenarios commonly encountered in real-world manufacturing.

To address this gap, we first analyzed an industrial dataset from a real manufacturing facility that includes 51 machines, 828 jobs and a total of 6057 operations. In this instance, the workload distribution is unbalanced, with some machines heavily loaded while others are lightly used. Furthermore, the number of operations per job varies significantly, ranging from 1 to 20.

Boveroux, Ernst and Louveaux (2025)

All 332 classic instances are randomly generated which creates situations like ta39 and ta40 that are the same size (30 x 15) and generated with the same generator, but one is solved in < 1 minute while the other is still open, resisting all solution techniques.

We would like to augment the jsplib with more instances based on real data and have therefore included the long and short data from Teppan 2022 that while still random attempts to recreate the situation where jobs have different number of operations and can require multiple operations on a given machine (reentrancy) mimiking metal fabrication and aircraft component machining problems. We have added the instances bal of Boveroux et al. that statistically reproduce the features of the manufavturing data they were working with.

We strongly encourage anyone that has access to real jobshop instances to share them with us and the scheduling commmunity.

Classification of the jobshop instances

We use the following engines as reference engines for the benchmark for they are widely considered the strongest engines for scheduling, and to provide a balanced benchmark across different solver technologies

Instances are divided into

  • toy : solved to optimality (with proof) in 1 minute by at least 1 reference engine
  • easy : solved to optimality (with proof) in 10 minute by at least 1 reference engine
  • medium : solved to optimality (with proof) in 1 hour by at least 1 reference engine
  • hard : solved to optimality (with proof) in > 1h by at least 1 reference engine
  • closed : allegedly solved to optimality. Most of the time the optimal solution is known because 2 different methods independently found equal upper and lower bounds. The problem moves to hard only when the optimality proof can be reproduced by a reference engine.
  • open : no proof of optimality


2026-06-10: We have introduced the toy category for < 1 minute, and moved the easy category to < 10 minutes, making official that we consider 10 minutes the standard benchmarking time unlike 1h in [NRR2022]

Currently there are

jobshop

  • ft : 3 toy
  • la : 39 toy, 1 easy
  • abz : 2 toy, 1 easy, 1 medium, 1 hard
  • orb : 10 toy
  • swv : 9 toy, 2 easy, 3 medium, 3 hard, 3 open
  • yn : 4 hard
  • ta : 42 toy, 6 easy, 12 medium, 8 hard, 12 open
  • dmu : 19 toy, 5 easy, 6 medium, 5 hard, 45 open
  • tai : 50 toy, 2 medium, 8 hard, 30 open

reentrant jobshop

  • dct : 16 toy, 7 medium, 1 open
  • bel : 20 toy

Similar work

Our work was inspired by the outstanding work of Naderi, Ruiz and Roshanaei Mixed-Integer Programming versus Constraint Programming for shop scheduling problems : New Results and Outlook [NRR2022] which compares CPO, Cplex, Gurobi and OR-tools on a benchmark of 6623 instances over 17 benchmarks with a timeout of 1h. They have made all the raw results available

We borrowed references for existing best known bounds from


We also think https://www.jobshoppuzzle.com/ is a very cool site with interactive visualizations of jobshop heuristics and solutions. And we invite you to also check SchedulingLab and their different repositories.

Formats

There are four main formats, standard, DaColTeppan, taillard and json.

The flexible jobshop library preferred format represents precedences explicitly. The jobshop problem being a special case of the flexible jobshop problem, this library may at some point in the future use that same format

Standard format

#n #m
((machine duration ){m}\n){n}

For instance la01 on standard format is

10	5	
1	21	0	53	4	95	3	55	2	34
0	21	3	52	4	16	2	26	1	71
3	39	4	98	1	42	2	31	0	12
1	77	0	55	4	79	2	66	3	77
0	83	3	34	2	64	1	19	4	37
1	54	2	43	4	79	0	92	3	62
3	69	4	77	1	87	2	87	0	93
2	38	0	60	1	41	3	24	4	83
3	17	1	49	4	25	0	44	2	98
4	77	3	79	2	43	1	75	0	96


Da Col Teppan format

#n #m
((machine duration )+ -1 -1\n){n}

In the DaColTeppan format

  • there can be any number of tasks per job
  • there can be various tasks in a job running on the same machine (reentrance)
  • the jobs end in a -1 -1

The DaColTeppan format is actually a format for the reentrant jobshop problem which is a generalization of the jobshop, common in some industrial environments like semiconductors

A modified instance of la01 would look like

10	5	
1	21	0	53	-1  -1
0	21	3	52	 4	16	2	26	1	71   4	95	3	55	 2	34 -1 -1
3	39	4	98	 1	42	2	31	0	12  79	 2	66	3	77  -1 -1
1	77	0	55	 4  -1 -1
0	83	-1 -1
1	54	2	43	4	79	0	92	3	62   3	34	 2	64	 1	19	4	37 -1 -1
3	69	4	77	1	87	2	87	0	93  41	 3	24	 4	83  -1 -1
2	38	0	60	1	-1 -1
3	17	1	49	4	25	0	44	2	98 -1 -1
4	77	3	79	2	43	1	75	0	96 -1 -1

To be totally conservative, the format should remove the last two -1 -1 and consider the end of line is the separator between jobs. It is not hard to do a parser that accepts both.


Taillard format

The taillard format first lists the machines, then the durations

#n #m
((machine ){m}\n){n}
((duration ){m}\n){n}

For instance la01 in taillard format is

10	5	
1	0	4	3	2
0	3	4	2	1
3	4	1	2	0
1	0	4	2	3
0	3	2	1	4
1	2	4	0	3
3	4	1	2	0
2	0	1	3	4
3	1	4	0	2
4	3	2	1	0
21	53	95	55	34
21	52	16	26	71
39	98	42	31	12
77	55	79	66	77
83	34	64	19	37
54	43	79	92	62
69	77	87	87	93
38	60	41	24	83
17	49	25	44	98
77	79	43	75	96


JSON format

The json format is more verbose but probably easier to use and contains meta-data about the instance that is useful for automating benchmarks

{
  "instance": "la01",
  "family": "la",
  "family_long": "Lawrence",
  "year": "1984",
  "machines": 5,
  "jobs": 10,
  "data": [
    {"job": 0, "operation": 0, "machine": 1, "duration": 21},
    {"job": 0, "operation": 1, "machine": 0, "duration": 53},
    {"job": 0, "operation": 2, "machine": 4, "duration": 95},
    {"job": 0, "operation": 3, "machine": 3, "duration": 55},
    {"job": 0, "operation": 4, "machine": 2, "duration": 34},
    {"job": 1, "operation": 0, "machine": 0, "duration": 21},
    {"job": 1, "operation": 1, "machine": 3, "duration": 52},
    {"job": 1, "operation": 2, "machine": 4, "duration": 16},
    {"job": 1, "operation": 3, "machine": 2, "duration": 26},
  ...
    {"job": 9, "operation": 4, "machine": 0, "duration": 96}
  ]
}


Publications (instances)

The instances come from the following publications

  • H. Fisher, G.L. Thompson (1963), Probabilistic learning combinations of local job-shop scheduling rules, J.F. Muth, G.L. Thompson (eds.), Industrial Scheduling, Prentice Hall, Englewood Cliffs, New Jersey, 225-251.

  • Lawrence, S. (1984). Resource constrained project scheduling: An experimental investigation of heuristic scheduling techniques (Supplement). Graduate School of Industrial Administration, Carnegie-Mellon University.

  • Adams, J., Balas, E., & Zawack, D. (1988). The shifting bottleneck procedure for job shop scheduling. Management science, 34(3), 391-401.

  • Applagate, D., & Cook, W. (1991). A computational study of the job-shop scheduling instance. ORSA J. Comput, 3, 49-51.

  • Storer, R. H., Wu, S. D., & Vaccari, R. (1992). New search spaces for sequencing instances with application to job shop 38 (1992) 1495–1509 Manage. Sci, 38, 1495-1509.

  • T. Yamada, R. Nakano (1992), A genetic algorithm applicable to large-scale job-shop instances, R. Manner, B. Manderick (eds.),Parallel instance solving from nature 2, North-Holland, Amsterdam, 281-290

  • Taillard, E. (1993). Benchmarks for basic scheduling problems. european journal of operational research, 64(2), 278-285.

  • Demirkol, E., Mehta, S., & Uzsoy, R. (1998). Benchmarks for shop scheduling problems. European Journal of Operational Research, 109(1), 137-141.

  • Da Col, G., & Teppan, E. C. (2022). Industrial-size job shop scheduling with constraint programming. Operations Research Perspectives, 9, 100249.

  • Boveroux, L., Ernst, D., & Louveaux, Q. (2025). Investigating the Monte-Carlo Tree Search approach for the job shop scheduling problem. EURO Journal on Computational Optimization, 100118.


Jobshop variants

Many variants of the jobshop problem can be solved with the same data or simple addition of parameters

Jobshop

The classical jobshop problem has 2 constraints

  • intrajob precedences
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{ranks} \quad \mathrm{start}_j^r + \mathrm{Duration}_j^r \leq \mathrm{start}_j^{r+1}\]
  • no overlap per machine
\[\forall m \in \mathrm{machines}, \forall j_1,j_2 \in \mathrm{jobs} \quad \left( \mathrm{start}\_{j_1}^m + \mathrm{Duration}\_{j_1}^m \leq \mathrm{start}\_{j_2}^m \right) \vee \left( \mathrm{start}\_{j_2}^m + \mathrm{Duration}\_{j_2}^m \leq \mathrm{start}\_{j_1}^m \right )\]

For commodity the later constraint can be written

\[\forall m \in \mathrm{machines} \quad \mathrm{noOverlap} \ \lbrace \ [ \mathrm{start}_j^m \dots \ \mathrm{start}_j^m + \mathrm{Duration}_j^m ] \mid j \in \mathrm{jobs} \ \rbrace\]


No buffer jobshop (blocking jobshop)

In the classic jobshop there is implicitly a buffer area in front of each machine where tasks can wait to be processed. In the non-buffer jobshop, also called blocking jobshop this area doesn’t exist, as a result a job (j,r)processed on machine m blocks this machine until (j,r+1) starts being processed on the next machine.

From this problem we introduce a new variable $\mathrm{end}_j^m$

  • the tasks are variable length with a minimum length of $\mathrm{Duration}_j^m$
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{machines} \quad \mathrm{start}_j^m + \mathrm{Duration}_j^m \leq \mathrm{end}_j^m\]
  • for each job, the task of rank $r+1$ starts as soon as the task of rank $r$ ends
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{ranks} \quad \mathrm{end}_j^r = \mathrm{start}_j^{r+1}\]
  • no overlap per machine
\[\forall m \in \mathrm{machines}, \forall j_1,j_2 \in \mathrm{jobs}\quad \left( \mathrm{end}\_{j_1}^m \leq \mathrm{start}\_{j_2}^m \right) \vee \left( \mathrm{end}\_{j_2}^m \leq \mathrm{start}\_{j_1}^m \right )\]

or

\[\forall m \in \mathrm{machines} \quad \mathrm{noOverlap} \ \lbrace \ [ \mathrm{start}_j^m \dots \ \mathrm{end}_j^m ] \mid j \in \mathrm{jobs} \ \rbrace\]


The extra variables $\mathrm{end}$ can be pre-processed out of the equations


No-wait jobshop

In the no-wait jobshop variant, once the processing of a job has started, it has to go through all machines without interruption.

The equations are reminiscent of the blocking jobshop but without the variable length activities

  • for each job, the task of rank $r+1$ starts as soon as the task of rank $r$ ends
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{ranks} \quad \mathrm{end}_j^r = \mathrm{start}_j^{r+1}\]
  • no overlap per machine
\[\forall m \in \mathrm{machines}, \forall j_1,j_2 \in \mathrm{jobs}\quad \left( \mathrm{end}\_{j_1}^m \leq \mathrm{start}\_{j_2}^m \right) \vee \left( \mathrm{end}\_{j_2}^m \leq \mathrm{start}\_{j_1}^m \right )\]

or

\[\forall m \in \mathrm{machines} \quad \mathrm{noOverlap} \ \lbrace \ [ \mathrm{start}_j^m \dots \ \mathrm{end}_j^m ] \mid j \in \mathrm{jobs} \ \rbrace\]


Cumulative jobshop

In the cumulative jobshop, the capacity of the capacity of the machines is not unitary anymore. In other words there is a limit $C_m$ on the number of tasks that can be simultaneously processed by machine $m$

The constraints of the problem are

  • intrajob precedences
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{ranks} \quad \mathrm{start}_j^r + \mathrm{Duration}_j^r \leq \mathrm{start}_j^{r+1}\]
  • capacity per machine
\[\forall m \in \mathrm{machines}, \forall t \in \mathrm{time} \quad \sum_j \left( \mathrm{start}^m_j \leq t \lt \mathrm{start}^m_j + \mathrm{Duration}^m_j \right) \leq C_m\]

It is advisable to avoid having an unlimited number of equations, in this case because of the explicit dependency on time, even if it just for notation. We therefore introduce the functional notation for cumulative constraints

\[\forall m \in \mathrm{machines}\quad \mathrm{cumul}_m(t) = \sum_j \mathrm{step}(\mathrm{start}_j^m) - \mathrm{step}(\mathrm{start}_j^m + \mathrm{Duration}_j^m)\]

Here $\mathrm{step}(t)$ is the function that has value 1 at time $t$ and 0 otherwise, as a result $\mathrm{cumul}$ is a function of time. Each configuration of $\mathrm{start}_j^m$ values defines a different cumulative function.

The constraints of the problem become

  • intrajob precedences
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{ranks} \quad \mathrm{start}_j^r + \mathrm{Duration}_j^r \leq \mathrm{start}_j^{r+1}\]
  • capacity per machine
\[\forall m \in \mathrm{machines}\quad \sum_j \mathrm{step}(\mathrm{start}_j^m) - \mathrm{step}(\mathrm{start}_j^m + \mathrm{Duration}_j^m) \leq C_m\]


Jobshop with operators - workers

In the jobshop with operators, workers have to be assigned to the machines while the tasks are being performed.

  • when the operator assignment can be interrupted (preemptive operators) the problem becomes a jobshop with maximum number of simultaneous jobs.
  • when the operator assignment cannot be interrupted (non-preemptive operators) the operators need to be assigned to jobs individually and they cannot be assigned to simultaneous jobs

Jobshop with preemptive operators

The constraints of the problem become

  • intrajob precedences
\[\forall j \in \mathrm{jobs}, \forall r \in \mathrm{ranks} \quad \mathrm{start}_j^r + \mathrm{Duration}_j^r \leq \mathrm{start}_j^{r+1}\]
  • no overlap per machine
\[\forall m \in \mathrm{machines} \quad \mathrm{noOverlap} \ \lbrace \ [ \mathrm{start}_j^m \dots \ \mathrm{start}_j^m + \mathrm{Duration}_j^m ] \mid j \in \mathrm{jobs} \ \rbrace\]
  • maximum number of simultaneous tasks
\[\sum_m \sum_j \mathrm{step}(\mathrm{start}_j^m) - \mathrm{step}(\mathrm{start}_j^m + \mathrm{Duration}_j^m) \leq \mathrm{Op}\]

Jobshop with arbitrary precedences

Instead of having precedences only within the tasks of a job, there is a more general precedence graph

Precedence graph

Jobshop with sequence dependent setup times

There are setup times in the machines to switch from one job to another

Notice that this variant is only interesting if the setup times are sequence-dependent. Otherwise it is equivalent to increase each task by the length of the setup time and to solve an usual jobshop

Flexible jobshop

The tasks of a job can be processed by any machine in a predefined group of similar machines.

Please refer to the flexible-jobshop section of this benchmark for more information


JSPLib solutions - The State-Of-The-Art

In this section are collected the best known solutions (upper bound and lower bound) for each problem in the benchmark.

The solutions may come from

  • Published papers (with reference eg. NS2002), the section publications gives the complete paper info
  • An engine run by someone else (eg. CPO2015) which results have been published
  • An engine run by us (CPO, OptalCP, CP-SAT) with approximate resolution time

The type of hardware and time required to find the best known solution are difficult to track and compare, in particular for bounds coming from published papers. Which is why

  • Every time an engine equals a published result the engine appears in the table instead
  • An approximative timing for reference engines is provided, in particular when the time to find the solution is unusually long


We do not systematically run the instances for very long times on large machines. Most of the instances that appear as having been solved after a large computation time (eg. 40h) had peculiarities (e.g. best lb + 1 == best ub) that justified exploring how long it would take to solve them to optimality. We also devote more effort to solve instances which best known solutions are given by papers that are old, difficult to find and difficult to reproduce. This allows verifying the paper claims and having a more accessible way of generating the result.


Best known solutions json format

The best known solutions are now collected in a json file with the following syntax

    {
        "instance" : "dmu80",
        "size" : "50 x 20",
        "type" : "jobshop",
        "family" : "dmu",
        "family_long" : "Demikol, Mehta and Uzsoy 1998",
        "status" : "open",
        "lower_bound" : 6460,
        "upper_bound" : 6634,
        "lb_data" : [{ 
            "value" : 6460, 
            "date" : "2026-06-01", 
            "solver" : "OptalCP", 
            "hardware" : "Intel 11th Gen Core i7-1185G7", 
            "time" : 10, 
            "certificate" : "no" 
            }],
        "ub_data" : [{ 
            "value" : 6634, 
            "date" : "2022-01-01", 
            "solver" : "CS2022", 
            "hardware" : null, 
            "time" : null, 
            "certificate" : null 
        }]
    }

For most of the best known solutions, the date, machine, running time and certificate (valid primal or valid dual solution) are not known. The data will be progressively updated to the best of our knowledge.

Best known solutions - JSPLib

Fisher and Thompson 1963

FT instances are also known as MT because the 1963 paper of Fisher and Thompson was published in the book “Industrial scheduling” by Muth and Thompson.

InstanceSizeProblemLBUBTypeSolved by
ft066 x 6jobshop5555toyOptalCP in < 1m
ft1010 x 10jobshop930930toyOptalCP in < 1m
ft2020 x 5jobshop11651165toyOptalCP in < 1m

Lawrence 1984

InstanceSizeProblemLBUBTypeSolved by
la0110 x 5jobshop666666toyOptalCP in < 1m
la0210 x 5jobshop655655toyOptalCP in < 1m
la0310 x 5jobshop597597toyOptalCP in < 1m
la0410 x 5jobshop590590toyOptalCP in < 1m
la0510 x 5jobshop593593toyOptalCP in < 1m
la0615 x 5jobshop926926toyOptalCP in < 1m
la0715 x 5jobshop890890toyOptalCP in < 1m
la0815 x 5jobshop863863toyOptalCP in < 1m
la0915 x 5jobshop951951toyOptalCP in < 1m
la1015 x 5jobshop958958toyOptalCP in < 1m
la1120 x 5jobshop12221222toyOptalCP in < 1m
la1220 x 5jobshop10391039toyOptalCP in < 1m
la1320 x 5jobshop11501150toyOptalCP in < 1m
la1420 x 5jobshop12921292toyOptalCP in < 1m
la1520 x 5jobshop12071207toyOptalCP in < 1m
la1610 x 10jobshop945945toyOptalCP in < 1m
la1710 x 10jobshop784784toyOptalCP in < 1m
la1810 x 10jobshop848848toyOptalCP in < 1m
la1910 x 10jobshop842842toyOptalCP in < 1m
la2010 x 10jobshop902902toyOptalCP in < 1m
la2115 x 10jobshop10461046toyOptalCP in < 1m
la2215 x 10jobshop927927toyOptalCP in < 1m
la2315 x 10jobshop10321032toyOptalCP in < 1m
la2415 x 10jobshop935935toyOptalCP in < 1m
la2515 x 10jobshop977977toyOptalCP in < 1m
la2620 x 10jobshop12181218toyOptalCP in < 1m
la2720 x 10jobshop12351235toyOptalCP in < 1m
la2820 x 10jobshop12161216toyOptalCP in < 1m
la2920 x 10jobshop11521152easyOptalCP in < 5m
la3020 x 10jobshop13551355toyOptalCP in < 1m
la3130 x 10jobshop17841784toyOptalCP in < 1m
la3230 x 10jobshop18501850toyOptalCP in < 1m
la3330 x 10jobshop17191719toyOptalCP in < 1m
la3430 x 10jobshop17211721toyOptalCP in < 1m
la3530 x 10jobshop18881888toyOptalCP in < 1m
la3615 x 15jobshop12681268toyOptalCP in < 1m
la3715 x 15jobshop13971397toyOptalCP in < 1m
la3815 x 15jobshop11961196toyOptalCP in < 1m
la3915 x 15jobshop12331233toyOptalCP in < 1m
la4015 x 15jobshop12221222toyOptalCP in < 1m

Adams, Balas and Zawack 1988

InstanceSizeProblemLBUBTypeSolved by
abz510 x 10jobshop12341234toyOptalCP in < 1m
abz610 x 10jobshop943943toyOptalCP in < 1m
abz720 x 15jobshop656656easyOptalCP in < 10m
abz820 x 15jobshop667667hardOptalCP in < 10h
abz920 x 15jobshop678678mediumOptalCP in < 1h

Various places report that “Henning A (2002). Praktische Job-Shop Scheduling-Probleme. Ph.D. thesis, Friedrich-Schiller-Universität Jena, Jena, Germany” as having found a solution of 665 for abz8, but the original document says their solution is 667 and 665 is a “solution from the literature”. We believe it is just a typing mistake in the sources they used. In any case OptalCP proves a lower bound of 667.

Applegate and Cook 1991

InstanceSizeProblemLBUBTypeSolved by
orb0110 x 10jobshop10591059toyOptalCP in < 1m
orb0210 x 10jobshop888888toyOptalCP in < 1m
orb0310 x 10jobshop10051005toyOptalCP in < 1m
orb0410 x 10jobshop10051005toyOptalCP in < 1m
orb0510 x 10jobshop887887toyOptalCP in < 1m
orb0610 x 10jobshop10101010toyOptalCP in < 1m
orb0710 x 10jobshop397397toyOptalCP in < 1m
orb0810 x 10jobshop899899toyOptalCP in < 1m
orb0910 x 10jobshop934934toyOptalCP in < 1m
orb1010 x 10jobshop944944toyOptalCP in < 1m

Storer, Wu and Vaccari 1992

InstanceSizeProblemLBUBTypeSolved by
swv0120 x 10jobshop14071407toyOptalCP in < 1m
swv0220 x 10jobshop14751475toyOptalCP in < 1m
swv0320 x 10jobshop13981398easyOptalCP in < 10m
swv0420 x 10jobshop14641464mediumOptalCP in < 1h
swv0520 x 10jobshop14241424easyOptalCP in < 10m
swv0620 x 15jobshop16671667hardOptalCP in < 40h
swv0720 x 15jobshop15411594openlb OptalCP | ub GR2014
swv0820 x 15jobshop16941751openlb OptalCP | ub Mu2015
swv0920 x 15jobshop16551655hardOptalCP in < 15h
swv1020 x 15jobshop16921743openlb OptalCP | ub SS2018
swv1150 x 10jobshop29832983mediumOptalCP in < 1h
swv1250 x 10jobshop29722972mediumOptalCP in < 1h
swv1350 x 10jobshop31043104toyOptalCP in < 1m
swv1450 x 10jobshop29682968toyOptalCP in < 1m
swv1550 x 10jobshop28852885hardOptalCP in < 9h
swv1650 x 10jobshop29242924toyOptalCP in < 1m
swv1750 x 10jobshop27942794toyOptalCP in < 1m
swv1850 x 10jobshop28522852toyOptalCP in < 1m
swv1950 x 10jobshop28432843toyOptalCP in < 1m
swv2050 x 10jobshop28232823toyOptalCP in < 1m

Yamada Nakano 1992

InstanceSizeProblemLBUBTypeSolved by
yn120 x 20jobshop884884hardOptalCP in < 6h
yn220 x 20jobshop904904hardOptalCP in < 40h
yn320 x 20jobshop892892hardOptalCP in < 40h
yn420 x 20jobshop967967hardOptalCP in < 16h

Taillard 1993

InstanceSizeProblemLBUBTypeSolved by
ta01js15 x 15jobshop12311231toyOptalCP in < 1m
ta02js15 x 15jobshop12441244toyOptalCP in < 1m
ta03js15 x 15jobshop12181218toyOptalCP in < 1m
ta04js15 x 15jobshop11751175toyOptalCP in < 1m
ta05js15 x 15jobshop12241224toyOptalCP in < 1m
ta06js15 x 15jobshop12381238easyOptalCP in < 10m
ta07js15 x 15jobshop12271227toyOptalCP in < 1m
ta08js15 x 15jobshop12171217toyOptalCP in < 1m
ta09js15 x 15jobshop12741274toyOptalCP in < 1m
ta10js15 x 15jobshop12411241toyOptalCP in < 1m
ta11js20 x 15jobshop13571357mediumOptalCP in < 1h
ta12js20 x 15jobshop13671367easyOptalCP in < 10m
ta13js20 x 15jobshop13421342mediumOptalCP in < 1h
ta14js20 x 15jobshop13451345toyOptalCP in < 1m
ta15js20 x 15jobshop13391339mediumOptalCP in < 1h
ta16js20 x 15jobshop13601360mediumOptalCP in < 1h
ta17js20 x 15jobshop14621462toyOptalCP in < 1m
ta18js20 x 15jobshop13961396mediumOptalCP in < 1h
ta19js20 x 15jobshop13321332mediumOptalCP in < 1h
ta20js20 x 15jobshop13481348mediumOptalCP in < 1h
ta21js20 x 20jobshop16421642mediumOptalCP in < 1h
ta22js20 x 20jobshop16001600hardOptalCP in < 2h
ta23js20 x 20jobshop15571557hardOptalCP in < 2h
ta24js20 x 20jobshop16441644easyOptalCP in < 10m
ta25js20 x 20jobshop15951595mediumOptalCP in < 1h
ta26js20 x 20jobshop16431643hardOptalCP in < 7h
ta27js20 x 20jobshop16801680mediumOptalCP in < 1h
ta28js20 x 20jobshop16031603easyOptalCP in < 10m
ta29js20 x 20jobshop16251625hardOptalCP in < 2h
ta30js20 x 20jobshop15621584openlb OptalCP | ub NS2002
ta31js30 x 15jobshop17641764easyOptalCP in < 10m
ta32js30 x 15jobshop17741784openlb CPO2015 | ub PSV2010
ta33js30 x 15jobshop17911791hardOptalCP in < 10h
ta34js30 x 15jobshop18281828mediumOptalCP in < 1h
ta35js30 x 15jobshop20072007toyOptalCP in < 1m
ta36js30 x 15jobshop18191819toyOptalCP in < 1m
ta37js30 x 15jobshop17711771hardOptalCP in < 2h
ta38js30 x 15jobshop16731673hardOptalCP in < 7h
ta39js30 x 15jobshop17951795toyOptalCP in < 1m
ta40js30 x 15jobshop16581669openlb OptalCP | ub GR2014
ta41js30 x 20jobshop19262005openlb OptalCP | ub CPO2015
ta42js30 x 20jobshop19001937openlb OptalCP | ub GR2014
ta43js30 x 20jobshop18091846openlb CPO2015 | ub PLC2015
ta44js30 x 20jobshop19611979openlb OptalCP | ub CS2022
ta45js30 x 20jobshop19971997easyCP-SAT in < 10m
ta46js30 x 20jobshop19762004openlb OptalCP | ub GR2014
ta47js30 x 20jobshop18271889openlb OptalCP | ub PLC2015
ta48js30 x 20jobshop19211937openlb OptalCP | ub SS2018
ta49js30 x 20jobshop19381960openlb OptalCP | ub LHW2024
ta50js30 x 20jobshop18481923openlb OptalCP | ub PLC2015
ta51js50 x 15jobshop27602760toyOptalCP in < 1m
ta52js50 x 15jobshop27562756toyOptalCP in < 1m
ta53js50 x 15jobshop27172717toyOptalCP in < 1m
ta54js50 x 15jobshop28392839toyOptalCP in < 1m
ta55js50 x 15jobshop26792679toyOptalCP in < 1m
ta56js50 x 15jobshop27812781toyOptalCP in < 1m
ta57js50 x 15jobshop29432943toyOptalCP in < 1m
ta58js50 x 15jobshop28852885toyOptalCP in < 1m
ta59js50 x 15jobshop26552655toyOptalCP in < 1m
ta60js50 x 15jobshop27232723toyOptalCP in < 1m
ta61js50 x 20jobshop28682868toyOptalCP in < 1m
ta62js50 x 20jobshop28692869mediumOptalCP in < 1h
ta63js50 x 20jobshop27552755toyOptalCP in < 1m
ta64js50 x 20jobshop27022702toyOptalCP in < 1m
ta65js50 x 20jobshop27252725toyOptalCP in < 1m
ta66js50 x 20jobshop28452845toyOptalCP in < 1m
ta67js50 x 20jobshop28252825hardOptalCP in < 4h
ta68js50 x 20jobshop27842784toyOptalCP in < 1m
ta69js50 x 20jobshop30713071toyOptalCP in < 1m
ta70js50 x 20jobshop29952995toyOptalCP in < 1m
ta71js100 x 20jobshop54645464toyOptalCP in < 1m
ta72js100 x 20jobshop51815181toyOptalCP in < 1m
ta73js100 x 20jobshop55685568toyOptalCP in < 1m
ta74js100 x 20jobshop53395339toyOptalCP in < 1m
ta75js100 x 20jobshop53925392toyOptalCP in < 1m
ta76js100 x 20jobshop53425342toyOptalCP in < 1m
ta77js100 x 20jobshop54365436toyOptalCP in < 1m
ta78js100 x 20jobshop53945394toyOptalCP in < 1m
ta79js100 x 20jobshop53585358toyOptalCP in < 1m
ta80js100 x 20jobshop51835183toyOptalCP in < 1m

Demikol, Mehta and Uzsoy 1998

InstanceSizeProblemLBUBTypeSolved by
dmu0120 x 15jobshop25632563mediumOptalCP in < 1h
dmu0220 x 15jobshop27062706easyOptalCP in < 10m
dmu0320 x 15jobshop27312731easyOptalCP in < 10m
dmu0420 x 15jobshop26692669mediumOptalCP in < 1h
dmu0520 x 15jobshop27492749mediumOptalCP in < 1h
dmu0620 x 20jobshop32443244hardOptalCP in < 2h
dmu0720 x 20jobshop30463046hardOptalCP in < 3h
dmu0820 x 20jobshop31883188easyOptalCP in < 10m
dmu0920 x 20jobshop30923092easyOptalCP in < 10m
dmu1020 x 20jobshop29842984mediumOptalCP in < 1h
dmu1130 x 15jobshop34023430openlb OptalCP | ub PLC2015
dmu1230 x 15jobshop34813492openlb OptalCP | ub SS2018
dmu1330 x 15jobshop36813681hardOptalCP in < 3h
dmu1430 x 15jobshop33943394toyCP-SAT in < 1m
dmu1530 x 15jobshop33433343easyOptalCP in < 10m
dmu1630 x 20jobshop37343750openlb CPO2015 | ub LHW2024
dmu1730 x 20jobshop37333812openlb OptalCP | ub LHW2024
dmu1830 x 20jobshop38443844hardOptalCP in < 10h
dmu1930 x 20jobshop37073764openlb OptalCP | ub CS2022
dmu2030 x 20jobshop36323699openlb OptalCP | ub LHW2024
dmu2140 x 15jobshop43804380toyOptalCP in < 1m
dmu2240 x 15jobshop47254725toyOptalCP in < 1m
dmu2340 x 15jobshop46684668toyOptalCP in < 1m
dmu2440 x 15jobshop46484648toyOptalCP in < 1m
dmu2540 x 15jobshop41644164toyOptalCP in < 1m
dmu2640 x 20jobshop46474647mediumOptalCP in < 1h
dmu2740 x 20jobshop48484848toyOptalCP in < 1m
dmu2840 x 20jobshop46924692toyOptalCP in < 1m
dmu2940 x 20jobshop46914691toyOptalCP in < 1m
dmu3040 x 20jobshop47324732mediumOptalCP in < 1h
dmu3150 x 15jobshop56405640toyOptalCP in < 1m
dmu3250 x 15jobshop59275927toyOptalCP in < 1m
dmu3350 x 15jobshop57285728toyOptalCP in < 1m
dmu3450 x 15jobshop53855385toyOptalCP in < 1m
dmu3550 x 15jobshop56355635toyOptalCP in < 1m
dmu3650 x 20jobshop56215621toyOptalCP in < 1m
dmu3750 x 20jobshop58515851toyOptalCP in < 1m
dmu3850 x 20jobshop57135713toyOptalCP in < 1m
dmu3950 x 20jobshop57475747toyOptalCP in < 1m
dmu4050 x 20jobshop55775577toyOptalCP in < 1m
dmu4120 x 15jobshop31763248openlb OptalCP | ub PLC2015
dmu4220 x 15jobshop33393390openlb OptalCP | ub SS2018
dmu4320 x 15jobshop34413441hardOptalCP in < 7h
dmu4420 x 15jobshop34143475openlb OptalCP | ub SS2018
dmu4520 x 15jobshop32173266openlb OptalCP | ub CS2022
dmu4620 x 20jobshop37804035openlb OptalCP | ub GR2014
dmu4720 x 20jobshop37143939openlb OptalCP | ub GR2014
dmu4820 x 20jobshop36283763openlb OptalCP | ub SS2018
dmu4920 x 20jobshop35433706openlb OptalCP | ub LHW2024
dmu5020 x 20jobshop36183729openlb OptalCP | ub PLC2015
dmu5130 x 15jobshop40704156openlb OptalCP | ub SS2018
dmu5230 x 15jobshop42034297openlb OptalCP | ub LHW2024
dmu5330 x 15jobshop42484378openlb OptalCP | ub CS2022
dmu5430 x 15jobshop42774361openlb OptalCP | ub CS2022
dmu5530 x 15jobshop41914258openlb OptalCP | ub LHW2024
dmu5630 x 20jobshop47554939openlb OptalCP | ub XLGG2022
dmu5730 x 20jobshop44624647openlb OptalCP | ub XLGG2022
dmu5830 x 20jobshop44844701openlb OptalCP | ub CS2022
dmu5930 x 20jobshop43664607openlb OptalCP | ub LHW2024
dmu6030 x 20jobshop44684721openlb OptalCP | ub CS2022
dmu6140 x 15jobshop50385169openlb OptalCP | ub LHW2024
dmu6240 x 15jobshop51765247openlb OptalCP | ub LHW2024
dmu6340 x 15jobshop52455312openlb OptalCP | ub LHW2024
dmu6440 x 15jobshop51555226openlb OptalCP | ub CS2022
dmu6540 x 15jobshop51225173openlb OptalCP | ub LHW2024
dmu6640 x 20jobshop55265701openlb OptalCP | ub CS2022
dmu6740 x 20jobshop56615779openlb OptalCP | ub SS2018
dmu6840 x 20jobshop55135763openlb OptalCP | ub CS2022
dmu6940 x 20jobshop55115688openlb OptalCP | ub CS2022
dmu7040 x 20jobshop56335868openlb OptalCP | ub CS2022
dmu7150 x 15jobshop61296207openlb OptalCP | ub CS2022
dmu7250 x 15jobshop64346463openlb CdGKGC2025 | ub SS2018
dmu7350 x 15jobshop61076136openlb OptalCP | ub CS2022
dmu7450 x 15jobshop61686196openlb OptalCP | ub SS2018
dmu7550 x 15jobshop61236189openlb OptalCP | ub SS2018
dmu7650 x 20jobshop64796718openlb OptalCP | ub CS2022
dmu7750 x 20jobshop65206747openlb OptalCP | ub CS2022
dmu7850 x 20jobshop66436755openlb OptalCP | ub CS2022
dmu7950 x 20jobshop67206910openlb OptalCP | ub CS2022
dmu8050 x 20jobshop64606634openlb OptalCP | ub CS2022

Da Col and Teppan 2022

InstanceSizeProblemLBUBTypeSolved by
tai_10_10_110 x 10jobshop82198219toyOptalCP in < 1m
tai_10_10_210 x 10jobshop74167416toyOptalCP in < 1m
tai_10_10_310 x 10jobshop80948094toyOptalCP in < 1m
tai_10_10_410 x 10jobshop86578657toyOptalCP in < 1m
tai_10_10_510 x 10jobshop79367936toyOptalCP in < 1m
tai_10_10_610 x 10jobshop85098509toyOptalCP in < 1m
tai_10_10_710 x 10jobshop82998299toyOptalCP in < 1m
tai_10_10_810 x 10jobshop77887788toyOptalCP in < 1m
tai_10_10_910 x 10jobshop83008300toyOptalCP in < 1m
tai_10_10_1010 x 10jobshop84818481toyOptalCP in < 1m
tai_10_100_110 x 100jobshop5660956609toyOptalCP in < 1m
tai_10_100_210 x 100jobshop5233052330toyOptalCP in < 1m
tai_10_100_310 x 100jobshop5641256412toyOptalCP in < 1m
tai_10_100_410 x 100jobshop5488954889toyOptalCP in < 1m
tai_10_100_510 x 100jobshop5460354603toyOptalCP in < 1m
tai_10_100_610 x 100jobshop5372353723toyOptalCP in < 1m
tai_10_100_710 x 100jobshop5545655456toyOptalCP in < 1m
tai_10_100_810 x 100jobshop5646656466toyOptalCP in < 1m
tai_10_100_910 x 100jobshop5509655096toyOptalCP in < 1m
tai_10_100_1010 x 100jobshop5666156661toyOptalCP in < 1m
tai_10_1000_110 x 1000jobshop515370515370toyOptalCP in < 1m
tai_10_1000_210 x 1000jobshop513525513525toyOptalCP in < 1m
tai_10_1000_310 x 1000jobshop508161508161toyOptalCP in < 1m
tai_10_1000_410 x 1000jobshop513814513814toyOptalCP in < 1m
tai_10_1000_510 x 1000jobshop517020517020toyOptalCP in < 1m
tai_10_1000_610 x 1000jobshop517777517777toyOptalCP in < 1m
tai_10_1000_710 x 1000jobshop514921514921toyOptalCP in < 1m
tai_10_1000_810 x 1000jobshop522277522277toyOptalCP in < 1m
tai_10_1000_910 x 1000jobshop511213511213toyOptalCP in < 1m
tai_10_1000_1010 x 1000jobshop509855509855toyOptalCP in < 1m
tai_100_10_1100 x 10jobshop5495154951toyOptalCP in < 1m
tai_100_10_2100 x 10jobshop5716057160toyOptalCP in < 1m
tai_100_10_3100 x 10jobshop5416654166toyOptalCP in < 1m
tai_100_10_4100 x 10jobshop5437154371toyOptalCP in < 1m
tai_100_10_5100 x 10jobshop5614256142toyOptalCP in < 1m
tai_100_10_6100 x 10jobshop5244752447toyOptalCP in < 1m
tai_100_10_7100 x 10jobshop5405154051toyOptalCP in < 1m
tai_100_10_8100 x 10jobshop5562455624toyOptalCP in < 1m
tai_100_10_9100 x 10jobshop5421054210toyOptalCP in < 1m
tai_100_10_10100 x 10jobshop5546455464toyOptalCP in < 1m
tai_100_100_1100 x 100jobshop6284376926openOptalCP
tai_100_100_2100 x 100jobshop6281477322openOptalCP
tai_100_100_3100 x 100jobshop6153376910openOptalCP
tai_100_100_4100 x 100jobshop6474278604openOptalCP
tai_100_100_5100 x 100jobshop6176678023openOptalCP
tai_100_100_6100 x 100jobshop6136077895openOptalCP
tai_100_100_7100 x 100jobshop6404077670openOptalCP
tai_100_100_8100 x 100jobshop6322478031openOptalCP
tai_100_100_9100 x 100jobshop6263179419openOptalCP
tai_100_100_10100 x 100jobshop6486677837openOptalCP
tai_100_1000_1100 x 1000jobshop522298533080openOptalCP 16 cores
tai_100_1000_2100 x 1000jobshop530375538067openOptalCP 16 cores
tai_100_1000_3100 x 1000jobshop530560538757openOptalCP 16 cores
tai_100_1000_4100 x 1000jobshop527101534746openOptalCP 16 cores
tai_100_1000_5100 x 1000jobshop517728529580openOptalCP 16 cores
tai_100_1000_6100 x 1000jobshop522907534969openOptalCP 16 cores
tai_100_1000_7100 x 1000jobshop522537534974openOptalCP 16 cores
tai_100_1000_8100 x 1000jobshop526428535757openOptalCP 16 cores
tai_100_1000_9100 x 1000jobshop528097536993openOptalCP 16 cores
tai_100_1000_10100 x 1000jobshop521766529918openOptalCP 16 cores
tai_1000_10_11000 x 10jobshop515334515334toyOptalCP in < 1m
tai_1000_10_21000 x 10jobshop509226509226toyOptalCP in < 1m
tai_1000_10_31000 x 10jobshop517493517493toyOptalCP in < 1m
tai_1000_10_41000 x 10jobshop519369519369toyOptalCP in < 1m
tai_1000_10_51000 x 10jobshop513881513881toyOptalCP in < 1m
tai_1000_10_61000 x 10jobshop511932511932toyOptalCP in < 1m
tai_1000_10_71000 x 10jobshop523900523900toyOptalCP in < 1m
tai_1000_10_81000 x 10jobshop513101513101toyOptalCP in < 1m
tai_1000_10_91000 x 10jobshop508701508701toyOptalCP in < 1m
tai_1000_10_101000 x 10jobshop521360521360toyOptalCP in < 1m
tai_1000_100_11000 x 100jobshop525343525343mediumOptalCP 16 cores in < 1h
tai_1000_100_21000 x 100jobshop528088528088hardOptalCP 16 cores in < 2h
tai_1000_100_31000 x 100jobshop522793522793hardOptalCP 16 cores in < 2h
tai_1000_100_41000 x 100jobshop524271524271hardOptalCP 16 cores in < 2h
tai_1000_100_51000 x 100jobshop531216531216mediumOptalCP in < 1h
tai_1000_100_61000 x 100jobshop518763518763hardOptalCP 16 cores in < 3h
tai_1000_100_71000 x 100jobshop527093527093hardOptalCP 16 cores in < 2h
tai_1000_100_81000 x 100jobshop519524519524hardOptalCP 16 cores in < 3h
tai_1000_100_91000 x 100jobshop520889520889hardOptalCP 16 cores in < 3h
tai_1000_100_101000 x 100jobshop529112529112hardOptalCP 16 cores in < 3h
tai_1000_1000_11000 x 1000jobshop549392877052openlb OptalCP | ub Hexaly
tai_1000_1000_21000 x 1000jobshop549043877115openlb OptalCP | ub Hexaly2024
tai_1000_1000_31000 x 1000jobshop552580878296openlb OptalCP | ub Hexaly
tai_1000_1000_41000 x 1000jobshop547670876363openlb OptalCP | ub Hexaly2024
tai_1000_1000_51000 x 1000jobshop545193877562openlb OptalCP | ub Hexaly2024
tai_1000_1000_61000 x 1000jobshop547286876067openlb OptalCP | ub Hexaly2024
tai_1000_1000_71000 x 1000jobshop545877875891openlb OptalCP | ub Hexaly2024
tai_1000_1000_81000 x 1000jobshop549220876456openlb OptalCP | ub Hexaly2024
tai_1000_1000_91000 x 1000jobshop543559875914openlb OptalCP | ub Hexaly2024
tai_1000_1000_101000 x 1000jobshop549075874820openlb Hexaly | ub Hexaly2024

We consider the tai 1000 x 1000 instances a curiosity, a benchmark to test the internals of the engines (memory allocation, complexity of internal algorithms and data structures, etc.) We don’t believe these instances represent any reasonable industrial problem, less because of their size, and more because they are random, unstructured, square and non-reentrant : your manufacturing plant produces exactly 1000 different products, each one needs 1000 operations on exactly one of the 1000 machines in the plant, and for each product the operations must be done in a completely different order !


Da Col and Teppan (2022) - reentrant jobshop

InstanceSizeProblemLBUBTypeSolved by
dct-long-100-10000-1103 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-100-10000-2103 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-100-10000-3103 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-1000-10000-11002 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-1000-10000-21002 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-1000-10000-31002 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-100-100000-1109 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-100-100000-2114 x 100reentrant jobshop600000600000mediumOptalCP in < 1h
dct-long-100-100000-3109 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-1000-100000-11002 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-1000-100000-21002 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-1000-100000-31003 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-100-10000-12162 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-100-10000-22192 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-100-10000-32169 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-1000-10000-12882 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-1000-10000-22863 x 1000reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-1000-10000-32897 x 1000reentrant jobshop600000600000mediumOptalCP in < 1h
dct-short-100-100000-120685 x 100reentrant jobshop600000600000mediumOptalCP in < 1h
dct-short-100-100000-220870 x 100reentrant jobshop600000600000mediumOptalCP in < 1h
dct-short-100-100000-320767 x 100reentrant jobshop600000600000mediumOptalCP in < 1h
dct-short-1000-100000-121280 x 1000reentrant jobshop600000600019openOptalCP
dct-short-1000-100000-221349 x 1000reentrant jobshop600000600000mediumOptalCP in < 1h
dct-short-1000-100000-321338 x 1000reentrant jobshop600000600000mediumOptalCP in < 1h

DaCol and Tepan report instance dct-short-1000-100000-1 was solved to optimality by CP Optimizer in 6h which we haven’t been able to reproduce (with CPO any other solver). We are still investigating

Boveroux, Ernst and Louveaux 2025

InstanceSizeProblemLBUBTypeSolved by
bel00792 x 48reentrant jobshop766329766329toyOptalCP in < 1m
bel01627 x 52reentrant jobshop428900428900toyOptalCP in < 1m
bel02660 x 59reentrant jobshop270437270437toyOptalCP in < 1m
bel03691 x 52reentrant jobshop670943670943toyOptalCP in < 1m
bel04952 x 63reentrant jobshop408633408633toyOptalCP in < 1m
bel05929 x 59reentrant jobshop620171620171toyOptalCP in < 1m
bel06678 x 57reentrant jobshop502510502510toyOptalCP in < 1m
bel07968 x 55reentrant jobshop750360750360toyOptalCP in < 1m
bel08822 x 65reentrant jobshop484451484451toyOptalCP in < 1m
bel09651 x 53reentrant jobshop534811534811toyOptalCP in < 1m
bel10733 x 61reentrant jobshop468304468304toyOptalCP in < 1m
bel11761 x 66reentrant jobshop509503509503toyOptalCP in < 1m
bel12897 x 64reentrant jobshop388715388715toyOptalCP in < 1m
bel13836 x 54reentrant jobshop420576420576toyOptalCP in < 1m
bel14935 x 57reentrant jobshop11150631115063toyOptalCP in < 1m
bel15818 x 48reentrant jobshop610946610946toyOptalCP in < 1m
bel16855 x 59reentrant jobshop575843575843toyOptalCP in < 1m
bel17662 x 47reentrant jobshop520426520426toyOptalCP in < 1m
bel18677 x 50reentrant jobshop347889347889toyOptalCP in < 1m
bel19806 x 69reentrant jobshop529239529239toyOptalCP in < 1m

Publications (best known solutions)

The upper and lower bounds come from

  • NS2002 (1 bound - ta30js) : Nowicki, E., & Smutnicki, C. (2002). Some new tools to solve the job shop problem. Raport serii: Preprinty, 60.

  • PSV2010 (1 bound - ta32js) : Pardalos, P. M., Shylo, O. V., & Vazacopoulos, A. (2010). Solving job shop scheduling problems utilizing the properties of backbone and “big valley”. Computational Optimization and Applications, 47, 61-76.

  • GR2014 (6 bounds in dmu, swv and ta) : Gonçalves, J. F., & Resende, M. G. (2014). An extended Akers graphical method with a biased random‐key genetic algorithm for job‐shop scheduling. International Transactions in Operational Research, 21(2), 215-246.

  • CPO2015 (4 bounds in dmu and ta) :

  • Mu2015 (1 bound - swv08) : Personal communication to optimizizer, probably based on Murovec, B. (2015). Job-shop local-search move evaluation without direct consideration of the criterion’s value. European Journal of Operational Research, 241(2), 320-329.

  • PLC2015 (6 bounds in dmu and ta) : Peng, B., Lü, Z., & Cheng, T. C. E. (2015). A tabu search/path relinking algorithm to solve the job shop scheduling problem. Computers & Operations Research, 53, 154-164.

  • SS2018 (11 bounds in dmu, swv and ta) : Shylo, O. V., & Shams, H. (2018). Boosting binary optimization via binary classification: A case study of job shop scheduling.

  • CS2022 (19 bounds in dmu and ta) : Constantino, O. H., & Segura, C. (2022). A parallel memetic algorithm with explicit management of diversity for the job shop scheduling problem. Applied Intelligence, 52(1), 141-153.

  • XLGG2022 (2 bounds in dmu) : Xie, J., Li, X., Gao, L., & Gui, L. (2022). A hybrid algorithm with a new neighborhood structure for job shop scheduling problems. Computers & Industrial Engineering, 169, 108205.

  • Hexaly2024 (8 bounds in tai) : Lea Blaise (2014). Hexaly benchmarks and comparisons.

  • LHW2024 (12 bounds in dmu and ta) : Mingjie Li, Jin-Kao Hao & Qinghua Wu (2025). Combining Hash-based Tabu Search and Frequent Pattern Mining for Job-Shop Scheduling. IISE Transactions.

  • CdGKGC2025 (1 bound - dmu72) : Marc-Emmanuel Coupvent des Graviers, Lotfi Kobrosly, Christophe Guettier, and Tristan Cazenave (2025). Updating Lower and Upper Bounds for the Job-Shop Scheduling Problem Test Instances.

All other bounds were found by OptalCP except 2 bounds by CP-SAT (equal but faster) and 3 bounds by Hexaly (strictly better than all other solvers). The cited papers also may use an engine directly like [CPO2015], [Hexaly2024] or as part of an algorithm like [CdGKGC2025] which uses CP-SAT.

Comparison of reference engines

We provide these tests as a reference, you should get something similar on your hardware (multi-core engines are inherently non-deterministic hence each run returns slightly different results) or find an explanation of why the engines don’t behave as expected. We strongly encourage you to run all engines you want to compare against on your own hardware.

The instances used for the comparison may change on a regular basis

ABZ instances

On an Windows PC with an i7 4-core 3.3GHz 32GB ram in 600 seconds

  • OptalCP Academic Version 2026.2.0 default search
  • CP-SAT V9.15.6755 with default configuration
  • CPO 22.1.1.0
Instance OptalCP CP-SAT CPO
abz5 1234 in 0s 1234 in 1s  
abz6 943 in 0s 943 in 1s  
abz7 656 in 224s 656..657 in 600s  
abz8 642..674 in 600s 630..683 in 600s  
abz9 670..678 in 600s 655..689 in 600s  

SWV instances

On an Windows PC with an i7 4-core 3.3GHz 32GB ram in 600 seconds

  • OptalCP Academic Version 2026.2.0 default search
  • CP-SAT V9.15.6755 with default configuration
  • CPO 22.1.1.0
Instance OptalCP CP-SAT CPO
swv01 1407 in 70s 1402..1418 in 600s  
swv02 1475 in 12s 1475 in 89s  
swv03 1398 in 213s 1387..1413 in 600s  
swv04 1453..1478 in 600s 1440..1510 in 600s  
swv05 1424 in 148s 1414..1429 in 600s  
swv06 1619..1700 in 600s 1601..1696 in 600s  
swv07 1479..1628 in 600s 1470..1669 in 600s  
swv08 1640..1786 in 600s 1640..1830 in 600s  
swv09 1622..1684 in 600s 1611..1696 in 600s  
swv10 1649..1783 in 600s 1631..1785 in 600s  
swv11 2983..2993 in 600s 2983..3155 in 600s  
swv12 2972..3000 in 600s 2972..3094 in 600s  
swv13 3104 in 37s 3104..3142 in 600s  
swv14 2968 in 9s 2968..3110 in 600s  
swv15 2885..2887 in 600s 2885..3066 in 600s  
swv16 2924 in 0s 2924 in 0s  
swv17 2794 in 0s 2794 in 0s  
swv18 2852 in 0s 2852 in 0s  
swv19 2843 in 0s 2843 in 3s  
swv20 2823 in 0s 2823 in 0s  

DMU instances 1-40

On an Windows PC with an i7 4-core 3.3GHz 32GB ram in 600 seconds

  • OptalCP Academic Version 2026.2.0 default search
  • CP-SAT V9.15.6755 with default configuration
  • CPO 22.1.1.0
Instance OptalCP CP-SAT CPO
dmu01 2515..2563 in 600s 2467..2634 in 600s  
dmu02 2706 in 416s 2607..2706 in 600s  
dmu03 2731 in 162s 2684..2753 in 600s  
dmu04 2603..2675 in 600s 2563..2694 in 600s  
dmu05 2733..2749 in 600s 2713..2779 in 600s  
dmu06 3121..3248 in 600s 3087..3314 in 600s  
dmu07 2942..3098 in 600s 2921..3094 in 600s  
dmu08 3188 in 595s 3076..3197 in 600s  
dmu09 3092 in 346s 3000..3092 in 600s  
dmu10 2972..2984 in 600s 2914..2985 in 600s  
dmu11 3395..3466 in 600s 3395..3491 in 600s  
dmu12 3481..3519 in 600s 3481..3604 in 600s  
dmu13 3681..3718 in 600s 3681..3758 in 600s  
dmu14 3394 in 131s 3394 in 14s  
dmu15 3343 in 129s 3343..3404 in 600s  
dmu16 3734..3784 in 600s 3734..3836 in 600s  
dmu17 3709..3874 in 600s 3709..3942 in 600s  
dmu18 3844..3882 in 600s 3844..3927 in 600s  
dmu19 3683..3834 in 600s 3678..3893 in 600s  
dmu20 3604..3749 in 600s 3604..3893 in 600s  
dmu21 4380 in 1s 4380..4387 in 600s  
dmu22 4725 in 2s 4725 in 91s  
dmu23 4668 in 1s 4668 in 24s  
dmu24 4648 in 1s 4648 in 68s  
dmu25 4164 in 1s 4164 in 32s  
dmu26 4647..4673 in 600s 4647..4851 in 600s  
dmu27 4848 in 17s 4848..4970 in 600s  
dmu28 4692 in 8s 4692..4786 in 600s  
dmu29 4691 in 5s 4691..4825 in 600s  
dmu30 4732..4741 in 600s 4732..4842 in 600s  
dmu31 5640 in 2s 5640 in 174s  
dmu32 5927 in 0s 5927 in 1s  
dmu33 5728 in 1s 5728 in 26s  
dmu34 5385 in 1s 5385 in 102s  
dmu35 5635 in 1s 5635 in 68s  
dmu36 5621 in 11s 5621..5784 in 600s  
dmu37 5851 in 11s 5851 in 493s  
dmu38 5713 in 20s 5713..5871 in 600s  
dmu39 5747 in 10s 5747 in 563s  
dmu40 5577 in 6s 5577..5685 in 600s  

TA instances 1-80

On an Windows PC with an i7 4-core 3.3GHz 32GB ram in 600 seconds

  • OptalCP Academic Version 2026.2.0 default search
  • CP-SAT V9.15.6755 with default configuration
  • CPO 22.1.1.0
Instance OptalCP CP-SAT CPO
ta01js 1231 in 0s 1231 in 11s  
ta02js 1244 in 3s 1244 in 80s  
ta03js 1218 in 2s 1218 in 20s  
ta04js 1175 in 3s 1175 in 19s  
ta05js 1224 in 14s 1224 in 120s  
ta06js 1238 in 185s 1201..1239 in 600s  
ta07js 1227 in 18s 1227 in 476s  
ta08js 1217 in 12s 1217 in 77s  
ta09js 1274 in 8s 1274 in 284s  
ta10js 1241 in 4s 1241 in 32s  
ta11js 1337..1358 in 600s 1307..1378 in 600s  
ta12js 1367 in 333s 1350..1367 in 600s  
ta13js 1317..1344 in 600s 1279..1359 in 600s  
ta14js 1345 in 3s 1345 in 13s  
ta15js 1323..1349 in 600s 1299..1358 in 600s  
ta16js 1339..1360 in 600s 1296..1364 in 600s  
ta17js 1462 in 4s 1462 in 62s  
ta18js 1366..1402 in 600s 1359..1414 in 600s  
ta19js 1318..1334 in 600s 1292..1364 in 600s  
ta20js 1329..1350 in 600s 1315..1357 in 600s  
ta21js 1619..1651 in 600s 1581..1656 in 600s  
ta22js 1555..1615 in 600s 1529..1638 in 600s  
ta23js 1512..1565 in 600s 1496..1569 in 600s  
ta24js 1644 in 323s 1610..1665 in 600s  
ta25js 1561..1610 in 600s 1528..1617 in 600s  
ta26js 1571..1670 in 600s 1559..1672 in 600s  
ta27js 1629..1699 in 600s 1623..1685 in 600s  
ta28js 1603 in 203s 1588..1609 in 600s  
ta29js 1577..1625 in 600s 1535..1656 in 600s  
ta30js 1484..1607 in 600s 1487..1608 in 600s  
ta31js 1764 in 98s 1764..1778 in 600s  
ta32js 1774..1824 in 600s 1774..1850 in 600s  
ta33js 1786..1801 in 600s 1783..1859 in 600s  
ta34js 1828..1846 in 600s 1828..1869 in 600s  
ta35js 2007 in 1s 2007 in 7s  
ta36js 1819 in 7s 1819..1832 in 600s  
ta37js 1771..1779 in 600s 1771..1813 in 600s  
ta38js 1673..1682 in 600s 1673..1710 in 600s  
ta39js 1795 in 23s 1795 in 75s  
ta40js 1645..1695 in 600s 1642..1732 in 600s  
ta41js 1882..2038 in 600s 1889..2094 in 600s  
ta42js 1878..1968 in 600s 1873..2006 in 600s  
ta43js 1809..1894 in 600s 1809..1969 in 600s  
ta44js 1944..1993 in 600s 1937..2061 in 600s  
ta45js 1997..2005 in 600s 1997 in 424s  
ta46js 1958..2047 in 600s 1943..2074 in 600s  
ta47js 1801..1937 in 600s 1797..1981 in 600s  
ta48js 1912..1975 in 600s 1912..2007 in 600s  
ta49js 1925..2012 in 600s 1926..2017 in 600s  
ta50js 1822..1970 in 600s 1819..2001 in 600s  
ta51js 2760 in 3s 2760 in 196s  
ta52js 2756 in 3s 2756 in 141s  
ta53js 2717 in 2s 2717 in 53s  
ta54js 2839 in 1s 2839 in 26s  
ta55js 2679 in 3s 2679 in 216s  
ta56js 2781 in 2s 2781 in 69s  
ta57js 2943 in 2s 2943 in 43s  
ta58js 2885 in 2s 2885 in 114s  
ta59js 2655 in 2s 2655 in 131s  
ta60js 2723 in 3s 2723 in 184s  
ta61js 2868 in 6s 2868..2873 in 600s  
ta62js 2869..2872 in 600s 2869..2984 in 600s  
ta63js 2755 in 8s 2755..2777 in 600s  
ta64js 2702 in 6s 2702..2745 in 600s  
ta65js 2725 in 7s 2725..2789 in 600s  
ta66js 2845 in 5s 2845..2919 in 600s  
ta67js 2825..2826 in 600s 2825..2854 in 600s  
ta68js 2784 in 4s 2784..2810 in 600s  
ta69js 3071 in 4s 3071 in 464s  
ta70js 2995 in 7s 2995..3010 in 600s  
ta71js 5464 in 20s 5464..5596 in 600s  
ta72js 5181 in 18s 5181..5259 in 600s  
ta73js 5568 in 18s 5568..5652 in 600s  
ta74js 5339 in 17s 5339..5357 in 600s  
ta75js 5392 in 26s 5392..5639 in 600s  
ta76js 5342 in 21s 5342..5426 in 600s  
ta77js 5436 in 17s 5436 in 521s  
ta78js 5394 in 17s 5394..5463 in 600s  
ta79js 5358 in 16s 5358..5405 in 600s  
ta80js 5183 in 19s 5183..5250 in 600s