The yard problem on the frontier page used to be written out by hand as a matrix of penalties and handed to a solver. It is now stated as a short list of rules in XQuad's instruction set. XQuad turns the rules into the matrix, checks it, and runs it on the chip or on a classical annealer. This page is where that happens, rule by rule, and what was measured to make sure nothing changed on the way.
Three pieces. xqcp is the language the problem is written in: variables, a cost, and constraints such as "at most one of these" or "this weighted sum stays below that". XQVM is the machine that runs the program and emits the quadratic model, with a verifier that confirms the model says what the program said. xqsa is the solver layer: the same model goes to a D-Wave chip, to a simulated annealer, or to a GPU, through one call. The demo's cost function, its sliders and its pricing are untouched; only the way the model is built and dispatched changed.
The frontier page. The green dash-dot line with hollow squares, at $150 a day and re-handling 4 or 12, is the chip inside the bag-by-bag search with every bag built and run through XQuad. The solid green line beside it is the same loop through D-Wave's own library, measured in September. The two sit on top of each other, which is the point: a port, not a new method.
The bag loop. The search improves a plan eight packages at a time. Each bag is a small problem of the same shape as the yard, and each one is now an xqcp program: the bag's costs, one at-most-one rule per package, run on the XQVM and sent to the chip by xqsa. Eighty bags per floor, 512 reads of 120 µs each.
The hardware page. SOLVE LIVE has a route selector: via Ocean, via XQuad, via Quip Network. Via XQuad, the packing problem the chip solves is stated as XQuad constraints instead of being expanded by hand, and the run is saved beside the plain one so the two can be compared on the same screen.
The Quip Network. The same XQuad model, posted to the aglais testnet as a paid job order instead of sent to D-Wave with our own token: one order per floor, miners bid, the chain scores the stored answers and pays the winner, and the demo reads the answer back through XQuad's SolverQuip. Two saved tiles on the hardware page came from this route: open orders, answered by Cpu miners, a classical result; and orders only a D-Wave miner could answer. Each order asks for 32 diverse stored vectors, and every vector the bidders stored is re-priced by the arithmetic on the how page, because the packing model carries no capacity term and its deepest minimum is rarely its cheapest plan.
Variables as on the how page: xik = 1 if package i rides truck k, yk = 1 if truck k rolls. Each line of the yard model is one call.
EXCLUDE xik, xik' penalty 2A, every pair k < k'
A package cannot ride two trucks. XQuad adds 2A to the pair; by hand this was the same term, written out in a loop.
SLACK sk in 0 … C
EQUALITY Σi mixik − C·yk + sk = 0 penalty A
Load on truck k plus a slack equals the capacity if the truck rolls, zero if it does not. XQuad allocates the slack bits and squares the sum. By hand this was the longest block of code in the model.
ATLEASTW ΣiΣk pixik ≥ ε penalty A
One call. XQuad adds the slack it needs and the penalty for falling short.
ADDLINE Rk on yk, cik on xik
ADDQUAD wij on xikxjk, same truck
Truck day, road, re-handling. These are the three terms on the how page, in cents, because XQuad's models are integer.
ONEHOTR row i, penalty A exactly one truck per package
IMPLIES xik implies yk, penalty A riding a truck means it rolls
The model is a grid of packages by trucks with one extra row for the trucks themselves. Two instructions replace the two penalty sums written out by hand on the how page, and expand to the same coefficients.
The matrix is the same. The yard model built by XQuad was compared, coefficient by coefficient, with the one the demo built by hand, on all seven floors: zero mismatches. The packing model on the hardware page, the same way, on its four reachable floors: zero mismatches. A port that changed the problem would show up here first.
The answers are the same. A 24-variable bag solved through XQuad matches brute force. The bag loop run with XQuad's simulated annealer and with the demo's own gave identical plans on 11 of 12 runs, the twelfth within annealer noise.
The chip answers the same. On Advantage2, 80 bags by three seeds by three floors, the chip's cost through XQuad was at or below the simulated annealer's on all nine runs, and profit against tabu was 2.1, 2.1 and 0.1 percent ahead on the three floors. That is the band the September runs sat in, through the other library.
Claimed. The yard problem and the chip's packing problem are now stated as constraints in XQuad's instruction set, assembled on the XQVM, dispatched by xqsa, and reproduce the hand-built models exactly. The chip runs on the frontier page labelled via XQuad went through that path on real hardware.
Not claimed. That XQuad made the chip better. It is the same chip, the same minor embedding, the same reads. A port is measured by whether anything changed, and nothing did.
Not claimed. A Pareto win over classical. That is the open item: a construction on Advantage2 where the chip is ahead of simulated annealing on time to a given quality. The port is what that work now runs on.
xqsa's result type returns the single best read. The bag loop wants every read, because it takes the first feasible one that improves the plan, so the demo wraps the sampler and keeps the full set. And XQuad's models are integer, so every dollar figure is scaled to cents before it goes in and the pricing is done outside, by the arithmetic on the how page, never by the model's own energy.
If you have a problem written as a QUBO today, it is a short list of rules in XQuad. Tell us what it is.