In quantum computing and quantum communication, a stabilizer code is a class of quantum codes for performing quantum error correction. The toric code, and surface codes more generally,[1] are types of stabilizer codes considered very important for the practical realization of quantum information processing.
Quantum error-correcting codes restore a noisy,decohered quantum state to a pure quantum state. Astabilizer quantum error-correcting code appends ancilla qubitsto qubits that we want to protect. A unitary encoding circuit rotates theglobal state into a subspace of a larger Hilbert space. This highly entangled,encoded state corrects for local noisy errors. A quantum error-correcting code makes quantum computationand quantum communication practical by providing a way for a sender andreceiver to simulate a noiseless qubit channel given a noisy qubit channelwhose noise conforms to a particular error model. The first quantum error-correcting codes are strikingly similar to classical block codes in their operation and performance.
The stabilizer theory of quantum error correction allows one to import someclassical binary or quaternary codes for use as a quantum code. However, when importing theclassical code, it must satisfy the dual-containing (or self-orthogonality)constraint. Researchers have found many examples of classical codes satisfyingthis 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).
\Pi
\Pi=\left\{I,X,Y,Z\right\}
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} .
\Pi
\pm1
\Pin
n
\Pin=\left\{ \begin{array} [c]{c} ei\phiA1 ⊗ … ⊗ An:\forallj\in\left\{1,\ldots ,n\right\}Aj\in\Pi, \phi\in\left\{0,\pi/2,\pi,3\pi/2\right\} \end{array} \right\}.
\Pin
n
A1 … An\equivA1 ⊗ … ⊗ An.
n
\Pin
n
Let us define an
\left[n,k\right]
k
n
k/n
l{S}
n
\Pin
l{S}
-I ⊗
+1
2k
k
l{S}
n-k
\left\{g1,\ldots,gn-k | \foralli\in\left\{ 1,\ldots,n-k\right\}, gi\inl{S}\right\}.
The generators areindependent in the sense that none of them is a product of any other two (upto a global phase). The operators
g1,\ldots,gn-k
One of the fundamental notions in quantum error correction theory is that itsuffices to correct a discrete error set with support in the Pauli group
\Pin
l{E}
\Pin
l{E}\subset\Pin.
Because
l{E}
l{S}
\Pin
E\inl{E}
g
l{S}
E
g
l{S}
E
g
l{S}
r
E
r
n-k
E
g\inl{S}
E
g
l{S}
l{S}
l{S}
l{S}
E1,E2
l{E}
\dagger | |
E | |
1 |
E2\notinl{Z}\left(l{S}\right)
or
\dagger | |
E | |
1 |
E2\inl{S}
where
l{Z}\left(l{S} \right)
l{S}
l{S}
A simple example of a stabilizer code is a three qubit
\left[[3,1,3\right]]
k=1
n=3
\left\{ Xi\right\}
\left\{ Yi\right\}
\left\{ Zi\right\}
d=3
n-k=2
\begin{array} [c]{ccc} g1&=&Z&Z&I\\ g2&=&I&Z&Z\\ \end{array}
g1
g2
If there is a bit-flip error on the first encoded qubit, operator
g1
g2
g1
g2
g1
g2
See main article: Five-qubit error correcting code. An example of a stabilizer code is the five qubit
\left[[5,1,3\right]]
k=1
n=5
d=3
n-k=4
\begin{array} [c]{ccccccc} g1&=&X&Z&Z&X&I\\ g2&=&I&X&Z&Z&X\\ g3&=&X&I&X&Z&Z\\ g4&=&Z&X&I&X&Z \end{array}
\left\{ Xi,Yi,Zi\right\}
Ai
i
A simple but useful mapping exists between elements of
\Pi
\left(Z2\right)2
We first give the mapping for the one-qubit case. Suppose
\left[A\right]
A
\left[A\right]=\left\{\betaA | \beta\inC, \left\vert \beta\right\vert=1\right\}.
Let
\left[\Pi\right]
\left[\Pi\right]=\left\{\left[A\right] | A\in\Pi\right\}
N:\left(Z2\right)2 → \Pi
00\toI, 01\toX, 11\toY, 10\toZ
Suppose
u,v\in\left(Z2\right)2
u=\left(z|x\right)
v=\left(z\prime|x\prime \right)
z
x
z\prime
x\prime\inZ2
u=\left(0|1\right)
N\left(u\right)=X
N
\left[N\right]:\left(Z 2\right)2 → \left[\Pi\right]
\left(Z2\right)2
\left[N\left(u+v\right)\right]=\left[N\left(u\right)\right] \left[N\left(v\right)\right].
Let
\odot
u,v\in\left(Z2\right)2
u\odotv\equivzx\prime-xz\prime.
\odot
\Pi
N\left(u\right)N\left(v\right)=\left(-1\right)\left(N\left(v\right)N\left(u\right).
The symplectic product and the mapping
N
N
A=A1 ⊗ … ⊗ An
\Pin
n
\left[\Pin\right]=\left\{\left[ A\right] | A\in\Pin\right\}
\left[A\right]=\left\{\betaA | \beta\in C, \left\vert\beta\right\vert=1\right\}.
\ast
\left[A\right]\ast\left[B\right]\equiv\left[ A1\right]\ast\left[B1\right] ⊗ … ⊗ \left[ An\right]\ast\left[Bn\right]=\left[A1B1\right] ⊗ … ⊗ \left[AnBn\right] =\left[AB\right].
\left[\Pin\right]
\ast
2n
\left(Z2\right)2n=\left\{\left(z,x\right) :z,x\in\left(Z2\right)n\right\}.
(\left(Z2\right)2n,+)
+
u=\left(z|x\right),v=\left(z\prime|x\prime\right)
u,v\in\left(Z2\right)2n
z
x
\left(z1,\ldots ,zn\right)
\left(x1,\ldots,xn\right)
z\prime
x\prime
\odot
u
v
n | |
u\odotv\equiv\sum | |
i=1 |
zi
\prime | |
x | |
i |
-xi
\prime | |
z | |
i |
,
n | |
u\odotv\equiv\sum | |
i=1 |
ui\odotvi,
ui=\left(zi|xi\right)
vi=\left(
\prime | |
z | |
i |
\prime | |
|x | |
i |
\right)
N:\left(Z2\right)2n → \Pin
N\left(u\right)\equivN\left(u1\right) ⊗ … ⊗ N\left(un\right).
X\left(x\right)\equiv
x1 | |
X |
xn | |
⊗ … ⊗ X |
, Z\left(z\right)\equiv
z1 | |
Z |
zn | |
⊗ … ⊗ Z |
,
N\left(u\right)
Z\left(z\right)X\left(x\right)
\left[N\left(u\right)\right]=\left[Z \left(z\right)X\left(x\right)\right].
\left[N\right]:\left(Z2\right) 2n → \left[\Pin\right]
\left[N\left(u+v\right)\right]=\left[ N\left(u\right)\right]\left[N\left(v\right)\right],
u,v\in\left(Z2\right)2n
N\left(u\right)
N\left(v\right)
N\left(u\right)N\left(v\right)=\left(-1\right)\left(N\left(v\right)N\left(u\right).
By comparing quantum error correcting codes in this language to symplectic vector spaces, we can see the following. A symplectic subspace corresponds to a direct sum of Pauli algebras (i.e., encoded qubits), while an isotropic subspace corresponds to a set of stabilizers.