Skip to the content.

The jobshop scheduling problem benchmark library

JSPLib is a comprehensive benchmark library for the Job Shop Scheduling Problem (JSP), with three components:

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. The standardized benchmark results for each engine on each instance is available in json format. And a json file of best known solutions is also provided with a trace of the evolution of the bounds.

Table of Contents


Overview of the jsplib

jobshop instances (332)

reentrant jobshop instances (44)


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 dct reentrant instances 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) mimicking metal fabrication, aircraft component machining problems or semi-conductor. We have added the instances bal of Boveroux et al. that statistically reproduce the features of the manufacturing data they were working with.

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


Classification of the jobshop instances

The reference engines used are

We use the following criteria to classify instances by difficulty

The 10 minutes time limit reflects industrial workflows in which schedules are repeatedly regenerated after manual adjustments, parameter tuning, or changes in production data. Furthermore, problems that can be solved to optimality in less than 10 minutes are suitable as sub-problems in decomposition methods like Benders decomposition, Pareto frontier generation or rolling-horizon optimization.

What we expect from a scheduling engine is:

Why upper and lower bounds ? Because a decomposition may use the scheduling problem as a dual certificate, not only a primal one.


Currently there are

jobshop

reentrant jobshop


Similar work

We have borrowed data and ideas from the following sources

Naderi, Ruiz and Roshanei (2022)

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

Jelke J. van Hoorn (2017)

Jelke J. van Hoorn collected and verified in 2017 all available upper and lower bounds for jobshop problems and published them in The Current state of bounds on benchmark instances of the job-shop scheduling problem. J Sched 21, 127–128 (2018). The online Appendix contains the data.

Oleg V. Shylo (2014 - present)

Since 2014 Optimizizer has been the reference in terms of published upper and lower bounds for jobshop problems. For each problem is given the publication that explains the method used to find the upper or lower bound, and upper bounds are explicitly provided and verified. Optimizizer is a repository of published results, while jsplib.org is a repository of engine results. JSPLib is interested in non-engine results (meta-heuristics, etc) only to investigate what changes are needed for engines to surpass them! We do not report improved bounds to optimizizer (there are no peer-reviewed publications supporting them and we don’t consider “I ran an engine for a while because I am very patient” a scientific contribution). The authors of the benchmarked engines are invited to write papers about how their engines work, submit them for peer-review and report the bounds to Optimizizer.

There may be some lag between jsplib.org and optimizizer, always check both.

Scheduling Lab (2022 - present)

SchedulingLab collects instances of various types of scheduling problems, including instances not referenced here.


Formats

There are three main formats, json, standard, *DaColTeppan for reentrant instances.

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}
  ]
}

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 (reentrant)

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

In the DaColTeppan format

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


Publications (instances)

The instances come from the following publications


Standardized benchmark of engines

We track the State-Of-The-Art (SOTA) of optimization engines for scheduling with a standardized 10-minute benchmark of the reference engines

The engines that are benchmarked are


A short history of the reference engines

IBM ILOG Cplex (1988 - present)

Cplex is a MIP engine founded by Robert Bixby in 1987, and acquired in 1997 by ILOG, subsequently acquired by IBM in 2009.

Like similar state-of-the-art MIP engines, Cplex features

Improvements in a complex software like Cplex are incremental, but we can broadly divide its evolution as follows

From 2008, Bixby, Rothberg and Gu created Gurobi.

References


IBM ILOG CP Optimizer (2007 - present)

CP Optimizer is a descendant of ILOG Solver (architectured over the years by Jean-François Puget, Jean-Charles Régin and later Laurent Perron) and ILOG Scheduler (architectured by Claude Le Pape, then Philippe Laborie). CP Optimizer (led by Paul Shaw, Laurent Perron and Philippe Laborie) merged the general CP engine and the specific scheduling add-on in a single engine, promoted the model-and-run approach and pioneered a new scheduling language (optional intervals, noOverlap, cumulative functions, etc.) that has become an industry standard.

From a technical perspective CP Optimizer interleaves the following search methods

The temporal linear relaxation solved by an LP and objective landscapes act like a reduced cost / impact based oracle but for scheduling problems.

Because CP Optimizer was designed in a time where multi-core computers weren’t common, the engine alternates the different strategies on the same core. And replicates itself over various cores with different parameters if more cores are available

The main propagation algorithms in CP optimizer are

References


Google ORTools CP-SAT (2017 - present)

CP-SAT is an open-source lazy clause generation engine augmented with an LP, MIP-style cuts and CP-style propagators designed by Laurent Perron, Frédéric Didier and Steven Gay.

CP-SAT includes

CP-SAT is the “successor” of a more traditional CP + LS engine by Laurent Perron and Vincent Furnon, focusing more on VRP problems.

CP-SAT team doesn’t publish much about how CP SAT works, but maintains very informative comments in the source code. Here is an overview of the files and what they contain

Constraint Main source files Implemented algorithms
NoOverlap disjunctive.cc Detectable precedences, Edge Finding, Not-First/Not-Last, overload checking
Cumulative cumulative.cc, timetable.cc, timetable_edgefinding.cc Time-table propagation, Edge Finding, energetic reasoning
NoOverlap2D diffn.cc DiffN filtering, energetic reasoning
Circuit circuit.cc SCC detection, subtour elimination
AllDifferent all_different.cc Matching-based filtering, binary decomposition in some cases
Linear integer_expr.cc, linear_constraint.cc Integer propagation, pseudo-Boolean reasoning
Element element.cc Bounds consistency
Automaton table.cc, automaton.cc DFA propagation
Table table.cc Compact table propagation
Reservoir reservoir.cc Specialized cumulative reasoning

The paper From Literals to Atomic Constraints: Generalising Conflict-Driven Clause Learning for Constraint Programming contains a comparison of the implementation of various LCG-based CP solvers.

OR-Tools only creates literals for decisions. However, OR-Tools often decomposes constraints into a SAT representation, leading to more existing literals than only decision literals. During conflict analysis, an atomic constraint with no associated literal is repeatedly replaced with its reason until only existing literals are left. OR-Tools’s approach has the benefits that 1) it only creates literals that are “important” enough to be decisions, and 2) decomposed constraints ensure that there are enough literals for conflict analysis. However, OR-Tools suffers from the fact that 1) limiting created literals can lead to less general nogoods, and 2) since explanations are resolved until consisting of existing literals, explanation lifting and nogood minimisation can have less impact

The presolver of CP-SAT does a significant amount of work, closer to a MIP than a typical CP engine

Moreover some of the classic scheduling algorithms have been transformed into cutting planes (scheduling_cuts.cc) : energetic reasoning, time-table propagation, cumulative precedence, cumulative completion time, energetic reasoning for disjunctive resources.

References


OptalCP (2021 - present)

OptalCP was architectured by Petr Vilim, Nicolas Bonifas and Diego Olivier Fernandez Pons (initially with input from Philippe Laborie). Compared to CPO the parallelism is done with one strategy per core instead of interleaving. The strategies used are

OptalCP continues the legacy of CP Optimizer (engine style, modeling language). The hybridization of OptalCP with heuristics and meta-heuristics is done outside by communicating upper and lower bounds in real time (during search)

References


If your name appears in this section and you notice an error contact me


Incorrect best-known solutions used in publications and better metrics

Scheduling problems have received considerable attention over the last decade. Several sets of benchmark instances are available for comparing the quality of the different methods developed. A large number of publications achieve either the current best known or improved bounds for a subset of these instances. It is unfortunate, however, that several publications erroneously reference the current state of these bounds.

Jelke J. van Hoorn, The Current state of bounds on benchmark instances of the job-shop scheduling problem (2017)

While the effort of van Hoorn is commendable, having accurate best-known solutions does not solve the problem of poorly reported results in publications. Announcing a best-known solution while having little scientific interest in itself (e.g. a random solution) has sadly become a central “contribution” of papers.

By giving too much importance to best-known solutions we miss what really matters:

We therefore adopt the following metrics instead

\[LB_{avg} = \exp\left(\sum_k\log\frac{LB}{LB_{best}}\right)\] \[UB_{avg} = \exp\left(\sum_k\log\frac{UB}{UB_{best}}\right)\] \[GAP = \exp\left(\sum_k\log\left(1 + \frac{UB - LB}{UB}\right)\right) - 1\]

Similar to the MIP community (Mittelmann benchmarks), we use geometric averages to reduce the influence of outliers.


Comparison of reference solvers

Comparisons were performed on a Windows PC with an i7 4-core 3GHz 32GB ram in 600 seconds

The raw data is in the solutions folder

We recommend to run your own benchmarks on your own machines. All required code is provided with HOWTO instructions in each README file.

Important caveats


Per types of instances

The types are defined as follows


Averages are made on instances solved. Outlier solutions returned by the engine (e.g. a schedule of makespan equal to the sum of processing times - all tasks scheduled one at the time) have been manually removed as they distort the arithmetic average, instead the engine is considered as having not solved. We may formalize this in the future (e.g. only solutions better than a left-to-right greedy are accepted).

GroupSolverRanSolvedOptimal%optlbubgap
allCplex376258277%0.491.2743%
CPO37637619251%0.891.038%
CP-SAT37635016544%0.911.035%
OptalCP37637622359%1.001.013%
outdatedCplex53531019%0.701.0326%
CPO53535196%1.001.000%
CP-SAT53535298%1.001.000%
OptalCP535353100%1.001.000%
classicCplex18917911%0.521.3354%
CPO1891896534%0.981.025%
CP-SAT1891894122%0.991.035%
OptalCP1891898243%0.991.013%
challengeCplex606000%0.541.4161%
CPO606000%0.971.0610%
CP-SAT606000%0.981.0710%
OptalCP606000%0.991.037%
largeCplex90261618%0.661.4515%
CPO90905056%0.781.0516%
CP-SAT90704651%0.681.039%
OptalCP90905056%1.001.027%
reentrantCplex44000%0.04NaNNaN%
CPO44442659%0.701.1016%
CP-SAT44382659%0.961.075%
OptalCP44443886%1.001.042%
openCplex906000%0.581.4161%
CPO909000%0.981.0815%
CP-SAT908000%0.981.0812%
OptalCP909000%0.991.0411%

Per family

GroupSolverRanSolvedOptimal%optlb devub devgap
ftCplex33133%0.701.0222%
CPO333100%1.001.000%
CP-SAT333100%1.001.000%
OptalCP333100%1.001.000%
laCplex4040820%0.671.0330%
CPO40403895%1.001.000%
CP-SAT40403998%1.001.000%
OptalCP404040100%1.001.000%
orbCplex1010110%0.871.0113%
CPO101010100%1.001.000%
CP-SAT101010100%1.001.000%
OptalCP101010100%1.001.000%
abzCplex55120%0.791.0824%
CPO55240%0.971.014%
CP-SAT55240%0.981.013%
OptalCP55360%0.991.001%
swvCplex202000%0.381.2265%
CPO2020735%0.981.024%
CP-SAT2020630%0.991.024%
OptalCP20201050%0.991.012%
ynCplex4400%0.791.1330%
CPO4400%0.901.0211%
CP-SAT4400%0.941.038%
OptalCP4400%0.951.016%
dmuCplex808000%0.521.4160%
CPO80801620%0.971.047%
CP-SAT80801013%0.991.057%
OptalCP80802329%0.991.024%
taCplex807000%0.541.3048%
CPO80804050%0.981.013%
CP-SAT80802329%0.991.023%
OptalCP80804658%0.991.001%
taiCplex90261618%0.661.4515%
CPO90905056%0.781.0516%
CP-SAT90704651%0.681.039%
OptalCP90905056%1.001.027%
dctCplex24000%0.45NaNNaN%
CPO2424625%0.521.1932%
CP-SAT2418625%0.931.1611%
OptalCP24241875%1.001.075%
belCplex20000%0.02NaNNaN%
CPO202020100%1.001.000%
CP-SAT202020100%1.001.000%
OptalCP202020100%1.001.000%


Best known solutions

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

The solutions may come from

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


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" : "Demirkol, 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, hardware, 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 per instance family

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”. Jelke J. van Hoorn attributes the 665 bond to “Paul Douglas Martin. A time-oriented approach to computing optimal schedules for the job-shop scheduling problem. PhD thesis. 1996”. However OptalCP proves a lower bound of 667 and Optimizizer only provides a verified solution for 667. We advise caution until this result is confirmed by independent means.

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 15jobshop17741783openlb CPO2015 | ub QXL2026
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 20jobshop19611978openlb OptalCP | ub QXL2026
ta45js30 x 20jobshop19971997easyCP-SAT in < 10m
ta46js30 x 20jobshop19762002openlb OptalCP | ub QXL2026
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

Demirkol, 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 20jobshop37333811openlb OptalCP | ub DOFP2026
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 15jobshop40704151openlb OptalCP | ub QXL2026
dmu5230 x 15jobshop42034297openlb OptalCP | ub LHW2024
dmu5330 x 15jobshop42484378openlb OptalCP | ub CS2022
dmu5430 x 15jobshop42774360openlb OptalCP | ub QXL2026
dmu5530 x 15jobshop41914258openlb OptalCP | ub LHW2024
dmu5630 x 20jobshop47554934openlb OptalCP | ub QXL2026
dmu5730 x 20jobshop44624643openlb OptalCP | ub QXL2026
dmu5830 x 20jobshop44844701openlb OptalCP | ub CS2022
dmu5930 x 20jobshop43664607openlb OptalCP | ub LHW2024
dmu6030 x 20jobshop44684721openlb OptalCP | ub CS2022
dmu6140 x 15jobshop50385166openlb OptalCP | ub DOFP2026
dmu6240 x 15jobshop51765244openlb OptalCP | ub QXL2026
dmu6340 x 15jobshop52455296openlb OptalCP | ub QXL2026
dmu6440 x 15jobshop51555225openlb OptalCP | ub QXL2026
dmu6540 x 15jobshop51225158openlb OptalCP | ub DOFP2026
dmu6640 x 20jobshop55265692openlb OptalCP | ub DOFP2026
dmu6740 x 20jobshop56615774openlb OptalCP | ub QXL2026
dmu6840 x 20jobshop55135749openlb OptalCP | ub DOFP2026
dmu6940 x 20jobshop55115682openlb OptalCP | ub DOFP2026
dmu7040 x 20jobshop56335868openlb OptalCP | ub CS2022
dmu7150 x 15jobshop61296206openlb OptalCP | ub QXL2026
dmu7250 x 15jobshop64346448openlb CdGKGC2025 | ub QXL2026
dmu7350 x 15jobshop61076132openlb OptalCP | ub QXL2026
dmu7450 x 15jobshop61686196openlb OptalCP | ub SS2018
dmu7550 x 15jobshop61236186openlb OptalCP | ub DOFP2026
dmu7650 x 20jobshop64796708openlb OptalCP | ub DOFP2026
dmu7750 x 20jobshop65206739openlb OptalCP | ub QXL2026
dmu7850 x 20jobshop66436744openlb OptalCP | ub QXL2026
dmu7950 x 20jobshop67206899openlb OptalCP | ub QXL2026
dmu8050 x 20jobshop64606621openlb OptalCP | ub DOFP2026

Da Col and Teppan 2022 - taillard-like instances

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
tai_100_1000_2100 x 1000jobshop530375538067openOptalCP
tai_100_1000_3100 x 1000jobshop530560538757openOptalCP
tai_100_1000_4100 x 1000jobshop527101534746openOptalCP
tai_100_1000_5100 x 1000jobshop517728529580openOptalCP
tai_100_1000_6100 x 1000jobshop522907534969openOptalCP
tai_100_1000_7100 x 1000jobshop522537534974openOptalCP
tai_100_1000_8100 x 1000jobshop526428535757openOptalCP
tai_100_1000_9100 x 1000jobshop528097536993openOptalCP
tai_100_1000_10100 x 1000jobshop521766529918openOptalCP
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 in < 1h
tai_1000_100_21000 x 100jobshop528088528088hardOptalCP in < 2h
tai_1000_100_31000 x 100jobshop522793522793hardOptalCP in < 2h
tai_1000_100_41000 x 100jobshop524271524271hardOptalCP in < 2h
tai_1000_100_51000 x 100jobshop531216531216mediumOptalCP in < 1h
tai_1000_100_61000 x 100jobshop518763518763hardOptalCP in < 3h
tai_1000_100_71000 x 100jobshop527093527093hardOptalCP in < 2h
tai_1000_100_81000 x 100jobshop519524519524hardOptalCP in < 3h
tai_1000_100_91000 x 100jobshop520889520889hardOptalCP in < 3h
tai_1000_100_101000 x 100jobshop529112529112hardOptalCP in < 3h
tai_1000_1000_11000 x 1000jobshop549392811195openOptalCP
tai_1000_1000_21000 x 1000jobshop549043813044openOptalCP
tai_1000_1000_31000 x 1000jobshop552580811269openOptalCP
tai_1000_1000_41000 x 1000jobshop547670876363openOptalCP
tai_1000_1000_51000 x 1000jobshop545193811467openOptalCP
tai_1000_1000_61000 x 1000jobshop547286813117openOptalCP
tai_1000_1000_71000 x 1000jobshop545877809043openOptalCP
tai_1000_1000_81000 x 1000jobshop549220812442openOptalCP
tai_1000_1000_91000 x 1000jobshop543559810111openOptalCP
tai_1000_1000_101000 x 1000jobshop549075809421openlb Hexaly | ub OptalCP

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-100-100000-1109 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-100-100000-2114 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-long-100-100000-3109 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-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-100-100000-120685 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-100-100000-220870 x 100reentrant jobshop600000600000toyOptalCP in < 1m
dct-short-100-100000-320767 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 jobshop600000600000toyOptalCP in < 1m
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. We have recently noticed some regression in OptalCP on two of these instances hence you may need specific parameters to reach the solution in the time announced.

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

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