FJSPLib
The flexible jobshop scheduling problem benchmark library
The FJSPLib is a benchmark of flexible jobshop problems with their best known solutions to date. Problems come from a variety of publications (all referenced). The best solutions known to date (upper bound and lower bound) are provided with the corresponding publication or engine that attained it.
The data and source code for the optimization models can be found in the Github repository This document is visible as a README.md in the Github folder flexible jobshop or as a webpage
Table of Contents
Overview of the flexible jobshop benchmark library
Flexible jobshop instances (452)
- 15 instances
mkfrom Brandimarte (1993) - 66 x 4 instances (
abz,car,la,ftandorb) in 4 variants (edatardatasdataandvdata) from Hurink, Jurisch and Thole 1994 - 18 instances
#afrom Dauzère-Pérès and Paulli (1994) - 3 x 7 instances
mt,setb4etseti5from Chambers and Barnes (1996) - 4 instances
kacemfrom Kacem, Hammadi and Borne (2002) - 20 instances
fattahifrom Fattahi, Mehrabad and Jolai (2007) - 60 instances
behnkefrom Behnke and Geiger (2012) - 50 instances
dafjsandyfjsfrom Birgin et al. 2014
The Hurinkm Jurisch and Thole instances are classic jobshop problems modified into flexible jobshops
Classification of the flexible jobshop instances
We use the following engines as references for the benchmark
- 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 lazy clause generation family of engines
We have dropped Cplex from the flexible jobshop tests due to poor performance of linear solvers as reported by multiple authors in the literature and confirmed by ourselves.
Instances are divided into
- easy : solved to optimality (with proof) in 1 minute by at least 1 reference engine
- medium : solved to optimality (with proof) in 1 hour by at least 1 reference engine
- hard : solved to optimality (with proof) in > 1h by at least 1 reference engine
- closed : allegedly solved to optimality. Most of the time the optimal solution is known because 2 different methods independently found equal upper and lower bounds. The problem moves to
hardonly when the optimality proof can be reproduced by a reference engine. - open : no proof of optimality
Currently the instances divide as follows
mk: 9 easy, 2 medium, 1 hard, 3 openabz: 8 easy, 1 medium, 3 hard, 2 closed, 6 opencar: 27 easy, 2 medium, 3 closedla: 119 easy, 16 medium, 4 hard, 12 closed, 9 openft: 12 easyorb: 40 easy#a: 4 easy, 1 medium, 1 hard, 2 closed, 10 openmt: 7 easysetb4: 7 easyseti5: 7 easykacem: 4 easyfattahi: 20 easybehnke: 15 easy, 12 medium, 33 opendafjs: [status unknown]yfjs: [status unknown]
Formats
There are now three format supported in the FJSPLib
- the json format
- the text fjasp format (new format)
- the text fjsp format (old format)
In the traditional text fjsp format precedences are implicit within the job for the consécutive operations. As a result all the operations of the same job, and all the options (or modes) for an operation need to be on the same line, creating very long lines. In the new format each operation and its different options (modes) appear on one line and the precedences appear later with the job number The new format is also more generic in that it accepts general precedence graphs, therefore also covering flexible jobshop variants like the flexible assembly jobshop problem and the jobshop problem with general precedences (which are essentially the same).
The new format (fajsp)
The new format uses
- the first line is the header with
#operations#precedences#machines #precedenceslines of the formx y jwherexandyare the indices of 2 operations, andjthe number of the job that links them#operationslines of the form#options m1 d1 m2 d2 ... mk dkwhere $k \in 0 .. \mathtt{#options}-1$, $m_k$ is a machine between $0$ and $\mathtt{#machines}-1$ and $d_k$ is a duration
Notice that the format doesn’t say how many jobs exist in the instance. That number needs to be deduced from the third column of the precedence data.
For instance fattahi1 is
4 2 2
0 1 0
2 3 1
2 0 25 1 37
2 0 32 1 24
2 0 45 1 65
2 0 21 1 65
There are 4 operations from 0 to 3 with 2 options in each operation.
There are two jobs 0 -> 1 and 2 -> 3
The old format
In the old format
- each line represents a job
- the first number of the line is the number of operations in the job
- then for each operation is given the number of options and as many pairs machine duration as there are options
#jobs #machines average_flexibility
#operations (#options (duration machine) (duration machine)) (#options (duration machine))
For instance fattahi1 is
2 2 2
2 2 1 25 2 37 2 1 32 2 24
2 2 1 45 2 65 2 1 21 2 65
meaning
- (2 jobs) (2 machines) (average flexibility 2.0)
- (2 operations) (2 options : (1,25) (2,37)) (2 options : (1,32) (2,24))
- (2 operations) (2 options : (1,45) (2,65)) (2 options : (1,21) (2,65))
The JSON format
The JSON format follows closely the new format
For instance fattahi1 is
{
"instance": "fattahi1",
"family": "fattahi",
"family_long": "FattahiMehrabadJolai2007",
"year": "2007",
"format": "fajsp",
"operations": [
{ "operation" : 0, "option" : 0, "machine" : 0, "duration" : 25 },
{ "operation" : 0, "option" : 1, "machine" : 1, "duration" : 37 },
{ "operation" : 1, "option" : 0, "machine" : 0, "duration" : 32 },
{ "operation" : 1, "option" : 1, "machine" : 1, "duration" : 24 },
{ "operation" : 2, "option" : 0, "machine" : 0, "duration" : 45 },
{ "operation" : 2, "option" : 1, "machine" : 1, "duration" : 65 },
{ "operation" : 3, "option" : 0, "machine" : 0, "duration" : 21 },
{ "operation" : 3, "option" : 1, "machine" : 1, "duration" : 65 }
],
"precedences": [
[0,1,0],
[2,3,1]
]
}
Publications (instances)
The instances come from the following publications
-
Brandimarte, P (1993). Routing and scheduling in a flexible job shop by tabu search. Annals of Operations research, 41(3), 157-183.
-
Hurink, J., Jurisch, B., & Thole, M. (1994). Tabu search for the job-shop scheduling problem with multi-purpose machines. Operations-Research-Spektrum, 15(4), 205-215.
-
Dauzère-Pérès, S., & Paulli, J. (1994). Solving the general multiprocessor job-shop scheduling problem.
-
Chambers, J. B., & Barnes, J. W. (1996). Flexible job shop scheduling by tabu search. The University of Texas, Austin, TX, Technical Report Series ORP96-09, Graduate Program in Operations Research and Industrial Engineering.
-
Kacem, I., Hammadi, S., & Borne, P. (2002). Pareto-optimality approach for flexible job-shop scheduling problems: hybridization of evolutionary algorithms and fuzzy logic. Mathematics and computers in simulation, 60(3-5), 245-276.
-
Fattahi, P., Saidi Mehrabad, M., & Jolai, F. (2007). Mathematical modeling and heuristic approaches to flexible job shop scheduling problems. Journal of intelligent manufacturing, 18(3), 331-342.
-
Behnke, D., & Geiger, M. J. (2012). Test instances for the flexible job shop scheduling problem with work centers Technical report, Helmut-Schmidt-Universität, Lehrstuhl für Betriebswirtschaftslehre, insbes. Logistik-Management, RR 12-01-01.
-
Birgin, E. G., Feofiloff, P., Fernandes, C. G., De Melo, E. L., Oshiro, M. T., & Ronconi, D. P. (2014). A MILP model for an extended version of the flexible job shop problem. Optimization Letters, 8(4), 1417-1431.
Flexible jobshop benchmark
The flexible jobshop benchmark problems have been collected from the literature from 1993 to 2012. Some are modified versions of JSPLIB jobshop problems, but some instances come from industrial problems. On this page we keep track of the best known solutions (BKS) and classify the instances based on difficulty.
An instance is considered
easyif it is solved to optimality by a reference engine in < 1 minutemediumif it is solved to optimality by a reference engine in < 1hhardif it is solved to optimality by a reference engine in > 1hclosedif the combination of upper and lower bounds found in the literature allows concluding the value of the optimal solution is knownopenotherwise
For each instance we indicate the publication or engine that reaches that bound (lower or upper). When reporting the results:
- we give priority to engines over publications because of reproductibility of the results
- we give priority to the fastest engine to attain the bound
- when an engine attains a bound previously reported in the literature, we attribute the bound to the engine and remove the correponding paper from the list of relevant references
Other databases keep instead the first publication or method to have achieved that bound for historical reference. This work instead is meant for engine and algorithm developers to have means of reproducing the claimed results for comparison.
Best known solutions
If you visualize the markdown in Visual Studio Code you will have colors !
Brandimarte (1993)
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| mk01 | 10 x 6 | fjsp | 40 | 40 | easy | OptalCP < 1 min |
| mk02 | 10 x 6 | fjsp | 26 | 26 | easy | OptalCP < 1 min |
| mk03 | 15 x 8 | fjsp | 204 | 204 | easy | OptalCP < 1 min |
| mk04 | 15 x 8 | fjsp | 60 | 60 | easy | OptalCP < 1 min |
| mk05 | 15 x 4 | fjsp | 172 | 172 | easy | OptalCP < 1 min |
| mk06 | 10 x 15 | fjsp | 57 | 57 | medium | OptalCP < 1h |
| mk07 | 20 x 5 | fjsp | 139 | 139 | medium | OptalCP < 1h |
| mk08 | 20 x 10 | fjsp | 523 | 523 | easy | OptalCP < 1 min |
| mk09 | 20 x 10 | fjsp | 307 | 307 | easy | OptalCP < 1 min |
| mk10 | 20 x 15 | fjsp | 189 | 193 | open | Quintiq |
| mk11 | 30 x 5 | fjsp | 608 | 609 | open | OptalCP |
| mk12 | 30 x 10 | fjsp | 508 | 508 | easy | OptalCP < 1 min |
| mk13 | 30 x 10 | fjsp | 364 | 390 | open | OptalCP |
| mk14 | 30 x 15 | fjsp | 694 | 694 | easy | OptalCP < 1 min |
| mk15 | 30 x 15 | fjsp | 333 | 333 | hard | OptalCP in 2h |
Instances mk11 to mk15 are present in the supplementary material of Test Instances for the Flexible Job Shop Scheduling Problem with Work Centers but absent of other problem repositories
Hurink, Jurisch and Thole (1994)
The problems in this benchmark are modified versions of the corresponding jobshop problems. They are divided into
- sdata : each operation can be assigned to a single machine (jobshop)
- edata : a few operations can be assigned to many machines
- rdata : most operations can be assigned to a few machines
- vdata : all operation can be assigned to many machines
| Instance | Size | sdata | edata | rdata | vdata | Solved by |
|---|---|---|---|---|---|---|
| abz5 | 10 x 10 | 1234 | 1167 | 954 | 859 | OptalCP |
| abz6 | 10 x 10 | 943 | 925 | 807 | 742 | OptalCP |
| abz7 | 20 x 15 | 656 | 604 / 610 | 497 / 522 | 492 | OptalCP, CPO2013 / Quintiq, CdGKGC2025 / DLLSXG2019, Quintiq |
| abz8 | 20 x 15 | 667 | 625 / 636 | 509 / 535 | 506 / 507 | OptalCP, CPO2013 / Quintiq, CdGKGC2025 / DLLSXG2019, OptalCP / Quintiq |
| abz9 | 20 x 15 | 678 | 644 | 517 / 536 | 497 | OptalCP, CPO2013, CPO2013 / Quintiq, OptalCP / Quintiq |
| Instance | Size | sdata | edata | rdata | vdata | Solved by |
|---|---|---|---|---|---|---|
| car1 | 11 x 5 | 7038 | 6176 | 5034 | 5005 | OptalCP, OptalCP / Quintiq |
| car2 | 13 x 4 | 7166 | 6327 | 5985 | 5929 | OptalCP |
| car3 | 12 x 5 | 7312 | 6856 | 5622 | 5597 | OptalCP, Quintiq, OptalCP |
| car4 | 14 x 4 | 8003 | 7789 | 6514 | 6514 | OptalCP |
| car5 | 10 x 6 | 7702 | 7229 | 5615 | 4909 | OptalCP, OptalCP / CdGKGC2025 |
| car6 | 8 x 9 | 8313 | 7990 | 6147 | 5486 | OptalCP |
| car7 | 7 x 7 | 6558 | 6123 | 4425 | 4281 | OptalCP |
| car8 | 8 x 8 | 8264 | 7689 | 5692 | 4613 | OptalCP |
| Instance | Size | sdata | edata | rdata | vdata | Solved by |
|---|---|---|---|---|---|---|
| la01 | 10 x 5 | 666 | 609 | 570 | 570 | OptalCP |
| la02 | 10 x 5 | 655 | 655 | 529 | 529 | OptalCP |
| la03 | 10 x 5 | 597 | 550 | 477 | 477 | OptalCP |
| la04 | 10 x 5 | 590 | 568 | 502 | 502 | OptalCP |
| la05 | 10 x 5 | 593 | 503 | 457 | 457 | OptalCP |
| la06 | 15 x 5 | 926 | 833 | 799 | 799 | OptalCP |
| la07 | 15 x 5 | 890 | 762 | 749 | 749 | OptalCP |
| la08 | 15 x 5 | 863 | 845 | 765 | 765 | OptalCP |
| la09 | 15 x 5 | 951 | 878 | 853 | 853 | OptalCP |
| la10 | 15 x 5 | 958 | 866 | 804 | 804 | OptalCP |
| la11 | 20 x 5 | 1222 | 1103 | 1071 | 1071 | OptalCP |
| la12 | 20 x 5 | 1039 | 960 | 936 | 936 | OptalCP |
| la13 | 20 x 5 | 1150 | 1053 | 1038 | 1038 | OptalCP |
| la14 | 20 x 5 | 1292 | 1123 | 1070 | 1070 | OptalCP |
| la15 | 20 x 5 | 1207 | 1111 | 1089 | 1089 | OptalCP |
| la16 | 10 x 10 | 945 | 892 | 717 | 717 | OptalCP |
| la17 | 10 x 10 | 784 | 707 | 646 | 646 | OptalCP |
| la18 | 10 x 10 | 848 | 842 | 666 | 663 | OptalCP |
| la19 | 10 x 10 | 842 | 796 | 700 | 617 | OptalCP |
| la20 | 10 x 10 | 902 | 857 | 756 | 756 | OptalCP |
| la21 | 15 x 10 | 1046 | 1009 | 809 / 825 | 800 | OptalCP, CdGKGC2025 / Quintiq, OptalCP |
| la22 | 15 x 10 | 927 | 880 | 745 / 753 | 733 | OptalCP, CdGKGC2025 / DLLSXG2019, OptalCP / CPO2013 |
| la23 | 15 x 10 | 1032 | 950 | 820 / 831 | 809 | OptalCP, CdGKGC2025 / DLLSXG2019, OptalCP / Quintiq |
| la24 | 15 x 10 | 935 | 908 | 780 / 795 | 773 | OptalCP, CdGKGC2025 / DLLSXG2019, OptalCP / Quintiq |
| la25 | 15 x 10 | 977 | 936 | 771 / 779 | 751 | OptalCP, CdGKGC2025 / DLLSXG2019, OptalCP / Quintiq |
| la26 | 20 x 10 | 1218 | 1106 | 1056 / 1057 | 1052 | OptalCP, MG2000 / Quintiq, OptalCP |
| la27 | 20 x 10 | 1235 | 1181 | 1085 | 1084 | OptalCP, MG2000 / Quintiq, OptalCP |
| la28 | 20 x 10 | 1216 | 1142 | 1075 / 1076 | 1069 | OptalCP, CPO2013, MG2000 / Quintiq, OptalCP |
| la29 | 20 x 10 | 1152 | 1107 | 993 / 994 | 993 | OptalCP, CPO2013, OptalCP / Quintiq |
| la30 | 20 x 10 | 1355 | 1188 | 1068 / 1071 | 1068 | OptalCP, CPO2013, OptalCP / Quintiq |
| la31 | 30 x 10 | 1784 | 1532 | 1520 | 1520 | OptalCP |
| la32 | 30 x 10 | 1850 | 1698 | 1657 | 1657 | OptalCP, OptalCP / Quintiq |
| la33 | 30 x 10 | 1719 | 1547 | 1497 | 1497 | OptalCP, OptalCP / Quintiq, OptalCP / MG2000 |
| la34 | 30 x 10 | 1721 | 1599 | 1535 | 1535 | OptalCP, OptalCP / Quintiq, OptalCP |
| la35 | 30 x 10 | 1888 | 1736 | 1549 | 1549 | OptalCP, OptalCP / Quintiq, OptalCP |
| la36 | 15 x 15 | 1268 | 1160 | 1023 | 948 | OptalCP |
| la37 | 15 x 15 | 1397 | 1397 | 1062 | 986 | OptalCP |
| la38 | 15 x 15 | 1196 | 1141 | 954 | 943 | OptalCP |
| la39 | 15 x 15 | 1233 | 1184 | 1011 | 922 | OptalCP |
| la40 | 15 x 15 | 1222 | 1144 | 955 | 955 | OptalCP |
| Instance | Size | sdata | edata | rdata | vdata | Solved by |
|---|---|---|---|---|---|---|
| ft06 | 6 x 6 | 55 | 55 | 47 | 47 | OptalCP |
| ft10 | 10 x 10 | 930 | 871 | 686 | 655 | OptalCP |
| ft20 | 20 x 5 | 1165 | 1088 | 1022 | 1022 | OptalCP |
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 | sdata | edata | rdata | vdata | Solved by |
|---|---|---|---|---|---|---|
| orb1 | 10 x 10 | 1059 | 977 | 746 | 695 | OptalCP |
| orb2 | 10 x 10 | 888 | 865 | 696 | 620 | OptalCP |
| orb3 | 10 x 10 | 1005 | 951 | 712 | 648 | OptalCP |
| orb4 | 10 x 10 | 1005 | 984 | 753 | 753 | OptalCP |
| orb5 | 10 x 10 | 887 | 842 | 639 | 584 | OptalCP |
| orb6 | 10 x 10 | 1010 | 958 | 754 | 715 | OptalCP |
| orb7 | 10 x 10 | 397 | 389 | 302 | 275 | OptalCP |
| orb8 | 10 x 10 | 899 | 894 | 639 | 573 | OptalCP |
| orb9 | 10 x 10 | 934 | 933 | 694 | 659 | OptalCP |
| orb10 | 10 x 10 | 944 | 933 | 742 | 681 | OptalCP |
Dauzère-Pérès and Paulli (1994)
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| 01a | 10 x 5 | fjsp | 2505 | 2505 | easy | OptalCP < 1 min |
| 02a | 10 x 5 | fjsp | 2228 | 2228 | easy | OptalCP < 1 min |
| 03a | 10 x 5 | fjsp | 2228 | 2228 | easy | OptalCP < 1 min |
| 04a | 10 x 5 | fjsp | 2503 | 2503 | easy | OptalCP < 1 min |
| 05a | 10 x 5 | fjsp | 2195 | 2199 | open | CdGKGC2025 |
| 06a | 10 x 5 | fjsp | 2164 | 2169 | open | CdGKGC2025 |
| 07a | 15 x 8 | fjsp | 2216 | 2254 | open | CPO2013 / DLLSXG2019 |
| 08a | 15 x 8 | fjsp | 2061 | 2061 | hard | OptalCP in 10h |
| 09a | 15 x 8 | fjsp | 2061 | 2061 | medium | OptalCP < 1h |
| 10a | 15 x 8 | fjsp | 2212 | 2241 | open | CPO2013 / Quintiq |
| 11a | 15 x 8 | fjsp | 2019 | 2037 | open | CdGKGC2025 / Quintiq |
| 12a | 15 x 8 | fjsp | 1969 | 1984 | open | OptalCP / Quintiq |
| 13a | 20 x 10 | fjsp | 2206 | 2236 | open | CdGKGC2025 / DLLSXG2019 |
| 14a | 20 x 10 | fjsp | 2161 | 2161 | closed | OptalCP / Quintiq |
| 15a | 20 x 10 | fjsp | 2161 | 2161 | closed | OptalCP / Quintiq |
| 16a | 20 x 10 | fjsp | 2202 | 2231 | open | CdGKGC2025 / Quintiq |
| 17a | 20 x 10 | fjsp | 2089 | 2105 | open | CdGKGC2025 / Quintiq |
| 18a | 20 x 10 | fjsp | 2057 | 2070 | open | OptalCP / Quintiq |
Chambers and Barnes (1996)
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| mt10c1 | 10 x 11 | fjsp | 927 | 927 | easy | OptalCP < 1 min |
| mt10cc | 10 x 12 | fjsp | 908 | 908 | easy | OptalCP < 1 min |
| mt10x | 10 x 11 | fjsp | 918 | 918 | easy | OptalCP < 1 min |
| mt10xx | 10 x 12 | fjsp | 918 | 918 | easy | OptalCP < 1 min |
| mt10xxx | 10 x 13 | fjsp | 918 | 918 | easy | OptalCP < 1 min |
| mt10xy | 10 x 12 | fjsp | 905 | 905 | easy | OptalCP < 1 min |
| mt10xyz | 10 x 13 | fjsp | 847 | 847 | easy | OptalCP < 1 min |
| setb4c9 | 15 x 11 | fjsp | 914 | 914 | easy | OptalCP < 1 min |
| setb4cc | 15 x 12 | fjsp | 907 | 907 | easy | OptalCP < 1 min |
| setb4x | 15 x 11 | fjsp | 925 | 925 | easy | OptalCP < 1 min |
| setb4xx | 15 x 12 | fjsp | 925 | 925 | easy | OptalCP < 1 min |
| setb4xxx | 15 x 13 | fjsp | 925 | 925 | easy | OptalCP < 1 min |
| setb4xy | 15 x 12 | fjsp | 910 | 910 | easy | OptalCP < 1 min |
| setb4xyz | 15 x 13 | fjsp | 902 | 902 | easy | OptalCP < 1 min |
| seti5c12 | 15 x 16 | fjsp | 1169 | 1169 | easy | OptalCP < 1 min |
| seti5cc | 15 x 17 | fjsp | 1135 | 1135 | easy | OptalCP < 1 min |
| seti5x | 15 x 16 | fjsp | 1198 | 1198 | easy | OptalCP < 1 min |
| seti5xx | 15 x 17 | fjsp | 1194 | 1194 | easy | OptalCP < 1 min |
| seti5xxx | 15 x 18 | fjsp | 1194 | 1194 | easy | OptalCP < 1 min |
| seti5xy | 15 x 17 | fjsp | 1135 | 1135 | easy | OptalCP < 1 min |
| seti5xyz | 15 x 18 | fjsp | 1125 | 1125 | easy | OptalCP < 1 min |
Kacem, Hammadi and Borne (2002)
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| kacem1 | 4 x 6 | fjsp | 11 | 11 | easy | OptalCP < 1 min |
| kacem2 | 10 x 7 | fjsp | 11 | 11 | easy | OptalCP < 1 min |
| kacem3 | 10 x 10 | fjsp | 7 | 7 | easy | OptalCP < 1 min |
| kacem4 | 15 x 10 | fjsp | 11 | 11 | easy | OptalCP < 1 min |
Fattahi, Mehrabad and Jolai (2007)
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| fattahi1 | 2 x 2 | fjsp | 66 | 66 | easy | OptalCP < 1 min |
| fattahi2 | 2 x 2 | fjsp | 107 | 107 | easy | OptalCP < 1 min |
| fattahi3 | 3 x 2 | fjsp | 221 | 221 | easy | OptalCP < 1 min |
| fattahi4 | 3 x 2 | fjsp | 355 | 355 | easy | OptalCP < 1 min |
| fattahi5 | 3 x 2 | fjsp | 119 | 119 | easy | OptalCP < 1 min |
| fattahi6 | 3 x 2 | fjsp | 320 | 320 | easy | OptalCP < 1 min |
| fattahi7 | 3 x 5 | fjsp | 397 | 397 | easy | OptalCP < 1 min |
| fattahi8 | 3 x 4 | fjsp | 253 | 253 | easy | OptalCP < 1 min |
| fattahi9 | 3 x 3 | fjsp | 210 | 210 | easy | OptalCP < 1 min |
| fattahi10 | 4 x 5 | fjsp | 516 | 516 | easy | OptalCP < 1 min |
| fattahi11 | 5 x 6 | fjsp | 468 | 468 | easy | OptalCP < 1 min |
| fattahi12 | 5 x 7 | fjsp | 446 | 446 | easy | OptalCP < 1 min |
| fattahi13 | 6 x 7 | fjsp | 466 | 466 | easy | OptalCP < 1 min |
| fattahi14 | 7 x 7 | fjsp | 554 | 554 | easy | OptalCP < 1 min |
| fattahi15 | 7 x 7 | fjsp | 514 | 514 | easy | OptalCP < 1 min |
| fattahi16 | 8 x 7 | fjsp | 634 | 634 | easy | OptalCP < 1 min |
| fattahi17 | 8 x 7 | fjsp | 879 | 879 | easy | OptalCP < 1 min |
| fattahi18 | 9 x 8 | fjsp | 884 | 884 | easy | OptalCP < 1 min |
| fattahi19 | 11 x 8 | fjsp | 1055 | 1055 | easy | OptalCP < 1 min |
| fattahi20 | 12 x 8 | fjsp | 1196 | 1196 | easy | OptalCP < 1 min |
Behnke and Geiger (2012)
| Instance | Size | Problem | LB | UB | Type | Solved by |
|---|---|---|---|---|---|---|
| behnke1 | 10 x 20 | fjsp | 90 | 90 | easy | OptalCP < 1 min |
| behnke2 | 10 x 20 | fjsp | 91 | 91 | easy | OptalCP < 1 min |
| behnke3 | 10 x 20 | fjsp | 91 | 91 | easy | OptalCP < 1 min |
| behnke4 | 10 x 20 | fjsp | 97 | 97 | easy | OptalCP < 1 min |
| behnke5 | 10 x 20 | fjsp | 91 | 91 | easy | OptalCP < 1 min |
| behnke6 | 20 x 20 | fjsp | 125 | 125 | medium | OptalCP < 1h |
| behnke7 | 20 x 20 | fjsp | 117 | 124 | open | OptalCP |
| behnke8 | 20 x 20 | fjsp | 123 | 123 | medium | OptalCP < 1h |
| behnke9 | 20 x 20 | fjsp | 125 | 125 | medium | OptalCP < 1h |
| behnke10 | 20 x 20 | fjsp | 127 | 127 | medium | OptalCP < 1h |
| behnke11 | 50 x 20 | fjsp | 163 | 228 | open | OptalCP |
| behnke12 | 50 x 20 | fjsp | 157 | 219 | open | OptalCP |
| behnke13 | 50 x 20 | fjsp | 160 | 229 | open | OptalCP |
| behnke14 | 50 x 20 | fjsp | 164 | 230 | open | OptalCP |
| behnke15 | 50 x 20 | fjsp | 159 | 228 | open | OptalCP |
| behnke16 | 100 x 20 | fjsp | 327 | 412 | open | OptalCP |
| behnke17 | 100 x 20 | fjsp | 320 | 401 | open | OptalCP |
| behnke18 | 100 x 20 | fjsp | 321 | 396 | open | OptalCP |
| behnke19 | 100 x 20 | fjsp | 323 | 400 | open | OptalCP |
| behnke20 | 100 x 20 | fjsp | 322 | 398 | open | OptalCP |
| behnke21 | 10 x 40 | fjsp | 85 | 85 | easy | OptalCP < 1 min |
| behnke22 | 10 x 40 | fjsp | 87 | 87 | easy | OptalCP < 1 min |
| behnke23 | 10 x 40 | fjsp | 85 | 85 | easy | OptalCP < 1 min |
| behnke24 | 10 x 40 | fjsp | 87 | 87 | easy | OptalCP < 1 min |
| behnke25 | 10 x 40 | fjsp | 87 | 87 | easy | OptalCP < 1 min |
| behnke26 | 20 x 40 | fjsp | 113 | 113 | medium | OptalCP < 1h |
| behnke27 | 20 x 40 | fjsp | 122 | 122 | medium | OptalCP < 1h |
| behnke28 | 20 x 40 | fjsp | 114 | 114 | medium | OptalCP < 1h |
| behnke29 | 20 x 40 | fjsp | 114 | 117 | open | OptalCP |
| behnke30 | 20 x 40 | fjsp | 120 | 120 | medium | OptalCP < 1h |
| behnke31 | 50 x 40 | fjsp | 108 | 226 | open | OptalCP |
| behnke32 | 50 x 40 | fjsp | 101 | 224 | open | OptalCP |
| behnke33 | 50 x 40 | fjsp | 107 | 224 | open | OptalCP |
| behnke34 | 50 x 40 | fjsp | 110 | 223 | open | OptalCP |
| behnke35 | 50 x 40 | fjsp | 101 | 214 | open | OptalCP |
| behnke36 | 100 x 40 | fjsp | 152 | 388 | open | OptalCP |
| behnke37 | 100 x 40 | fjsp | 153 | 391 | open | OptalCP |
| behnke38 | 100 x 40 | fjsp | 151 | 389 | open | OptalCP |
| behnke39 | 100 x 40 | fjsp | 153 | 389 | open | OptalCP |
| behnke40 | 100 x 40 | fjsp | 156 | 419 | open | OptalCP |
| behnke41 | 10 x 60 | fjsp | 87 | 87 | easy | OptalCP < 1 min |
| behnke42 | 10 x 60 | fjsp | 87 | 87 | easy | OptalCP < 1 min |
| behnke43 | 10 x 60 | fjsp | 86 | 86 | easy | OptalCP < 1 min |
| behnke44 | 10 x 60 | fjsp | 84 | 84 | easy | OptalCP < 1 min |
| behnke45 | 10 x 60 | fjsp | 87 | 87 | easy | OptalCP < 1 min |
| behnke46 | 20 x 60 | fjsp | 114 | 114 | medium | OptalCP < 1h |
| behnke47 | 20 x 60 | fjsp | 117 | 117 | medium | OptalCP < 1h |
| behnke48 | 20 x 60 | fjsp | 120 | 125 | open | OptalCP |
| behnke49 | 20 x 60 | fjsp | 113 | 113 | medium | OptalCP < 1h |
| behnke50 | 20 x 60 | fjsp | 123 | 123 | medium | OptalCP < 1h |
| behnke51 | 50 x 60 | fjsp | 98 | 218 | open | OptalCP |
| behnke52 | 50 x 60 | fjsp | 116 | 212 | open | OptalCP |
| behnke53 | 50 x 60 | fjsp | 108 | 215 | open | OptalCP |
| behnke54 | 50 x 60 | fjsp | 103 | 223 | open | OptalCP |
| behnke55 | 50 x 60 | fjsp | 110 | 223 | open | OptalCP |
| behnke56 | 100 x 60 | fjsp | 103 | 390 | open | OptalCP |
| behnke57 | 100 x 60 | fjsp | 99 | 390 | open | OptalCP |
| behnke58 | 100 x 60 | fjsp | 100 | 397 | open | OptalCP |
| behnke59 | 100 x 60 | fjsp | 113 | 398 | open | OptalCP |
| behnke60 | 100 x 60 | fjsp | 101 | 402 | open | OptalCP |
Publications (best known solutions)
The upper and lower bounds come from
-
MG2000 (4 bounds in la) : M. Mastrolilli, L. Gambardella, Effective neighbourhood functions for the flexible job shop problem, Journal of Scheduling 3 (2000) 3–20
-
Quintiq (33 bounds in #a, abz, car, la, mk) : Quintiq http://www.quintiq.com/optimization/fjssp-world-records.html (2013) - this site doesn’t exist anymore
-
CPO2013 (10 bounds in #a, abz, la) : Jean-François Puget Solving flexible job shop scheduling problems (cp optimizer 12.6) https://www.ibm.com/developerworks/community/blogs/jfp/entry/solving_flexible_job_shop_scheduling_problems?lang=en (2013) - this site doesn’t exist anymore
-
DLLSXG2019 (8 bounds in #a, abz, la) : J. Ding, Z. Lu, C.-M. Li, L. Shen, L. Xu, F. Glover (2019) A two-individual based evolutionary algorithm for the flexible job shop scheduling problem, in: Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 33, 2019, pp. 2262–2271
-
CdGKGC2025 (14 bounds in #a, abz, car, la) : 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 CoRR abs/2504.16106
All other bounds were found with OptalCP