For the Google Quantum AI DuQuantum challenge, we built a solver that prepares Dicke states on the Willow superconducting processor. A Dicke state D(N, n) is an equal superposition of every way to place n excitations among N qubits. The qubits themselves connect only to their nearest neighbors on a grid, and every gate adds noise, so the process really became trying to minimize the amount of cubits we utilize and especially later became trying to minimize the circuit depth
My solver is written with Cirq, as required. It reads the two-qubit gate errors, single-qubit errors and readout asymmetries. It then searches for the best layout: a spanning tree for W states, a single path, or a two-row “ladder” that prepares two halves of the state in parallel. We then use a beam search weighted by measured error rates to find the best layout.
From there, we start from an exact construction utilizing the Bärtschi-Eidenbenz to create a sequence of CZ gates, then delete one CZ at a time. After each deletion we refit every angle so the circuit still produces the exact target state. We store a large precomputed map for each possible permutation. When the search stalls, I insert a cancelling pair of gates to escape the local minimum. This cut gate counts dramatically: D(8,4) went from 43 CZ gates to 22, and D(10,5) from 85 to about 40. This came after our initial 7:30 PM solution showing a much larger than normal graph depth. This also incentivized us to focus on the bonus question, as the sum of the geometric mean scores for all users is around 1.5, so an extra 1 point drastically outperforms every other gain in E[X].
Built With
- cirq

Log in or sign up for Devpost to join the conversation.