Getting Real II – 9 Qubit Shor Code

  1. Single Bit-Flip or Phase-Flip Error [1]
  2. Correcting an arbitrary single qubit error
  3. Sources

1. Single Bit-Flip or Phase-Flip Error [1]

After showing, that QEC is necessary, next is … how? One of the first approaches was published by Peter Shore in 1995: his approach stabilizes a single logical qubit against any error by encoding 9 physical qubits. Start with the three-qubit bit flip (error correction) code, using entanglement:

(1) Start with any |ψ> = a|0> + b|1> and extend it by 2 initialized qubits:

(2) Create an entangled state via 2 CNOT gates:

(3) Assume a single qubit flip: |ψ1> = a|000> + b|111> (no flip) or a|001> + b|110> or a|010> + b|101> or a|100> + b|001>

Define operators for the 2 measurements: 

  1. P0 = |000><000| + |111><111|  no error
  2. P1 = |100><100| + |001><001|  q1 flipped
  3. P2 = |010><010| + |101><101|  q2 flipped
  4. P3 = |001><001| + |110><110|  q3 flipped

<ψ1|Pi|ψ1> in {0, 1}, representing only the information which error occurred; hence the original qubit state is not destroyed by the measurement!

For example.: <ψ1|P2|ψ1> for |ψ1> = a|010> + b|101> is 1, and 0 for all others, hence from the measurement it can be derived that the second qubit was flipped

(4) How to represent the operators Pi? With 2 ‘ancilla’ qubits and Pauli Z-gates (see yellow circle around ‚Error correction‘ above):

Define

where |ψ1> = a|000> + b|111> is an eigenstate of both with eigenvalues +1; they ‘stabilize’ the quantum state

Stabilizers form an abelian group S and each stabilizer has eigenvalue +1 or -1, hence

where I being the identitiy matrix, leaving the quantum state unchanged (except for a global phase, not relevant for measurements). With 

Example: q1 flipped, hence e.g.

The correction code before doesn’t help with phase flips (arising, because quantum states are continuous, in contrast to classical bits): assume  a|0> + b|1> has been encoded, then a phase flip error occurs:  (Z ⨂ I ⨂ I) (a|000> + b|111>) = a|000> – b|111>. This would be exactly the state if starting with a|0> – b|1>, so how to identify its errorous?

A phase flip is |+>  ->  |-> or vice versa, hence with the following circuit: 

|ψ> = a|0> + b|1>  ->  a|000> + b|111>  ->  a|+++> + b|—>

To correct a phase error:

2.  Correcting an arbitrary single qubit error

The ‘error-space’ is continuous (e.g. due to noise). But: as long as it is possible to correct a bit-flip, a phase-flip, or both, correcting an arbitrary single-qubit unitary error is also possible!

To show this, first note:

  • The results of measuring the parity qubits (S1, S2) is called syndrome, e.g. for a bit flip error: 
  • All quantum operations are unitary. Why? Recall: Quantum systems are represented as vectors in a finite dimensional Hilbert space H; the state evolution is described by the Schrödinger equation. Observables are measurable quantities represented by Hermitian operators A є B(H), where B(H) are all bounded linear operations on H. Now: any evolution operator must be linear (because applying A to a state represented by a complex vector must result in a complex vector in H!) and length-preserving (since the total probability has to remain 1!), i.e. T: B(H) -> B(H) with tr(XY) = tr(T(X)T(Y)) for all X,Y in B(H). In other words, T can rotate the state vector anywhere within H, preserving the length. This is the geometric definition of a unitary matrix!

With that, shown next: The measurement of the syndrome projects any quantum error onto one of 4 possible errors, which can be corrected

Up to now: any single qubit error of the form (Y = ZX)

can be corrected (called Pauli errors: Pauli matrices form a basis for all 2×2 complex matrices!)

Now: let A be an arbitrary complex (unitary) matrix. Then there are a, b, c, d є C, so that  A = a I + b X + c Y + d Z. For the jth qubit of an n qubit state:

Measuring the syndrome (not altering the original state and collapsing any superposition of different errors states into one of the four states!) gives

After identifying by the syndrome which ‘Pauli’ error to which qubit happened, applying the correction code is just multiplying it with the corresponding Pauli operator again (since the same Pauli operator applied twice gives the identity matrix), which then recovers |ψ>:  

3. Sources

[1] Quantum Computation and Quantum Information, Nielsen, Chuang, Cambridge University Press

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert