Stabilizer codes
דף זה טרם תורגם. התוכן מוצג באנגלית.
Now we'll define stabilizer codes in general. We'll also discuss some of their basic properties and how they work, including how states can be encoded and how errors are detected and corrected using these codes.
Definition of stabilizer codes
An -qubit stabilizer code is specified by a list of -qubit Pauli operations, These operations are called stabilizer generators in this context, and they must satisfy the following three properties.
-
The stabilizer generators all commute with one another.
-
The stabilizer generators form a minimal generating set.
-
At least one quantum state vector is fixed by all of the stabilizer generators.
(It's not obvious that the existence of a quantum state vector fixed by all of the stabilizer generators, meaning is equivalent to but indeed this is the case, and we'll see why a bit later in the lesson.)
Assuming that we have such a list the code space defined by these stabilizer generators is the subspace containing every -qubit quantum state vector fixed by all of these stabilizer generators.
Quantum state vectors in this subspace are precisely the ones that can be viewed as valid encodings of quantum states. We'll discuss the actual process of encoding later.
Finally, the stabilizer of the code defined by the stabilizer generators is the set generated by these operations:
A natural way to think about a stabilizer code is to view the stabilizer generators as observables, and to collectively interpret the outcomes of the measurements associated with these observables as an error syndrome. Valid encodings are -qubit quantum state vectors for which the measurement outcomes, as eigenvalues, are all guaranteed to be Any other syndrome, where at least one measurement outcome occurs, signals that an error has been detected.
We'll take a look at several examples shortly, but first just a few remarks about the three conditions on stabilizer generators are in order.
The first condition is natural, in light of the interpretation of the stabilizer generators as observables, for it implies that it doesn't matter in what order the measurements are performed: the observables commute, so the measurements commute. This naturally imposes certain algebraic constraints on stabilizer codes that are important to how they work.
The second condition requires that the stabilizer generators form a minimal generating set, meaning that removing any one of them would result in a smaller stabilizer. Strictly speaking, this condition isn't really essential to the way stabilizer codes work in an operational sense — and, as we'll see in the next lesson, it does sometimes make sense to think about sets of stabilizer generators for codes that actually don't satisfy this condition. For the sake of analyzing stabilizer codes and explaining their properties, however, we will assume that this condition is in place. In short, this condition guarantees that each observable that we measure to obtain the error syndrome adds information about possible errors, as opposed to being redundant and producing results that could be inferred from the other stabilizer generator measurements.
The third condition requires that at least one nonzero vector is fixed by all of the stabilizer generators, which is equivalent to not being contained in the stabilizer. The need for this condition comes from the fact that it actually is possible to choose a minimal generating set of -qubit Pauli operations that all commute with one another, and yet no nonzero vectors are fixed by every one of the operations. We're not interested in "codes" for which there are no valid encodings, so we rule out this possibility by requiring this condition as a part of the definition.
Examples
Here are some examples of stabilizer codes for small values of We'll see more examples, including ones for which can be much larger, in the next lesson.
3-bit repetition code
The 3-bit repetition code is an example of a stabilizer code, where our stabilizer generators are and
We can easily check that these two stabilizer generators fulfill the required conditions. First, the two stabilizer generators and commute with one another.
Second, we have a minimal generating set (rather trivially in this case).
And third, we already know that and as well as any linear combination of these vectors, are fixed by both and Alternatively, we can conclude this using the equivalent condition from the definition.
These conditions can be much more difficult to check for more complicated stabilizer codes.
Modified 3-bit repetition code
In the previous lesson, we saw that it's possible to modify the 3-bit repetition code so that it protects against phase-flip errors rather than bit-flip errors. As a stabilizer code, this new code is easy to describe: its stabilizer generators are and
This time the stabilizer generators represent observables rather than observables, so they're essentially parity checks in the plus/minus basis rather than the standard basis. The three required conditions on the stabilizer generators are easily verified, along similar lines to the ordinary 3-bit repetition code.
9-qubit Shor code
Here's the 9-qubit Shor code, which is also a stabilizer code, expressed by stabilizer generators.
In this case, we basically have three copies of the 3-bit repetition code, one for each of the three blocks of three qubits, as well as the last two stabilizer generators, which take a form reminiscent of the circuit for detecting phase flips for this code.
An alternative way to think about the last two stabilizer generators is that they take the same form as for the 3-bit repetition code for phase flips, except that is substituted for which is consistent with the fact that corresponds to an operation on logical qubits encoded using the 3-bit repetition code.
Before we move on to other examples, it should be noted that tensor product symbols are often omitted when describing stabilizer codes by lists of stabilizer generators, because it tends to make them easier to read and to see their patterns. For example, the same stabilizer generators as above for the 9-qubit Shor code look like this without the tensor product symbols being written explicitly.
7-qubit Steane code
Here's another example of a stabilizer code, known as the 7-qubit Steane code. It has some remarkable features, and we'll come back to this code from time to time throughout the remaining lessons of the course.
For now, let's simply observe that this is a valid stabilizer code. The first three stabilizer generators clearly commute with one another, because commutes with itself and the identity commutes with everything, and the situation is similar for the last three stabilizer generators. It remains to check that if we take one of the -stabilizer generators (that is, one of the first three) and one of the -stabilizer generators (that is, one of the last three), then these two generators commute, and one can go through the 9 possible pairings to check that. In all of these cases, an and a Pauli matrix always line up in the same position an even number of times, so the two generators will commute, just like and commute. This is also a minimal generating set, and it defines a nontrivial code space, which are facts left to you to contemplate.
The 7-qubit Steane code is similar to the 9-qubit Shor code in that it encodes a single qubit and allows for the correction of an arbitrary error on one qubit, but it requires only 7 qubits rather than 9.
5-qubit code
Seven is not the fewest number of qubits required to encode one qubit and protect it against an arbitrary error on one qubit — here's a stabilizer code that does this using just 5 qubits.
This code is typically called the 5-qubit code. This is the smallest number of qubits in a quantum error correcting code that can allow for the correction of an arbitrary single-qubit error.
One-dimensional stabilizer codes
Here's another example of a stabilizer code, though it doesn't actually encode any qubits: the code space is one-dimensional. It is, however, still a valid stabilizer code by the definition.
Specifically, the code space is the one-dimensional space spanned by an e-bit
Here's a related example of a stabilizer code whose code space is the one-dimensional space spanned by a GHZ state
Code space dimension
Suppose that we have a stabilizer code, described by -qubit stabilizer generators Perhaps the very first question that comes to mind about this code is, "How many qubits does it encode?"
This question has a simple answer. Assuming that the -qubit stabilizer generators satisfy the three requirements of the definition (namely, that the stabilizer generators all commute with one another, that this is a minimal generating set, and that the code space is nonempty), it must then be that the code space for this stabilizer code has dimension so qubits can be encoded using this code.
Intuitively speaking, we have qubits to use for this encoding, and each stabilizer generator effectively "takes a qubit away" in terms of how many qubits we can encode. Note that this is not about which or how many errors can be detected or corrected, it is only a statement about the dimension of the code space.
For example, for both the 3-bit repetition code and the modified version of that code for phase-flip errors, we have qubits and stabilizer generators, and therefore these codes can each encode 1 qubit. For another example, consider the 5-qubit code: we have 5 qubits and 4 stabilizer generators, so once again the code space has dimension 2, meaning that one qubit can be encoded using this code. For one final example, the code whose stabilizer generators are and has a one-dimensional code space, spanned by the state which is consistent with having qubits and stabilizer generators.
Now let's see how this fact can be proved. The first step is to observe that, because the stabilizer generators commute, and because every Pauli operation is its own inverse, every element in the stabilizer can be expressed as a product
where Equivalently, each element of the stabilizer is obtained by multiplying together some subset of the stabilizer generators. Indeed, every stabilizer element can be expressed uniquely in this way, due to the condition that is a minimal generating set.
Next, define to be the projection onto the space of -eigenvectors of for each These projections can be obtained by averaging the corresponding Pauli operations with the identity operation as follows.
The code space is the subspace of all vectors that are fixed by all of the stabilizer generators or equivalently, all of the projections
Given that the stabilizer generators all commute with one another, the projections must also commute. This allows us to use a fact from linear algebra, which is that the product of these projections is the projection onto the intersection of the subspaces corresponding to the individual projections. That is to say, the product is the projection onto the code space
We can now expand out the product