Skip to main content

OptalCP on the largest job shop benchmarks

· 4 min read
Petr Vilím
Co-founder of OptalCP

People regularly ask how OptalCP does on the big benchmarks. The largest job shop instances around are the ones published by Giacomo Da Col and Erich Teppan: randomly generated by the same generator as the classic Taillard set, in sizes from 100 jobs on 100 machines up to 1,000 jobs on 1,000 machines — one million operations in a single scheduling problem. We recently ran OptalCP on them: all ten 1000×100 instances (100,000 operations each) are now solved to proven optimality, and on the 1000×1000 instances we obtained the best known results.

Real problems look different

Before the numbers, a caveat. Real scheduling problems do not look like these instances: in a real factory the same products are made again and again, there are usually far more jobs than machines, and the difficulty hides in the messy side constraints — setup times, calendars, batching, operators. Problems of that kind are what drives the development of OptalCP. The academic benchmarks are still a useful stress test of scale, and we run them because people are curious — honestly, so were we.

How big is a million operations?

For scale: ft10, the most famous job shop instance of all — the one that resisted every solution attempt for 26 years after its publication in 1963 — has 10 jobs on 10 machines, that is 100 operations. The instances in this post are a thousand to ten thousand times bigger. A schedule for the largest of them assigns start times to a million operations; printed one operation per line, it would fill about 20,000 pages.

1,000 jobs × 100 machines

Proving optimality means more than finding a good schedule: it is a certificate that no better schedule exists — and as far as I know, nobody had one for these instances until now. Here are the optimal solutions found by OptalCP 2026.4.0:

InstanceOptimum
1525,343
2528,088
3522,793
4524,271
5531,216
6518,763
7527,093
8519,524
9520,889
10529,112

And this is what one of these optimal schedules looks like — instance 5, all 100,000 operations in a single picture. Each row is one of the 100 machines, time runs from left to right, and every colored speck is one operation, colored by the job it belongs to:

The optimal schedule of instance 5: 100 machine rows packed with 100,000 colored operations

The empty gaps are the rare moments a machine sits idle. It is guaranteed that no schedule of these 100,000 operations finishes sooner.

100 jobs × 1,000 machines

Flip the shape — 100 jobs on 1,000 machines, still 100,000 operations each — and the game changes: OptalCP finds good schedules, but no optimality proofs. These instances remain open. The best makespans we found:

InstanceBest makespan
1533,080
2538,067
3538,757
4534,746
5529,580
6534,969
7534,974
8535,757
9536,993
10529,918

1,000 jobs × 1,000 machines

And then the million-operation ones. For these we used a prototype setup. The makespans we reached:

InstanceBest makespan
1811,195
2813,044
3811,269
4809,549
5811,467
6813,117
7809,043
8812,442
9810,111
10809,421

To the best of my knowledge, these are the best makespans obtained for these instances to date. Making OptalCP solve instances of this size out of the box is work in progress.

That's it

Just the numbers this time. But if your scheduling problem looks less like a random matrix and more like a real factory — the same products week after week, far more jobs than machines, constraints everywhere — that is exactly what OptalCP is built for: get in touch or head to the Quick Start.