Quantum error correction (QEC) is used in quantum computing to protect quantum information from errors due to decoherence and other quantum noise. Quantum error correction is essential if one is to achieve fault-tolerant quantum computation that can deal not only with noise on stored quantum information, but also with faulty quantum gates, faulty quantum preparation, and faulty measurements.
Classical error correction employs redundancy. The simplest way is to store the information multiple times, and--if these copies are later found to disagree--just take a majority vote; e.g. Suppose we copy a bit three times. Suppose further that a noisy error corrupts the three-bit state so that one bit is equal to zero but the other two are equal to one. If we assume that noisy errors are independent and occur with some probability p, it is most likely that the error is a single-bit error and the transmitted message is three ones. It is possible that a double-bit error occurs and the transmitted message is equal to three zeros, but this outcome is less likely than the above outcome.
Copying quantum information is not possible due to the no-cloning theorem. This theorem seems to present an obstacle to formulating a theory of quantum error correction. But it is possible to spread the information of one qubit onto a highly entangled state of several (physical) qubits. Peter Shor first discovered this method of formulating a quantum error correcting code by storing the information of one qubit onto a highly entangled state of nine qubits. A quantum error correcting code protects quantum information against errors of a limited form.
Classical error correcting codes use a syndrome measurement to diagnose which error corrupts an encoded state. We then reverse an error by applying a corrective operation based on the syndrome. Quantum error correction also employs syndrome measurements. We perform a multi-qubit measurement that does not disturb the quantum information in the encoded state but retrieves information about the error. A syndrome measurement can determine whether a qubit has been corrupted, and if so, which one. What is more, the outcome of this operation (the syndrome) tells us not only which physical qubit was affected, but also, in which of several possible ways it was affected. The latter is counter-intuitive at first sight: Since noise is arbitrary, how can the effect of noise be one of only few distinct possibilities? In most codes, the effect is either a bit flip, or a sign (of the phase) flip, or both (corresponding to the Pauli matrices X, Z, and Y). The reason is that the measurement of the syndrome has the projective effect of a quantum measurement. So even if the error due to the noise was arbitrary, it can be expressed as a superposition of basis operations--the error basis (which is here given by the Pauli matrices and the identity). The syndrome measurement "forces" the qubit to "decide" for a certain specific "Pauli error" to "have happened", and the syndrome tells us which, so that we can let the same Pauli operator act again on the corrupted qubit to revert the effect of the error.
The syndrome measurement tells us as much as possible about the error that has happened, but nothing at all about the value that is stored in the logical qubit--as otherwise the measurement would destroy any quantum superposition of this logical qubit with other qubits in the quantum computer.
The repetition code works in a classical channel, because classical bits are easy to measure and to repeat. However, in a quantum channel, it is no longer possible, due to the no-cloning theorem, which forbids the creation of identical copies of an arbitrary unknown quantum state. So a single qubit can not be repeated three times as in the previous example, as any measurement of the qubit will change its wave function. Nevertheless, in quantum computing there is another method, namely the three qubit bit flip code. It uses entanglement and syndrome measurements and is comparable in performance with the repetition code.
Now these qubits will be sent through a channel where we assume that at most one bit flip may occur. For example, in the case where the first qubit is flipped, the result would be . To diagnose bit flips in any of the three possible qubits, syndrome diagnosis is needed, which includes four projection operators:
It can be obtained:
So it will be known that the error syndrome corresponds to . This three qubits bit flip code can correct one error if at most one bit-flip-error occurred in the channel. It is similar to the three bits repetition code in a classical computer.
Flipped bits are the only kind of error in classical computer, but there is another possibility of an error with quantum computers, the sign flip. Through the transmission in a channel the relative sign between and can become inverted. For instance, a qubit in the state may have its sign flip to
The original state of the qubit
will be changed into the state
In the Hadamard basis, bit flips become sign flips and sign flips become bit flips. Let be a quantum channel that can cause at most one phase flip. Then the bit flip code from above can recover by transforming into the Hadamard basis before and after transmission through .
The error channel may induce either a bit flip, a sign flip, or both. It is possible to correct for both types of errors using one code, and the Shor code does just that. In fact, the Shor code corrects arbitrary single-qubit errors.
Let be a quantum channel that can arbitrarily corrupt a single qubit. The 1st, 4th and 7th qubits are for the sign flip code, while the three group of qubits (1,2,3), (4,5,6), and (7,8,9) are designed for the bit flip code. With the Shor code, a qubit state will be transformed into the product of 9 qubits , where
If a bit flip error happens to a qubit, the syndrome analysis will be performed on each set of states (1,2,3), (4,5,6), and (7,8,9), then correct the error.
If the three bit flip group (1,2,3), (4,5,6), and (7,8,9) are considered as three inputs, then the Shor code circuit can be reduced as a sign flip code. This means that the Shor code can also repair sign flip error for a single qubit.
The Shor code also can correct for any arbitrary errors (both bit flip and sign flip) to a single qubit. If an error is modeled by a unitary transform U, which will act on a qubit , then can be described in the form
where ,,, and are complex constants, I is the identity, and the Pauli matrices are given by
If U is equal to I, then no error occurs. If , a bit flip error occurs. If , a sign flip error occurs. If then both a bit flip error and a sign flip error occur. Due to linearity, it follows that the Shor code can correct arbitrary 1-qubit errors.[clarification needed]
In general, a quantum code for a quantum channel is a subspace , where is the state Hilbert space, such that there exists another quantum channel with
where is the orthogonal projection onto . Here is known as the correction operation.
A non-degenerate code is one for which different elements of the set of correctable errors produce linearly independent results when applied to elements of the code. If distinct of the set of correctable errors produce orthogonal results, the code is considered pure.
Over time, researchers have come up with several codes:
That these codes allow indeed for quantum computations of arbitrary length is the content of the threshold theorem, found by Michael Ben-Or and Dorit Aharonov, which asserts that you can correct for all errors if you concatenate quantum codes such as the CSS codes--i.e. re-encode each logical qubit by the same code again, and so on, on logarithmically many levels--provided the error rate of individual quantum gates is below a certain threshold; as otherwise, the attempts to measure the syndrome and correct the errors would introduce more new errors than they correct for.
There have been several experimental realizations of CSS-based codes. The first demonstration was with NMR qubits. Subsequently, demonstrations have been made with linear optics, trapped ions, and superconducting (transmon) qubits.
Other error correcting codes have also been implemented, such as one aimed at correcting for photon loss, the dominant error source in photonic qubit schemes.