Chapter 9 - Quantum Error Correcting Codes
Contents
Introduction
If one were to encode the information contained in some set of quantum states in such a way as to enable the information to be stored redundantly, then it would be possible to use the redundancy to detect and correct errors. Quantum error correcting codes aim to encode quantum information into states in just such a redundant fashion. It is worth noting that classical error correcting codes and coding theory has been around a long time. However, quantum error correction requires extra care when measuring to detect and correct errors. Qubits may also experience errors that classical bits do not. For example there is no phase-flip error on a classical bit. In this chapter, simple examples of quantum error correcting codes are given which correct errors in quantum computation. A later chapter will discuss more general concerns.
Bit-flip Errors: A Classical Code
A classical bit-flip error would turn a 0 into a 1 and a 1 into a 0. A classical error correcting code which protects against such bit-flip errors is the following code. Rather than use the state 0, the state is encoded redundantly; the state 000 is used. This is called an encoded zero state or a logical zero state. Likewise, 111 is used as an encoded 1, or logical 1. Now suppose one bit is flipped when the encoded state 111 is sent, and let this be the first bit. Then having sent 111 and finding 011, one would suppose that it was likely the case that the first bit was flipped. If one of the bits is flipped, the encoded state could be fixed by flipping the one that is different so that it agrees with the others. Let us assume that each error is independent and has probability . The probability that the bit is not flipped is then . Since the probability is that one bit flip occurs, then the probability that two are flipped is (assuming we don't know which one). The probability that three are flipped is . So the code will help us if which happens when .
This example will now be used to find a simple bit-flip code for a quantum system.
Bit-flip Errors: A Quantum Code
The quantum bit-flip code uses three quantum states to encode one as does the classical code. The state is the logical state representing the zero state of the encoded qubit. Similarly, is used for the logical one state. However, in quantum mechanics one cannot casually suggest measuring the three states to see if they agree. The reason is that a quantum state can be in a superposition of the zero state and the one state. A general state could be written as
(9.1) |
A measurement of the first qubit to see if it is in the state zero or not will immediately produce the state with probability destroying the superposition of the qubit state and producing a state which can be described as containing only classical information. (Essentially it is equivalent to the classical 000 binary state.)
There is a way to determine if the state has experienced a bit-flip error or not without ruining the superposition. This is done by measuring to see if the first two qubits are the same or not and then measuring to see if the last two qubits are the same or not. Let us examine this process in detail. First, measure the value of the operator . Since the state is an eigenvalue of with eigenvalue 1, and is an eigenvalue of with eigenvalue -1, the measurement of gives the value of 1 if the first two qubits are the same and -1 if they differ. For example,
(9.2) |
Of course the same is true for the operator . However, suppose that a bit-flip error occurs on the first qubit giving . Then
(9.3) |
Notice that neither nor were determined by this process. However, the error was detected. Since measuring the operator determines that the last two qubits agree, we know that the error occurred on the first qubit. In fact, it is not difficult to convince yourself that measuring these two operators will determine which qubit experienced a bit-flip for any of the three. Just like the classical bit-flip code, this will not indicate whether or not an error occurred on two qubits. Thus the probability must be small, just as is the case for the classical code.
Phase-flip Errors