ZKSF logo, a neon quantum brainZKSF
← All applications

Manufacturing and production

Quantum computing for production scheduling: the job-shop benchmark

Job-shop scheduling is the canonical factory problem. Each job visits machines in its own order, each machine handles one job at a time, and the goal is the shortest makespan. It is NP-hard, it is genuinely difficult, and it is one of the applications most often named as a quantum computing target.

Submitting a circuit in the ZKSF Android app, with the OpenQASM source and a live circuit preview

Submit your own schedule and compare. Open the console

The short version

  • One 15 by 15 shop needs 268,425 logical qubits. Three orders of magnitude past anything built or on a published roadmap
  • CP-SAT proves the optimum in 2.45 seconds. Makespan 126, on a laptop, with a proof that nothing better exists
  • Every quantum approach here is a heuristic. QAOA returns a sample rather than a proof, so at any scale it answers a weaker question
  • The regime where a better heuristic would pay. Hundreds of jobs with setup times and shift patterns, where CP-SAT returns a gap rather than a guarantee

Run on our engines

A random 16-variable QUBO, seed 20260903, whose exact optimum is -15.6952: the size a machine can hold, with no scheduling structure in it, generated by small_qubo.py in the public benchmarks folder. It is deliberately small, because the 15x15 shop this benchmark is about needs 268,425 qubits and fits nothing. Submitted to each kind of compute we offer, on 16 and 25 September 2026 at 500 shots. Every figure below is a real job on the service, priced as any customer would be priced.

DeviceEngineKindQubitsResultCost
CPUmps.quimb.cpuCPU16-12.7064, gap 2.99 certificate$0.0001
CPUexact.cpuCPU16-11.7508, gap 3.94 certificate$0.0001
NVIDIAexact.gpuGPU16-12.4192, gap 3.28 certificate$0.0001
Rigettiqpu.rigettiQPU16-346.31, gap 4.95 on the scheduling instance * certificate$0.5125
IQMqpu.iqm.garnetQPU16-10.6113, gap 5.08 certificate$1.025
IQMqpu.iqm.emeraldQPU16-11.3923, gap 4.30 certificate$1.100
Google Cloud TPUexact.tpuTPU16-12.8804, gap 2.81 certificatebest outcome$0.0776
Google Cloud TPUneural.tpuTPU—a QUBO is diagonal, which is not the shape a neural ansatz is for—

A tensor-network simulator on CPU returned the lowest job-shop scheduling cost at -12.7064 against an exact optimum of -15.6952, with exact statevector simulation on an NVIDIA GPU at -12.4192. IQM Emerald returned -11.3923 and IQM Garnet -10.6113.

Both superconducting quantum processors returned valid schedules on essentially every shot, 485 and 498 of 500, so the difference here is the quality of the sampled schedule rather than any failure to produce a feasible one.

* The Rigetti row is not scored against the optimum named above. The run used the 4-job scheduling instance that sector_instances.py generates instead. Its exhaustive minimum is -351.2615, and the 4.95 gap is measured against that rather than against -15.6952. The IQM rows are our own internal testing. The exact.tpu row, added 25 September, is the best of the eight at a gap of 2.81. The steps are in the docs.

A note on the hardware certificates: they state Hellinger fidelity against the exact distribution. For an optimisation circuit that distribution is spread across many outcomes rather than concentrated on one, so the figure is low by construction and is not a measure of whether the device found a good answer. The result column above is.

The same problem is yours to run: every instance here is seeded, so it rebuilds exactly. Open the console and a cost estimate is free before anything executes.

Open in Colab

Run this instance yourself. The notebook rebuilds the exact seeded instance behind every figure on this page, in a browser tab, with nothing to install and no account. Read it on GitHub

Then run it on our engines

The notebook proves the numbers on free public packages. This is the step it does not cover: the same circuit on a certified engine, with a public certificate you can cite instead of citing ours.

pip install qsim-sdk

import qsim_sdk
client = qsim_sdk.Client(token="...")     # free account at app.zksf.org

client.estimate(circuit, shots=512)       # free, before you spend anything
job = client.run(circuit, shots=512)      # $0.0001 on CPU
job.certificate()                         # a public, verifiable URL

Every finished job can be exported as a public certificate that opens without an account, and the rules these benchmarks follow apply to your run exactly as they do to ours.

The encoding, first

As on the logistics page, the quantum benchmark does not exist here, and the reason is the result. Putting job-shop scheduling on a quantum computer requires a time-indexed QUBO: a binary variable for every combination of job, machine and discrete time slot. The variable count is the product of all three, and it grows brutally.

A 15 by 15 shop needs 268,425 binary variables, so 268,425 logical qubits before error correction. The largest processor we can run is 108 physical qubits, the largest built anywhere is around 1,600, and the most logical qubits anyone has demonstrated is 96. The published 2029 roadmaps target hundreds of logical qubits.

Every one of those numbers is three orders of magnitude short of this single instance.

What the classical solver does with the same instances

ShopQubits neededMakespanCP-SAT timeResult
3 x 3531280.01 sproven optimal
5 x 53,675470.01 sproven optimal
10 x 1057,000940.17 sproven optimal
15 x 15268,4251262.45 sproven optimal

OR-Tools CP-SAT, seed 20260902, measured 2 September 2026 on an ordinary laptop CPU. The makespans are proven optimal and therefore reproduce exactly; solve times vary with machine load, and the accompanying notebook took 5.6 s on the 15 by 15 shop against the 2.45 s shown here.

The word doing the work is "proven"

CP-SAT did not find a good schedule for the 15 by 15 shop. It found the best possible schedule and proved that nothing shorter exists, in 2.45 seconds.

That distinction matters more in a factory than in most places. A plant manager asking whether the line can run faster is asking a question with a definite answer, and a heuristic that returns a good schedule without a bound cannot give it.

Every quantum approach to this problem is a heuristic. QAOA returns a sample, not a proof, so even at unlimited scale it would answer a weaker question than the classical solver already answers in seconds.

Where quantum could still matter here

Two caveats, because the picture above is not the whole industry.

Real shops are larger and messier. Hundreds of jobs, sequence-dependent setup times, maintenance windows, shift patterns and stochastic durations.

CP-SAT does not always prove optimality there, and past a certain size it returns a good schedule with a gap rather than a guarantee. That is the regime where a better heuristic has value.

But the encoding gets worse, not better, in that regime. A larger, more constrained problem needs more time slots and more variables, so the qubit requirement rises faster than the classical difficulty does. Quantum approaches become relatively less applicable exactly as the problem becomes commercially interesting, which is the opposite of what is often assumed.

The question to ask a vendor

If a supplier proposes quantum scheduling, ask what makespan they achieve on a 15 by 15 shop and how long it takes. Then compare it against 126 in 2.45 seconds, proven optimal, on a laptop.

The comparison is not unfair. It is the alternative you already have.

Ask the same question at whatever size your plant actually runs. If CP-SAT proves optimality there, no heuristic of any kind, quantum or classical, has anything to offer.

What you can run here

The subproblem that maps cleanly is conflict selection: the largest set of operations that can run together without contending for a machine, which is maximum independent set and runs on the neutral-atom path under Optimisation problem. Full job-shop scheduling, with precedence and a makespan objective, is not that problem, and the classical solver on this page still wins it. Use the quantum path for the selection step, and measure it against the solver rather than instead of it.

For context: where the hardware actually is

Gaps on this page are quoted against the processors ZKSF can run. That is not the frontier. Quantinuum, IBM, Atom Computing and QuEra’s newest systems are not available through us, and those machines are considerably further along. As of September 2026:

Physical qubits built

Infleqtion Sqale1,600Neutral atom
Atom Computing1,180Neutral atom, 1,225 sites
IBM Condor1,121Superconducting, 2023
IBM Heron R2156Superconducting, ~99.5% two-qubit fidelity
Rigetti Cepheus108The largest available through ZKSF

Two-qubit gate fidelity

The number that actually governs what a circuit can do.

IonQ99.99%Trapped ion, first past four nines
Silicon Quantum Computing99.99%Silicon spin
Quantinuum99.97%Trapped ion, all-to-all
IQM99.91%Superconducting, available through ZKSF

Logical qubits demonstrated

Published results, not roadmap targets.

QuEra96 logical / 448 physicalNeutral atom
Quantinuum48 logical / 98 physicalTrapped ion, iceberg code
Atom Computing24 logicalOn the 1,180-qubit system
Google1 logical / 105 physicalSurface code, below threshold

Announced roadmap

Targets. Roadmaps slip, and these are not results.

Quantinuum Sol, 2027192 physical, ~100 logicalIceberg code, distance 2. Error detection with postselection, not correction
IBM Starling, 2029~200 logicalBivariate bicycle qLDPC, 100 million gates
Quantinuum Apollo, 2029hundreds of logicalThousands of physical, logical error 1e-6 or better

Where the encoding does work.

Not every operations problem encodes this badly. Satellite tasking needs one qubit per decision rather than one per job, machine and time slot, and there we have a real head-to-head result.