Surface code
Surface codes are an instance of a Stabilizer code; Also instance of Quantum code from two binary linear codes? Instance of Quantum LDPC code?
Codes on graphs ඌ | ⇅ /|\ ---.--- |
₁ ⇅ ඌ ₂ | ₄ ⇅ /|\ ⇅---.---⇅ | ⇅ ₃ H = (1 1 1 1)
ඌ | | ⇅ /|\ ---.-------.--- | |
₁ ₇ ⇅ ⇅ ඌ ₂ | ₄ | ₆ ⇅ /|\ ⇅---.---⇅---.---⇅ | | ⇅ ⇅ ₃ ₅ H = (1 1 1 1 0 0 0 0 0 0 1 1 1 1)
| | ---.-------.--- | | | | ඌ | | ⇅ /|\ ---.-------.--- | |
₁₁ ₉ ⇅ ⇅ ₁₂ | ₁₀ | ₈ ⇅---.---⇅---.---⇅ | | ₁ ⇅ ⇅ ₇ ඌ | ₄ | ⇅ /|\ ⇅---.---⇅---.---⇅ ₂ | | ₆ ⇅ ⇅ ₃ ₅ H = (1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1)
2=6, 12=8, 5=9, 3=11 ₃ ₅ ⋮ ⋮ ₇ | ₈ | ₇ ⇅---.---⇅---.---… | | ₁ ⇅ ⇅ ₆ ඌ | ₄ | ⇅ /|\ ⇅---.---⇅---.---… ₂ | | ₂ ⇅ ⇅ ₃ ₅
2=6, 12=8, 5=9, 3=11 ₃ ₅ ⋮ ⋮ ₈ | ₁₀ | ₈ ⇅---.---⇅---.---… | | ₁ ⇅ ⇅ ₇ ඌ | ₄ | ⇅ /|\ ⇅---.---⇅---.---… ₂ | | ₂ ⇅ ⇅ ₃ ₅ H = (1 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1)
₁₁ ₉ .---⇅---.---⇅---. | | ₁₀| | | ₁₂ ⇅---.---⇅---.---⇅ ₈ | ₁| | | | .---⇅---.---⇅---. ඌ | | ₄| | ₇ | ⇅ /|\ ₂ ⇅---.---⇅---.---⇅ ₆ | | | | | .---⇅---.---⇅---. ₃ ₅ Hz = (1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1) Hx = (0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0)
| | | ----.-------.-------.…… | | | | | | ඌ | | | ⇅ /|\ ----.-------.-------.…… | | | | | | | | | ----.-------.-------.…… ⋮ ⋮ ⋮
⇅ ⇅ ⇅ | | | ⇅---.---⇅---.---⇅---.…… | | | ⇅ ⇅ ⇅ ඌ | | | ⇅ /|\ ⇅---.---⇅---.---⇅---.…… | | | ⇅ ⇅ ⇅ | | | ⇅---.---⇅---.---⇅---.…… ⋮ ⋮ ⋮ qubits on the edges
⇅ ⇅ ⇅ | | | ⇅---Z---⇅---Z---⇅---Z…… | | | ⇅ ⇅ ⇅ ඌ | | | ⇅ /|\ ⇅---Z---⇅---Z---⇅---Z…… | | | ⇅ ⇅ ⇅ | | | ⇅---Z---⇅---Z---⇅---Z…… ⋮ ⋮ ⋮ parity checks on the vertices
⇅ ⇅ ⇅ | | | ⇅---Z---⇅---Z---⇅---Z…… | | | ⇅ ⇅ ⇅ ඌ | | | ⇅ /|\ ⇅---Z---⇅---Z---⇅---Z…… | | | ⇅ ⇅ ⇅ | | | ⇅---Z---⇅---Z---⇅---Z…… ⋮ ⋮ ⋮ LDPC: parity check graph is sparse: each vertex has degree constant in n.
⇅ ⇅ ⇅ ⇅ Z ⇅ Z ⇅ Z ⇅ ⇅ ⇅ ඌ ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z ⇅ ⇅ ⇅ ⇅ Z ⇅ Z ⇅ Z
⋮ ⋮ ⋮ …….---⇅---.---⇅---.---⇅ | | | ⇅ Z ⇅ Z ⇅ Z | | | …….---⇅---.---⇅---.---⇅ ඌ | | | ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z | | | …….---⇅---.---⇅---.---⇅ | | | ⇅ Z ⇅ Z ⇅ Z
⋮ ⋮ ⋮ ……X---⇅---X---⇅---X---⇅ | | | ⇅ Z ⇅ Z ⇅ Z | | | ……X---⇅---X---⇅---X---⇅ ඌ | | | ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z | | | ……X---⇅---X---⇅---X---⇅ | | | ⇅ Z ⇅ Z ⇅ Z
X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ඌ ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z
n = 2d² X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ඌ ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z
X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ඌ ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z ⟋ ⟍ X ⇅ X ⇅ X ⇅ ⟍ ⟋ ⇅ Z ⇅ Z ⇅ Z
X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ඌ ⟋ ⟍ ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z ⟍ ⟋ ⟍ X ⇅ X ⇅ X ⇅ ⟍ ⟋ ⇅ Z ⇅ Z ⇅ Z
X ⇅ X ⇅ X ⇅ ⇅ Z ⇅ Z ⇅ Z X ⇅ X ⇅ X ⇅ ඌ ⟋ ⟍ ⟋ ⟍ ⇅ /|\ ⇅ Z ⇅ Z ⇅ Z ⟍ ⟋ ⟍ ⟋ X ⇅ X ⇅ X ⇅ ⟍ ⟋ ⇅ Z ⇅ Z ⇅ Z
o Ⓩ o Ⓩ o Ⓩ o Ⓧ o Ⓧ o Ⓧ o Ⓧ o Ⓩ o Ⓩ o Ⓩ o Ⓧ o Ⓧ o Ⓧ o Ⓧ o Ⓩ o Ⓩ o Ⓩ o 18 code qubits and 17 syndrome qubits
₁ ₂ ₃ ₄ o Ⓩ o Ⓩ o Ⓩ o ₅ ₆ ₇ Ⓧ o Ⓧ o Ⓧ o Ⓧ ₈ ₉ ₁₀ ₁₁ o Ⓩ o Ⓩ o Ⓩ o ₁₂ ₁₃ ₁₄ Ⓧ o Ⓧ o Ⓧ o Ⓧ ₁₅ ₁₆ ₁₇ ₁₈ o Ⓩ o Ⓩ o Ⓩ o 18 code qubits and 17 syndrome qubits
Each syndrome qubit acts as an ancilla to do a Multi-qubit measurement using an ancilla of the XXXX and ZZZZ observables.
o o Ⓩ o o |+⟩ ---.---.---.---.---H---MZ | | | | |+⟩ ---.---|---|---|--------- | | | |+⟩ -------.---|---|--------- | | |+⟩ -----------.---|--------- | |+⟩ ---------------.---------
o o Ⓧ o o |+⟩ ---.---.---.---.---H---MZ | | | | |+⟩ ---X---|---|---|--------- | | | |+⟩ -------X---|---|--------- | | |+⟩ -----------X---|--------- | |+⟩ ---------------X---------
X and Z stabilizers commute if they share an even number of qubits: if to operators commutes then they can have common eigenstates o Ⓧ Ⓩ o the two data qubits can be in eigenstate +1 +1 or eigenstate +1 -1 or eigenstate -1 +1 or eigenstate -1 -1 the two qubits thus support two degrees of freedom Ⓩ o Ⓩ o Ⓧ o Ⓩ o Ⓩ o o Ⓧ o o Ⓩ o o [...Z₃Z₄, X₃X₄...] = 0
When an error happens o o Ⓩ o o |+⟩ ------.---.---.---.---H---MZ | | | | |+⟩ ---X--.---|---|---|--------- | | | |+⟩ ----------.---|---|--------- | | |+⟩ --------------.---|--------- | |+⟩ ------------------.---------
When an error happens o o Ⓩ o o |+⟩ ------.---.---.---.---H---MZ | | | | |+⟩ ------.-X-|---|---|--------- | | | |+⟩ ----------.---|---|--------- | | |+⟩ --------------.---|--------- | |+⟩ ------------------.--------- CZ becomes -CZ
When an error happens o o Ⓩ o o |+⟩ ------.---.---.---.---H---MZ | | | | |+⟩ ------.-X-|---|---|--------- | | | |+⟩ ----------.---|---|--------- | | |+⟩ --------------.---|--------- | |+⟩ ------------------.--------- CZ becomes -CZ. The -ve sign appears in the measurement outcome.
The measurement circuits are Stabilizer circuits. So the state of the surface after the measurements is a Stabilizer state.
How to encode a logical state in the surface? How to perform a logical gate on the state?
?There are 17 syndrome qubits. Each can have two outcomes. When the outcome is determined a degree of freedom becomes constrained. 2x17 degrees of freedom become constrained.?
“We note that each qubit has two degrees of freedom”
The degrees of freedom are constrained when the stabilizer measurements produce outcomes.
“The stabilizers in this array are linearly independent: No stabilizer can be written as a product of the other stabilizers. So these 2×17 constraints are all linearly independent.”
There are 18 data qubits. How many degrees of freedom do they support? 2x18. .. ?
“The two unconstrained degrees of freedom indicate that the array might serve as a single logical qubit.”
How to manipulate the additional degrees of freedom? How to maintain stabilizer outcomes change only when there is an error?
Logical X o Ⓩ o Ⓩ o Ⓩ o Ⓧ o Ⓧ o Ⓧ o Ⓧ X X X X o Ⓩ o Ⓩ o Ⓩ o Ⓧ o Ⓧ o Ⓧ o Ⓧ o Ⓩ o Ⓩ o Ⓩ o Note Z stabilizer outcomes unaffected because [...Z₃Z₄, X₃X₄...] = 0.
Logical Z Z o Ⓩ o Ⓩ o Ⓩ o Ⓧ o Ⓧ o Ⓧ o Ⓧ Z o Ⓩ o Ⓩ o Ⓩ o Ⓧ o Ⓧ o Ⓧ o Ⓧ Z o Ⓩ o Ⓩ o Ⓩ o
“Note that |ψX⟩
is not equal to |ψ⟩
, as we have bit-flipped five data qubits in going from |ψ⟩
to |ψX⟩
.
XL cannot be written as a product of stabilizers, so |ψX⟩
is not trivially related to |ψ⟩
(unless |ψ⟩
is an eigenstate of XL, namely |+L⟩
or |−L⟩
). The XL operator thus manipulates one of the two degrees of freedom of the array.”
/-- "so manipulate two independent degrees of freedom" -/
theorem XL_and_ZL_anti_commute :
begin
/-
ZL then XL
Z
o Ⓩ o Ⓩ o Ⓩ o
Ⓧ o Ⓧ o Ⓧ o Ⓧ
X X X Z X
o Ⓩ o Ⓩ o Ⓩ o
Ⓧ o Ⓧ o Ⓧ o Ⓧ
Z
o Ⓩ o Ⓩ o Ⓩ o
XL then ZL
Z
o Ⓩ o Ⓩ o Ⓩ o
Ⓧ o Ⓧ o Ⓧ o Ⓧ
X X Z X X
o Ⓩ o Ⓩ o Ⓩ o
Ⓧ o Ⓧ o Ⓧ o Ⓧ
Z
o Ⓩ o Ⓩ o Ⓩ o
XL*ZL = -ZL*XL because X*Z = -Z*X
-/
sorry
end
- “The logical operators XL and ZL can be implemented entirely in the classical control software. The operator is commuted through each subsequent logical operation in the algorithm until a measurement of the logical qubit is performed. The operator is applied to the measurement outcome: An XL would be applied by reversing the sign of a ZL measurement and doing nothing to an XL measurement.”
To Identify errors, we map “changes detected in the stabilizer outcomes to physical qubit errors.”
“The relation between PL and p depends very strongly on the distance d of the array: The minimum number of physical qubit bit-flips or phase-flips needed to define an XL or ZL operator.”
“For small p, PL is small, and gets exponentially smaller as d increases. For large p, PL is larger, and gets larger as d increases.
The cross-over between these two regimes occurs when p crosses a threshold error rate pth.”
“The logical error rate PL responds in a strikingly different way to different types of errors.”
“Errors that are not erased through the surface code measurement cycle cause changes in the quiescent state |ψ〉
, as indicated by changes in the stabilizer measurements. When the matching algorithm makes a mistake, a logical error occurs.”