Stabilizer code


In quantum computing and quantum communication, a stabilizer code is a class of quantum codes for performing quantum error correction. The toric code, and surface codes more generally, are types of stabilizer codes considered very important for the practical realization of quantum information processing. In fact, the toric code and surface codes also belong to a special class of stabilizer codes, CSS codes. An example of a stabilizer code that is not a CSS code is the five-qubit error correcting code.
Stabilizer codes are strikingly similar to classical linear block codes in their operation and performance. Just as a classical linear block code can be defined by its parity-check matrix, a quantum stabilizer code also has a "parity check" structure defined by its stabilizers. However, stabilizers for a -qubit code are -qubit Pauli operators instead of classical -bit strings, and they must all commute with each other for the code to be valid.
The theory of stabilizer codes allows one to import some classical binary or quaternary codes for use as a quantum code. However, when importing the classical code, it must satisfy the dual-containing constraint. Researchers have found many examples of classical codes satisfying this constraint, but most classical codes do not. Nevertheless, it is still useful to import classical codes in this way. The entanglement-assisted stabilizer formalism can also overcome this difficulty.

Definition

The stabilizer formalism is based the -qubit Pauli group
, and extensively uses the facts that Hermitian operators in have eigenvalues, and that two operators in either commute or anti-commute.
A stabilizer of a stabilizer code with physical qubits is an -qubit Pauli operator such that all valid code states lie in the -eigenspace of, i.e.,. A stabilizer code is defined by its stabilizers in the sense that the converse is also true: A state is a valid code state for the stabilizer code if and only if holds for each stabilizer. Therefore the simultaneous -eigenspace of the stabilizers constitutes the codespace of the stabilizer code.
Any two stabilizers and must commute and must also be a stabilizer. Therefore the stabilizers of a code form the stabilizer group, an abelian subgroup of. Conversely, any abelian subgroup of that does not contain is a valid stabilizer group that defines a stabilizer code.
The number of logical qubits encoded in a stabilizer code is determined by the size of the codespace, which is in turn determined by the number of physical qubits and the size of the stabilizer group. For a -qubit stabilizer code encoding logical qubits, the codespace has dimensions, and the stabilizer group has elements. Since all non-unit Hermitian elements of has order 2, can be generated by
independent generators:
The generators must be independent in the sense that none of them are a product of any number of other generators, or the negation thereof. They are analogous to the rows of the parity-check matrix of a classical linear block code.

Examples

Classical repetition code

As a simple example, the 3-bit classical repetition code can be regarded as a quantum stabilizer code. It encodes logical qubit into physical qubits, and protects against a single bit-flip error. However, since it does not protect against single-qubit phase-flip errors, its code distance as a quantum code is.
The stabilizer group of the 3-qubit repetition code has generators:
The stabilizer indicates that, if the first and second qubits in a valid code state are both measured in the basis, the results will always be the same. Similarly, indicates that the basis measurement on the second and third qubits always yield the same result. Unsurprisingly, the codespace of this code is
Usually, the physical state and are identified with the and states of the logical qubit respectively. As a quantum code, the codespace also includes superpositions of and, such as and. Note that a phase-flip error on any one physical qubit will change to, and vice versa.

Five-qubit code

An example of a stabilizer code is the five qubit stabilizer code. It encodes logical qubit into physical qubits. Its stabilizer group has generators:
As we will show later, this code protects against an arbitrary single-qubit error, and thus it has code distance.

Logical operators

There are many ways to decompose a -dimension codespace into logical qubits, and one way to specify such a decomposition is by giving Pauli and operators for each logical qubit. For stabilizer codes, there exists decompositions where these logical and operators are also elements of.
By definition, a logical operator must map a valid code state into a valid code state. This means that for each stabilizer, , which is always true when and commute and never true when they anti-commute. Therefore the set of valid logical operators in is, the centralizer of .
However, not all these logical operators act non-trivially on the logical qubit. In particular, since is an abelian subgroup, is also contained in. In fact, when,, meaning that implements the logical identity operator. Furthermore, for any other logical operator, acts identically to on the code state, and thus they implement the same logical operator. Factoring out this equivalence gives the quotient group, which is isomorphic to. Therefore all -qubit logical Pauli operators can be chosen to be -qubit physical Pauli operators.
To explicitly specify the logical qubit decomposition, one usually chooses logical operators. Each of these operators or is a representative for the equivalence class or implementing the same logical operator. These operators need to satisfy the following conditions:
  • are all independent: The product of any nonempty subset of these operators cannot be a scalar multiple of.
  • Among, the only pairs that anti-commute are and for the same. Other pairs — two logical operators on different logical qubits, one logical operator and one stabilizer generator, or two stabilizer generators — all commute.

    Examples

For the 3-qubit repetition code described above, the stabilizer generators and logical operator representatives can be chosen as:
Other single-qubit operators are alternative implementations of the logical operator:,. This is consistent with the above observation that any single-qubit phase-flip error changes to, and vice versa. It is also straightforward to check that applying, i.e., bit-flipping all three qubits, changes to, and vice versa.
For the five-qubit code, the logical operator representatives are usually chosen as:
Note, however, that these are not the logical operator representative candidates with the lowest weight. For example, has weight 3.

Stabilizer error-correction conditions

One of the fundamental notions in quantum error correction theory is that it
suffices to correct a discrete error set with support in the Pauli group
. Suppose that the errors affecting an
encoded quantum state are a subset of the Pauli group :
Because and are both subsets of , an error either commutes or anti-commutes with any particular element. If anti-commutes with an element, then which means that is in the -eigenspace of rather than the -eigenspace, and thus is detectable by measuring. Actually it suffices to measure each stabilizer generator, since if commutes with every, then will also commute with the product of any number of them. In this case is a logical operator and thus cannot be detected by the code.
However, is again a special case, where implements the logical identity operator: Even though it is not detectable, it also does not corrupt the encoded state. This also holds for any scalar multiple of, since a global phase has no physical effect. We define an undetectable logical error as one that is undetectable but does corrupt the encoded state, i.e.,
The equality above gives an alternative characterization of an undetectable logical error : must commute with all stabilizers, but not with all logical operators. This characterization is often more convenient since one only need to check commutativity with the generators, instead of solving a system of linear equations to determine if is the product of some subset of up to global phase.
Operationally, each stabilizer generator can be measured via a parity measurement without disturbing states in the codespace. The combination of results of measuring each is known as the syndrome, represented as a binary vector with length whose elements indicate whether the error commutes or anti-commutes with each stabilizer generator.
When using a stabilizer code as an error correction code, one must also choose a correction for each syndrome. If there exists another possible error with the same syndrome as, then after correction there may be a residual error. The condition that has the same syndrome as is equivalent to that is undetectable, i.e.,. However, if does not corrupt the logical qubits, then the error correction will be successful anyway. Therefore, a stabilizer code can perfectly correct a set of Pauli errors as long as there does not exist such that is an undetectable logical error.

Examples

The 3-qubit repetition code can correct single-qubit bit-flip errors, which means that it satisfies the error-correction conditions for. Indeed, the only undetectable logical error that consists only of and is with weight 3, and the product of two errors in . This can also be verified by explicitly checking the corrections corresponding to each syndrome:
SyndromeCorrection

The five-qubit code can correct any single-qubit error, i.e., it satisfies the error-correction conditions for . This can be verified either by showing that all undetectable logical errors of this code has weight at least 3, or by explicitly checking the syndromes. For the five-qubit code again each syndrome corresponds to one error in, although this is not typical for stabilizer codes: For codes like the surface code with high code distances and relatively low-weight stabilizers, one syndrome will usually correspond to many correctable errors that differ from each other by stabilizers.