Sie sind auf Seite 1von 29

Tutorial on Surface Code

Quantum Error Correction


Mark M. Wilde
Hearne Institute for Theoretical Physics
Department of Physics and Astronomy
Center for Computation and Technology
Louisiana State University
Baton Rouge, Louisiana 70803

Based on review paper arXiv:1208.0928 by Fowler et al.


Motivation and History
• Surface code is a promising route for large-scale quantum
computation, being implemented by leading experimental groups,
including IBM, Google (Martinis), Intel (DiCarlo), etc.

• Surface codes evolved from Kitaev’s toric code, representing a


realistic way of implementing key ideas of protection from topology

• Significant advantage of surface code is its tolerance to local errors,


which is the expected form of errors to occur in q. computers

• All operations needed for fault-tolerant quantum computation can be


implemented in the surface code 2D geometry.
Benefits of Surface Code Q. Computing
• Surface codes have a high tolerance to errors, allowing for a per
operation error rate of roughly 1% (experiments w/ scalable devices
have yet to realize this physical error rate; see arXiv:1708.00054)

• This error tolerance, along with a 2D layout having only nearest


neighbor couplings, is the main reason why this approach is realistic

• Trade-off is that many physical qubits are required in order to realize


logical qubits (min. required is ≈ 10 physical qubits per logical qubit)
Lightning Overview of Stabilizer Codes
• An n-qubit stabilizer code encoding k qubits consists of a group S
generated by n − k commuting Pauli operators {g1, …, gn − k}
• For the repetition code example, the generators are Z1 Z2 and Z2 Z3, and
the stabilizer group is {I, Z1 Z2, Z2 Z3, Z1 Z3}.
• The vector space stabilized by the operators in S is called the
codespace C. That is, C = {|𝜓⟩ : s|𝜓⟩ = |𝜓⟩ for all s ∈ S}.
• The generators {g1, …, gn − k} are the observables that are used to
diagnose errors (much like we used Z1 Z2 and Z2 Z3 for the rep. code)
• The 2k logical operators of the code commute with {g1, …, gn − k} and are
independent of them (cannot be realized by multiplying {g1, …, gn − k})
Surface Code

• Data qubits are represented by open circles ○


• Measurement qubits are represented by filled circles ●
• Measure-Z qubits are colored green
• Measure-X qubits are colored orange
• Stabilizer code b/c all stabilizer operators commute with each other
Requirements for Qubits in Surface Code
• For all physical qubits (i.e., for all data and measurement qubits), it
should be possible to
• Initialize it
• Perform single-qubit rotations
• Perform two-qubit CNOT gates between nearest neighbors
• Perform measurement of Z for each qubit

• Measurement qubits are used to stabilize and manipulate the state of


the data qubits
Syndrome Measurement Circuits for Surface Code
Circuit for measuring Z-type stabilizer (i.e., Za Zb Zc Zd)

Circuit for measuring X-type stabilizer (i.e., Xa Xb Xc Xd)


Basic Operation of the Surface Code
• Initialize each measure-qubit to |0⟩ state

• Then perform the measurement circuits from the previous slide for each
measure-qubit, obtaining a sequence of syndromes

• This initializes the state of the quantum computer randomly to a


“quiescent” state specified by the measurement outcomes, which is
recorded in a classical computer memory

• Many possible quiescent states: For N measure-qubits, there are 2N


measurement outcomes, and data qubits are in one of these possible
states
Single-Qubit Errors
• Suppose a single-qubit error ≈ Ia + 𝜀Za occurs on the data qubit a
• Then the quiescent state |𝜓⟩ gets transformed to (Ia + 𝜀Za)|𝜓⟩
• After measuring all stabilizers, state projects to either |𝜓⟩ with high
probability or the erred state Za|𝜓⟩ with low probability
• The error Za anticommutes with two of the X stabilizers acting on data
qubit a
• This error then flips the measurement outcomes for these X
stabilizers, indicating that an error occurred
• One could then explicitly perform an error correction, or simply keep
track of this in external classical control
Evolution of Surface Code w/ Single-Qubit Errors

• A Y error occurs, as well as an error in a


measure qubit
• These errors trigger flips in some syndromes
• Z and X errors occur

• Initial quiescent state after measuring


all stabilizers
• Time is going from bottom to top
Logical Operators for the Surface Code
• Surface code state is not completely specified by the stabilizer operators

• There are two types of boundaries: X-type and Z-type

• In our example, there are 39 data qubits and 38 measure qubits


constraining them, and so there is “room” for a single qubit that can be
encoded

• What are the logical X and Z operators for this qubit?

• Whatever they are, they should commute with all stabilizer operators
and it should not be possible to write the logical operators as a product
of other stabilizer operators
Logical Operators for the Surface Code (ctd.)
• X logical operator is a chain of
X operators that connect the
X boundaries

• Z logical operator is a chain of


Z operators that connect the
Z boundaries

• Due to properties of code, any


topologically equivalent chain
has the same effect
Error Detection in the Surface Code
• Errors occur on all physical qubits, and come about from single-qubit
errors, measurement errors, initialization errors, and CNOT errors.

• Surface code can deal with all of these errors, as long as errors can be
identified

• Edmonds’ minimum-weight perfect-matching algorithm can help with


this. It works perfectly for sufficiently sparse errors, but begins to fail
as error density or error length increases
Error Detection in the Surface Code
• Simulation of errors in surface code
• Trying to do I, but instead doing X, Y, or Z
each with probability p/3
• Trying to prepare |0⟩, but instead preparing
|1⟩, with probability p
• Trying to do Hadamard, but instead also
doing X, Y, or Z, each with probability p/3
• Measuring Z but reporting the wrong value
with probability p
• Trying to do a CNOT for measure-qubit and
data-qubit but instead doing random
two-qubit Pauli
• Logical error rate decreases as d increases
if physical error rate is below a threshold,
where d is minimum length of logical X or Z
Creating Logical Qubits by Cuts
• Another way of creating logical qubits in
the surface code is to create holes
inside the boundary

• To do so, one simply “turns off” one of


the measure-X or measure-Z qubits

• This means that you simply don’t


measure the corresponding stabilizer
anymore

• Figure shows example of a Z-cut


Creating Logical Qubits by Cuts (ctd.)
• To perform a logical X operator on this
new Z-cut qubit, perform a string of X
operators from X boundary of surface
code to X boundary of Z-cut

• To perform a logical Z operator on this


new Z-cut qubit, perform a loop of Z
operators around the hole

• We can alternatively make an X-cut qubit


by not measuring an X-stabilizer
Creating Logical Qubits by Double Cuts
• Practicality of former approach is
limited — it requires a chain of X
operators to go from cut to boundary
• A way around this problem is to
make a double Z-cut
• This gives 4 degrees of freedom,
specified as {XL1, ZL1, XL2, ZL2}
• Multiplying XL1 and XL2 is equivalent
to XL, as depicted
• Alternatively use these two logical
qubits as one logical qubit, much like
𝛼|00⟩ +𝛽|11⟩ is a logical qubit w/ Z1
or Z2 as logical Z and XX as logical X
Creating Logical Qubits by Double Cuts (Ctd.)
• Can also have double X-cuts, by
cutting out two X stabilizers
• (a) depicts a logical qubit
formed from a double Z-cut (as
on previous slide)
• (b) depicts a logical qubit
formed from a double X-cut
• Having two different kinds of
cuts allows for performing a
CNOT via braiding
Initialization of Logical Qubits
• To initialize a double X-cut qubit,
use measurement outcomes just
prior to turning off the two
measure-X qubits

• If XL is loop surrounding upper


qubit hole, initial state
corresponds to measurement
outcome of XL just before turning
off, being either |+⟩ or |−⟩
Measurement of Logical Qubits
• Procedure is almost the reverse of initialization

• Simply turn on the measure qubits (measure them) that were turned
off in order to have a logical qubit

• This then projects the logical qubit onto a stabilizer eigenstate


Moving Qubits Around the 2D Array
• Can move the location of the holes around in the 2D surface code array

• This is helpful for implementing a logical CNOT gate between two logical
qubits, by a braiding transformation
Moving Qubits Around the 2D Array: Example
a) Wait for current surface
code cycle to complete.
b) Then don’t measure Z-
stabilizer below Z-cut, and
turn 4-terminal X-stabilizers
acting on qubit 6 to 3-
terminal stabilizers.
Measure X of qubit 6
c) Turn on measure-Z qubit of
original Z-cut hole. Convert
X stabilizers back to 4
terminals
Multicell Move Extending One-Cell Move
• Multicell move is
performed similarly to
one cell move, and can be
completed in the same
number of steps required
for the single-cell move
discussed on the previous
slide
CNOT by Braiding (Sketch)
• Recall that CNOT in Heisenberg picture is equivalent to
transformation of Pauli operators as

X⊗I➝X⊗X
Z⊗I➝Z⊗I
I⊗X➝I⊗X
I⊗Z➝Z⊗Z

• So we need to effect this transformation on logical operators


CNOT by Braiding (Sketch)

Effect of loop move around the X-cut of the upper hole of the second qubit
is equivalent to realizing a logical X for the second qubit:

X⊗I➝X⊗X
CNOT by Braiding (Sketch)

Effect of loop move for I on 1st qubit and X on 2nd has no effect on 2nd qubit:

I⊗X➝I⊗X
CNOT by Braiding (Sketch)

• Effect of loop move for I on 1st qubit and Z on 2nd affects 1st qubit:
I⊗Z➝Z⊗Z
Other Logical Operations
• There is a way to implement a CNOT between two Z double-cut
qubits, by connecting them via an X double-cut qubit
• There is a way to implement logical Hadamard on a logical qubit
• There is also a way to implement a logical T gate, by using T-magic-
state distillation and then logical CNOTs, logical measurements, and
conditional operations
• All of the above give a full set of operations for universal fault-
tolerant quantum computation, using the surface code and a
significant amount of classical control processing operating much
faster than the quantum gate times
Conclusion (taken directly from arXiv:1708.00054)
• A wide range of qubit technologies have the potential to implement a 2D
array of nearest-neighbor coupled qubits.

• Given such a 2D array, the surface code has the highest known threshold
error rate of approximately 1%.

• Experiments have yet to yield scalable devices with a set of sufficiently low
error quantum gates to implement the surface code, and other codes that
work in 2D typically have a threshold error rate an order of magnitude
lower.

• It is unclear whether gates with sufficiently low error rates to use any code
other than the surface code will ever exist.

• A newer technique called “lattice surgery” can help to reduce overhead


with surface code by a constant factor (arXiv:1808.06709)

Das könnte Ihnen auch gefallen