A stabilizer code is a code with codespace defined as the joint $+1$ eigenspace of some set of stabilizers $\mathcal S = \{s_1, s_2,\ldots,s_j\}$ with eigenvalues $\pm 1$. Error correction involved obtaining the eigenvalue of the data qubits with respect to each stabilizer. Instead of measuring each stabilizer, some set $\mathcal G = \{g_1, \ldots, g_i\}$ of stabilizer generators is chosen to measure so that each stabilizer $s_j$ can be written as $\Pi_{i \in I} g_i$. Then the eigenvalue of each stabilizer can be inferred from the eigenvalues of the stabilizer generators (not that this is necessary in practice usually).

The choice of $\mathcal G$ is clearly not unique. There are various advantages and disadvantages to choosing which set to measure. For instance, choosing low weight stabilizers (often) means that fewer ancilla qubits are required to acheive fault tolerance (which I imagine inspired this question and is similar to this question, and I know inspired this question). Choosing a different set of stabilizers to measure might mean that fewer measurements are necessary to acheive fault tolerance (see this paper) but might also produce high weight stabilizers.

Is there a general strategy (heuristic or not) for choosing which set of stabilizers to measure (either in the bare description of the code itself, or when taking fault tolerance into account)?


1 Answer 1


I do not believe such a strategy currently exists. Low-weight and experimental locality are the general determining features. If a code supports single-shot error correction, then you'd want to use generators which support that. If you are looking at quantum LDPC codes, you're probably looking for generators which have a preferred degree distribution. You might also want to choose to measure extra generators in order to gain extra information about your system. These would be chosen such as to provide as much "new" information about the errors as possible. In the future, the goal will probably be circuit/FT-based as you said.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.