Stabilizer code: Difference between revisions

Content deleted Content added
m WPCleaner v1.27 - Repaired 3 links to disambiguation page - (You can help) - Abelian, Entangled, Phase
 
(46 intermediate revisions by 32 users not shown)
Line 1:
{{Short description|Quantum error correction code}}
{{Cleanup|date=March 2010}}
{{technical|date=April 2022}}
The theory of [[quantum error correction]] plays a prominent role in the practical realization and engineering of
 
[[quantum computing]] and [[quantum communication]] devices. The first quantum
In [[quantum computing]] and [[quantum communication]], a '''stabilizer code''' is a class of quantum [[code]]s for performing [[quantum error correction]]. The [[toric code]], and [[Toric code#Generalizations|surface codes]] more generally,<ref>{{cite web|access-date=2024-01-12|title=What is the "surface code" in the context of quantum error correction?|url=https://quantumcomputing.stackexchange.com/questions/2106/what-is-the-surface-code-in-the-context-of-quantum-error-correction|website=Quantum Computing Stack Exchange}}</ref> are types of stabilizer codes considered very important for the practical realization of quantum information processing.
error-correcting codes are strikingly similar to [[error correction|classical block codes]] in their
 
operation and performance. Quantum error-correcting codes restore a noisy,
== Conceptual background ==
 
operation and performance. Quantum error-correcting codes restore a noisy,
[[decoherence|decohered]] [[quantum state]] to a pure quantum state. A
[[Group_actionGroup action (mathematics)#Orbits_and_stabilizersOrbits and stabilizers|stabilizer]] quantum error-correcting code appends [[Ancilla (quantum computing)|ancilla qubits]]
to qubits that we want to protect. A unitary encoding circuit rotates the
global state into a subspace of a larger [[Hilbert space]]. This highly [[Quantum entanglement|entangled]],
encoded state corrects for local noisy errors. A quantum error-correcting code makes [[quantum computation]]
and [[quantum communication]] practical by providing a way for a sender and
receiver to simulate a [[noiseless qubit channel]] given a [[noisy qubit channel]]
whose noise conforms to a particular error model. The first quantum error-correcting codes are strikingly similar to [[error correction|classical block codes]] in their operation and performance.
that has a particular error model.
 
The stabilizer theory of [[quantum error correction]] allows one to import some
classical binary or quaternary codes for use as a quantum code. TheHowever, onlywhen importing the
classical code, it must satisfy the [[dual code|dual-containing]] (or [[dual code|self-orthogonality]])
"catch" when importing is that the
classical code must satisfy the [[dual code|dual-containing]] or [[dual code|self-orthogonality]]
constraint. Researchers have found many examples of classical codes satisfying
this constraint, but most classical codes do not. Nevertheless, it is still useful to import classical codes in this way (though, see how the [[entanglement-assisted stabilizer formalism]] overcomes this difficulty).
Line 22 ⟶ 24:
== Mathematical background ==
 
The Stabilizerstabilizer formalism exploits elements of
the [[Pauli group]] <math>\Pi</math> in formulating quantum error-correcting codes. The set
<math>\Pi=\left\{ I,X,Y,Z\right\} </math> consists of the [[Pauli operators]]:
Line 48 ⟶ 50:
.
</math>
The above operators act on a single [[qubit]]---a state represented by a vector in a two-dimensional
[[Hilbert space]]. Operators in <math>\Pi</math> have [[eigenvalues]] <math>\pm1</math> and either [[Commutative property|commute]]
or [[anti-commute]]. The set <math>\Pi^{n}</math> consists of <math>n</math>-fold [[tensor product]]s of
Line 61 ⟶ 63:
\right\} .
</math>
Elements of <math>\Pi^{n}</math> act on a [[quantum register]] of <math>n</math> [[qubit]]squbits. We
occasionally omit [[tensor product]] symbols in what follows so that
:<math>A_{1}\cdots A_{n}\equiv A_{1}\otimes\cdots\otimes A_{n}.</math>
The <math>n</math>-fold [[Pauli group]]
<math>\Pi^{n}</math> plays an important role for both the encoding circuit and the
error-correction procedure of a quantum stabilizer code over <math>n</math> [[qubit]]squbits.
 
== Definition ==
Line 73 ⟶ 75:
code to encode <math>k</math> logical qubits into <math>n</math> physical qubits. The rate of such a
code is <math>k/n</math>. Its stabilizer <math>\mathcal{S}</math> is an [[abelian group|abelian]] [[subgroup]] of the
<math>n</math>-fold Pauli group <math>\Pi^{n}</math>: <math>\mathcal{S}\subset\Pi^{n}</math>. <math>\mathcal{S}</math>
does not contain the operator <math>-I^{\otimes n}</math>. The simultaneous
<math>+1</math>-[[eigenspace]] of the operators constitutes the ''codespace''. The
codespace has dimension <math>2^{k}</math> so that we can encode <math>k</math> [[qubit]]squbits into it. The
stabilizer <math>\mathcal{S}</math> has a minimal [[Representation (mathematics)|representation]] in terms of <math>n-k</math>
independent generators
Line 83 ⟶ 85:
 
The generators are
independent in the sense that none of them isare a product of any other two (up
to a [[Quantum state|global phase]]). The operators <math>g_{1},\ldots,g_{n-k}</math> function in the same
way as a [[parity check matrix]] does for a classical [[linear block code]].
 
Line 90 ⟶ 92:
 
One of the fundamental notions in quantum error correction theory is that it
suffices to correct a [[Discrete set|discrete]] error set with [[Support (mathematics)|support]] in the [[Pauli group]]
<math>\Pi^{n}</math>. Suppose that the errors affecting an
encoded quantum state are a subset <math>\mathcal{E}</math> of the [[Pauli group]] <math>\Pi^{n}</math>:
:<math>\mathcal{E}\subset\Pi^{n}.</math>
 
AnBecause <math>\mathcal{E}</math> and <math>\mathcal{S}</math> are both subsets of <math>\Pi^{n}</math>, an error <math>E\in\mathcal{E}</math> that affects an
encoded quantum state either [[Commutative property|commute]]s or [[anticommute]]s with any particular
element <math>g</math> in <math>\mathcal{S}</math>. The error <math>E</math> is correctable if it
anticommutes with an element <math>g</math> in <math>\mathcal{S}</math>. An anticommuting error
<math>E</math> is detectable by [[quantum measurement|measuring]] each element <math>g</math> in <math>\mathcal{S}</math> and
computing a [[syndrome]] <math>\mathbf{r}</math> identifying <math>E</math>. The syndrome is a binary
vector <math>\mathbf{r}</math> with length <math>n-k</math> whose elements identify whether the
error <math>E</math> commutes or anticommutes with each <math>g\in\mathcal{S}</math>. An error
Line 115 ⟶ 117:
 
where <math>\mathcal{Z}\left( \mathcal{S}
\right) </math> is the [[centralizer]] of <math>\mathcal{S}</math> (i.e., the subgroup of elements that commute with all members of <math>\mathcal{S}</math>, also known as the commutant).
 
==ExampleSimple example of a stabilizer code==
== Relation between [[Pauli group]] and binary vectors ==
AnA simple example of a stabilizer code is thea fivethree qubit
<math>\left[[ 53,1,3\right]] </math> stabilizer code. It encodes <math>k=1</math> logical qubit
into <math>n=53</math> physical qubits and protects against an arbitrarya single-qubitbit flip
error in the set <math>\left\{
X_{i}\right\}</math>. This does not protect against other Pauli errors such as phase flip errors in the set <math>\left\{
Y_{i}\right\}</math>.or <math>\left\{
errorZ_{i}\right\}</math>. This has code distance <math>d=3</math>. Its stabilizer consists of <math>n-k=42</math> Pauli operators:
:<math>
\begin{array}
[c]{cccccccccc}
g_{1} & = & X & Z & Z & X & I\\
g_{2} & = & I & X & Z & Z & X\\
\end{array}
</math>
If there are no bit-flip errors, both operators <math>g_{1}</math> and <math>g_{2}</math> commute, the syndrome is +1,+1, and no errors are detected.
 
If there is a bit-flip error on the first encoded qubit, operator <math>g_{1}</math> will anti-commute and <math>g_{2}</math> commute, the syndrome is -1,+1, and the error is detected. If there is a bit-flip error on the second encoded qubit, operator <math>g_{1}</math> will anti-commute and <math>g_{2}</math> anti-commute, the syndrome is -1,-1, and the error is detected. If there is a bit-flip error on the third encoded qubit, operator <math>g_{1}</math> will commute and <math>g_{2}</math> anti-commute, the syndrome is +1,-1, and the error is detected.
 
==Example of a stabilizer code==
{{main|Five-qubit error correcting code}}
An example of a stabilizer code is the five qubit
<math>\left[[ 5,1,3\right]] </math> stabilizer code. It encodes <math>k=1</math> logical qubit
into <math>n=5</math> physical qubits and protects against an arbitrary single-qubit
error. It has code distance <math>d=3</math>. Its stabilizer consists of <math>n-k=4</math> Pauli operators:
:<math>
\begin{array}
[c]{ccccccc}
g_{31} & = & X & IZ & XZ & ZX & ZI\\
g_{42} & = & ZI & X & IZ & XZ & ZX\\
g_{3} & = & X & I & X & Z & Z\\
g_{4} & = & Z & X & I & X & Z
\end{array}
</math>
The above operators commute. Therefore, the codespace is the simultaneous
+1-eigenspace of the above operators. Suppose a single-qubit error occurs on
the encoded quantum register. A single-qubit error is in the set <math>\left\{
X_{i},Y_{i},Z_{i}\right\}</math> where <math>A_{i}</math> denotes a Pauli error on qubit <math>i</math>.
It is straightforward to verify that any arbitrary single-qubit error has a
unique syndrome. The receiver corrects any single-qubit error by identifying
the syndrome via a [[parity measurement]] and applying a corrective operation.
 
== Relation between [[Pauli group]] and binary vectors ==
 
A simple but useful mapping exists between elements of <math>\Pi</math> and the binary
[[vector space]] <math>\left( \mathbb{Z}_{2}\right) ^{2}</math>. This mapping gives a
simplification of quantum error correction theory. It represents quantum codes
with [[bit vector|binary vector]]s and [[binary operation]]s rather than with [[Pauli operator]]s and
[[matrix operation]]s respectively.
 
Line 132 ⟶ 176:
</math>
 
Let <math>\left[ \Pi\right] </math> be the set of phase-free [[Pauli operator]]soperators where
<math>\left[ \Pi\right] =\left\{ \left[ A\right] \ |\ A\in\Pi\right\} </math>.
Define the map <math>N:\left( \mathbb{Z}_{2}\right) ^{2}\rightarrow\Pi</math> as
Line 149 ⟶ 193:
_{2}\right) ^{2}\rightarrow\left[ \Pi\right] </math> because addition of vectors
in <math>\left( \mathbb{Z}_{2}\right) ^{2}</math> is equivalent to multiplication of
[[Pauli operator]]soperators up to a [[global phase]]:
:<math>
\left[ N\left( u+v\right) \right] =\left[ N\left( u\right) \right]
Line 160 ⟶ 204:
u\odot v\equiv zx^{\prime}-xz^{\prime}.
</math>
The [[symplectic product]] <math>\odot</math> gives the [[Commutative property|commutation]] relations of elements of
<math>\Pi</math>:
:<math>
Line 167 ⟶ 211:
</math>
 
The [[symplectic product]] and the mapping <math>N</math> thus give a useful way to phrase
Pauli relations in terms of [[Boolean algebra (logic)|binary algebra]].
The extension of the above definitions and mapping <math>N</math> to multiple [[qubit]]squbits is
straightforward. Let <math>\mathbf{A}=A_{1}\otimes\cdots\otimes A_{n}</math> denote an
arbitrary element of <math>\Pi^{n}</math>. We can similarly define the phase-free
Line 179 ⟶ 223:
</math>
 
The [[group operation]] <math>\ast</math> for the above [[equivalence class]] is as follows:
:<math> \left[ \mathbf{A}\right] \ast\left[ \mathbf{B}\right] \equiv\left[
A_{1}\right] \ast\left[ B_{1}\right] \otimes\cdots\otimes\left[
Line 185 ⟶ 229:
=\left[ \mathbf{AB}\right] .
</math>
The [[equivalence class]] <math>\left[ \Pi^{n}\right] </math> forms a [[commutative group]]
under operation <math>\ast</math>. Consider the <math>2n</math>-dimensional [[vector space]]
:<math>
Line 191 ⟶ 235:
:\mathbf{z},\mathbf{x}\in\left( \mathbb{Z}_{2}\right) ^{n}\right\} .
</math>
It forms the [[commutative group]] <math>(\left( \mathbb{Z}_{2}\right) ^{2n},+)</math> with
operation <math>+</math> defined as binary vector addition. We employ the notation
<math>\mathbf{u}=\left( \mathbf{z}|\mathbf{x}\right) ,\mathbf{v}=\left(
Line 199 ⟶ 243:
,z_{n}\right) </math> and <math>\left( x_{1},\ldots,x_{n}\right) </math> respectively with
similar representations for <math>\mathbf{z}^{\prime}</math> and <math>\mathbf{x}^{\prime}</math>.
The \textit{''symplectic product}'' <math>\odot</math> of <math>\mathbf{u}</math> and <math>\mathbf{v}</math> is
:<math>
\mathbf{u}\odot\mathbf{v\equiv}\sum_{i=1}^{n}z_{i}x_{i}^{\prime}-x_{i}
Line 231 ⟶ 275:
The map <math>\left[ \mathbf{N}\right] :\left( \mathbb{Z}_{2}\right)
^{2n}\rightarrow\left[ \Pi^{n}\right] </math> is an [[isomorphism]] for the same
reason given as in the previous case:
:<math>
\left[ \mathbf{N}\left( \mathbf{u+v}\right) \right] =\left[
Line 246 ⟶ 290:
</math>
The above binary representation and [[symplectic algebra]] are useful in making
the relation between classical linear [[error correction]] and [[quantum error correction]] more explicit.
 
By comparing quantum error correcting codes in this language to [[symplectic vector space]]s, we can see the following. A [[Symplectic vector space#Subspaces|symplectic]] subspace corresponds to a [[direct sum]] of Pauli algebras (i.e., encoded qubits), while an [[Symplectic vector space#Subspaces|isotropic]] subspace corresponds to a set of stabilizers.
==Example of a stabilizer code==
 
An example of a stabilizer code is the five qubit
<math>\left[ 5,1\right] </math> stabilizer code. It encodes <math>k=1</math> logical qubit
into <math>n=5</math> physical qubits and protects against an arbitrary single-qubit
error. Its stabilizer consists of <math>n-k=4</math> Pauli operators:
:<math>
\begin{array}
[c]{ccccccc}
g_{1} & = & X & Z & Z & X & I\\
g_{2} & = & I & X & Z & Z & X\\
g_{3} & = & X & I & X & Z & Z\\
g_{4} & = & Z & X & I & X & Z
\end{array}
</math>
The above operators commute. Therefore the codespace is the simultaneous
+1-eigenspace of the above operators. Suppose a single-qubit error occurs on
the encoded quantum register. A single-qubit error is in the set <math>\left\{
X_{i},Y_{i},Z_{i}\right\}</math> where <math>A_{i}</math> denotes a Pauli error on qubit <math>i</math>.
It is straightforward to verify that any arbitrary single-qubit error has a
unique syndrome. The receiver corrects any single-qubit error by identifying
the syndrome and applying a corrective operation.
 
==References==
{{Reflist}}
 
* D. Gottesman, "Stabilizer codes and quantum error correction," quant-ph/9705052, Caltech Ph.D. thesis. httphttps://arxiv.org/abs/quant-ph/9705052
* P.{{cite journal | last=Shor | first=Peter W. Shor,| “Schemetitle=Scheme for reducing decoherence in quantum computer memory,” Phys.| Rev.journal=Physical Review A, vol.| publisher=American Physical Society (APS) | volume=52, no.| issue=4, pp| date=1995-10-01 | issn=1050-2947 | doi=10.1103/physreva.52.r2493 | pages=R2493–R2496,| Octpmid=9912632 1995| bibcode=1995PhRvA..52.2493S }}
* {{cite journal | last1=Calderbank | first1=A. R. Calderbank| andlast2=Shor P.| first2=Peter W. Shor,| “Goodtitle=Good quantum error-correcting codes exist,” Phys.| Rev.journal=Physical Review A, vol.| publisher=American Physical Society (APS) | volume=54, no.| issue=2, pp.| 1098–1105,date=1996-08-01 Aug| 1996issn=1050-2947 | doi=10.1103/physreva.54.1098 Available| atpages=1098–1105| http://pmid=9913578 |arxiv.org/abs/=quant-ph/9512032| bibcode=1996PhRvA..54.1098C | s2cid=11524969 }}
* {{cite journal | last=Steane | first=A. M. | title=Error Correcting Codes in Quantum Theory | journal=Physical Review Letters | publisher=American Physical Society (APS) | volume=77 | issue=5 | date=1996-07-29 | issn=0031-9007 | doi=10.1103/physrevlett.77.793 | pages=793–797| pmid=10062908 | bibcode=1996PhRvL..77..793S }}
* A. M. Steane, “Error correcting codes in quantum theory,” Phys. Rev. Lett., vol. 77, no. 5, pp. 793–797, Jul 1996.
* A. Calderbank, E. Rains, P. Shor, and N. Sloane, “Quantum error correction via codes over GF(4),” IEEE Trans. Inf. Theory, vol. 44, pp. &nbsp;1369–1387, 1998. Available at httphttps://arxiv.org/abs/quant-ph/9608006
 
{{Quantum computing}}
 
{{Quantum computing}}
[[Category:Linear algebra]]
[[Category:Quantum computing]]