The jobshop scheduling problem benchmark library
JSPLib is a comprehensive benchmark library for the Job Shop Scheduling Problem (JSP), with three components:
- Instance repository — a centralized set of classic synthetic instances (ft, la, abz, orb, yn, swv, ta, dmu, tai) and industrial reentrant instances (dct, bel).
- Engine benchmark — a standardized 10-minute comparison of reference solvers (CPO, CP-SAT, OptalCP), measuring each engine’s optimality gap and deviation from the best known bounds.
- Best-known-solutions archive — a running record of the best upper/lower bounds ever found for each instance, from any source (published papers, meta-heuristics, or engine runs) — not limited to the three reference engines above.
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)
- 3 instances
ftfrom Fisher and Thompson 1963 - 40 instances
lafrom Lawrence 1984 - 5 instances
abzfrom Adams, Balas and Zawack 1988 - 10 instances
orbfrom Applegate and Cook 1991 - 20 instances
swvfrom Storer, Wu and Vaccari 1992 - 4 instances
ynfrom Yamada Nakano 1992 - 80 instances
tafrom Taillard 1993 - 80 instances
dmufrom Demirkol, Mehta and Uzsoy 1998 - 90 instances
taifrom Da Col and Teppan 2022
reentrant jobshop instances (44)
- 24 instances
dctfrom Da Col and Teppan 2022 - 20 instances
belfrom 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 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
- IBM ILOG Cplex : a state-of-the-art MIP engine
- IBM ILOG CP Optimizer : representative of the CP-scheduling family of engines
- Google CP-SAT : representative of the lazy clause generation family of engines
- OptalCP : representative of the CP-scheduling family of engines
We use the following criteria to classify instances by difficulty
- 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 is reclassified into toy, easy, medium or hard when a reference engine is able to reproduce the results.
- open : no proof of optimality
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:
- prove optimality for as many instances as possible within the 10 minute limit
- for instances that cannot be closed in 10 minutes, to minimize the deviation to the best known upper and lower bounds
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
ft: 3 toyla: 39 toy, 1 easyabz: 2 toy, 1 easy, 1 medium, 1 hardorb: 10 toyswv: 9 toy, 2 easy, 3 medium, 3 hard, 3 openyn: 4 hardta: 42 toy, 6 easy, 12 medium, 8 hard, 12 opendmu: 19 toy, 5 easy, 6 medium, 5 hard, 45 opentai: 50 toy, 2 medium, 8 hard, 30 open
reentrant jobshop
dct: 21 toy, 2 medium, 1 openbel: 20 toy
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
- 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
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
-
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.
-
Applegate, 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 Problems with Application to Job Shop Scheduling. Management Science, 38(10), 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.
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
- IBM ILOG Cplex : a state-of-the-art MIP engine
- IBM ILOG CP Optimizer : representative of the CP-scheduling family of engines
- Google CP-SAT : representative of the lazy clause generation family of engines
- OptalCP : representative of the CP-scheduling family of engines
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
- a presolve
- various LP algorithms (simplex, dual simplex, barrier)
- search strategies with learning (branching, restarts)
- a large collection of cuts
- primal heuristics
- conflict analysis adapted from SAT
- solution polishing before the time-limit
Improvements in a complex software like Cplex are incremental, but we can broadly divide its evolution as follows
- Cplex 1-3 [1987-1994] LP improvements (simplex, dual simplex, interior points), basic presolve and branch-and-cut. Cplex 3.0 is a performance milestone due to its mature dual simplex.
- Cplex 6-7 [1998-2001] established what we would recognize today as a modern MIP (presolve + branch-and-cut + heuristics + learning) with a particular emphasis on cuts. Cplex 6.5 (1999) is considered by practitioners as a performance milestone.
- Cplex 9-11 [2003-2007] more emphasis on primal approaches : heuristics (RINS, Feasibility pump), search strategies (restart + node presolve), solution polishing, SAT-like conflict analysis. Cplex 11 is considered as a performance milestone.
- Cplex 11/12- [2007-] more cuts (GCD-based cuts, multi-commodity flow) sometimes mixed with heuristics (pump reduce) or search (conflict analysis), and systematic cutting plane filtering allowing a more aggressive usage of cuts
From 2008, Bixby, Rothberg and Gu created Gurobi.
References
- Solving Real-World linear programs: a decade and more of progress (Robert Bixby - 2002)
- Mixed Integer Programming: Analyzing 12 Years of Progress.” In Facets of Combinatorial Optimization (Tobias Achterberg, Roland Wunderling - 2013)
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
- Large Neighbourhood Search (Shaw and al.) : tree-search based local search
- Iterative diving (designed by Philppe Laborie) : a quick diving heuristic for “simple” scheduling problems that often provides fast and good initial solutions
- Failure Directed Search (designed by Petr Vilim) : a generalization of the fail-first principle that reduces the search space by eliminating assignments unlikely to succeed
- Genetic algorithms on top of the scheduling engine : named “multi-point” search, they are not on by default unless a large number of cores are available
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
- time tabling and edge-finding for disjunctive and cumulative resources (Claude LePape, Wim Nuijten, Philippe Baptiste) later improved by Petr Vilim
- logical network for implications and (dis)equalities between boolean variables
- simple temporal networks for precedences
References
- 20+ years of scheduling with constraints at IBM/ILOG (Philippe Laborie, Jérôme Rogerie, Paul Shaw and Petr Vilim - 2018)
- Introduction to CP Optimizer (Philippe Laborie - 2019)
- Self-adapting large neighborhood search: Application to single-mode scheduling problems (Philippe Laborie and Daniel Godard - 2007)
- Reasoning with Conditional Time-intervals (Philippe Laborie and Jérôme Rogerie - 2008)
- Reasoning with Conditional Time-intervals Part II (Phillipe Laborie, Jérôme Rogerie, Paul Shaw and Petr Vilim - 2009)
- Temporal linear relaxation in IBM ILOG CP Optimizer (Philippe Laborie and Jérôme Rogerie - 2014)
- Failure-Directed Search for Constraint-Based Scheduling (Petr Vilim, Philippe Laborie and Paul Shaw - 2015)
- Objective landscapes for constraint programming (Philippe Laborie - 2018)
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
- LP-based lower bounds + MIP style cuts, in particular MIP cuts specialized for scheduling
- CP-style propagation algorithms (time-tabling, edge-finding)
- SAT-style conflict analysis
- synchronization of MIP and CP style reasonings
- LNS : tree-based local search
- LS with infeasible moves
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
- variable fixing
- domain tightening
- affine relation detection
- duplicate constraint elimination
- implied bound computation
- linear simplification
- clique extraction
- symmetry detection
- interval simplification
- objective simplification
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
- CP-SAT at scheduling seminar (Laurent Perron - 2024)
- From Literals to Atomic Constraints: Generalising Conflict-Driven Clause Learning for Constraint Programming (Imko Marijnissen, Maarten Flippo, Emir Demirović - CP2026)
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
- Large Neighbourhood Search (LNS) : tree-search based local search
- Failure Directed Search (FDS) : generalizes first-fail principle
- FDSDual : generalizes destructive lower bounds
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
- OptalCP at scheduling seminar (Petr Vilim - 2026)
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:
- An approach that finds a best known solution for a single problem but is unable to provide good results for other problems is totally unusable in practice (e.g. a random solution)
- An approach that systematically gets close to the best known solutions in a short time may not improve any best known bound but be of significant practical interest
We therefore adopt the following metrics instead
- Geometric average of lower bound to best known lower bound ratio
- Geometric average of the upper bound to best known upper bound ratio
- Geometric shifted average of the gap
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
- Cplex 22.1.1.0
- CPO 22.1.1.0
- with gap tolerance = 0
- CP-SAT V9.15.6755 with default configuration
- OptalCP Academic Version 2026.4.0
- with maximum propagation instead of default, gap tolerance = 0 and some other parameter changes
- we may benchmark with default parameters later
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
- Engines have relative and absolute optimality tolerances (CPO, OptalCP) which can lead to reporting sub-optimal solutions as optimal (for the tolerance). For this test the tolerances have been set to zero
- Engines are very non-deterministic (results between two runs of the same engine on the same machine differ significantly) due to parallelism. As a result it makes no sense to consider very accurate values for average deviations or gap.
- Engines have different bottlenecks (CPU, memory) that are due to their internal architecture and trade-offs made by their designers. An engine doesn’t behave in the same way with 2, 4, 8, 16, 32 or 64 cores, doesn’t behave the same in machines with fast / slow memory, etc.
- Engines recommend different configurations : CP-SAT recommends a minimum of 8 cores and ideally 16 (due to the high number of strategies that need to be interleaved with less cores). CPO on the other hand gives most of its performance on 1 or 2 cores (refer for instance to the comparison of DaCol Teppan 2022). The 4 core configuration was chosen because it is a usual laptop configuration, but commercial users will probably run on a larger server.
Per types of instances
The types are defined as follows
- outdated :
ft,la,orb - classic :
abz,swv,yn,dmu,ta - challenge : classic + still open
- large :
tai - reentrant:
bel,dct - open : all instances still open
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).
| Group | Solver | Ran | Solved | Optimal | %opt | lb | ub | gap |
|---|---|---|---|---|---|---|---|---|
| all | Cplex | 376 | 258 | 27 | 7% | 0.49 | 1.27 | 43% |
| CPO | 376 | 376 | 192 | 51% | 0.89 | 1.03 | 8% | |
| CP-SAT | 376 | 350 | 165 | 44% | 0.91 | 1.03 | 5% | |
| OptalCP | 376 | 376 | 223 | 59% | 1.00 | 1.01 | 3% | |
| outdated | Cplex | 53 | 53 | 10 | 19% | 0.70 | 1.03 | 26% |
| CPO | 53 | 53 | 51 | 96% | 1.00 | 1.00 | 0% | |
| CP-SAT | 53 | 53 | 52 | 98% | 1.00 | 1.00 | 0% | |
| OptalCP | 53 | 53 | 53 | 100% | 1.00 | 1.00 | 0% | |
| classic | Cplex | 189 | 179 | 1 | 1% | 0.52 | 1.33 | 54% |
| CPO | 189 | 189 | 65 | 34% | 0.98 | 1.02 | 5% | |
| CP-SAT | 189 | 189 | 41 | 22% | 0.99 | 1.03 | 5% | |
| OptalCP | 189 | 189 | 82 | 43% | 0.99 | 1.01 | 3% | |
| challenge | Cplex | 60 | 60 | 0 | 0% | 0.54 | 1.41 | 61% |
| CPO | 60 | 60 | 0 | 0% | 0.97 | 1.06 | 10% | |
| CP-SAT | 60 | 60 | 0 | 0% | 0.98 | 1.07 | 10% | |
| OptalCP | 60 | 60 | 0 | 0% | 0.99 | 1.03 | 7% | |
| large | Cplex | 90 | 26 | 16 | 18% | 0.66 | 1.45 | 15% |
| CPO | 90 | 90 | 50 | 56% | 0.78 | 1.05 | 16% | |
| CP-SAT | 90 | 70 | 46 | 51% | 0.68 | 1.03 | 9% | |
| OptalCP | 90 | 90 | 50 | 56% | 1.00 | 1.02 | 7% | |
| reentrant | Cplex | 44 | 0 | 0 | 0% | 0.04 | NaN | NaN% |
| CPO | 44 | 44 | 26 | 59% | 0.70 | 1.10 | 16% | |
| CP-SAT | 44 | 38 | 26 | 59% | 0.96 | 1.07 | 5% | |
| OptalCP | 44 | 44 | 38 | 86% | 1.00 | 1.04 | 2% | |
| open | Cplex | 90 | 60 | 0 | 0% | 0.58 | 1.41 | 61% |
| CPO | 90 | 90 | 0 | 0% | 0.98 | 1.08 | 15% | |
| CP-SAT | 90 | 80 | 0 | 0% | 0.98 | 1.08 | 12% | |
| OptalCP | 90 | 90 | 0 | 0% | 0.99 | 1.04 | 11% |
Per family
| Group | Solver | Ran | Solved | Optimal | %opt | lb dev | ub dev | gap |
|---|---|---|---|---|---|---|---|---|
| ft | Cplex | 3 | 3 | 1 | 33% | 0.70 | 1.02 | 22% |
| CPO | 3 | 3 | 3 | 100% | 1.00 | 1.00 | 0% | |
| CP-SAT | 3 | 3 | 3 | 100% | 1.00 | 1.00 | 0% | |
| OptalCP | 3 | 3 | 3 | 100% | 1.00 | 1.00 | 0% | |
| la | Cplex | 40 | 40 | 8 | 20% | 0.67 | 1.03 | 30% |
| CPO | 40 | 40 | 38 | 95% | 1.00 | 1.00 | 0% | |
| CP-SAT | 40 | 40 | 39 | 98% | 1.00 | 1.00 | 0% | |
| OptalCP | 40 | 40 | 40 | 100% | 1.00 | 1.00 | 0% | |
| orb | Cplex | 10 | 10 | 1 | 10% | 0.87 | 1.01 | 13% |
| CPO | 10 | 10 | 10 | 100% | 1.00 | 1.00 | 0% | |
| CP-SAT | 10 | 10 | 10 | 100% | 1.00 | 1.00 | 0% | |
| OptalCP | 10 | 10 | 10 | 100% | 1.00 | 1.00 | 0% | |
| abz | Cplex | 5 | 5 | 1 | 20% | 0.79 | 1.08 | 24% |
| CPO | 5 | 5 | 2 | 40% | 0.97 | 1.01 | 4% | |
| CP-SAT | 5 | 5 | 2 | 40% | 0.98 | 1.01 | 3% | |
| OptalCP | 5 | 5 | 3 | 60% | 0.99 | 1.00 | 1% | |
| swv | Cplex | 20 | 20 | 0 | 0% | 0.38 | 1.22 | 65% |
| CPO | 20 | 20 | 7 | 35% | 0.98 | 1.02 | 4% | |
| CP-SAT | 20 | 20 | 6 | 30% | 0.99 | 1.02 | 4% | |
| OptalCP | 20 | 20 | 10 | 50% | 0.99 | 1.01 | 2% | |
| yn | Cplex | 4 | 4 | 0 | 0% | 0.79 | 1.13 | 30% |
| CPO | 4 | 4 | 0 | 0% | 0.90 | 1.02 | 11% | |
| CP-SAT | 4 | 4 | 0 | 0% | 0.94 | 1.03 | 8% | |
| OptalCP | 4 | 4 | 0 | 0% | 0.95 | 1.01 | 6% | |
| dmu | Cplex | 80 | 80 | 0 | 0% | 0.52 | 1.41 | 60% |
| CPO | 80 | 80 | 16 | 20% | 0.97 | 1.04 | 7% | |
| CP-SAT | 80 | 80 | 10 | 13% | 0.99 | 1.05 | 7% | |
| OptalCP | 80 | 80 | 23 | 29% | 0.99 | 1.02 | 4% | |
| ta | Cplex | 80 | 70 | 0 | 0% | 0.54 | 1.30 | 48% |
| CPO | 80 | 80 | 40 | 50% | 0.98 | 1.01 | 3% | |
| CP-SAT | 80 | 80 | 23 | 29% | 0.99 | 1.02 | 3% | |
| OptalCP | 80 | 80 | 46 | 58% | 0.99 | 1.00 | 1% | |
| tai | Cplex | 90 | 26 | 16 | 18% | 0.66 | 1.45 | 15% |
| CPO | 90 | 90 | 50 | 56% | 0.78 | 1.05 | 16% | |
| CP-SAT | 90 | 70 | 46 | 51% | 0.68 | 1.03 | 9% | |
| OptalCP | 90 | 90 | 50 | 56% | 1.00 | 1.02 | 7% | |
| dct | Cplex | 24 | 0 | 0 | 0% | 0.45 | NaN | NaN% |
| CPO | 24 | 24 | 6 | 25% | 0.52 | 1.19 | 32% | |
| CP-SAT | 24 | 18 | 6 | 25% | 0.93 | 1.16 | 11% | |
| OptalCP | 24 | 24 | 18 | 75% | 1.00 | 1.07 | 5% | |
| bel | Cplex | 20 | 0 | 0 | 0% | 0.02 | NaN | NaN% |
| CPO | 20 | 20 | 20 | 100% | 1.00 | 1.00 | 0% | |
| CP-SAT | 20 | 20 | 20 | 100% | 1.00 | 1.00 | 0% | |
| OptalCP | 20 | 20 | 20 | 100% | 1.00 | 1.00 | 0% |
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
- Published papers (eg. NS2002), the section publications provides references
- 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
- When a reference engine reproduces a published bound, the table credits the engine because of the reproducibility advantage
- 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" : "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.
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| ft06 | 6 x 6 | jobshop | 55 | 55 | toy | OptalCP in < 1m |
| ft10 | 10 x 10 | jobshop | 930 | 930 | toy | OptalCP in < 1m |
| ft20 | 20 x 5 | jobshop | 1165 | 1165 | toy | OptalCP in < 1m |
Lawrence 1984
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| la01 | 10 x 5 | jobshop | 666 | 666 | toy | OptalCP in < 1m |
| la02 | 10 x 5 | jobshop | 655 | 655 | toy | OptalCP in < 1m |
| la03 | 10 x 5 | jobshop | 597 | 597 | toy | OptalCP in < 1m |
| la04 | 10 x 5 | jobshop | 590 | 590 | toy | OptalCP in < 1m |
| la05 | 10 x 5 | jobshop | 593 | 593 | toy | OptalCP in < 1m |
| la06 | 15 x 5 | jobshop | 926 | 926 | toy | OptalCP in < 1m |
| la07 | 15 x 5 | jobshop | 890 | 890 | toy | OptalCP in < 1m |
| la08 | 15 x 5 | jobshop | 863 | 863 | toy | OptalCP in < 1m |
| la09 | 15 x 5 | jobshop | 951 | 951 | toy | OptalCP in < 1m |
| la10 | 15 x 5 | jobshop | 958 | 958 | toy | OptalCP in < 1m |
| la11 | 20 x 5 | jobshop | 1222 | 1222 | toy | OptalCP in < 1m |
| la12 | 20 x 5 | jobshop | 1039 | 1039 | toy | OptalCP in < 1m |
| la13 | 20 x 5 | jobshop | 1150 | 1150 | toy | OptalCP in < 1m |
| la14 | 20 x 5 | jobshop | 1292 | 1292 | toy | OptalCP in < 1m |
| la15 | 20 x 5 | jobshop | 1207 | 1207 | toy | OptalCP in < 1m |
| la16 | 10 x 10 | jobshop | 945 | 945 | toy | OptalCP in < 1m |
| la17 | 10 x 10 | jobshop | 784 | 784 | toy | OptalCP in < 1m |
| la18 | 10 x 10 | jobshop | 848 | 848 | toy | OptalCP in < 1m |
| la19 | 10 x 10 | jobshop | 842 | 842 | toy | OptalCP in < 1m |
| la20 | 10 x 10 | jobshop | 902 | 902 | toy | OptalCP in < 1m |
| la21 | 15 x 10 | jobshop | 1046 | 1046 | toy | OptalCP in < 1m |
| la22 | 15 x 10 | jobshop | 927 | 927 | toy | OptalCP in < 1m |
| la23 | 15 x 10 | jobshop | 1032 | 1032 | toy | OptalCP in < 1m |
| la24 | 15 x 10 | jobshop | 935 | 935 | toy | OptalCP in < 1m |
| la25 | 15 x 10 | jobshop | 977 | 977 | toy | OptalCP in < 1m |
| la26 | 20 x 10 | jobshop | 1218 | 1218 | toy | OptalCP in < 1m |
| la27 | 20 x 10 | jobshop | 1235 | 1235 | toy | OptalCP in < 1m |
| la28 | 20 x 10 | jobshop | 1216 | 1216 | toy | OptalCP in < 1m |
| la29 | 20 x 10 | jobshop | 1152 | 1152 | easy | OptalCP in < 5m |
| la30 | 20 x 10 | jobshop | 1355 | 1355 | toy | OptalCP in < 1m |
| la31 | 30 x 10 | jobshop | 1784 | 1784 | toy | OptalCP in < 1m |
| la32 | 30 x 10 | jobshop | 1850 | 1850 | toy | OptalCP in < 1m |
| la33 | 30 x 10 | jobshop | 1719 | 1719 | toy | OptalCP in < 1m |
| la34 | 30 x 10 | jobshop | 1721 | 1721 | toy | OptalCP in < 1m |
| la35 | 30 x 10 | jobshop | 1888 | 1888 | toy | OptalCP in < 1m |
| la36 | 15 x 15 | jobshop | 1268 | 1268 | toy | OptalCP in < 1m |
| la37 | 15 x 15 | jobshop | 1397 | 1397 | toy | OptalCP in < 1m |
| la38 | 15 x 15 | jobshop | 1196 | 1196 | toy | OptalCP in < 1m |
| la39 | 15 x 15 | jobshop | 1233 | 1233 | toy | OptalCP in < 1m |
| la40 | 15 x 15 | jobshop | 1222 | 1222 | toy | OptalCP in < 1m |
Adams, Balas and Zawack 1988
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| abz5 | 10 x 10 | jobshop | 1234 | 1234 | toy | OptalCP in < 1m |
| abz6 | 10 x 10 | jobshop | 943 | 943 | toy | OptalCP in < 1m |
| abz7 | 20 x 15 | jobshop | 656 | 656 | easy | OptalCP in < 10m |
| abz8 | 20 x 15 | jobshop | 667 | 667 | hard | OptalCP in < 10h |
| abz9 | 20 x 15 | jobshop | 678 | 678 | medium | OptalCP 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
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| orb01 | 10 x 10 | jobshop | 1059 | 1059 | toy | OptalCP in < 1m |
| orb02 | 10 x 10 | jobshop | 888 | 888 | toy | OptalCP in < 1m |
| orb03 | 10 x 10 | jobshop | 1005 | 1005 | toy | OptalCP in < 1m |
| orb04 | 10 x 10 | jobshop | 1005 | 1005 | toy | OptalCP in < 1m |
| orb05 | 10 x 10 | jobshop | 887 | 887 | toy | OptalCP in < 1m |
| orb06 | 10 x 10 | jobshop | 1010 | 1010 | toy | OptalCP in < 1m |
| orb07 | 10 x 10 | jobshop | 397 | 397 | toy | OptalCP in < 1m |
| orb08 | 10 x 10 | jobshop | 899 | 899 | toy | OptalCP in < 1m |
| orb09 | 10 x 10 | jobshop | 934 | 934 | toy | OptalCP in < 1m |
| orb10 | 10 x 10 | jobshop | 944 | 944 | toy | OptalCP in < 1m |
Storer, Wu and Vaccari 1992
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| swv01 | 20 x 10 | jobshop | 1407 | 1407 | toy | OptalCP in < 1m |
| swv02 | 20 x 10 | jobshop | 1475 | 1475 | toy | OptalCP in < 1m |
| swv03 | 20 x 10 | jobshop | 1398 | 1398 | easy | OptalCP in < 10m |
| swv04 | 20 x 10 | jobshop | 1464 | 1464 | medium | OptalCP in < 1h |
| swv05 | 20 x 10 | jobshop | 1424 | 1424 | easy | OptalCP in < 10m |
| swv06 | 20 x 15 | jobshop | 1667 | 1667 | hard | OptalCP in < 40h |
| swv07 | 20 x 15 | jobshop | 1541 | 1594 | open | lb OptalCP | ub GR2014 |
| swv08 | 20 x 15 | jobshop | 1694 | 1751 | open | lb OptalCP | ub Mu2015 |
| swv09 | 20 x 15 | jobshop | 1655 | 1655 | hard | OptalCP in < 15h |
| swv10 | 20 x 15 | jobshop | 1692 | 1743 | open | lb OptalCP | ub SS2018 |
| swv11 | 50 x 10 | jobshop | 2983 | 2983 | medium | OptalCP in < 1h |
| swv12 | 50 x 10 | jobshop | 2972 | 2972 | medium | OptalCP in < 1h |
| swv13 | 50 x 10 | jobshop | 3104 | 3104 | toy | OptalCP in < 1m |
| swv14 | 50 x 10 | jobshop | 2968 | 2968 | toy | OptalCP in < 1m |
| swv15 | 50 x 10 | jobshop | 2885 | 2885 | hard | OptalCP in < 9h |
| swv16 | 50 x 10 | jobshop | 2924 | 2924 | toy | OptalCP in < 1m |
| swv17 | 50 x 10 | jobshop | 2794 | 2794 | toy | OptalCP in < 1m |
| swv18 | 50 x 10 | jobshop | 2852 | 2852 | toy | OptalCP in < 1m |
| swv19 | 50 x 10 | jobshop | 2843 | 2843 | toy | OptalCP in < 1m |
| swv20 | 50 x 10 | jobshop | 2823 | 2823 | toy | OptalCP in < 1m |
Yamada Nakano 1992
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| yn1 | 20 x 20 | jobshop | 884 | 884 | hard | OptalCP in < 6h |
| yn2 | 20 x 20 | jobshop | 904 | 904 | hard | OptalCP in < 40h |
| yn3 | 20 x 20 | jobshop | 892 | 892 | hard | OptalCP in < 40h |
| yn4 | 20 x 20 | jobshop | 967 | 967 | hard | OptalCP in < 16h |
Taillard 1993
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| ta01js | 15 x 15 | jobshop | 1231 | 1231 | toy | OptalCP in < 1m |
| ta02js | 15 x 15 | jobshop | 1244 | 1244 | toy | OptalCP in < 1m |
| ta03js | 15 x 15 | jobshop | 1218 | 1218 | toy | OptalCP in < 1m |
| ta04js | 15 x 15 | jobshop | 1175 | 1175 | toy | OptalCP in < 1m |
| ta05js | 15 x 15 | jobshop | 1224 | 1224 | toy | OptalCP in < 1m |
| ta06js | 15 x 15 | jobshop | 1238 | 1238 | easy | OptalCP in < 10m |
| ta07js | 15 x 15 | jobshop | 1227 | 1227 | toy | OptalCP in < 1m |
| ta08js | 15 x 15 | jobshop | 1217 | 1217 | toy | OptalCP in < 1m |
| ta09js | 15 x 15 | jobshop | 1274 | 1274 | toy | OptalCP in < 1m |
| ta10js | 15 x 15 | jobshop | 1241 | 1241 | toy | OptalCP in < 1m |
| ta11js | 20 x 15 | jobshop | 1357 | 1357 | medium | OptalCP in < 1h |
| ta12js | 20 x 15 | jobshop | 1367 | 1367 | easy | OptalCP in < 10m |
| ta13js | 20 x 15 | jobshop | 1342 | 1342 | medium | OptalCP in < 1h |
| ta14js | 20 x 15 | jobshop | 1345 | 1345 | toy | OptalCP in < 1m |
| ta15js | 20 x 15 | jobshop | 1339 | 1339 | medium | OptalCP in < 1h |
| ta16js | 20 x 15 | jobshop | 1360 | 1360 | medium | OptalCP in < 1h |
| ta17js | 20 x 15 | jobshop | 1462 | 1462 | toy | OptalCP in < 1m |
| ta18js | 20 x 15 | jobshop | 1396 | 1396 | medium | OptalCP in < 1h |
| ta19js | 20 x 15 | jobshop | 1332 | 1332 | medium | OptalCP in < 1h |
| ta20js | 20 x 15 | jobshop | 1348 | 1348 | medium | OptalCP in < 1h |
| ta21js | 20 x 20 | jobshop | 1642 | 1642 | medium | OptalCP in < 1h |
| ta22js | 20 x 20 | jobshop | 1600 | 1600 | hard | OptalCP in < 2h |
| ta23js | 20 x 20 | jobshop | 1557 | 1557 | hard | OptalCP in < 2h |
| ta24js | 20 x 20 | jobshop | 1644 | 1644 | easy | OptalCP in < 10m |
| ta25js | 20 x 20 | jobshop | 1595 | 1595 | medium | OptalCP in < 1h |
| ta26js | 20 x 20 | jobshop | 1643 | 1643 | hard | OptalCP in < 7h |
| ta27js | 20 x 20 | jobshop | 1680 | 1680 | medium | OptalCP in < 1h |
| ta28js | 20 x 20 | jobshop | 1603 | 1603 | easy | OptalCP in < 10m |
| ta29js | 20 x 20 | jobshop | 1625 | 1625 | hard | OptalCP in < 2h |
| ta30js | 20 x 20 | jobshop | 1562 | 1584 | open | lb OptalCP | ub NS2002 |
| ta31js | 30 x 15 | jobshop | 1764 | 1764 | easy | OptalCP in < 10m |
| ta32js | 30 x 15 | jobshop | 1774 | 1783 | open | lb CPO2015 | ub QXL2026 |
| ta33js | 30 x 15 | jobshop | 1791 | 1791 | hard | OptalCP in < 10h |
| ta34js | 30 x 15 | jobshop | 1828 | 1828 | medium | OptalCP in < 1h |
| ta35js | 30 x 15 | jobshop | 2007 | 2007 | toy | OptalCP in < 1m |
| ta36js | 30 x 15 | jobshop | 1819 | 1819 | toy | OptalCP in < 1m |
| ta37js | 30 x 15 | jobshop | 1771 | 1771 | hard | OptalCP in < 2h |
| ta38js | 30 x 15 | jobshop | 1673 | 1673 | hard | OptalCP in < 7h |
| ta39js | 30 x 15 | jobshop | 1795 | 1795 | toy | OptalCP in < 1m |
| ta40js | 30 x 15 | jobshop | 1658 | 1669 | open | lb OptalCP | ub GR2014 |
| ta41js | 30 x 20 | jobshop | 1926 | 2005 | open | lb OptalCP | ub CPO2015 |
| ta42js | 30 x 20 | jobshop | 1900 | 1937 | open | lb OptalCP | ub GR2014 |
| ta43js | 30 x 20 | jobshop | 1809 | 1846 | open | lb CPO2015 | ub PLC2015 |
| ta44js | 30 x 20 | jobshop | 1961 | 1978 | open | lb OptalCP | ub QXL2026 |
| ta45js | 30 x 20 | jobshop | 1997 | 1997 | easy | CP-SAT in < 10m |
| ta46js | 30 x 20 | jobshop | 1976 | 2002 | open | lb OptalCP | ub QXL2026 |
| ta47js | 30 x 20 | jobshop | 1827 | 1889 | open | lb OptalCP | ub PLC2015 |
| ta48js | 30 x 20 | jobshop | 1921 | 1937 | open | lb OptalCP | ub SS2018 |
| ta49js | 30 x 20 | jobshop | 1938 | 1960 | open | lb OptalCP | ub LHW2024 |
| ta50js | 30 x 20 | jobshop | 1848 | 1923 | open | lb OptalCP | ub PLC2015 |
| ta51js | 50 x 15 | jobshop | 2760 | 2760 | toy | OptalCP in < 1m |
| ta52js | 50 x 15 | jobshop | 2756 | 2756 | toy | OptalCP in < 1m |
| ta53js | 50 x 15 | jobshop | 2717 | 2717 | toy | OptalCP in < 1m |
| ta54js | 50 x 15 | jobshop | 2839 | 2839 | toy | OptalCP in < 1m |
| ta55js | 50 x 15 | jobshop | 2679 | 2679 | toy | OptalCP in < 1m |
| ta56js | 50 x 15 | jobshop | 2781 | 2781 | toy | OptalCP in < 1m |
| ta57js | 50 x 15 | jobshop | 2943 | 2943 | toy | OptalCP in < 1m |
| ta58js | 50 x 15 | jobshop | 2885 | 2885 | toy | OptalCP in < 1m |
| ta59js | 50 x 15 | jobshop | 2655 | 2655 | toy | OptalCP in < 1m |
| ta60js | 50 x 15 | jobshop | 2723 | 2723 | toy | OptalCP in < 1m |
| ta61js | 50 x 20 | jobshop | 2868 | 2868 | toy | OptalCP in < 1m |
| ta62js | 50 x 20 | jobshop | 2869 | 2869 | medium | OptalCP in < 1h |
| ta63js | 50 x 20 | jobshop | 2755 | 2755 | toy | OptalCP in < 1m |
| ta64js | 50 x 20 | jobshop | 2702 | 2702 | toy | OptalCP in < 1m |
| ta65js | 50 x 20 | jobshop | 2725 | 2725 | toy | OptalCP in < 1m |
| ta66js | 50 x 20 | jobshop | 2845 | 2845 | toy | OptalCP in < 1m |
| ta67js | 50 x 20 | jobshop | 2825 | 2825 | hard | OptalCP in < 4h |
| ta68js | 50 x 20 | jobshop | 2784 | 2784 | toy | OptalCP in < 1m |
| ta69js | 50 x 20 | jobshop | 3071 | 3071 | toy | OptalCP in < 1m |
| ta70js | 50 x 20 | jobshop | 2995 | 2995 | toy | OptalCP in < 1m |
| ta71js | 100 x 20 | jobshop | 5464 | 5464 | toy | OptalCP in < 1m |
| ta72js | 100 x 20 | jobshop | 5181 | 5181 | toy | OptalCP in < 1m |
| ta73js | 100 x 20 | jobshop | 5568 | 5568 | toy | OptalCP in < 1m |
| ta74js | 100 x 20 | jobshop | 5339 | 5339 | toy | OptalCP in < 1m |
| ta75js | 100 x 20 | jobshop | 5392 | 5392 | toy | OptalCP in < 1m |
| ta76js | 100 x 20 | jobshop | 5342 | 5342 | toy | OptalCP in < 1m |
| ta77js | 100 x 20 | jobshop | 5436 | 5436 | toy | OptalCP in < 1m |
| ta78js | 100 x 20 | jobshop | 5394 | 5394 | toy | OptalCP in < 1m |
| ta79js | 100 x 20 | jobshop | 5358 | 5358 | toy | OptalCP in < 1m |
| ta80js | 100 x 20 | jobshop | 5183 | 5183 | toy | OptalCP in < 1m |
Demirkol, Mehta and Uzsoy 1998
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| dmu01 | 20 x 15 | jobshop | 2563 | 2563 | medium | OptalCP in < 1h |
| dmu02 | 20 x 15 | jobshop | 2706 | 2706 | easy | OptalCP in < 10m |
| dmu03 | 20 x 15 | jobshop | 2731 | 2731 | easy | OptalCP in < 10m |
| dmu04 | 20 x 15 | jobshop | 2669 | 2669 | medium | OptalCP in < 1h |
| dmu05 | 20 x 15 | jobshop | 2749 | 2749 | medium | OptalCP in < 1h |
| dmu06 | 20 x 20 | jobshop | 3244 | 3244 | hard | OptalCP in < 2h |
| dmu07 | 20 x 20 | jobshop | 3046 | 3046 | hard | OptalCP in < 3h |
| dmu08 | 20 x 20 | jobshop | 3188 | 3188 | easy | OptalCP in < 10m |
| dmu09 | 20 x 20 | jobshop | 3092 | 3092 | easy | OptalCP in < 10m |
| dmu10 | 20 x 20 | jobshop | 2984 | 2984 | medium | OptalCP in < 1h |
| dmu11 | 30 x 15 | jobshop | 3402 | 3430 | open | lb OptalCP | ub PLC2015 |
| dmu12 | 30 x 15 | jobshop | 3481 | 3492 | open | lb OptalCP | ub SS2018 |
| dmu13 | 30 x 15 | jobshop | 3681 | 3681 | hard | OptalCP in < 3h |
| dmu14 | 30 x 15 | jobshop | 3394 | 3394 | toy | CP-SAT in < 1m |
| dmu15 | 30 x 15 | jobshop | 3343 | 3343 | easy | OptalCP in < 10m |
| dmu16 | 30 x 20 | jobshop | 3734 | 3750 | open | lb CPO2015 | ub LHW2024 |
| dmu17 | 30 x 20 | jobshop | 3733 | 3811 | open | lb OptalCP | ub DOFP2026 |
| dmu18 | 30 x 20 | jobshop | 3844 | 3844 | hard | OptalCP in < 10h |
| dmu19 | 30 x 20 | jobshop | 3707 | 3764 | open | lb OptalCP | ub CS2022 |
| dmu20 | 30 x 20 | jobshop | 3632 | 3699 | open | lb OptalCP | ub LHW2024 |
| dmu21 | 40 x 15 | jobshop | 4380 | 4380 | toy | OptalCP in < 1m |
| dmu22 | 40 x 15 | jobshop | 4725 | 4725 | toy | OptalCP in < 1m |
| dmu23 | 40 x 15 | jobshop | 4668 | 4668 | toy | OptalCP in < 1m |
| dmu24 | 40 x 15 | jobshop | 4648 | 4648 | toy | OptalCP in < 1m |
| dmu25 | 40 x 15 | jobshop | 4164 | 4164 | toy | OptalCP in < 1m |
| dmu26 | 40 x 20 | jobshop | 4647 | 4647 | medium | OptalCP in < 1h |
| dmu27 | 40 x 20 | jobshop | 4848 | 4848 | toy | OptalCP in < 1m |
| dmu28 | 40 x 20 | jobshop | 4692 | 4692 | toy | OptalCP in < 1m |
| dmu29 | 40 x 20 | jobshop | 4691 | 4691 | toy | OptalCP in < 1m |
| dmu30 | 40 x 20 | jobshop | 4732 | 4732 | medium | OptalCP in < 1h |
| dmu31 | 50 x 15 | jobshop | 5640 | 5640 | toy | OptalCP in < 1m |
| dmu32 | 50 x 15 | jobshop | 5927 | 5927 | toy | OptalCP in < 1m |
| dmu33 | 50 x 15 | jobshop | 5728 | 5728 | toy | OptalCP in < 1m |
| dmu34 | 50 x 15 | jobshop | 5385 | 5385 | toy | OptalCP in < 1m |
| dmu35 | 50 x 15 | jobshop | 5635 | 5635 | toy | OptalCP in < 1m |
| dmu36 | 50 x 20 | jobshop | 5621 | 5621 | toy | OptalCP in < 1m |
| dmu37 | 50 x 20 | jobshop | 5851 | 5851 | toy | OptalCP in < 1m |
| dmu38 | 50 x 20 | jobshop | 5713 | 5713 | toy | OptalCP in < 1m |
| dmu39 | 50 x 20 | jobshop | 5747 | 5747 | toy | OptalCP in < 1m |
| dmu40 | 50 x 20 | jobshop | 5577 | 5577 | toy | OptalCP in < 1m |
| dmu41 | 20 x 15 | jobshop | 3176 | 3248 | open | lb OptalCP | ub PLC2015 |
| dmu42 | 20 x 15 | jobshop | 3339 | 3390 | open | lb OptalCP | ub SS2018 |
| dmu43 | 20 x 15 | jobshop | 3441 | 3441 | hard | OptalCP in < 7h |
| dmu44 | 20 x 15 | jobshop | 3414 | 3475 | open | lb OptalCP | ub SS2018 |
| dmu45 | 20 x 15 | jobshop | 3217 | 3266 | open | lb OptalCP | ub CS2022 |
| dmu46 | 20 x 20 | jobshop | 3780 | 4035 | open | lb OptalCP | ub GR2014 |
| dmu47 | 20 x 20 | jobshop | 3714 | 3939 | open | lb OptalCP | ub GR2014 |
| dmu48 | 20 x 20 | jobshop | 3628 | 3763 | open | lb OptalCP | ub SS2018 |
| dmu49 | 20 x 20 | jobshop | 3543 | 3706 | open | lb OptalCP | ub LHW2024 |
| dmu50 | 20 x 20 | jobshop | 3618 | 3729 | open | lb OptalCP | ub PLC2015 |
| dmu51 | 30 x 15 | jobshop | 4070 | 4151 | open | lb OptalCP | ub QXL2026 |
| dmu52 | 30 x 15 | jobshop | 4203 | 4297 | open | lb OptalCP | ub LHW2024 |
| dmu53 | 30 x 15 | jobshop | 4248 | 4378 | open | lb OptalCP | ub CS2022 |
| dmu54 | 30 x 15 | jobshop | 4277 | 4360 | open | lb OptalCP | ub QXL2026 |
| dmu55 | 30 x 15 | jobshop | 4191 | 4258 | open | lb OptalCP | ub LHW2024 |
| dmu56 | 30 x 20 | jobshop | 4755 | 4934 | open | lb OptalCP | ub QXL2026 |
| dmu57 | 30 x 20 | jobshop | 4462 | 4643 | open | lb OptalCP | ub QXL2026 |
| dmu58 | 30 x 20 | jobshop | 4484 | 4701 | open | lb OptalCP | ub CS2022 |
| dmu59 | 30 x 20 | jobshop | 4366 | 4607 | open | lb OptalCP | ub LHW2024 |
| dmu60 | 30 x 20 | jobshop | 4468 | 4721 | open | lb OptalCP | ub CS2022 |
| dmu61 | 40 x 15 | jobshop | 5038 | 5166 | open | lb OptalCP | ub DOFP2026 |
| dmu62 | 40 x 15 | jobshop | 5176 | 5244 | open | lb OptalCP | ub QXL2026 |
| dmu63 | 40 x 15 | jobshop | 5245 | 5296 | open | lb OptalCP | ub QXL2026 |
| dmu64 | 40 x 15 | jobshop | 5155 | 5225 | open | lb OptalCP | ub QXL2026 |
| dmu65 | 40 x 15 | jobshop | 5122 | 5158 | open | lb OptalCP | ub DOFP2026 |
| dmu66 | 40 x 20 | jobshop | 5526 | 5692 | open | lb OptalCP | ub DOFP2026 |
| dmu67 | 40 x 20 | jobshop | 5661 | 5774 | open | lb OptalCP | ub QXL2026 |
| dmu68 | 40 x 20 | jobshop | 5513 | 5749 | open | lb OptalCP | ub DOFP2026 |
| dmu69 | 40 x 20 | jobshop | 5511 | 5682 | open | lb OptalCP | ub DOFP2026 |
| dmu70 | 40 x 20 | jobshop | 5633 | 5868 | open | lb OptalCP | ub CS2022 |
| dmu71 | 50 x 15 | jobshop | 6129 | 6206 | open | lb OptalCP | ub QXL2026 |
| dmu72 | 50 x 15 | jobshop | 6434 | 6448 | open | lb CdGKGC2025 | ub QXL2026 |
| dmu73 | 50 x 15 | jobshop | 6107 | 6132 | open | lb OptalCP | ub QXL2026 |
| dmu74 | 50 x 15 | jobshop | 6168 | 6196 | open | lb OptalCP | ub SS2018 |
| dmu75 | 50 x 15 | jobshop | 6123 | 6186 | open | lb OptalCP | ub DOFP2026 |
| dmu76 | 50 x 20 | jobshop | 6479 | 6708 | open | lb OptalCP | ub DOFP2026 |
| dmu77 | 50 x 20 | jobshop | 6520 | 6739 | open | lb OptalCP | ub QXL2026 |
| dmu78 | 50 x 20 | jobshop | 6643 | 6744 | open | lb OptalCP | ub QXL2026 |
| dmu79 | 50 x 20 | jobshop | 6720 | 6899 | open | lb OptalCP | ub QXL2026 |
| dmu80 | 50 x 20 | jobshop | 6460 | 6621 | open | lb OptalCP | ub DOFP2026 |
Da Col and Teppan 2022 - taillard-like instances
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| tai_10_10_1 | 10 x 10 | jobshop | 8219 | 8219 | toy | OptalCP in < 1m |
| tai_10_10_2 | 10 x 10 | jobshop | 7416 | 7416 | toy | OptalCP in < 1m |
| tai_10_10_3 | 10 x 10 | jobshop | 8094 | 8094 | toy | OptalCP in < 1m |
| tai_10_10_4 | 10 x 10 | jobshop | 8657 | 8657 | toy | OptalCP in < 1m |
| tai_10_10_5 | 10 x 10 | jobshop | 7936 | 7936 | toy | OptalCP in < 1m |
| tai_10_10_6 | 10 x 10 | jobshop | 8509 | 8509 | toy | OptalCP in < 1m |
| tai_10_10_7 | 10 x 10 | jobshop | 8299 | 8299 | toy | OptalCP in < 1m |
| tai_10_10_8 | 10 x 10 | jobshop | 7788 | 7788 | toy | OptalCP in < 1m |
| tai_10_10_9 | 10 x 10 | jobshop | 8300 | 8300 | toy | OptalCP in < 1m |
| tai_10_10_10 | 10 x 10 | jobshop | 8481 | 8481 | toy | OptalCP in < 1m |
| tai_10_100_1 | 10 x 100 | jobshop | 56609 | 56609 | toy | OptalCP in < 1m |
| tai_10_100_2 | 10 x 100 | jobshop | 52330 | 52330 | toy | OptalCP in < 1m |
| tai_10_100_3 | 10 x 100 | jobshop | 56412 | 56412 | toy | OptalCP in < 1m |
| tai_10_100_4 | 10 x 100 | jobshop | 54889 | 54889 | toy | OptalCP in < 1m |
| tai_10_100_5 | 10 x 100 | jobshop | 54603 | 54603 | toy | OptalCP in < 1m |
| tai_10_100_6 | 10 x 100 | jobshop | 53723 | 53723 | toy | OptalCP in < 1m |
| tai_10_100_7 | 10 x 100 | jobshop | 55456 | 55456 | toy | OptalCP in < 1m |
| tai_10_100_8 | 10 x 100 | jobshop | 56466 | 56466 | toy | OptalCP in < 1m |
| tai_10_100_9 | 10 x 100 | jobshop | 55096 | 55096 | toy | OptalCP in < 1m |
| tai_10_100_10 | 10 x 100 | jobshop | 56661 | 56661 | toy | OptalCP in < 1m |
| tai_10_1000_1 | 10 x 1000 | jobshop | 515370 | 515370 | toy | OptalCP in < 1m |
| tai_10_1000_2 | 10 x 1000 | jobshop | 513525 | 513525 | toy | OptalCP in < 1m |
| tai_10_1000_3 | 10 x 1000 | jobshop | 508161 | 508161 | toy | OptalCP in < 1m |
| tai_10_1000_4 | 10 x 1000 | jobshop | 513814 | 513814 | toy | OptalCP in < 1m |
| tai_10_1000_5 | 10 x 1000 | jobshop | 517020 | 517020 | toy | OptalCP in < 1m |
| tai_10_1000_6 | 10 x 1000 | jobshop | 517777 | 517777 | toy | OptalCP in < 1m |
| tai_10_1000_7 | 10 x 1000 | jobshop | 514921 | 514921 | toy | OptalCP in < 1m |
| tai_10_1000_8 | 10 x 1000 | jobshop | 522277 | 522277 | toy | OptalCP in < 1m |
| tai_10_1000_9 | 10 x 1000 | jobshop | 511213 | 511213 | toy | OptalCP in < 1m |
| tai_10_1000_10 | 10 x 1000 | jobshop | 509855 | 509855 | toy | OptalCP in < 1m |
| tai_100_10_1 | 100 x 10 | jobshop | 54951 | 54951 | toy | OptalCP in < 1m |
| tai_100_10_2 | 100 x 10 | jobshop | 57160 | 57160 | toy | OptalCP in < 1m |
| tai_100_10_3 | 100 x 10 | jobshop | 54166 | 54166 | toy | OptalCP in < 1m |
| tai_100_10_4 | 100 x 10 | jobshop | 54371 | 54371 | toy | OptalCP in < 1m |
| tai_100_10_5 | 100 x 10 | jobshop | 56142 | 56142 | toy | OptalCP in < 1m |
| tai_100_10_6 | 100 x 10 | jobshop | 52447 | 52447 | toy | OptalCP in < 1m |
| tai_100_10_7 | 100 x 10 | jobshop | 54051 | 54051 | toy | OptalCP in < 1m |
| tai_100_10_8 | 100 x 10 | jobshop | 55624 | 55624 | toy | OptalCP in < 1m |
| tai_100_10_9 | 100 x 10 | jobshop | 54210 | 54210 | toy | OptalCP in < 1m |
| tai_100_10_10 | 100 x 10 | jobshop | 55464 | 55464 | toy | OptalCP in < 1m |
| tai_100_100_1 | 100 x 100 | jobshop | 62843 | 76926 | open | OptalCP |
| tai_100_100_2 | 100 x 100 | jobshop | 62814 | 77322 | open | OptalCP |
| tai_100_100_3 | 100 x 100 | jobshop | 61533 | 76910 | open | OptalCP |
| tai_100_100_4 | 100 x 100 | jobshop | 64742 | 78604 | open | OptalCP |
| tai_100_100_5 | 100 x 100 | jobshop | 61766 | 78023 | open | OptalCP |
| tai_100_100_6 | 100 x 100 | jobshop | 61360 | 77895 | open | OptalCP |
| tai_100_100_7 | 100 x 100 | jobshop | 64040 | 77670 | open | OptalCP |
| tai_100_100_8 | 100 x 100 | jobshop | 63224 | 78031 | open | OptalCP |
| tai_100_100_9 | 100 x 100 | jobshop | 62631 | 79419 | open | OptalCP |
| tai_100_100_10 | 100 x 100 | jobshop | 64866 | 77837 | open | OptalCP |
| tai_100_1000_1 | 100 x 1000 | jobshop | 522298 | 533080 | open | OptalCP |
| tai_100_1000_2 | 100 x 1000 | jobshop | 530375 | 538067 | open | OptalCP |
| tai_100_1000_3 | 100 x 1000 | jobshop | 530560 | 538757 | open | OptalCP |
| tai_100_1000_4 | 100 x 1000 | jobshop | 527101 | 534746 | open | OptalCP |
| tai_100_1000_5 | 100 x 1000 | jobshop | 517728 | 529580 | open | OptalCP |
| tai_100_1000_6 | 100 x 1000 | jobshop | 522907 | 534969 | open | OptalCP |
| tai_100_1000_7 | 100 x 1000 | jobshop | 522537 | 534974 | open | OptalCP |
| tai_100_1000_8 | 100 x 1000 | jobshop | 526428 | 535757 | open | OptalCP |
| tai_100_1000_9 | 100 x 1000 | jobshop | 528097 | 536993 | open | OptalCP |
| tai_100_1000_10 | 100 x 1000 | jobshop | 521766 | 529918 | open | OptalCP |
| tai_1000_10_1 | 1000 x 10 | jobshop | 515334 | 515334 | toy | OptalCP in < 1m |
| tai_1000_10_2 | 1000 x 10 | jobshop | 509226 | 509226 | toy | OptalCP in < 1m |
| tai_1000_10_3 | 1000 x 10 | jobshop | 517493 | 517493 | toy | OptalCP in < 1m |
| tai_1000_10_4 | 1000 x 10 | jobshop | 519369 | 519369 | toy | OptalCP in < 1m |
| tai_1000_10_5 | 1000 x 10 | jobshop | 513881 | 513881 | toy | OptalCP in < 1m |
| tai_1000_10_6 | 1000 x 10 | jobshop | 511932 | 511932 | toy | OptalCP in < 1m |
| tai_1000_10_7 | 1000 x 10 | jobshop | 523900 | 523900 | toy | OptalCP in < 1m |
| tai_1000_10_8 | 1000 x 10 | jobshop | 513101 | 513101 | toy | OptalCP in < 1m |
| tai_1000_10_9 | 1000 x 10 | jobshop | 508701 | 508701 | toy | OptalCP in < 1m |
| tai_1000_10_10 | 1000 x 10 | jobshop | 521360 | 521360 | toy | OptalCP in < 1m |
| tai_1000_100_1 | 1000 x 100 | jobshop | 525343 | 525343 | medium | OptalCP in < 1h |
| tai_1000_100_2 | 1000 x 100 | jobshop | 528088 | 528088 | hard | OptalCP in < 2h |
| tai_1000_100_3 | 1000 x 100 | jobshop | 522793 | 522793 | hard | OptalCP in < 2h |
| tai_1000_100_4 | 1000 x 100 | jobshop | 524271 | 524271 | hard | OptalCP in < 2h |
| tai_1000_100_5 | 1000 x 100 | jobshop | 531216 | 531216 | medium | OptalCP in < 1h |
| tai_1000_100_6 | 1000 x 100 | jobshop | 518763 | 518763 | hard | OptalCP in < 3h |
| tai_1000_100_7 | 1000 x 100 | jobshop | 527093 | 527093 | hard | OptalCP in < 2h |
| tai_1000_100_8 | 1000 x 100 | jobshop | 519524 | 519524 | hard | OptalCP in < 3h |
| tai_1000_100_9 | 1000 x 100 | jobshop | 520889 | 520889 | hard | OptalCP in < 3h |
| tai_1000_100_10 | 1000 x 100 | jobshop | 529112 | 529112 | hard | OptalCP in < 3h |
| tai_1000_1000_1 | 1000 x 1000 | jobshop | 549392 | 811195 | open | OptalCP |
| tai_1000_1000_2 | 1000 x 1000 | jobshop | 549043 | 813044 | open | OptalCP |
| tai_1000_1000_3 | 1000 x 1000 | jobshop | 552580 | 811269 | open | OptalCP |
| tai_1000_1000_4 | 1000 x 1000 | jobshop | 547670 | 876363 | open | OptalCP |
| tai_1000_1000_5 | 1000 x 1000 | jobshop | 545193 | 811467 | open | OptalCP |
| tai_1000_1000_6 | 1000 x 1000 | jobshop | 547286 | 813117 | open | OptalCP |
| tai_1000_1000_7 | 1000 x 1000 | jobshop | 545877 | 809043 | open | OptalCP |
| tai_1000_1000_8 | 1000 x 1000 | jobshop | 549220 | 812442 | open | OptalCP |
| tai_1000_1000_9 | 1000 x 1000 | jobshop | 543559 | 810111 | open | OptalCP |
| tai_1000_1000_10 | 1000 x 1000 | jobshop | 549075 | 809421 | open | lb 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
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| dct-long-100-10000-1 | 103 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-100-10000-2 | 103 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-100-10000-3 | 103 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-100-100000-1 | 109 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-100-100000-2 | 114 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-100-100000-3 | 109 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-1000-10000-1 | 1002 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-1000-10000-2 | 1002 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-1000-10000-3 | 1002 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-1000-100000-1 | 1002 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-1000-100000-2 | 1002 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-long-1000-100000-3 | 1003 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-100-10000-1 | 2162 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-100-10000-2 | 2192 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-100-10000-3 | 2169 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-100-100000-1 | 20685 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-100-100000-2 | 20870 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-100-100000-3 | 20767 x 100 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-1000-10000-1 | 2882 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-1000-10000-2 | 2863 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-1000-10000-3 | 2897 x 1000 | reentrant jobshop | 600000 | 600000 | toy | OptalCP in < 1m |
| dct-short-1000-100000-1 | 21280 x 1000 | reentrant jobshop | 600000 | 600019 | open | OptalCP |
| dct-short-1000-100000-2 | 21349 x 1000 | reentrant jobshop | 600000 | 600000 | medium | OptalCP in < 1h |
| dct-short-1000-100000-3 | 21338 x 1000 | reentrant jobshop | 600000 | 600000 | medium | OptalCP 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
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| bel00 | 792 x 48 | reentrant jobshop | 766329 | 766329 | toy | OptalCP in < 1m |
| bel01 | 627 x 52 | reentrant jobshop | 428900 | 428900 | toy | OptalCP in < 1m |
| bel02 | 660 x 59 | reentrant jobshop | 270437 | 270437 | toy | OptalCP in < 1m |
| bel03 | 691 x 52 | reentrant jobshop | 670943 | 670943 | toy | OptalCP in < 1m |
| bel04 | 952 x 63 | reentrant jobshop | 408633 | 408633 | toy | OptalCP in < 1m |
| bel05 | 929 x 59 | reentrant jobshop | 620171 | 620171 | toy | OptalCP in < 1m |
| bel06 | 678 x 57 | reentrant jobshop | 502510 | 502510 | toy | OptalCP in < 1m |
| bel07 | 968 x 55 | reentrant jobshop | 750360 | 750360 | toy | OptalCP in < 1m |
| bel08 | 822 x 65 | reentrant jobshop | 484451 | 484451 | toy | OptalCP in < 1m |
| bel09 | 651 x 53 | reentrant jobshop | 534811 | 534811 | toy | OptalCP in < 1m |
| bel10 | 733 x 61 | reentrant jobshop | 468304 | 468304 | toy | OptalCP in < 1m |
| bel11 | 761 x 66 | reentrant jobshop | 509503 | 509503 | toy | OptalCP in < 1m |
| bel12 | 897 x 64 | reentrant jobshop | 388715 | 388715 | toy | OptalCP in < 1m |
| bel13 | 836 x 54 | reentrant jobshop | 420576 | 420576 | toy | OptalCP in < 1m |
| bel14 | 935 x 57 | reentrant jobshop | 1115063 | 1115063 | toy | OptalCP in < 1m |
| bel15 | 818 x 48 | reentrant jobshop | 610946 | 610946 | toy | OptalCP in < 1m |
| bel16 | 855 x 59 | reentrant jobshop | 575843 | 575843 | toy | OptalCP in < 1m |
| bel17 | 662 x 47 | reentrant jobshop | 520426 | 520426 | toy | OptalCP in < 1m |
| bel18 | 677 x 50 | reentrant jobshop | 347889 | 347889 | toy | OptalCP in < 1m |
| bel19 | 806 x 69 | reentrant jobshop | 529239 | 529239 | toy | OptalCP 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.
-
GR2014 (5 bounds in swv, ta and dmu) : 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 ta and dmu) : Vilím, P., Laborie, P., & Shaw, P. (2015). Failure-directed search for constraint-based scheduling. In CPAIOR 2015 proceedings. Detailed experimental results.
-
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 ta and dmu) : 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 (7 bounds in swv, ta and dmu) : Shylo, O. V., & Shams, H. (2018). Boosting binary optimization via binary classification: A case study of job shop scheduling.
-
CS2022 (6 bounds in dmu) : 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. available online
-
LHW2024 (7 bounds in ta and dmu) : 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 bounds - 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.
-
QXL2026 (17 bounds in ta and dmu) : Qihao Liu, Xinyu Li, and Liang Gao (2026) A Knowledge-Driven Decoupling and Coordinated Optimization Framework Based on Decision-Variable Parameterization and Release for the Job-Shop Scheduling Problem
-
DOFP2026 (9 bounds in dmu) : Diego Olivier Fernandez Pons (2026) [Personal communication] : upper-bounds provided by optimizizer were given as starting solution to OptalCP, and ran for 10 minutes
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.