Se está descargando tu SlideShare.
×

- 1. Quantum Noise and Error Correction Daniel Bulhosa Massachusetts Institute of Technology, 77 Massachusetts Ave., Cambridge, MA 02139-4307 (Dated: May 9, 2014) We present a formalism for describing quantum noise and quantifying its eﬀects. We introduce classical linear error correction, and present a procedure for using classical codes to create quantum error correction codes. In particular we discussed the codes developed by Calderbank, Shor, and Steane. I. INTRODUCTION Over the last two decades quantum computation has become a research ﬁeld of high interest. Following Shor’s publication of a quantum algorithm capable of factoring large prime numbers in polynomial time, it became un- derstood that the quantum eﬀects of superposition and interference could be exploited to carry out certain calcu- lations exponentially faster than conventional computers. One of the challenges when dealing with any kind of signal is the introduction of noise. In the last century eﬀective error correcting techniques have been developed in order to alleviate this issue in classical systems. After Shor’s publication, one of the biggest problems facing the prospect of practical quantum computation was quantum noise. Due to the seeming complexity of this kind of noise it was initially thought that no protocols could be devel- oped to remedy it. Further research showed that this noise admitted a simple description, and thus error cor- recting techniques could be developed to handle quantum noise. In this paper we introduce the idea of quantum noise, diﬀerent measures of the ﬁdelity of quantum infor- mation after being corrupted, and introduce a formalism for deriving quantum error correction codes from classi- cal ones. II. CLASSICAL LINEAR CODING AND ERROR CORRECTION Suppose we have a classical bit 0, and we wish to trans- mit it over some signal line. Furthermore, suppose that there is some probability p that an error will occur and this bit will be ﬂipped to 1. We would like to come up with a scheme that reduces this error. Consider the following proposition. Rather than send- ing a single bit we send three bits, two of them contain- ing redundant information. So, for example, rather than sending 0 we would send 000. If the string contains no errors the receiver leaves the string as is, and if one of the bits diﬀers from the others the receiver assumes the value of the remaining two was the intended message and corrects the error by ﬂipping the erroneous bit. Assum- ing that the errors on diﬀerent bits occur independently of each other and with suﬃciently small probability this scheme is sensible, since it is much more likely that no error or a single error would occur in the bit string rather than two or three. Given that this is our protocol for transmitting infor- mation, the receiver will only receive the wrong message when two or three bits are ﬂipped. This occurs with probability: 3 2 p2 (1 − p) + p3 = 3p2 − 2p3 (1) Since the probability of error without error correction is p we see that this error correction code improves the ﬁdelity of our information transfer when p < 1/2. This idea of redundancy of information can be general- ized into what are called classical linear error correction codes. In the theory of classical linear codes we represent strings of k bits as k-dimensional vectors with entries in the integers modulo 2. The value of each entry in one of this vectors is equal to the value of the corresponding bit. Thus for example, for ﬁve bits: 10010 → 1 0 0 1 0 T (2) In order to protect such strings of k bits from noise we map, or encode, the k-dimensional basis that spans all such strings to the k-dimensional basis of a subspace of an n-dimensional bit string vector space. We call such a subspace C an [n, k] code. Since k < n, C carries redun- dant information about our original bit string. We call the n×k matrix G that maps our original bit string x to the encoded bit string Gx the generator matrix for the code. Thus, for example, the generator matrix mapping our single bit (k = 1) from the previous example to the three bit encoding is: G = 1 1 1 (3) It is easy to see that this matrix maps 0 and 1 to [0, 0, 0]T and [1, 1, 1]T respectively. The generator char- acterization of a code is very intuitive when dealing with transforming the bit strings we wish to encode to their encoded versions. However, for the purpose of carrying out error correction it is easier to characterize a code by its parity check matrix. If H is the parity check matrix of some [n, k] code C, we deﬁne the code to be the set of n-dimensional vectors x such that:
- 2. Quantum Error Correction 2 Hx = 0 (4) Here H is an n − k × n matrix. It can be shown [1] that we can convert between generator matrices and par- ity check matrices, and vice-versa. Thus the two char- acterizations are equivalent. In the case of our previous example the parity check matrix is: H = 1 1 0 0 1 1 (5) It can be shown that the unique vectors satisfying Hx = 0 for this equation are [0, 0, 0]T and [1, 1, 1]T . In order to develop the classical linear theory of er- ror correction we must ﬁrst introduce the concept of the Hamming distance d(x, y) between two bit strings x and y. This is deﬁned to be the number of places where the entries of the two bit strings diﬀer. For a code C, de- ﬁne d(C) to be the smallest distance between any two diﬀerent codewords in the code: d(C) = min x,y∈C,x=y d(x, y) (6) Error detection is accomplished as follows [1]. Recall that any n-dimensional bit string x contained in the code C obeys Eq. 4. Suppose that as we transmit the bit string x it incurs some errors, so that the bit string x is received at the other end of the channel. Deﬁne e = x −x to be the error vector of the transmission, which tells us the places at which the original and ﬁnal bit strings diﬀer. If the probability of error on each bit is assumed to be small and independent, then with very high probability e will not lie in C so if the receiver applies H on the received bit string he will get a non-zero answer Hx = Hx + He = He. A code with d(C) ≤ 2t + 1 can correct up to t errors on a bit string. This condition guarantees that for any errorneous bit string x with up to t errors there exists a unique codeword x such that d(x , x) < t. The erroneous bit string x is corrected by transforming it back to x. The receiver can then map the codeword back to the original k-dimensional bit string. III. QUANTUM NOISE When describing quantum noise we use the language of density operators and quantum operations. For a review of density matrices and their properties please refer to [2]. Although most of the qubit systems we treat theoreti- cally are in isolation, the systems we encounter in reality are far from isolated. They are often coupled to an ex- ternal system, which we call the environment, whose de- tailed properties we are ignorant about. Such a system is called an open system, and systems in isolation are called closed. If our qubits are in isolation we can evolve their state by multiplying their initial state vector by a unitary op- erator U. However if the qubits are in contact with some environment we cannot in general evolve them separately with a unitary operator. What we can do is make the open qubit system closed by adjoining the environment to our description. For example, if our qubits and the environment are initially in the uncoupled states ρ and ρe respectively, we can describe the full closed initial sys- tem as ρ ⊗ ρe. We can then evolve this closed system with some unitary operator U. In quantum computation we can think of the sources of noise as the environment of the qubits. We can then characterize the eﬀect of the environment on our qubit over time by evolving the full qubit-environment state, and then taking the partial trace over the environment to get the ensemble describing only the qubits. The ﬁnal state resulting from the noise is thus: E(ρ) = tre[U(ρ ⊗ ρe)U† ] (7) The map E is a quantum operator. Mathematically, a general quantum operation E is a completely positive, convex linear map from density matrices to density ma- trices such that 0 ≤ tr[E(ρ)] ≤ 1[i] . This particular quan- tum operation describes the eﬀect of noise of a system of qubits ρ. Though this representation of the noise quantum op- erator is physically intuitive, it is not the most useful for computation. For that purpose we use the operator-sum representation of this quantum operator. This can be de- rived from Eq. 7 as follows. Let {|ek } be a basis for the environment state space. Without loss of generality[ii] assume that the environment starts in a pure state so that ρe = |e0 e0|. Then Eq. 7 reduces to: k ek| U(ρ ⊗ |e0 e0|)U† |ek = k EkρE† k (8) Here Ek = ek| U |ek is an operator on the state space of ρ, which in general obeys: k EkE† k ≤ 1 (9) This is equivalent to the condition on the trace of E(ρ), with equality occurring under the same circumstances. Thus we can use 8 along with some set of {Ek} to describe [i] The inequality is due to the fact that in general quantum oper- ators can describe the process of measurement. When no mea- surement is done we simply have the equality tr[E(ρ)] = 1. [ii] See section 2.5 of [3].
- 3. Quantum Error Correction 3 the eﬀect of any kind of noise on quantum bits. The Ek’s are called the operation elements for the noise operation E. For concreteness we present an example of noise. An- other term for an environment that introduces noise into a qubit system is a noise channel. Consider a single qubit. Since the state of a quantum bit can be deter- mined by two numbers on the unit sphere we can think of it as having a particular direction, that is, a particular polarization. We say the qubit is depolarized when it has equal probability to point in any direction. We also call this state the maximally mixed state. The noise channel with probability p of depolarizing some quantum state and probability (1 − p) of leaving it alone is called the depolarizing channel. Its noise operation can be written as: E(ρ) = pI 2 + (1 − p)ρ (10) In the formalism of density matrices this equation is the statement that the resulting state E(ρ) is equal to the maximally mixed state I/2 with probability p, and equal to the input state ρ with probability 1 − p. This operation can be re-expressed as: E(ρ) = (1 − p)ρ + p 3 (σxρσx + σyρσy + σzρσz) (11) Here the σi’s are the Pauli spin matrices. Thus in the operator sum representation the E has operation elements {I, σx, σy, σz}. IV. FIDELITY When considering classical information we used the Hamming distance to quantify the diﬀerences between two diﬀerent bit strings. We would like to like to have an analogous construction for quantum information. Unfor- tunately because of the probabilistic nature of quantum mechanics the concept of the Hamming distance does not extend naturally into the ﬁeld of quantum information. In probability theory there exist diﬀerent measures to quantify the diﬀerence between two probability distribu- tions. One of these is called the ﬁdelity. Suppose p and q are probability distributions for discrete random vari- ables. The ﬁdelity of p and q is deﬁned as: F(p, q) = x √ pxqx (12) Here we sum over all values of the random variables. Note that when the two probability distributions p and q are equal then the ﬁdelity equals 1, and zero when the distributions are non-zero exclusively on diﬀerent values of x. Geometrically, we can think of √ p and √ q as unit vectors, and we can interpret F(p, q) to be their inner product. Thus the arccosine of the ﬁdelity measures the angular separation of these two vectors along the unit sphere. The deﬁnition of ﬁdelity commonly used in quantum information theory is motivated by Eq. (12). Given two density matrices ρ and σ describing a quantum system we deﬁne their ﬁdelity to be [3]: F(ρ, σ) = tr ρ1/2σρ1/2 (13) Here ρ1/2 is the matrix square root of ρ. That is, ρ1/2 is a matrix such that ρ1/2 ρ1/2 = ρ. Though it is not appar- ent from the above deﬁnition, the ﬁdelity is symmetric in its entries and its values range between 0 and 1. A value of 1 is obtained when ρ = σ. The quantum ﬁdelity also has a geometric interpretation as the inner product of state vectors on the unit sphere. This interpretation, however, requires some rigorous motivation[iii] . We can use the ﬁdelity to measure to what extent a noise channel corrupts quantum information. For exam- ple, let ρ = |ψ ψ| and consider the eﬀect of the depo- larization operator on this state. Note that (|ψ ψ|)2 = |ψ ψ| so ρ1/2 = |ψ ψ|. Let: σ =(1 − p) |ψ ψ| + p 3 σx |ψ ψ| σx (14) + p 3 σy |ψ ψ| σy + p 3 σz |ψ ψ| σz Then: F(|ψ , E(|ψ )) = F(|ψ ψ| , E(|ψ ψ|)) (15) = (1 − p) + p 3 i | ψ| σi |ψ |2 = 1 − 2 3 p So as the probability of the noise occurring increases, the agreement between the initial and ﬁnal states de- creases. V. QUANTUM ERROR CORRECTION A. The Shor 9-Qubit Code Now that we have a formalism for describing noise and a means of quantifying the magnitude of the eﬀect of noise on a state we can consider protocols for correcting quantum errors and their eﬀectiveness. [iii] See section 9.2.2 of [3], in particular the proof of Uhlmann’s theorem.
- 4. Quantum Error Correction 4 Early in the study of quantum noise it was thought that creating a quantum error correction scheme would be impossible. This is because of the large set of values a quantum bit can take on. As opposed to a classical digital bit, which can take on only two values, a quantum bit has an inﬁnite set of states, which can be parametrized by the coordinates of the unit sphere. There can be no physical error correction scheme that could correct for an inﬁnite set of possible errors in ﬁnite time. However, it was eventually realized that although qubits can take on an inﬁnity of states, the errors that a particular qubit can undergo admit a discrete, ﬁnite description after error detection has occurred. We illus- trate how this is accomplished by considering the Shor 9-qubit code [4], which is capable of correcting an ar- bitary error on a single qubit. Consider a generic pure state α |0 + β |1 , and the encoding: |0 → |0L = a+ ⊗3 (16) |1 → |1L = a− ⊗3 Here |ψ ⊗n denotes the tensor product of |ψ with itself n times, and: a± = (|000 ± |111 ) √ 2 (17) b± = (|100 ± |011 ) √ 2 The space spanned by the orthonormal vectors |0L and |1L is our quantum code C. Note that just like the classical codes, this quantum error correction code relies on the use of redundant qubits. Suppose a single error occurs on the ﬁrst qubit. Any operation on a single quantum bit can be written as a linear combination of Pauli matrices with some complex coeﬃcients: E1 = e0I1 + e1σ1 x + e2σ1 y + e3σ1 z (18) The upper index 1 denotes that these operators are acting on the ﬁrst qubit. The error E1 maps the state α |0L + β |1L to: E1 (α |0L + β |1L ) (19) = α e0 a+ + e1 a− + ie2 b− + e3 b+ a+ ⊗2 + β e0 a− + e1 a+ + ie2 b+ + e3 b− a− ⊗2 For brevity we have suppresed the tensor product sym- bols that should be written between the superposition in parathensis and the tensored states to the right of them. Note that: σ1 xσ2 xσ3 x a± = ±1 a± , σ1 xσ2 xσ3 x b± = ±1 b± (20) σ1 zσ2 z a± = +1 a± , σ1 zσ2 z b± = −1 b± As examination of the equations above shows, mea- surement of the operator σ1 zσ2 z tells us whether the ﬁrst and second qubits match. If we measure +1, then the superposition collapses to a state in which the ﬁrst two qubits match, and thus in eﬀect no bit ﬂip error occurred: E1 (α |0L + β |1L ) (21) → α e0 a+ + e1 a− a+ ⊗2 + β e0 a− + e1 a+ a− ⊗2 On the other hand, if we measure −1 then the super- position collapses to a state in which the ﬁrst two qubits diﬀer, and thus in eﬀect a bit ﬂip did occur: E1 (α |0L + β |1L ) (22) → α ie2 b− + e3 b+ a+ ⊗2 + β ie2 b+ + e3 b− a− ⊗2 In this sense we can think of the act of measurement determining which error occurs, and given the knowledge of what error this is we can correct it. In the ﬁrst case no action is necessary, and in the second case application of σ1 x to the state will correct the bit ﬂip error. Suppose we have detected any bit ﬂip errors and cor- rected them, so the problem reduces to consideration of state in Eq. (21). Inspection of Eq. (20) reveals that measurement of the operator σ1 xσ2 xσ3 xσ4 xσ5 xσ6 x compares the ﬁrst two kets in the tensor product of state (21)[iv] . If measurement of this operator yields +1 the ﬁrst two kets are the same. On the other hand, if the measurement yields −1 the two kets are opposite. Thus, for example, |a+ |a+ |a+ has eigenvalue +1 with respect to this op- erator, and |a− |a+ |a+ has eigenvalue −1. For example, assume we measure σ1 xσ2 xσ3 xσ4 xσ5 xσ6 x for (21) and the measurement yields −1. Then the superpo- sition collapses to: → αe1 a− a+ ⊗2 + βe1 a+ a− ⊗2 (23) If we eliminate the e1 factor by renormalizing and ap- ply σ1 z to ﬂip the sign of the ﬁrst state in the tensor product we arrive at the state: → α a+ ⊗3 + β a− ⊗3 = α |0L + β |1L (24) Thus after detecting and correcting as necessary we have returned to the original state. The procedure we [iv] In fact this operator compares the relative sign between the terms implicit in this two states. Thus, the state b+ a+ a− has eigenvalue +1 with respect to this operator, and the state a+ b− a− has eigenvalue −1.
- 5. Quantum Error Correction 5 followed is not particular to our assumption that an error occurred on the ﬁrst qubit, it can be carried out for other qubits by carrying out an analogous set of measurements. Also, we chose to consider a pure state for the sake of simplicity, but the same analysis can be carried out for ensembles described by density matrices. The only key assumption we made was that an error occurred on a single qubit. Hence the Shor code is capable of remedying any single qubit error. Note that the error operator E1 has four complex de- grees of freedom so the image of α |0L + β |1L under it is an inﬁnite set. However, the process of measuring the operators σ1 zσ2 z and σ1 xσ2 xσ3 xσ4 xσ5 xσ6 x eliminates these degrees of freedom, reducing the set of all possible errors to a single element. It is this fact which makes quantum error correction possible. B. Calderbank-Shor-Steane Codes As can be seen from consideration of the eﬀect of σz, qubits can suﬀer from bit ﬂip errors just like classical bits. However, qubits can also suﬀer from phase ﬂip errors. This kind of error is described by the action of σz, and is unique to quantum information channels[v] . Given the added complexity of quantum errors it is perhaps a sur- prising result that classical error correction codes can be used to create quantum error correction codes. The class of quantum error correction codes created in this man- ner are named Calderbank-Shor-Steane Codes (or CSS codes) after their inventors. In order to understand how these codes are constructed we must ﬁrst introduce some mathematical deﬁnitions. 1. Mathematical Background The following are some deﬁnitions and theorems from group theory: Deﬁnition 1: We deﬁne a group to be a set G along with an operation · which combines two elements of the group to produce a third. A group must obey the following axioms: • Closure: If a and b are elements of G, then a·b must be an element of G. • Associativity: For every a, b, and c in G, (a · b) · c = a · (b · c). [v] Note that the action of σy on qubits can be described as a joint bit ﬂip and phase ﬂip, since σy = iσzσx. Thus all quantum errors can be described as a combination of these two types of errors. • Identity Element: There exists an element 1 in G such that for each a in G we have that 1·a = a·1 = a. • Inverse Element: For each element a in G there exists an element a−1 in G such that a · a−1 = a−1 · a = 1 Deﬁnition 2: Suppose G is a group with operation ·. We say a subset H ⊂ G is a subgroup of G if H along with the operation · obeys the axioms above. It can be seen from the deﬁnitions above that vector spaces are a particular kind of group, with the commuta- tive operation +. Thus the above deﬁnitions and any the- orems about groups are applicable to the Hilbert spaces we work with in quantum mechanics. We will be taking + as our group operation in the remainder of this paper, denoting its inverse by − as is conventional. We will also need the following deﬁnitions: Deﬁnition 3: Suppose G is a group, H is a subgroup of G, and a is an element of G. We deﬁne the coset of H in G with respect to a to be the set: a + H = {a + h | h is an element of H} Deﬁnition 4: Suppose C is a subspace of some larger vector space V. We deﬁne C⊥ to be the orthogonal space to C, that is, the subspace of all vectors orthogonal to the subspace C: C⊥ = {v in V | v · x = 0 for every x in C} When V is some Hilbert space and C is a code in V then we call C⊥ the code dual to C. If C has generator matrix G and parity check matrix H, then C⊥ has generator matrix HT and parity check matrix GT . Furthermore, if the dimension of V is n and the dimension of C is k then the dimension of C⊥ is n − k. We state the following theorem without proof. The proof of this theorem can be found in [5]. Theorem 1 (Lagrange’s Theorem): Let G be a group and let H be a subgroup of G. Let |G| and |H| denote the number of elements in G and H respectively. If |G| is ﬁnite and [G : H] denotes the number of unique left cosets of H in G then the following equality holds: |G| = [G : H]|H| It can be shown that the number of left cosets is equal to the number of right cosets, so the above equation holds for right cosets as well. We call [G : H] the index of H in G. We will also use the following theorems: Theorem 2: Suppose G is a group and H is a subgroup of G. Suppose a and b are elements of G. Then b − a is an element of H if and only if a + H = b + H.
- 6. Quantum Error Correction 6 Proof: Suppose that a+H = b+H, then each element of a + H is equal to some element of b + H. This implies that for some h and h in H we must have that a + h = b + h and thus b − a = h − h. Since H is a subgroup h − h is an element of H, so b − a is an element of H. Conversely suppose that b − a = h for some element h of H. Then b = a + h so by associativity: b + H = {b + h | h is an element of H} = {a + h + h | h is an element of H} = {a · h | h is an element of H} = a + H Theorem 3 Suppose G is a group and H is a subgroup of G. Suppose a and b are elements of G. Then a and b belong to diﬀerent cosets, that is a + H = b + H, if and only if the cosets a + H and b + H do not share any elements in common. Proof: For ease we prove the contrapositive statements, which are logically equivalent. Suppose a + H and b + H share an element in common, then by deﬁnition 3 there must exist elements h and h of H such that a+h = b+h. By Theorem 2 it then follows that a + H = b + H. Conversely, suppose that a + H = b + H, then clearly they share every element in common. 2. The CSS Procedure We can now construct the CSS codes. The following discussion is based on the derivation from [3]. Suppose C1 is a [n, k1] classical code, that is, C1 is a k1-dimensional subspace of n-dimensional Hilbert space. Suppose C2 is a [n, k2] classical code such that C2 ⊂ C1. Furthermore, suppose C1 and C⊥ 2 correct up to t errors. Deﬁne for each element x of C1: |x + C2 ≡ 1 |C2| y∈C2 |x + y (25) The set of vectors |x + C2 deﬁne the CSS code of C1 over C2, CSS(C1, C2). Note that the elements of the sum (24) are exactly the elements of the coset x + C2. Now, notice that if x is an element of C1 such that x − x is an element of C2, then it follows from Theorem 2 that x + C2 = x + C2 and thus the states |x + C2 and |x + C2 are equal. Furthermore, note that if x and x belong to diﬀerent cosets then it follows from Theorem 3 that x+C2 = x +C2. This implies that if x and x are in diﬀerent cosets then |x + C2 and |x + C2 are orthogonal to each other. By Lagrange’s Theorem there are, |C1| |C2| = 2k1 2k2 = 2k1−k2 (26) cosets of C2 with respect to C1 and thus Eq. (25) de- ﬁnes 2k1−k2 orthonormal vectors. These vectors deﬁne a 2k1−k2 -dimensional space so the CSS code CSS(C1, C2) is a [n, k1 − k2] quantum code. We now demonstrate how the error correction proce- dure works. Suppose that our original state is |x + C2 and this state undergoes an error. We can describe the bit ﬂip error and the phase ﬂip error respectively by the n-dimensional bit vectors e1 and e2 [vii] . For example, if the nth bit of the code underwent a bit ﬂip the nth entry of e1 would be a 1. We can write erroneous state as: 1 |C2| y∈C2 (−1)(x+y)·e2 |x + y + e1 (27) Here · denotes the usual vector dot product, modulo 2. We can attach a “blank” extra qubit to this state, called an ancilla, 1 |C2| y∈C2 (−1)(x+y)·e2 |x + y + e1 |0 (28) and then apply a quantum operation to this joint state such that: |x + y + e1 |0 → |x + y + e1 |H1(x + y + e1) (29) = |x + y + e1 |H1e1 Here H1 is the parity check matrix for the code C1, and thus since x + y is an element of C1 it follows that H1(x+y) = 0. After applying this operation on the state from Eq. (28) we end up with the state: 1 |C2| y∈C2 (−1)(x+y)·e2 |x + y + e1 |H1e1 (30) Thus when we measure the ancilla qubit we will retrieve the vector He1. Since the classical code C1 can correct up to t errors then as long as less than t bit ﬂip errors oc- curred the vector H1e1 will determine exactly on which qubits the errors occured. We can apply σx to the er- roneous qubits to eliminate all the bit ﬂip errors. This yields the state: [vii] Recall that the phase ﬂip noise operation on a single qubit is described by the action of σz. The dot product (x + y) · e2 counts the number of times that a |1 in the qubit string |x + y gets acted on by a σz noise operator, that is the number of single qubit phase ﬂips that occur due to the noise.
- 7. Quantum Error Correction 7 1 |C2| y∈C2 (−1)(x+y)·e2 |x + y (31) Note that we have discarded the ancilla after measur- ing it. It remains to correct the phase ﬂip error e2. In or- der to accomplish this we introduce the operator known as the Hadamard gate. This operator acts on a single qubit, and is deﬁned by the following equations: F |0 = |+ , F |1 = |− , F2 = 1 (32) Applying F to every qubit in state (30) and redeﬁning dummy variables we get the state: 1 2n|C2| z∈C1 y∈C2 (−1)(x+y)·z |z + e2 (33) Now, consider the dot product y · z. Since y is an element of C2 then if z is in C⊥ 2 we have that y · z = 0 so: y∈C2 (−1)y·z = y∈C2 1 = |C2|, if z ∈ C⊥ 2 (34) On the other hand if z is an element of C2 then for each y such that y · z = 0 there exists a y such that y · z = 1 so when we sum over all y we ﬁnd that: y∈C2 (−1)y·z = 0, if z /∈ C⊥ 2 (35) The vector space C1 is the direct sum of C2 and C⊥ 2 so combining Eqs. (34) and (35) with Eq. (33) we can write the latter as, 1 2n/|C2| z∈C⊥ 2 (−1)x·z |z + e2 (36) and thus we have returned to the case of the bit ﬂip error we encountered in Eq. (27). Using the same procedure we used in that case, with the parity check matrix H2 for the classical code C⊥ 2 instead of H1 we can eliminate this bit ﬂip to arrive at the state: 1 2n/|C2| z∈C⊥ 2 (−1)x·z |z (37) Inverting the eﬀect of the Hadamard operations by ap- plying them once more we ﬁnally arrive at the state: 1 |C2| y∈C2 |x + y (38) Thus we have returned to the original encoded state. We can see that the CSS procedure works in two steps: First it corrects qubit bit ﬂip errors by exploiting the bit ﬂip correction properties of the classical code C1. It then uses the Hadamard operation to traslate the remaining phase ﬂip errors into bit ﬂip errors, and uses the bit ﬂip correction properties of the classical code C⊥ 2 to correct these errors. Since both C1 and C⊥ 2 can correct up to t errors, CSS(C1, C2) can correct t qubit errors. VI. DISCUSSION We have introduced the formalism for describing quan- tum noise and its eﬀects, and we have showed that clas- sical linear error correcting codes can be used to create quantum error correction codes. The CSS codes can be used to prove interesting bounds of the number of en- coding qubits necessary in order to tolerate a particu- lar number of errors. Furthermore, since we know good classical error correction codes exist, the CSS procedure shows that good quantum error correction codes also ex- ist. The 9-qubit code and the CSS codes we have intro- duced are a subset of a class of codes called stabilizer codes. These codes are derived from a very powerful for- malism called the stabilizer formalism, which can be used to show that some quantum information operations can be simulated eﬃciently (i.e. in polynomial time) on a classical computer. We encourage the curious reader to refer to section 10.5 of [3] to learn more about this formal- ism. For those interested in even further reading about quantum error correction, [3] provides a thourough list of important literature on the subject in section 10.6. In our discussion of error correction we did not consider the possibility that the application of the very operations we used to detect and correct noise might itself induce some noise. This is in fact something that we gener- ally expect to occur in physical systems. Although this does pose an extra complication, it can be shown that if the noise induced by these operations is below a certain threshold then quantum computation to a desireable de- gree of precision is achievable. We state this result by saying that quantum computation can be made fault tol- erant. For some discussion on this subject please refer to [3].
- 8. Quantum Error Correction 8 [1] S. Lin and W. Ryan, Channel Codes: Classical and Mod- ern. Cambridge University Press, New York (2009). [2] A. W. Harrow, 8.06 Spring 2014 Lecture Notes: 1. Entanglement, density matrices and decoherence. https://stellar.mit.edu/S/course/8/sp14/8.06/materials.html (2014). [3] I. Chuang and M. Nielsen, Quantum Computation and Quantum Information Cambridge University Press, New York (2010). [4] P. W. Shor, Phys. Rev. A 52, 2493 (1995). [5] M. Artin, Algebra. Pearson, Boston (2011).