Stabilizer code: Difference between revisions

Content deleted Content added
m Disambiguate Vector to vector space using popups
 
(101 intermediate revisions by 52 users not shown)
Line 1:
{{Short description|Quantum error correction code}}
{{Expand|article|date=April 2007}}
{{technical|date=April 2022}}
 
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.
{{expert-subject|Mathematics}}
 
== Conceptual background ==
An <math>[n,k]</math> '''stabilizer code''' is defined to be the [[vector space]] <math>V_S</math> stabilized by a subgroup <math>S</math> of <math>G_n</math> such that <math>-I\notin S</math> and <math>S</math> has <math>n-k</math> independent and commuting generators, <math>S=\langle g_1,\ldots,g_{n-k}\rangle</math>. Denote this code <math>C(S)</math>.
 
Quantum error-correcting codes restore a noisy,
{{unreferenced|date=June 2007}}
[[decoherence|decohered]] [[quantum state]] to a pure quantum state. A
{{Uncategorized|date=June 2007}}
[[Group action (mathematics)#Orbits 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.
 
The stabilizer theory of [[quantum error correction]] allows one to import some
{{math-stub}}
classical binary or quaternary codes for use as a quantum code. However, when importing the
classical code, it must satisfy the [[dual code|dual-containing]] (or 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).
 
== Mathematical background ==
 
The stabilizer 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]]:
:<math>
I\equiv
\begin{bmatrix}
1 & 0\\
0 & 1
\end{bmatrix}
,\ X\equiv
\begin{bmatrix}
0 & 1\\
1 & 0
\end{bmatrix}
,\ Y\equiv
\begin{bmatrix}
0 & -i\\
i & 0
\end{bmatrix}
,\ Z\equiv
\begin{bmatrix}
1 & 0\\
0 & -1
\end{bmatrix}
.
</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
[[Pauli operator]]s:
:<math>
\Pi^{n}=\left\{
\begin{array}
[c]{c}
e^{i\phi}A_{1}\otimes\cdots\otimes A_{n}:\forall j\in\left\{ 1,\ldots
,n\right\} A_{j}\in\Pi,\ \ \phi\in\left\{ 0,\pi/2,\pi,3\pi/2\right\}
\end{array}
\right\} .
</math>
Elements of <math>\Pi^{n}</math> act on a [[quantum register]] of <math>n</math> qubits. 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> qubits.
 
== Definition ==
 
Let us define an <math>\left[ n,k\right] </math> stabilizer quantum error-correcting
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}</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> qubits into it. The
stabilizer <math>\mathcal{S}</math> has a minimal [[Representation (mathematics)|representation]] in terms of <math>n-k</math>
independent generators
:<math>\left\{ g_{1},\ldots,g_{n-k}\ |\ \forall i\in\left\{
1,\ldots,n-k\right\} ,\ g_{i}\in\mathcal{S}\right\} .</math>
 
The generators are
independent in the sense that none of them are 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]].
 
== Stabilizer error-correction conditions ==
 
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>
 
Because <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
<math>E</math> that commutes with every element <math>g</math> in <math>\mathcal{S}</math> is correctable if
and only if it is in <math>\mathcal{S}</math>. It corrupts the encoded state if it
commutes with every element of <math>\mathcal{S}</math> but does not lie in <math>\mathcal{S}
</math>. So we compactly summarize the stabilizer error-correcting conditions: a
stabilizer code can correct any errors <math>E_{1},E_{2}</math> in <math>\mathcal{E}</math> if
:<math>E_{1}^{\dagger}E_{2}\notin\mathcal{Z}\left( \mathcal{S}\right) </math>
 
or
 
:<math>E_{1}^{\dagger}E_{2}\in\mathcal{S}</math>
 
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).
 
==Simple example of a stabilizer code==
A simple example of a stabilizer code is a three qubit
<math>\left[[ 3,1,3\right]] </math> stabilizer code. It encodes <math>k=1</math> logical qubit
into <math>n=3</math> physical qubits and protects against a single-bit 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\{
Z_{i}\right\}</math>. This has code distance <math>d=3</math>. Its stabilizer consists of <math>n-k=2</math> Pauli operators:
:<math>
\begin{array}
[c]{ccc}
g_{1} & = & Z & Z & I\\
g_{2} & = & I & Z & Z\\
\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_{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 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.
 
We first give the mapping for the one-qubit case. Suppose <math>\left[ A\right] </math>
is a set of [[equivalence class]]es of an [[Operator (physics)|operator]] <math>A</math> that have the same [[phase (waves)|phase]]:
:<math>
\left[ A\right] =\left\{ \beta A\ |\ \beta\in\mathbb{C},\ \left\vert
\beta\right\vert =1\right\} .
</math>
 
Let <math>\left[ \Pi\right] </math> be the set of phase-free Pauli operators 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
:<math>
00 \to I, \,\,
01 \to X, \,\,
11 \to Y, \,\,
10 \to Z
</math>
 
Suppose <math>u,v\in\left( \mathbb{Z}_{2}\right) ^{2}</math>. Let us employ the
shorthand <math>u=\left( z|x\right) </math> and <math>v=\left( z^{\prime}|x^{\prime
}\right) </math> where <math>z</math>, <math>x</math>, <math>z^{\prime}</math>, <math>x^{\prime}\in\mathbb{Z}_{2}</math>. For
example, suppose <math>u=\left( 0|1\right) </math>. Then <math>N\left( u\right) =X</math>. The
map <math>N</math> induces an [[isomorphism]] <math>\left[ N\right] :\left( \mathbb{Z}
_{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 operators up to a global phase:
:<math>
\left[ N\left( u+v\right) \right] =\left[ N\left( u\right) \right]
\left[ N\left( v\right) \right] .
</math>
 
Let <math>\odot</math> denote the [[symplectic product]] between two elements <math>u,v\in\left(
\mathbb{Z}_{2}\right) ^{2}</math>:
:<math>
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>
N\left( u\right) N\left( v\right) =\left( -1\right) ^{\left( u\odot
v\right) }N\left( v\right) N\left( u\right) .
</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 qubits 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
<math>n</math>-qubit Pauli group <math>\left[ \Pi^{n}\right] =\left\{ \left[
\mathbf{A}\right] \ |\ \mathbf{A}\in\Pi^{n}\right\} </math> where
:<math>
\left[ \mathbf{A}\right] =\left\{ \beta\mathbf{A}\ |\ \beta\in
\mathbb{C},\ \left\vert \beta\right\vert =1\right\} .
</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[
A_{n}\right] \ast\left[ B_{n}\right] =\left[ A_{1}B_{1}\right] \otimes\cdots\otimes\left[ A_{n}B_{n}\right]
=\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>
\left( \mathbb{Z}_{2}\right) ^{2n}=\left\{ \left( \mathbf{z,x}\right)
:\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(
\mathbf{z}^{\prime}|\mathbf{x}^{\prime}\right) </math> to represent any vectors
<math>\mathbf{u,v}\in\left( \mathbb{Z}_{2}\right) ^{2n}</math> respectively. Each
vector <math>\mathbf{z}</math> and <math>\mathbf{x}</math> has elements <math>\left( z_{1},\ldots
,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 ''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}
z_{i}^{\prime},
</math>
or
:<math>
\mathbf{u}\odot\mathbf{v\equiv}\sum_{i=1}^{n}u_{i}\odot v_{i},
</math>
where <math>u_{i}=\left( z_{i}|x_{i}\right) </math> and <math>v_{i}=\left( z_{i}^{\prime
}|x_{i}^{\prime}\right) </math>. Let us define a map <math>\mathbf{N}:\left(
\mathbb{Z}_{2}\right) ^{2n}\rightarrow\Pi^{n}</math> as follows:
:<math>
\mathbf{N}\left( \mathbf{u}\right) \equiv N\left( u_{1}\right)
\otimes\cdots\otimes N\left( u_{n}\right) .
</math>
Let
:<math>
\mathbf{X}\left( \mathbf{x}\right) \equiv X^{x_{1}}\otimes\cdots\otimes
X^{x_{n}}, \,\,\,\,\,\,\,
\mathbf{Z}\left( \mathbf{z}\right) \equiv Z^{z_{1}}\otimes\cdots\otimes
Z^{z_{n}},
</math>
so that <math>\mathbf{N}\left( \mathbf{u}\right) </math> and <math>\mathbf{Z}\left(
\mathbf{z}\right) \mathbf{X}\left( \mathbf{x}\right) </math> belong to the same
[[equivalence class]]:
:<math>
\left[ \mathbf{N}\left( \mathbf{u}\right) \right] =\left[ \mathbf{Z}
\left( \mathbf{z}\right) \mathbf{X}\left( \mathbf{x}\right) \right] .
</math>
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[
\mathbf{N}\left( \mathbf{u}\right) \right] \left[ \mathbf{N}\left(
\mathbf{v}\right) \right] ,
</math>
where <math>\mathbf{u,v}\in\left( \mathbb{Z}_{2}\right) ^{2n}</math>. The [[symplectic product]]
captures the commutation relations of any operators <math>\mathbf{N}\left(
\mathbf{u}\right) </math> and <math>\mathbf{N}\left( \mathbf{v}\right) </math>:
:<math>
\mathbf{N\left( \mathbf{u}\right) N}\left( \mathbf{v}\right) =\left(
-1\right) ^{\left( \mathbf{u}\odot\mathbf{v}\right) }\mathbf{N}\left(
\mathbf{v}\right) \mathbf{N}\left( \mathbf{u}\right) .
</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.
 
==References==
{{Reflist}}
 
* D. Gottesman, "Stabilizer codes and quantum error correction," quant-ph/9705052, Caltech Ph.D. thesis. https://arxiv.org/abs/quant-ph/9705052
* {{cite journal | last=Shor | first=Peter W. | title=Scheme for reducing decoherence in quantum computer memory | journal=Physical Review A | publisher=American Physical Society (APS) | volume=52 | issue=4 | date=1995-10-01 | issn=1050-2947 | doi=10.1103/physreva.52.r2493 | pages=R2493–R2496| pmid=9912632 | bibcode=1995PhRvA..52.2493S }}
* {{cite journal | last1=Calderbank | first1=A. R. | last2=Shor | first2=Peter W. | title=Good quantum error-correcting codes exist | journal=Physical Review A | publisher=American Physical Society (APS) | volume=54 | issue=2 | date=1996-08-01 | issn=1050-2947 | doi=10.1103/physreva.54.1098 | pages=1098–1105| pmid=9913578 |arxiv=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. 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 https://arxiv.org/abs/quant-ph/9608006
 
{{Quantum computing}}
 
[[Category:Linear algebra]]
[[Category:Quantum computing]]