QUBO / Ising
Quadratic unconstrained binary optimization — the native quantum format.
In plain terms
Many puzzles come down to flipping a set of yes/no switches to make some total as small as possible, where switches interact in pairs. This is the natural language of quantum computers — but Quicopt solves it on an ordinary machine, no million-euro hardware required.
The technical picture
QUBO is the native input format of quantum and quantum-inspired solvers: binary variables and a quadratic objective, no constraints. Max-Cut — partitioning a graph to maximize the edges crossing the cut — is the canonical example, and its QUBO/Ising form is exactly the energy a quantum annealer targets.
Quicopt matches quantum-vendor performance on standard hardware — no €10–20M quantum computer required. For higher-order objectives (degree ≥ 3), see the PUBO / HUBO class.
Mathematical model▾
Minimize a quadratic form over binary variables (QUBO); equivalently, an Ising energy over spins.
Example
From install to solved model — a small, self-contained example, copy-paste ready.
Install the client
$ pip install "quicopt[mathopt]"Copy the example
from ortools.math_opt.python import mathopt
from quicopt import Client
# Max-Cut as a QUBO: split the graph's nodes into two sides so that as
# many edges as possible cross between them. Binary x_i picks the side;
# the quadratic objective is exactly the QUBO/Ising energy. (The Gset
# benchmark is this same problem at scale.)
edges = [(0, 1), (1, 2), (2, 3), (0, 3)]
model = mathopt.Model(name="maxcut")
x = [model.add_binary_variable(name=f"x{i}") for i in range(4)]
model.minimize(sum(2 * x[i] * x[j] - x[i] - x[j] for i, j in edges))
client = Client("https://try.quicoptapi.pgi.fz-juelich.de")
result = client.solve(model)
print(result.display)Run it
$ python maxcut.py├── shots │ ├── 1 · Heuristic 1 0 0.0s │ ├── 2 · Heuristic 2 -4 0.0s ◀ best │ └── 3 · Heuristic 2 -4 0.0s ├── status: heuristic ├── feasible: n/a ├── objective: -4.0 ├── x: x0=0, x1=1, x2=0, x3=1 (4 variables) └── solve_time: 0.041 s
Docs, API reference and more examples live in the Developer Hub →
Benchmark
Max-Cut on the Gset graphs is a canonical QUBO/Ising family — see the measured comparison against the best-known cuts across 71 instances.