<<

Fundamental concepts in

Julian Kelly Quantum AI Education - Workforce Development Series February 24, 2021 Outline 1. Introduction 2. Handling Quantum Errors: Stabilizers a. What are they? b. Detecting and projecting errors 3. Error correction scheme: The surface code a. Physical layout b. Logical operators c. Logical states 4. Tracking errors: Decoding the repetition code a. Matching graph b. Minimum weight perfect matching Outline 1. Introduction 2. Handling Quantum Errors: Stabilizers a. What are they? b. Detecting and projecting errors 3. Error correction scheme: The surface code a. Physical layout b. Logical operators c. Logical states 4. Tracking errors: Decoding the repetition code a. Matching graph b. Minimum weight perfect matching PhD Thesis Quantum My Background Error “Sycamore” Correction “Optimus” Beyond-Classical (“Quantum Supremacy”) Xmon Automated transmon calibration Ugrad Thesis Single Bootstrapping and Gate Calibration

Undergrad Grad School Google Google Quantum AI System Control Team Lead ● 2008 2010 2015 2021 Calibration ● Control Software “ORBIT” ● Electronics Optimal control and calibration

5 Xmon record fidelity CZ “Foxtail” “Bristlecone” 22 Xmon w/ 72 Xmon flip chip 2D array Quantum Error Correction Why do we care? Full potential of Quantum Computing requires error correction

Many high value applications require extremely low error : 10-15 ● Quantum Simulation ● ● Shor’s ● etc.

Today’s best physical qubit system error rates: 10-3

Use error correction to trade physical overhead for lower logical error rates Google’s path to an error corrected machine

10-1 Beyond Classical (“Quantum Supremacy”) Error correction threshold 10-2

10-3

Limiting error rate Classically ✘ ? NISQ Useful error 10-4 simulatable ✔ corrected QC

100 101 102 103 104 105 106 Number of Qubits Google AI Quantum hardware roadmap

2019 2029 Year

54 102 103 104 105 106 Physical qubits Beyond Logical qubit 1 logical qubit Tileable module Engineering Error-corrected classical prototype (Logical gate) scale up quantum computer

Error correction Calibration

Electronics

Fridge Wiring

Package Classical Error Correction ● Try to preserve 1 bit 1 - p ● Some error rate p it flips 0 0 ● Failure at 1 flip ○ pfail = p = O(p) p 1

Error correction majority vote ● Copy bit 3 times 001 0 succeed ● Recover bit value with majority vote ● Failure at 2 or 3 flips ○ 2 3 2 101 1 fail pfail = 3p - 2p = O(p ) ○ Want uncorrelated errors

Error correction: trade redundancy for lower error rate l0〉 Qubit Bloch Qubits errors sphere

Qubits have numerous error channels ● Decoherence errors ○ random bit/phase flips ● Continuous control errors ○ over/under rotation

Classical: only bit errors (0 or 1)

Qubits can have X and Z errors (bit/phase)

l1〉

lψ〉= cos(θ/2) l0〉+ eiɸsin(θ/2) l1〉 Quantum Error Correction Goal: Protect qubit from all error channels

Challenges: ● Need to correct X and Z errors ● No-cloning theorem, can’t copy like classical ○ Provable no quantum process: |0⟩⊗|ψ⟩ → |ψ⟩⊗|ψ⟩ ● Continuous errors ○ Example: Non-Pauli error rotation X(θ) ● Measurement destroys

Basic QEC concept: NOTE: ● Distribute logical state over many physical qubits Following content created in ● Use “stabilizers” to deal with errors collaboration with ● Kevin Satzinger ● Austin Fowler Outline 1. Introduction 2. Handling Quantum Errors: Stabilizers a. What are they? b. Detecting and projecting errors 3. Error correction scheme: The surface code a. Physical layout b. Logical operators c. Logical states 4. Tracking errors: Decoding the repetition code a. Matching graph b. Minimum weight perfect matching Introduction to Stabilizers Use an extra “measure” qubit to projectively measure an operator Consider U with eigenvalues +1, -1 (U2=1)

⟩ ⟩⊗ ⟩ |ψsystem = |0 |ψin

|0⟩ H H

|ψ ⟩ U ⟩ in |ψout

Nielsen / Chuang Exercise 4.34 Introduction to Stabilizers Use an extra “measure” qubit to projectively measure an operator Consider U with eigenvalues +1, -1 (U2=1)

|0⟩⊗|ψ ⟩ + |1⟩ in (ignore √2’s) ⊗ ⟩ |ψin _

|0⟩ H H

|ψ ⟩ U ⟩ in |ψout

Nielsen / Chuang Exercise 4.34 Introduction to Stabilizers Use an extra “measure” qubit to projectively measure an operator Consider U with eigenvalues +1, -1 (U2=1)

|0⟩⊗|ψ ⟩ + |1⟩ in (ignore √2’s) ⊗ ⟩ U|ψin

|0⟩ H H

|ψ ⟩ U ⟩ in |ψout

Nielsen / Chuang Exercise 4.34 Introduction to Stabilizers Use an extra “measure” qubit to projectively measure an operator Consider U with eigenvalues +1, -1 (U2=1)

|+⟩⊗|ψ ⟩ + |-⟩ in (ignore √2’s) ⊗ ⟩ U|ψin

|0⟩ H H

|ψ ⟩ U ⟩ in |ψout

Nielsen / Chuang Exercise 4.34 Introduction to Stabilizers Use an extra “measure” qubit to projectively measure an operator Consider U with eigenvalues +1, -1 (U2=1)

|0⟩⊗(1 + U)|ψ ⟩ + in (ignore √2’s) ⟩⊗ ⟩ |1 (1 - U)|ψin _

|0⟩ H H

|ψ ⟩ U ⟩ in |ψout

Nielsen / Chuang Exercise 4.34 Introduction to Stabilizers Use an extra “measure” qubit to projectively measure an operator Consider U with eigenvalues +1, -1 (U2=1) ⟩ prob. depends on |ψin Measures multi-qubit state without 0 → (1 + U)|ψ ⟩, U = +1 collapsing individual qubits, in (ignore √2’s) 1 → (1 - U)|ψ ⟩, U = -1 “stabilizes” to U eigenstate in

|0⟩ H H

|ψ ⟩ U ⟩ in |ψout is a U eigenstate: ⟩ ⟩ U|ψout =±|ψout U(1 ± U)|ψ⟩ = (U ± U2)|ψ⟩

= ±(1 ± U)|ψ⟩ Nielsen / Chuang Exercise 4.34 Example: Consider U = X X 0 1 Remember this! ⟩ This projects |00 onto an X0X1 eigenstate It remains a Z0Z1 = +1 eigenstate because [X0X1, Z0Z1] = Remember this! 0 ⟩ ⟩ ⟩ 0 → (1 + X0X1)|00 = |00 + |11 ⟩ ⟩ ⟩ 1 → (1 - X0X1)|00 = |00 - |11

|0⟩ H H

|0⟩ Measurement → X X |0⟩ 0 1 entanglement!

ignore √2’s 0 ↔ U = +1 1 ↔ U = -1 Example: Consider U = X X 0 1 Remember this! ⟩ This projects |00 onto an X0X1 eigenstate It remains a Z0Z1 = +1 eigenstate because [X0X1, Z0Z1] = 0 Remember this!

0 → (1 + X X )|00⟩ = |00⟩ + |11⟩ Compile to 0 1 1 → (1 - X X )|00⟩ = |00⟩ - |11⟩ native gates 0 1

|0⟩ H H

|0⟩ Measurement → |0⟩ entanglement!

ignore √2’s 0 ↔ U = +1 1 ↔ U = -1 Example: Consider U = X X 0 1 Remember this! ⟩ This projects |00 onto an X0X1 eigenstate It remains a Z0Z1 = +1 eigenstate because [X0X1, Z0Z1] = 0 Remember this!

0 → (1 + X X )|00⟩ = |00⟩ + |11⟩ Compile to 0 1 1 → (1 - X X )|00⟩ = |00⟩ - |11⟩ native gates 0 1

|0⟩ H H

|0⟩ H H Measurement → entanglement! |0⟩ H H

ignore √2’s 0 ↔ U = +1 1 ↔ U = -1 Stabilizer diagram

Example: Measure X0X1 and Z0Z1 ⟩ This projects any |ψ onto an X0X1 and Z0Z1 eigenstate

Z0Z1 X0X1

|0⟩ H H XX ⟩ X X Z Z ⟩ [X X , Z Z ] = 0 |ψin 0 1 0 1 |ψout 0 1 0 1

|0⟩ H H ZZ Stabilizer diagram

Example: Measure X0X1 and Z0Z1 ⟩ This projects any |ψ onto an X0X1 and Z0Z1 eigenstate

Z0Z1 X0X1 Projected to Also projected to Hilbert space XX eigenstate, ZZ eigenstate, 2 dimension = 2 dimension = 21 dimension = 20

|0⟩ H H XX ⟩ X X Z Z ⟩ [X X , Z Z ] = 0 |ψin 0 1 0 1 |ψout 0 1 0 1

|0⟩ H H ZZ Stabilizer diagram

Example: Measure X0X1 and Z0Z1 ⟩ This projects any |ψ onto an X0X1 and Z0Z1 eigenstate

Z Z X X n data qubits and m stabilizers → dimension = 2n-m 0 1 0 1 20: only one state (this slide) 21: “logical qubit” (more later)

⟩ Z0Z1 X0X1 |ψout |0⟩ H H XX +1 +1 |00⟩ + |11⟩ |ψ ⟩ X X Z Z |ψ ⟩ in 0 1 0 1 out +1 -1 |00⟩ - |11⟩

|0⟩ H H -1 +1 |01⟩ + |10⟩ ZZ ignore √2’s -1 -1 |01⟩ - |10⟩ 0 ↔ U = +1 1 ↔ U = -1 Detecting an error: accidental X ⟩ ⟩ ⟩ Start with| ψin = |00 + |11 , so both stabilizers expect +1 ⟩ Stabilizers detect errors without directly measuring |ψ Z0Z1 X0X1

|01⟩ + |10⟩ XX = +1 ZZ = -1 (as expected) Detect X error!

⟩ Z0Z1 X0X1 |ψout |0⟩ H H XX +1 +1 |00⟩ + |11⟩ X |ψ ⟩ X X Z Z |ψ ⟩ in 0 1 0 1 out +1 -1 |00⟩ - |11⟩

|0⟩ H H -1 +1 |01⟩ + |10⟩ ZZ ignore √2’s -1 -1 |01⟩ - |10⟩ 0 ↔ U = +1 1 ↔ U = -1 Detecting an error: accidental Z X stabilizers detect Z errors Remember this! Z stabilizers detect X errors Z0Z1 X0X1

|00⟩ - |11⟩ XX = -1 ZZ = +1 Detect Z error! (as expected)

⟩ Z0Z1 X0X1 |ψout |0⟩ H H XX +1 +1 |00⟩ + |11⟩ Z |ψ ⟩ X X Z Z |ψ ⟩ in 0 1 0 1 out +1 -1 |00⟩ - |11⟩

|0⟩ H H -1 +1 |01⟩ + |10⟩ ZZ ignore √2’s -1 -1 |01⟩ - |10⟩ 0 ↔ U = +1 1 ↔ U = -1 Detecting a small error: accidental Zϵ ⟩ ⟩ ⟩ Start with| ψin = |00 + |11 , so both stabilizers expect +1

Z0Z1 X0X1

|0⟩⊗(1 + XX)(|00⟩ + eiπϵ|11⟩) + |00⟩ + eiπϵ|11⟩ |1⟩⊗(1 - XX)(|00⟩ + eiπϵ|11⟩) +

⟩ Z0Z1 X0X1 |ψout |0⟩ H H XX +1 +1 |00⟩ + |11⟩ Zϵ |ψ ⟩ X X Z Z |ψ ⟩ in 0 1 0 1 out +1 -1 |00⟩ - |11⟩

|0⟩ H H -1 +1 |01⟩ + |10⟩ ZZ ignore √2’s -1 -1 |01⟩ - |10⟩ 0 ↔ U = +1 1 ↔ U = -1 Detecting a small error: accidental Zϵ ⟩ ⟩ ⟩ Start with| ψin = |00 + |11 , so both stabilizers expect +1

Z0Z1 X0X1

(1 + eiπϵ)|0⟩⊗(|00⟩ + |11⟩) + |00⟩ + eiπϵ|11⟩ (1 - eiπϵ)|1⟩⊗(|00⟩ - |11⟩) +

⟩ Z0Z1 X0X1 |ψout |0⟩ H H XX +1 +1 |00⟩ + |11⟩ Zϵ |ψ ⟩ X X Z Z |ψ ⟩ in 0 1 0 1 out +1 -1 |00⟩ - |11⟩

|0⟩ H H -1 +1 |01⟩ + |10⟩ ZZ ignore √2’s -1 -1 |01⟩ - |10⟩ 0 ↔ U = +1 1 ↔ U = -1 Detecting a small error: accidental Zϵ ⟩ ⟩ ⟩ Start with| ψin = |00 + |11 , so both stabilizers expect +1

Stabilizers project errors → probabilities Z0Z1 X0X1 Measurement probabilities: 0 → |00⟩ + |11⟩ 0: cos2(πϵ/2) ~ 1 - ϵ2 |00⟩ + eiπϵ|11⟩ 1 → |00⟩ - |11⟩ 1: sin2(πϵ/2) ~ ϵ2

⟩ Z0Z1 X0X1 |ψout |0⟩ H H XX +1 +1 |00⟩ + |11⟩ Zϵ |ψ ⟩ X X Z Z |ψ ⟩ in 0 1 0 1 out +1 -1 |00⟩ - |11⟩

|0⟩ H H -1 +1 |01⟩ + |10⟩ ZZ ignore √2’s -1 -1 |01⟩ - |10⟩ 0 ↔ U = +1 1 ↔ U = -1 Detecting a small error: accidental Zϵ ⟩ ⟩ ⟩ Start with| ψin = |00 + |11 , so both stabilizers expect +1

Stabilizers project errors → probabilities Z0Z1 X0X1 Measurement probabilities: 0 → |00⟩ + |11⟩ 0: cos2(πϵ/2) ~ 1 - ϵ2 |00⟩ + eiπϵ|11⟩ 1 → |00⟩ - |11⟩ 1: sin2(πϵ/2) ~ ϵ2

|0⟩ H H XX Repeat stabilizers Zϵ ⟩ X X Z Z ⟩ |ψin 0 1 0 1 |ψout so small continuous errors can’t accumulate |0⟩ H H ZZ ignore √2’s 0 ↔ U = +1 1 ↔ U = -1 Detecting a small error: accidental Zϵ

Z0Z1 X0X1

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. What do we need for a logical qubit?

Correct number of stabilizers (constraints) ● n data qubits and n-1 stabilizers → dimension = 21 ● Information will be distributed among the data qubits

Need a basis in that dim=2 space ● “Which way is up” in the Bloch sphere

Equivalent: identify logical operators ZL and XL ● Commute with stabilizers (simultaneous eigenstates) wiki/Bloch_sphere ● [XL, ZL] ≠ 0 (follow Pauli algebra to behave like a qubit)

Detail: have to set things up very carefully to be fault tolerant, scalable Rules of thumb

Basics ● Stabilizers ○ Controlled-U meas. projects into eigenstate of U ○ XX stabilizers detect/project Z errors ○ ZZ stabilizers detect/project X errors ● Logical qubit ○ N data qubits, N-1 stabilizers ○ Logical operators, [XL, ZL] ≠ 0, commute with stabs. Outline 1. Introduction 2. Handling Quantum Errors: Stabilizers a. What are they? b. Detecting and projecting errors 3. Error correction scheme: The surface code a. Physical layout b. Logical operators c. Logical states 4. Tracking errors: Decoding the repetition code a. Matching graph b. Minimum weight perfect matching Surface code reference

Fowler et al., PRA 86 032324 (2012) Surface code: introduction

● 2D array of nearest-neighbor coupled “Measure” qubit qubits ● Grid pattern of data, measure qubits “Data” qubit ● Checkerboard pattern of 4-body X/Z stabilizers

X Stabilizer Z Stabilizer

|0⟩ H H |0⟩ Surface code: introduction Simplified diagram

X “Measure” qubit Z X Z

“Data” qubit

Z X Z

X

X Stabilizer Z Stabilizer

|0⟩ H H |0⟩ A small logical qubit: distance 2

Hilbert space Hilbert space 4 data qubits dimension = 24 dimension = 21 3 measure qubits

|0⟩ H H Logical qubit! ZZ ...Where?

0 1 Z0Z1 X0X1

⟩ ⟩ ⟩ |ψin |0 H H |ψout XXXX 2 3 Z2Z3 X2X3

|0⟩ H H ZZ

Detail: the CZ’s of the Z and X stabilizers are actually interleaved carefully to deal with error propagation Popping around X0X1X2X3

+1 -1

Z Z Z Z 0 1 0 1 2 3

+1 +1 Logical qubit 2 3 stabilizers Hilbert space project into a dimension = 21 +1 -1 subspace

-1 +1 Data qubit Hilbert space Stabilizers tell you dimension = 24 where your qubit is -1 -1 Hilbert space If you have error, qubit moves. Not destroyed! X stabilizers Surface code: detecting errors detect Z errors

Z stabilizers Distance-3 example (9 data qubits, 8 stabilizers) detect X errors

X X X

Z X Z Z X Z Z X Z

X Z

Z X Z Z X Z Z X Z

X X X

X error, detected by Z stab. Z error, detected by X stab. Logical operators XL and ZL (but not each other: overlap on one qubit, [X , Z ] ≠ 0) XL and ZL must commute with all stabilizers 0 0 Trick: cross from one boundary to another

Distance-3 example (9 data qubits, 8 stabilizers) Logical qubit! ...Where?

Find XL Find ZL

X X

Z X Z Z X Z

Z X Z Z X Z

X X Logical operators XL and ZL (but not each other: overlap on one qubit, [X , Z ] ≠ 0) XL and ZL must commute with all stabilizers 0 0 Trick: cross from one boundary to another

X stabilizers detect Z errors Distance-3 example (9 data qubits, 8 stabilizers) Z stabilizers detect X errors Find XL Find ZL Stab. changes sign (doesn’t commute) X X X0 Z0

Z X Z Z X Z

Z X Z Stab. changes sign Z X Z (doesn’t commute) X X Logical operators XL and ZL (but not each other: overlap on one qubit, [X , Z ] ≠ 0) XL and ZL must commute with all stabilizers 0 0 Trick: cross from one boundary to another

X stabilizers detect Z errors Distance-3 example (9 data qubits, 8 stabilizers) Z stabilizers detect X errors Find XL Find ZL

X X X0 Z0 Z1 Stab. changes sign Z X Z Z X Z (doesn’t commute)

X3

Z X Z Z X Z Stab. changes sign (doesn’t commute) X X Logical operators XL and ZL (but not each other: overlap on one qubit, [X , Z ] ≠ 0) XL and ZL must commute with all stabilizers 0 0 Trick: cross from one boundary to another

X stabilizers detect Z errors Distance-3 example (9 data qubits, 8 stabilizers) Z stabilizers detect X errors Find XL Find ZL

X X X0 Z0 Z1 Z2

Z X Z Z X Z

X3

Z X Z Z X Z

X 6 X X *several equivalent options exist

Found XL, ZL operators that are hidden from stabilizers! Logical operators XL and ZL (but not each other: overlap on one qubit, [X , Z ] ≠ 0) XL and ZL must commute with all stabilizers 0 0 Trick: cross from one boundary to another

X stabilizers detect Z errors Distance-2 example (4 data qubits, 3 stabilizers) Z stabilizers detect X errors Find XL Find ZL

Z Z X0 X1 Z0

X X

Z Z 2 Z Rules of thumb

Basics Logical ● Stabilizers ● Finding logical operators: ○ Controlled-U meas. projects into eigenstate of U ○ Cross from one boundary to another ○ XX stabilizers detect/project Z errors ○ ZZ stabilizers detect/project X errors ● Logical qubit ○ N data qubits, N-1 stabilizers ○ Logical operators, [XL, ZL] ≠ 0, commute with stabs.

Concepts ● Popping around ○ Qubit exists given any stabilizer values ±1 ○ Need to keep track (decoding) Logical qubit: XL and ZL eigenstates

⟩ Key: find |0L Others follow (ignore √2’s) Z Z X0 X1 Z0 1 ⟩ ⟩ 1. | L = XL|0L X X ⟩ ⟩ ⟩ 2. |+L = |0L + |1L Z Z 2 Z ⟩ ⟩ ⟩ 3. |-L = |0L - |1L

⟩ (+1 eigenstate of Z , also eigenstate of all stabilizers) Let’s find |0L ! L Find |0 ⟩ Logical qubit! L ...Where?

Example: +1 eigenstate for all stabilizers and ZL Cast as eigenvalue problem of toric code Hamiltonian (Kitaev)

(sum all X stab.) (sum all Z stab.)

Why? Want H|ψ⟩ = E|ψ⟩, so measuring stabilizers doesn’t affect ψ| ⟩ Find |0 ⟩ Logical qubit! L ...Where?

Example: +1 eigenstate for all stabilizers and ZL Cast as eigenvalue problem of toric code Hamiltonian (Kitaev)

Z Z 1 Explicit 4-qubit version for d=2: 0 X H = -X0X1X2X3 - Z0Z1 - Z2Z3 Z 3 ZL = Z0Z2 2 Z

For our layouts, H has 2-dimensional degeneracy ⟩ |0L is the unique ground state of H - ZL (a 16x16 matrix for d=2) Find |0 ⟩ Logical qubit! L ...Where? Explicit 4-qubit version for d=2: Z Z0 1

H = -X0X1X2X3 - Z0Z1 - Z2Z3 X

Z = Z Z Z 3 L 0 2 2 Z

⟩ ⟩ ⟩ |0L = |0000 + |1111 Logical States for d=2

Z Z X0 X1 Z0

⟩ ⟩ ⟩ X X 1. |0L = |0000 + |1111 Z Z 2 Z ⟩ ⟩ ⟩ ⟩ 2. |1L = XL|0L = |0011 + |1100

⟩ ⟩ ⟩ ⟩ ⟩ ⟩ ⟩ 3. |+L = |0L + |1L = |0000 + |1111 + |0011 + |1100

⟩ ⟩ ⟩ ⟩ ⟩ ⟩ ⟩ 4. |-L = |0L - |1L = |0000 + |1111 - |0011 - |1100

Reminder: these are +1 eigenstates of all the stabilizers, but -1 stabilizer values are also valid

(ignore √2’s) Find |0 ⟩ Logical qubit! L ...Where?

Example: +1 eigenstate for all stabilizers and ZL Cast as eigenvalue problem of toric code Hamiltonian (Kitaev)

X Z0 Z1 Z2 Explicit 9-qubit version for d=3: H = Z X Z - X1X2 - X0X1X3X4 - X4X5X7X8 - X6X7 3 4 5 - Z0Z3 - Z1Z2Z4Z5 - Z3Z4Z6Z7 - Z5Z8 Z X Z ZL = Z0Z1Z2 6 7 8 X

For our layouts, H has 2-dimensional ground state degeneracy ⟩ |0L is the unique ground state of H - ZL (a 512x512 matrix for d=3) Rules of thumb

Basics Logical ● Stabilizers ● Finding logical operators: ○ Controlled-U meas. projects into eigenstate of U ○ Cross from one boundary to another ○ ● ⟩ XX stabilizers detect/project Z errors Finding |0L ○ ZZ stabilizers detect/project X errors ○ Diagonalization ● ■ Logical qubit Define HZL = -Σ stabilizers - ZL ○ ■ ⟩ N data qubits, N-1 stabilizers Lowest energy eigenvector = |0L for ○ Logical operators, [XL, ZL] ≠ 0, commute with +1 stabilizer values stabs. ● Other logical states ○ ⟩ ⟩ |1L = XL|0L ○ ⟩ ⟩ ⟩ Concepts |+L = |0L + |1L ● ○ ⟩ ⟩ ⟩ Popping around |-L = |0L - |1L ○ Qubit exists given any stabilizer values ±1 ○ Need to keep track (decoding) Outline 1. Introduction 2. Handling Quantum Errors: Stabilizers a. What are they? b. Detecting and projecting errors 3. Error correction scheme: The surface code a. Physical layout b. Logical operators c. Logical states 4. Tracking errors: Decoding the repetition code a. Matching graph b. Minimum weight perfect matching Repetition code reference

Kelly et al., 519, 66–69(2015) Repetition code vs Surface code

“Measure” qubit

“Data” qubit

Surface code: Repetition code: protects X and Z errors protects X errors (or Z errors) Repetition code

q0 Z

ZZ ZZ Stabilizer:

q1 Like classical XOR operation (⊕)

Z ZZ

q2 Repetition code

q0 Z

ZZ XOR operation (⊕)

q1

Z ZZ

q2

Repetition Code |0⟩ |1⟩ |1⟩ ● Stabilizers detect local errors

Z ZZ=0 Z ZZ=0 Z ZZ=1 ● Only protects X or Z errors ● |0⟩ |1⟩ |0⟩ Can’t distinguish between |000⟩ and |111⟩, or any state and Z Z Z ZZ=0 ZZ=0 ZZ=1 its complement (the qubit

|0⟩ |1⟩ |1⟩ degree of freedom) Decoding: graph language

⟩ |? ZZ=0 Z node ↔ stabilizer value

edge ↔ data qubit |?⟩

Z ZZ=1 red := detection event (unexpected stabilizer change in value)

|E⟩ blue := error match, most likely error(s) on data qubits

Z ZZ=1

|?⟩ Z

ZZ=0

|?⟩ Z

ZZ=0

|?⟩ Repetition code: decoding errors ⟩ ⟩ ⟩ |? |? |E ZZ=0 ZZ=0 ZZ=0 ZZ=0 Z Z Z

|?⟩ |?⟩ |E⟩

Z ZZ=0 ZZ=1 Z ZZ=1 Z ZZ=1

|?⟩ |E⟩ |?⟩

Z ZZ=0 ZZ=1 Z ZZ=1 Z ZZ=1 OR

|?⟩ |?⟩ |E⟩ Z Z Z

ZZ=0 ZZ=0 ZZ=0 ZZ=0

|?⟩ |?⟩ |E⟩ Z Z Z

ZZ=0 ZZ=0 ZZ=0 ZZ=0

|?⟩ |?⟩ |E⟩ What errors No errors occurred 1 error, prob=O(p), more likely 5 errors, prob=O(p5), less likely given these values? No certainty which errors occurred, pick more probablesolution Decoding: maximum likelihood Decoding rules: ● Every detection event node is matched to another node or to the boundary ○ This is known as a “perfect match” ● We choose the solution that has more OR likely errors ○ This is the “minimum weight”, i.e. fewest* number of graph edges ● Matching options are complements of each other

Decoding done with “minimum weight 4 errors 3 errors perfect matching”

*if graph is weighted uniformly Imperfect stabilizers

Detection event due to stabilizer reporting wrong value OR Remember: stabilizer values determined with measure qubits. Just as faulty as the data qubits!

3 errors 4 errors

● Neither solution is correct ● No data error if only measure qubit had error ● This simple model breaks if stabilizers are imperfect Repeated stabilizer measurements

⟩ ⟩ ⟩ ⟩ |0 |0 |0 |0

Z ZZ=0 Z ZZ=0 Z ZZ=1 Z ZZ=1

|0⟩ |0⟩ |1⟩ |1⟩

Z ZZ=0 Z ZZ=0 Z ZZ=1 Z ZZ=1

|0⟩ |0⟩ |0⟩ |0⟩ Z Z Z Z

ZZ=0 ZZ=0 ZZ=0 ZZ=0

|0⟩ |0⟩ |0⟩ |0⟩ Z Z Z Z

ZZ=0 ZZ=1 ZZ=0 ZZ=0 |0⟩ |0⟩ |0⟩ |0⟩ time = 0 time = 1 time = 2 time = 3

detection event := stabilizer value changed from previous round or ⊕ d = Zt Zt-1 Matching repeated stabilizer measurements

time “space edge” data qubit error

“time” edge measure qubit error

Still use Minimum Weight Perfect Matching, just a2D instead of 1D graph The decoding problem

What errors occurred? Repetition code: experiment Actual matching graph determined by specific

● Still see ○ “space edge”: data qubit error ○ “time edge”: measure qubit error ● New: ○ “diagonal edge”: data qubit error

Minimum weight perfect matching determines final detected data errors Rules of thumb

Basics Logical ● Stabilizers ● Finding logical operators: ○ Controlled-U meas. projects into eigenstate of U ○ Cross from one boundary to another ○ ● ⟩ XX stabilizers detect/project Z errors Finding |0L ○ ZZ stabilizers detect/project X errors ○ Diagonalization ● ■ Logical qubit Define HZL = -Σ stabilizers - ZL ○ ■ ⟩ N data qubits, N-1 stabilizers Lowest energy eigenvector = |0L for ○ Logical operators, [XL, ZL] ≠ 0, commute with +1 stabilizer values stabs. ● Other logical states ○ ⟩ ⟩ |1L = XL|0L ○ ⟩ ⟩ ⟩ Concepts |+L = |0L + |1L ● ○ ⟩ ⟩ ⟩ Popping around |-L = |0L - |1L ○ Qubit exists given any stabilizer values ±1 ○ Need to keep track (decoding) Decoding ● Matching Graph ○ Nodes: stabilizer value ○ Space edge: data qubit error ○ Time edge: measure qubit error ● Detection Event ○ Stabilizer disagrees with previous value ● Matching ○ Minimum weight perfect matching gives most likely error Outline |0⟩ H H XX ⟩ X X 1. Introduction |ψin 0 1 2. Handling Quantum Errors: Stabilizers a. What are they? b. Detecting and projecting errors 3. Error correction scheme: The surface code a. Physical layout b. Logical operators c. Logical states 4. Tracking errors: Decoding the repetition code a. Matching graph b. Minimum weight perfect matching Thank You!

qubit (the dog)