|
|
|
|
@@ -91,13 +91,13 @@ We can arrange the coefficients of these equations in a
|
|
|
|
|
equivalently define the code as \cite[Sec.~3.1.1]{ryan_channel_2009}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\mathcal{C} := \text{kern}(\bm{H}) = \left\{ \bm{x} \in \mathbb{F}_2^n :
|
|
|
|
|
\bm{H}\bm{x}^\text{T} = \bm{0} \right\}
|
|
|
|
|
\bm{H}\bm{x}^\mathsf{T} = \bm{0} \right\}
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
In general, we have linearly dependent parity checks,
|
|
|
|
|
prompting us to define the \ac{pcm} as $\bm{H} \in
|
|
|
|
|
\mathbb{F}_2^{m\times n}$ with $\hspace{2mm} m \ge n-k$ instead.
|
|
|
|
|
The \textit{syndrome} $\bm{s} = \bm{H} \bm{v}^\text{T}$ describes
|
|
|
|
|
The \textit{syndrome} $\bm{s} = \bm{H} \bm{v}^\mathsf{T}$ describes
|
|
|
|
|
which parity checks a vector $\bm{v} \in \mathbb{F}_2^n$ violates.
|
|
|
|
|
The representation using the \ac{pcm} has the benefit of providing a
|
|
|
|
|
description of the code, the memory complexity of which does not grow
|
|
|
|
|
@@ -601,7 +601,7 @@ decoding of subsequent blocks \cite[Sec.~III.~C.]{hassan_fully_2016}.
|
|
|
|
|
\label{sec:Quantum Mechanics and Quantum Information Science}
|
|
|
|
|
|
|
|
|
|
Designing codes and decoders for \ac{qec} is generally performed on a
|
|
|
|
|
layer of abstraction far removed from the quantum mechanical
|
|
|
|
|
layer of mathematical abstraction far removed from the quantum mechanical
|
|
|
|
|
processes underlying the actual physics.
|
|
|
|
|
Nevertheless, having a fundamental understanding of the related
|
|
|
|
|
quantum mechanical concepts is useful to grasp the unique constraints
|
|
|
|
|
@@ -621,39 +621,41 @@ function and the observable world:
|
|
|
|
|
$\lvert \psi (x,t) \rvert^2$ is the \ac{pdf} of finding a particle at
|
|
|
|
|
position $x$ and time $t$ \cite[Sec.~1.2]{griffiths_introduction_1995}.
|
|
|
|
|
Note that this presupposes a normalization of $\psi$ such that
|
|
|
|
|
$\int_{-\infty}^{\infty} \lvert \psi(x,t) \rvert^2 dx = 1$.
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\int_{-\infty}^{\infty} \lvert \psi(x,t) \rvert^2 dx = 1
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
|
|
|
|
|
% Dirac notation
|
|
|
|
|
|
|
|
|
|
Much of the related mathematics can be very elegantly expressed
|
|
|
|
|
using the language of linear algebra.
|
|
|
|
|
The so-called Bra-ket or Dirac notation is especially appropriate,
|
|
|
|
|
having been proposed by Paul Dirac in 1939 for the express purpose
|
|
|
|
|
of simplifying quantum mechanical notation \cite{dirac_new_1939}.
|
|
|
|
|
Two new symbols are defined, \emph{bra}s $\bra{\cdot}$ and
|
|
|
|
|
\emph{ket}s $\ket{\cdot}$.
|
|
|
|
|
The language of linear algebra allows one to express the related
|
|
|
|
|
mathematics particularly elegantly.
|
|
|
|
|
The so-called Bra-ket or Dirac notation, introducced
|
|
|
|
|
by Paul Dirac in 1939 for the express purpose of simplifying quantum
|
|
|
|
|
mechanical notation \cite{dirac_new_1939}, is especially appropriate.
|
|
|
|
|
Two new symbols are defined, \emph{bra} $\bra{\cdot}$ and
|
|
|
|
|
\emph{ket} $\ket{\cdot}$.
|
|
|
|
|
Kets denote column vectors, while bras denote their Hermitian conjugates.
|
|
|
|
|
For example, two vectors specified by the labels $a$ and $b$
|
|
|
|
|
respectively are written as $\ket{a}$ and $\ket{b}$.
|
|
|
|
|
For example, two vectors specified by the labels $a$ and $b$,
|
|
|
|
|
respectively, are written as $\ket{a}$ and $\ket{b}$.
|
|
|
|
|
Their inner product is $\braket{a\vert b}$.
|
|
|
|
|
|
|
|
|
|
% Expressing wave functions using linear algebra
|
|
|
|
|
|
|
|
|
|
The connection we will make between quantum mechanics and linear
|
|
|
|
|
algebra is that we will model the state space of a system as a
|
|
|
|
|
\emph{function space}, the Hilbert space $L_2$.
|
|
|
|
|
We will represent the state of a particle with wave function
|
|
|
|
|
$\psi(x,t)$ using the vector $\ket{\psi}$
|
|
|
|
|
\cite[Sec.~3.3]{griffiths_introduction_1995}.
|
|
|
|
|
\emph{function space}, namely the Hilbert space $L_2$.
|
|
|
|
|
The state of a particle with wave function $\psi(x,t)$ is represented
|
|
|
|
|
by the vector $\ket{\psi}$ \cite[Sec.~3.3]{griffiths_introduction_1995}.
|
|
|
|
|
|
|
|
|
|
% Operators
|
|
|
|
|
|
|
|
|
|
Another important notion is that of an \emph{operator}, a transformation
|
|
|
|
|
that takes a function as an input and returns another function as an
|
|
|
|
|
output \cite[Sec.~3.2.2]{griffiths_introduction_1995}.
|
|
|
|
|
that maps a function onto another function
|
|
|
|
|
\cite[Sec.~3.2.2]{griffiths_introduction_1995}.
|
|
|
|
|
A prominent example of this is the differential operator $\partial x$.
|
|
|
|
|
Operators are useful to describe the relations between different
|
|
|
|
|
quantities relating to a particle.
|
|
|
|
|
An example of this is the differential operator $\partial x$.
|
|
|
|
|
We define the \emph{commutator} of two operators $P_1$ and $P_2$ as
|
|
|
|
|
\begin{align*}
|
|
|
|
|
[P_1,P_2] = P_1P_2 - P_2P_1
|
|
|
|
|
@@ -672,22 +674,21 @@ We say the two operators \emph{commute} iff $[P_1,P_2] = 0$, and they
|
|
|
|
|
|
|
|
|
|
% Observable quantities
|
|
|
|
|
|
|
|
|
|
An \emph{observable quantity} $Q(x,p,t)$ is a quantity of a quantum
|
|
|
|
|
mechanical system that we can measure, such as the position $x$ or
|
|
|
|
|
An \emph{observable} $Q(x,p,t)$ is a quantity of a quantum
|
|
|
|
|
mechanical system that we can measure, e.g., the position $x$ or
|
|
|
|
|
momentum $p$ of a particle.
|
|
|
|
|
In general, such measurements are not deterministic, i.e.,
|
|
|
|
|
measurements on identically prepared states can yield different results.
|
|
|
|
|
There are some states, however, that are \emph{determinate} for a
|
|
|
|
|
specific observable: measuring those will always yield identical
|
|
|
|
|
observations \cite[Sec.~3.3]{griffiths_introduction_1995}.
|
|
|
|
|
However, some states are \emph{determinate} for a
|
|
|
|
|
specific observable: Measuring those will always yield identical
|
|
|
|
|
outcomes \cite[Sec.~3.3]{griffiths_introduction_1995}.
|
|
|
|
|
|
|
|
|
|
% General expression for expected value of observable quantity
|
|
|
|
|
|
|
|
|
|
If we know the wave function of a particle, we should be able to
|
|
|
|
|
compute the expected value $\braket{Q}$ of any observable quantity we wish.
|
|
|
|
|
It can be shown that for any $Q$, we can find a
|
|
|
|
|
corresponding Hermitian operator $\hat{Q}$ such that
|
|
|
|
|
\cite[Sec.~3.3]{griffiths_introduction_1995}
|
|
|
|
|
If the wave function of a particle is known, the expected value
|
|
|
|
|
$\braket{Q}$ of any observable quantity can be computed.
|
|
|
|
|
Indeed, for any $Q$, there exists a corresponding Hermitian operator
|
|
|
|
|
$\hat{Q}$ such that \cite[Sec.~3.3]{griffiths_introduction_1995}
|
|
|
|
|
\begin{align}
|
|
|
|
|
\label{eq:gen_expr_Q_exp}
|
|
|
|
|
\braket{Q} = \int_{-\infty}^{\infty} \psi^*(x,t) \hat{Q} \psi(x,t) dx
|
|
|
|
|
@@ -703,9 +704,9 @@ operator to $\hat{Q} = x$, we can write
|
|
|
|
|
= \int_{-\infty}^{\infty} x \lvert \psi(x,t) \rvert ^2 dx
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
Note that $\lvert \psi(x,t) \rvert^2 $ represents the \ac{pdf} of
|
|
|
|
|
finding a particle in a specific state. We immediately see that the
|
|
|
|
|
formula simplifies to the direct calculation of the expected value.
|
|
|
|
|
Note that $\lvert \psi(x,t) \rvert^2 $ is the \ac{pdf} of
|
|
|
|
|
finding a particle at position $x$. Hence, we immediately see that
|
|
|
|
|
the formula simplifies to the direct calculation of the expected value.
|
|
|
|
|
|
|
|
|
|
% Determinate states and eigenvalues
|
|
|
|
|
|
|
|
|
|
@@ -719,40 +720,40 @@ We begin by translating \Cref{eq:gen_expr_Q_exp} into linear algebra as
|
|
|
|
|
.%
|
|
|
|
|
\end{align}
|
|
|
|
|
\Cref{eq:gen_expr_Q_exp_lin} expresses an inherently probabilistic
|
|
|
|
|
relationship.
|
|
|
|
|
The determinate states are inherently deterministic.
|
|
|
|
|
relationship, whereas the determinate states are inherently deterministic.
|
|
|
|
|
To relate the two, we note that since determinate states should
|
|
|
|
|
always yield the same measurement results, the variance of the
|
|
|
|
|
observable should be zero.
|
|
|
|
|
observable must be zero.
|
|
|
|
|
We thus compute \cite[Eq.~3.116]{griffiths_introduction_1995}
|
|
|
|
|
\begin{align}
|
|
|
|
|
0 &\overset{!}{=} \braket{(Q - \braket{Q})^2}
|
|
|
|
|
= \braket{e_n \vert (\hat{Q} - \braket{Q})^2 e_n} \nonumber\\
|
|
|
|
|
&= \braket{(Q - \braket{Q})e_n \vert (\hat{Q} - \braket{Q})
|
|
|
|
|
&= \braket{(\hat{Q} - \braket{Q})e_n \vert (\hat{Q} - \braket{Q})
|
|
|
|
|
e_n} \nonumber\\
|
|
|
|
|
&= \lVert (Q - \braket{Q}) e_n \rVert^2 \nonumber\\[3mm]
|
|
|
|
|
&\hspace{-8mm}\Leftrightarrow (\hat{Q} - \braket{Q}) \ket{e_n} =
|
|
|
|
|
0 \nonumber\\
|
|
|
|
|
&= \lVert (\hat{Q} - \braket{Q}) e_n \rVert^2 \nonumber\\[3mm]
|
|
|
|
|
&\hspace{-14mm}\iff (\hat{Q} - \braket{Q}) \ket{e_n}
|
|
|
|
|
= 0 \nonumber\\
|
|
|
|
|
\label{eq:observable_eigenrelation}
|
|
|
|
|
&\hspace{-8mm}\Leftrightarrow \hat{Q}\ket{e_n}
|
|
|
|
|
&\hspace{-14mm}\iff \hat{Q}\ket{e_n}
|
|
|
|
|
= \underbrace{\braket{Q}}_{\lambda_n} \ket{e_n}
|
|
|
|
|
.%
|
|
|
|
|
\end{align}%
|
|
|
|
|
%
|
|
|
|
|
Because we have assumed the variance to be zero, the expected value
|
|
|
|
|
$\braket{Q}$ is now the deterministic measurement result
|
|
|
|
|
By setting the variance to zero, the expected value
|
|
|
|
|
$\braket{Q}$ becomes a deterministic measurement result
|
|
|
|
|
corresponding to the determinate state
|
|
|
|
|
$\ket{e_n},~n\in \mathbb{N}$.
|
|
|
|
|
We can see that the determinate states are the \emph{eigenstates} of
|
|
|
|
|
the observable operator $\hat{Q}$ and that the measurement values are
|
|
|
|
|
the corresponding \emph{eigenvalues} $\lambda_n$
|
|
|
|
|
The determinate states are precisely the \emph{eigenstates} of
|
|
|
|
|
the observable operator $\hat{Q}$, and the associated measurement
|
|
|
|
|
values are the corresponding \emph{eigenvalues} $\lambda_n$
|
|
|
|
|
\cite[Sec.~3.3]{griffiths_introduction_1995}.
|
|
|
|
|
|
|
|
|
|
% Determinate states as a basis
|
|
|
|
|
|
|
|
|
|
As we are modelling the wave function $\psi(x,t)$ as a vector
|
|
|
|
|
As we model the wave function $\psi(x,t)$ as a vector
|
|
|
|
|
$\ket{\psi}$, we can find a set of basis vectors to decompose it into.
|
|
|
|
|
We can use the determinate states for this purpose, expressing the state as%
|
|
|
|
|
In particular, we can use the determinate states for this purpose,
|
|
|
|
|
expressing the state as%
|
|
|
|
|
\footnote{
|
|
|
|
|
We only consider the case of having a \emph{discrete
|
|
|
|
|
spectrum} here, i.e., having a discrete set of eigenvalues and vectors.
|
|
|
|
|
@@ -790,7 +791,7 @@ $Q(x,t,p)$ using a corresponding operator $\hat{Q}$, which allows us
|
|
|
|
|
to compute the expected value as $\braket{Q} = \braket{\psi
|
|
|
|
|
\vert \hat{Q} \psi}$.
|
|
|
|
|
The eigenvectors of $\hat{Q}$ are the determinate states
|
|
|
|
|
$\ket{e_n},~n\in \mathbb{N}$ and the eigenvalues are the respective
|
|
|
|
|
$\ket{e_n},~n\in \mathbb{N}$, and the eigenvalues are the respective
|
|
|
|
|
measurement outcomes.
|
|
|
|
|
We can decompose an arbitrary state as $\ket{\psi} = \sum_{n=1}^{\infty} c_n
|
|
|
|
|
\ket{e_n}$, where $\lvert c_n \rvert ^2$ represents the probability
|
|
|
|
|
@@ -808,16 +809,16 @@ The measurements we considered in the previous section, for which
|
|
|
|
|
\Cref{eq:gen_expr_Q_exp_lin} holds, belong to the category of
|
|
|
|
|
\emph{projective measurements}.
|
|
|
|
|
For these, certain restrictions such as repeatability apply: the act
|
|
|
|
|
of measuring a quantum state should \emph{collapse} it onto one of
|
|
|
|
|
of measuring a quantum state \emph{collapses} it onto one of
|
|
|
|
|
the determinate states.
|
|
|
|
|
Further measurements should then yield the same value.
|
|
|
|
|
More general methods of modelling measurements exist, e.g., describing
|
|
|
|
|
Further measurements then yield the same value.
|
|
|
|
|
More general methods of modelling measurements exist, e.g.,
|
|
|
|
|
destructive measurements \cite[Box~2.5]{nielsen_quantum_2010}, but
|
|
|
|
|
they are not relevant to this work.
|
|
|
|
|
|
|
|
|
|
% Projection operators
|
|
|
|
|
|
|
|
|
|
We can model the collapse of the original state onto one of the
|
|
|
|
|
We model the collapse of the original state onto one of the
|
|
|
|
|
superimposed basis states as a \emph{projection}.
|
|
|
|
|
To see this, we use
|
|
|
|
|
\Cref{eq:determinate_basis,eq:observable_eigenrelation} to compute
|
|
|
|
|
@@ -836,9 +837,9 @@ the separate components as
|
|
|
|
|
using \emph{projection operators} \cite[Eq.~3.160]{griffiths_introduction_1995}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\hat{P}_n := \ket{e_n}\bra{e_n}, \hspace{3mm} n\in \mathbb{N}
|
|
|
|
|
.
|
|
|
|
|
,
|
|
|
|
|
\end{align*}%
|
|
|
|
|
These project a vector onto the subspace spanned by $\ket{e_n}$.
|
|
|
|
|
which project a vector onto the subspace spanned by $\ket{e_n}$.
|
|
|
|
|
|
|
|
|
|
% % Using projection operators to measure if a state has a component
|
|
|
|
|
% % along a basis vector
|
|
|
|
|
@@ -864,10 +865,9 @@ These project a vector onto the subspace spanned by $\ket{e_n}$.
|
|
|
|
|
|
|
|
|
|
% Intro
|
|
|
|
|
|
|
|
|
|
% TODO: Make sure `quantum gate` is proper terminology
|
|
|
|
|
A central concept for quantum computing is that of the \emph{qubit}.
|
|
|
|
|
We employ it analogously to the classical \emph{bit}.
|
|
|
|
|
For classical computers, we alter bits' states using \emph{gates}.
|
|
|
|
|
It takes the place of the classical \emph{bit}.
|
|
|
|
|
For classical computers, we alter the state of a bit using \emph{gates}.
|
|
|
|
|
We can chain multiple of these gates together to build up more complex logic,
|
|
|
|
|
such as half-adders or eventually a full processor.
|
|
|
|
|
In principle, quantum computers work in a similar fashion, only that
|
|
|
|
|
@@ -898,10 +898,10 @@ A qubit is defined to be a system with quantum state
|
|
|
|
|
\alpha \\
|
|
|
|
|
\beta
|
|
|
|
|
\end{pmatrix}
|
|
|
|
|
= \alpha \ket{0} + \beta \ket{1}
|
|
|
|
|
= \alpha \ket{0} + \beta \ket{1}, \hspace{5mm} \alpha,\beta \in \mathbb{C}
|
|
|
|
|
.%
|
|
|
|
|
\end{align}
|
|
|
|
|
The overall state of a composite quantum system is described using
|
|
|
|
|
The overall state of a multi-qubit quantum system is described using
|
|
|
|
|
the \emph{tensor product}, denoted as $\otimes$
|
|
|
|
|
\cite[Sec.~2.2.8]{nielsen_quantum_2010}.
|
|
|
|
|
Take for example the two qubits
|
|
|
|
|
@@ -930,9 +930,9 @@ i.e.,
|
|
|
|
|
.%
|
|
|
|
|
\end{split}
|
|
|
|
|
\end{align}
|
|
|
|
|
We call $\ket{x_0, \ldots, x_n}~, x_i \in \{0,1\}$ the
|
|
|
|
|
We call $\ket{x_0, \ldots, x_n},~x_i \in \{0,1\}$ the
|
|
|
|
|
\emph{computational basis states} \cite[Sec.~4.6]{nielsen_quantum_2010}.
|
|
|
|
|
To additionally simplify set notation, we define
|
|
|
|
|
To simplify set notation, we define
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\mathcal{M}^{\otimes n} := \underbrace{\mathcal{M}\otimes \ldots
|
|
|
|
|
\otimes \mathcal{M}}_{n \text{ times}}
|
|
|
|
|
@@ -941,7 +941,7 @@ To additionally simplify set notation, we define
|
|
|
|
|
|
|
|
|
|
% Entanglement
|
|
|
|
|
|
|
|
|
|
States that are not able to be decomposed into such products
|
|
|
|
|
States that are not able to be decomposed into products of single-qubit states
|
|
|
|
|
are called \emph{entangled} \cite[Sec.~2.2.8]{nielsen_quantum_2010}.
|
|
|
|
|
An example of such states are the \emph{Bell states}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
@@ -979,7 +979,7 @@ we now shift our focus to describing the evolution of their states.
|
|
|
|
|
We model state changes as operators.
|
|
|
|
|
Unlike classical systems, where there are only two possible states and
|
|
|
|
|
thus the only possible state change is a bit-flip, a general qubit
|
|
|
|
|
state as shown in \Cref{eq:gen_qubit_state} lives on a continuum of values.
|
|
|
|
|
state as shown in \Cref{eq:gen_qubit_state} lies on a continuum of values.
|
|
|
|
|
We thus technically also have an infinite number of possible state changes.
|
|
|
|
|
Fortunately, we can express any operator as a linear combination of the
|
|
|
|
|
\emph{Pauli operators} \cite[Sec.~2.2]{gottesman_stabilizer_1997}
|
|
|
|
|
@@ -1016,13 +1016,15 @@ Fortunately, we can express any operator as a linear combination of the
|
|
|
|
|
In fact, if we allow for complex coefficients, the $X$ and $Z$
|
|
|
|
|
operators are sufficient to express any other operator as a linear
|
|
|
|
|
combination \cite[Sec.~2.2]{roffe_quantum_2019}.
|
|
|
|
|
$I$ is the identity operator and $X$ and $Z$ are referred to as
|
|
|
|
|
Hereby, $I$ is the identity operator and $X$ and $Z$ are referred to as
|
|
|
|
|
\emph{bit-flips} and \emph{phase-flips} respectively.
|
|
|
|
|
We call the set $\mathcal{G}_n = \left\{ \pm I,\pm \mathrm{i}I, \pm
|
|
|
|
|
X,\pm \mathrm{i}X,
|
|
|
|
|
\pm Y,\pm \mathrm{i}Y, \pm Z, \pm \mathrm{i}Z \right\}^{\otimes n}$
|
|
|
|
|
the \emph{Pauli
|
|
|
|
|
group} over $n$ qubits.
|
|
|
|
|
We call the set
|
|
|
|
|
\begin{align}
|
|
|
|
|
\mathcal{G}_n = \left\{ \pm I,\pm \mathrm{i}I, \pm
|
|
|
|
|
X,\pm \mathrm{i}X,
|
|
|
|
|
\pm Y,\pm \mathrm{i}Y, \pm Z, \pm \mathrm{i}Z \right\}^{\otimes n}
|
|
|
|
|
\end{align}
|
|
|
|
|
the \emph{Pauli group} over $n$ qubits.
|
|
|
|
|
|
|
|
|
|
In the context of modifying qubit states, we also call operators \emph{gates}.
|
|
|
|
|
When working with multi-qubit systems, we can also apply Pauli gates
|
|
|
|
|
@@ -1052,7 +1054,7 @@ Other important operators include the \emph{Hadamard} and
|
|
|
|
|
\centering
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\begin{array}{c}
|
|
|
|
|
CNOT\text{ Operator} \\
|
|
|
|
|
\text{CNOT Operator} \\
|
|
|
|
|
\hline\\
|
|
|
|
|
\ket{00} \mapsto \ket{00} \\
|
|
|
|
|
\ket{01} \mapsto \ket{01} \\
|
|
|
|
|
@@ -1063,7 +1065,9 @@ Other important operators include the \emph{Hadamard} and
|
|
|
|
|
\end{minipage}%
|
|
|
|
|
\end{figure}
|
|
|
|
|
\vspace{-4mm}
|
|
|
|
|
\noindent Many more operators relevant to quantum computing exist, but they are
|
|
|
|
|
\noindent The CNOT operator is a 2-qubit gate that applies a bit-flip to the
|
|
|
|
|
second qubit conditioned on the state of the first one.
|
|
|
|
|
Many more operators relevant to quantum computing exist, but they are
|
|
|
|
|
not covered here as they are not central to this work.
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%
|
|
|
|
|
@@ -1096,9 +1100,8 @@ The control connection is represented by a vertical line connecting
|
|
|
|
|
the gate to the corresponding qubit, where a filled dot is placed.
|
|
|
|
|
A controlled gate applies the respective operation only if the
|
|
|
|
|
control qubit is in state $\ket{1}$.
|
|
|
|
|
An example of this is the CNOT gate introduced in
|
|
|
|
|
\Cref{subsec:Qubits and Multi-Qubit States}, which is depicted in
|
|
|
|
|
\Cref{fig:cnot_circuit}.
|
|
|
|
|
\Cref{fig:cnot_circuit} depicts an example of this: The CNOT gate
|
|
|
|
|
introduced in \Cref{subsec:Qubits and Multi-Qubit States}.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[t]
|
|
|
|
|
\centering
|
|
|
|
|
@@ -1120,7 +1123,7 @@ An example of this is the CNOT gate introduced in
|
|
|
|
|
|
|
|
|
|
% General motivation behind QEC
|
|
|
|
|
|
|
|
|
|
One of the major barriers on the road to building a functioning
|
|
|
|
|
One of the major barriers on the road to building a functioning and scalable
|
|
|
|
|
quantum computer is the inevitability of errors during quantum
|
|
|
|
|
computation. These arise due to the difficulty in sufficiently isolating the
|
|
|
|
|
qubits from external noise \cite[Sec.~1]{roffe_quantum_2019}.
|
|
|
|
|
@@ -1129,7 +1132,7 @@ with the environment act as small measurements, an effect called
|
|
|
|
|
\emph{decoherence} of the quantum state
|
|
|
|
|
\cite[Sec.~1]{gottesman_stabilizer_1997}.
|
|
|
|
|
\ac{qec} is one approach of dealing with this problem, by protecting
|
|
|
|
|
the quantum state in a similar fashion to information in classical error
|
|
|
|
|
a quantum state in a similar fashion to information in classical error
|
|
|
|
|
correction.
|
|
|
|
|
|
|
|
|
|
% The unique challenges of QEC
|
|
|
|
|
@@ -1149,9 +1152,10 @@ Three main restrictions apply \cite[Sec.~2.4]{roffe_quantum_2019}:
|
|
|
|
|
|
|
|
|
|
% General idea (logical vs. physical gates) + notation
|
|
|
|
|
|
|
|
|
|
Much like in classical error correction, in \ac{qec} information
|
|
|
|
|
is protected by mapping it onto codewords in a higher-dimensional space,
|
|
|
|
|
thereby introducing redundancy.
|
|
|
|
|
Much like in classical error correction, \ac{qec} protects information by
|
|
|
|
|
introducing redundancy.
|
|
|
|
|
The information, represented by a state in a low-dimensional space,
|
|
|
|
|
is mapped onto an encoded state in a higher-dimensional space.
|
|
|
|
|
To this end, $k \in \mathbb{N}$ \emph{logical qubits} are mapped onto
|
|
|
|
|
$n \in \mathbb{N}$ \emph{physical qubits}, $n>k$.
|
|
|
|
|
We circumvent the no-cloning restriction by not copying the state of any of
|
|
|
|
|
@@ -1172,8 +1176,9 @@ This is due to the \emph{backlog problem}
|
|
|
|
|
\cite[Sec.~II.G.3.]{terhal_quantum_2015}: There are certain gates
|
|
|
|
|
at which the effect of existing errors on single qubits may be
|
|
|
|
|
exacerbated by transforming them to multi-qubit errors.
|
|
|
|
|
We wish to correct the errors before passing qubits through such gates.
|
|
|
|
|
If the \ac{qec} system is not fast enough, there will be an increasing
|
|
|
|
|
If we ensure decoding with sufficiently low latency, we can correct
|
|
|
|
|
the errors before passing qubits through such gates.
|
|
|
|
|
However, if the \ac{qec} system is not fast enough, there will be an increasing
|
|
|
|
|
backlog of information at this point in the circuit, leading to an
|
|
|
|
|
exponential slowdown in computation.
|
|
|
|
|
|
|
|
|
|
@@ -1203,8 +1208,8 @@ Note that this code is only able to detect single $X$-type errors.
|
|
|
|
|
|
|
|
|
|
% Measuring stabilizers
|
|
|
|
|
|
|
|
|
|
To determine if an error occurred, we want to measure
|
|
|
|
|
whether a state belongs
|
|
|
|
|
To determine if an error occurred, we aim at to measuring whether a
|
|
|
|
|
state belongs
|
|
|
|
|
% TODO: Remove footnote?
|
|
|
|
|
% \footnote{
|
|
|
|
|
% It is possible for a state to not completely lie in either subspace.
|
|
|
|
|
@@ -1213,11 +1218,12 @@ whether a state belongs
|
|
|
|
|
% }
|
|
|
|
|
to $\mathcal{C}$ or $\mathcal{F}$.
|
|
|
|
|
As explained in \Cref{subsec:Observables}, physical measurements
|
|
|
|
|
can be mathematically described using operators whose eigenvalues
|
|
|
|
|
can be mathematically described using operators, whose eigenvalues
|
|
|
|
|
are the possible measurement results.
|
|
|
|
|
Here, we need an operator with two eigenvalues and the corresponding
|
|
|
|
|
eigenspaces should be $\mathcal{C}$ and $\mathcal{F}$ respectively.
|
|
|
|
|
For the two-qubit code, $Z_1Z_2$ is such an operator:
|
|
|
|
|
For the two-qubit repetition code, $Z_1Z_2 \in \mathcal{G}_2$ is such
|
|
|
|
|
an operator:
|
|
|
|
|
\begin{align}
|
|
|
|
|
Z_1Z_2 E \ket{\psi}_\text{L} &= (+1) E \ket{\psi}_\text{L}
|
|
|
|
|
\hspace*{3mm} \forall
|
|
|
|
|
@@ -1228,13 +1234,14 @@ For the two-qubit code, $Z_1Z_2$ is such an operator:
|
|
|
|
|
.%
|
|
|
|
|
\end{align}
|
|
|
|
|
$E \in \left\{ X,I \right\}$ is an operator describing a possible
|
|
|
|
|
error and $E \ket{\psi}_\text{L}$ is the resulting state after that error.
|
|
|
|
|
single-qubit error and $E \ket{\psi}_\text{L}$ is the resulting state
|
|
|
|
|
after that error.
|
|
|
|
|
By measuring the corresponding eigenvalue, we can determine if
|
|
|
|
|
$E\ket{\psi}_\text{L}$ lies in $\mathcal{C}$ or $\mathcal{F}$.
|
|
|
|
|
% TODO: If necessary, cite \cite[Sec.~3]{roffe_quantum_2019} for the
|
|
|
|
|
% non-compromising meausrement of the information
|
|
|
|
|
To do this without directly observing (and thus potentially
|
|
|
|
|
collapsing) the logical state $\ket{\psi}_\text{L}$, we prepare an
|
|
|
|
|
To do this without directly observing and, thus potentially
|
|
|
|
|
collapsing, the logical state $\ket{\psi}_\text{L}$, we prepare an
|
|
|
|
|
ancilla qubit with state $\ket{0}_\text{A}$ and entangle it with
|
|
|
|
|
$\ket{\psi}_\text{L}$ in such a way that the eigenvalue is indicated
|
|
|
|
|
by measuring the ancilla qubit instead.
|
|
|
|
|
@@ -1299,11 +1306,11 @@ This effect is referred to as error \emph{digitization}
|
|
|
|
|
% The stabilizer group
|
|
|
|
|
|
|
|
|
|
Operators such as $Z_1Z_2$ above are called \emph{stabilizers}.
|
|
|
|
|
More generally, an operator $P_i \in \mathcal{G}_n$ is called a stabilizer of an
|
|
|
|
|
More generally, an operator $P_i \in \mathcal{G}_n$ is a stabilizer of an
|
|
|
|
|
$\llbracket n, k, d_\text{min} \rrbracket$ code $\mathcal{C}$, if
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item It stabilizes all logical states, i.e.,
|
|
|
|
|
$P_i\ket{\psi}_\text{L} = (+1)\ket{\psi}_\text{L} ~\forall~
|
|
|
|
|
$P_i\ket{\psi}_\text{L} = (+1)\ket{\psi}_\text{L}, ~\forall~
|
|
|
|
|
\ket{\psi}_\text{L} \in \mathcal{C}$.
|
|
|
|
|
\item It commutes with all other stabilizers $P_j$ of the code,
|
|
|
|
|
i.e., $[P_i, P_j] = 0$.
|
|
|
|
|
@@ -1319,8 +1326,8 @@ Formally, we define the \emph{stabilizer group} $\mathcal{S}$ as
|
|
|
|
|
[P_i,P_j] = 0 \forall i,j\right\}
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
We care in particular about the commuting properties of stabilizers
|
|
|
|
|
with respect to possible errors.
|
|
|
|
|
We care about the commuting properties of stabilizers with respect to
|
|
|
|
|
possible errors, in particular.
|
|
|
|
|
The measurement circuit for an arbitrary stabilizer $P_i$ modifies
|
|
|
|
|
the state as \cite[Eq.~29]{roffe_quantum_2019}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
@@ -1353,6 +1360,7 @@ If a given error $E$ anticommutes with $P_i$, we have
|
|
|
|
|
\end{align*}
|
|
|
|
|
and measuring the ancilla $\text{A}_i$ corresponding to stabilizer
|
|
|
|
|
$P_i$ returns 1.
|
|
|
|
|
Similarly, if it commutes, the ancilla measurement returns 0.
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%
|
|
|
|
|
\subsection{Stabilizer Codes}
|
|
|
|
|
@@ -1360,9 +1368,10 @@ $P_i$ returns 1.
|
|
|
|
|
|
|
|
|
|
% Structure of a stabilizer code
|
|
|
|
|
|
|
|
|
|
For classical binary linear block codes, we use $n-k$ parity-checks
|
|
|
|
|
Stabilizer codes are the quantum analogue of classical binary linear
|
|
|
|
|
block codes, for which we use $n-k$ parity checks
|
|
|
|
|
to reduce the degrees of freedom introduced by the encoding operation.
|
|
|
|
|
Effectively, each parity-check defines a local code splitting the
|
|
|
|
|
Effectively, each parity check defines a local code splitting the
|
|
|
|
|
vector space in half, with only one part containing valid codewords.
|
|
|
|
|
The global code is the intersection of all local codes.
|
|
|
|
|
We can do the same in the quantum case.
|
|
|
|
|
@@ -1380,19 +1389,23 @@ operators $P_i$, each using a circuit as explained in
|
|
|
|
|
\Cref{subsec:Stabilizer Measurements}.
|
|
|
|
|
Note that this is an abstract representation of the syndrome extraction.
|
|
|
|
|
For the actual implementation in hardware, we can transform this into
|
|
|
|
|
a circuit that requires only CNOT and H-gates
|
|
|
|
|
a circuit that requires only CNOT and $H$-gates
|
|
|
|
|
\cite[Sec.~10.5.8]{nielsen_quantum_2010}.
|
|
|
|
|
|
|
|
|
|
% Logical operators
|
|
|
|
|
|
|
|
|
|
In order to modify the logical state encoded using the physical
|
|
|
|
|
qubits, we can use \emph{logical operators} \cite[Sec.~4.2]{roffe_quantum_2019}.
|
|
|
|
|
For each qubit, there are two logical operators, $X_i$ and $Z_j$.
|
|
|
|
|
These are operators that
|
|
|
|
|
For a $\llbracket n,k \rrbracket$ stabilizer code, there exist
|
|
|
|
|
logical operators generated by $2k$ representatives $X_i,
|
|
|
|
|
Z_j,~i,j\in[1:k]$ such that
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item Commute with all the stabilizers in $\mathcal{S}$.
|
|
|
|
|
\item Anti-commute with one another, i.e., $[ \overline{X}_i,
|
|
|
|
|
\overline{Z}_i ]_{+} = \overline{X}_i \overline{Z}_i +
|
|
|
|
|
\item They commute with all stabilizers in $\mathcal{S}$.
|
|
|
|
|
\item For $i=j$, they anti-commute with one another, i.e., $[
|
|
|
|
|
\overline{X}_i, \overline{Z}_i ]_{+} = \overline{X}_i
|
|
|
|
|
\overline{Z}_i + \overline{Z}_i \overline{X}_i = 0$.
|
|
|
|
|
\item For $i\neq j$, they commute with one another, i.e., $[ \overline{X}_i,
|
|
|
|
|
\overline{Z}_i ] = \overline{X}_i \overline{Z}_i -
|
|
|
|
|
\overline{Z}_i \overline{X}_i = 0$.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
We can also measure these operators to find out the logical state a
|
|
|
|
|
@@ -1402,22 +1415,22 @@ physical state corresponds to \cite[Sec.~2.6]{derks_designing_2025}.
|
|
|
|
|
|
|
|
|
|
% TODO: Do I have to introduce before that stabilizers only need X
|
|
|
|
|
% and Z operators?
|
|
|
|
|
We can represent stabilizer codes using a \emph{check matrix}
|
|
|
|
|
\cite[Sec.~10.5.1]{nielsen_quantum_2010}
|
|
|
|
|
We can represent stabilizer codes using a binary \emph{check matrix}
|
|
|
|
|
$\bm{H} \in \mathbb{F}_2^{(n-k)\times(2n)}$
|
|
|
|
|
\cite[Sec.~10.5.1]{nielsen_quantum_2010} with
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\bm{H} = \left[
|
|
|
|
|
\begin{array}{c|c}
|
|
|
|
|
\bm{H}_X & \bm{H}_Z
|
|
|
|
|
\end{array}
|
|
|
|
|
\right]
|
|
|
|
|
,%
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
with $\bm{H} \in \mathbb{F}_2^{(n-k)\times(2n)}$.
|
|
|
|
|
This is similar to a classical \ac{pcm} in that it contains $n-k$
|
|
|
|
|
rows, each describing one constraint. Each constraint restricts an additional
|
|
|
|
|
degree of freedom of the higher-dimensional space we use to introduce
|
|
|
|
|
redundancy.
|
|
|
|
|
In contrast to the classical case, this matrix now has $2n$ columns,
|
|
|
|
|
In contrast to the classical case, this matrix has $2n$ columns,
|
|
|
|
|
as we have to consider both the $X$ and $Z$ type operators that make up
|
|
|
|
|
the stabilizers.
|
|
|
|
|
Take for example the Steane code \cite[Eq.~10.83]{nielsen_quantum_2010}.
|
|
|
|
|
@@ -1436,8 +1449,8 @@ We can describe it using the check matrix
|
|
|
|
|
\right]
|
|
|
|
|
.%
|
|
|
|
|
\end{align}
|
|
|
|
|
The first $n$ columns correspond to $X$ operators acting on the
|
|
|
|
|
corresponding physical qubit, the rest to the $Z$ operators.
|
|
|
|
|
The first $n$ columns correspond to $X$ stabilizers acting on the
|
|
|
|
|
corresponding physical qubit, the rest to the $Z$ stabilizers.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[t]
|
|
|
|
|
\centering
|
|
|
|
|
@@ -1466,27 +1479,27 @@ corresponding physical qubit, the rest to the $Z$ operators.
|
|
|
|
|
|
|
|
|
|
% Intro
|
|
|
|
|
|
|
|
|
|
Stabilizer codes are especially practical to work with when they can
|
|
|
|
|
handle $X$ and $Z$ type errors independently.
|
|
|
|
|
Stabilizer codes are especially practical to work with when the
|
|
|
|
|
stabilizers can be split into one subset consisting only of
|
|
|
|
|
$Z$ stabilizers and one consisting only of $X$ stabilizers.
|
|
|
|
|
As $Z$ errors anti-commute with $X$ operators in the stabilizers and
|
|
|
|
|
vice versa, this property translates into being able to split the
|
|
|
|
|
stabilizers into a subset being made up of only $X$
|
|
|
|
|
operators and the rest only of $Z$ operators.
|
|
|
|
|
vice versa, this property translates into being able to correct $X$
|
|
|
|
|
or $Z$ errors independently.
|
|
|
|
|
We call such codes \ac{css} codes.
|
|
|
|
|
We can see this property in \Cref{eq:steane} in the check matrix
|
|
|
|
|
of the Steane code.
|
|
|
|
|
|
|
|
|
|
% Construction
|
|
|
|
|
|
|
|
|
|
We can exploit this separate consideration of $X$ and $Z$ errors in
|
|
|
|
|
We can exploit this separate consideration of $X$ and $Z$ stabilizers in
|
|
|
|
|
the construction of \ac{css} codes.
|
|
|
|
|
We combine two binary linear codes $\mathcal{C}_1$ and
|
|
|
|
|
$\mathcal{C}_2$, each responsible for correcting one type of error
|
|
|
|
|
$\mathcal{C}_2$, each responsible for correcting either $Z$ or $X$ errors
|
|
|
|
|
\cite[Sec.~10.5.6]{nielsen_quantum_2010}.
|
|
|
|
|
Using the dual code of $\mathcal{C}_2$ \cite[Eq.~3.4]{ryan_channel_2009}
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\mathcal{C}_2^\perp := \left\{ \bm{x}' \in \mathbb{F}^2 :
|
|
|
|
|
\bm{x}' \bm{x}^\text{T} = 0 ~\forall \bm{x} \in \mathcal{C}_2 \right\}
|
|
|
|
|
\bm{x}' \bm{x}^\mathsf{T} = 0 ~\forall \bm{x} \in \mathcal{C}_2 \right\}
|
|
|
|
|
,%
|
|
|
|
|
\end{align*}
|
|
|
|
|
we define $\bm{H}_X$ as the \ac{pcm} of $\mathcal{C}_2^\perp$ and $\bm{H}_Z$
|
|
|
|
|
@@ -1504,7 +1517,7 @@ In order to yield a valid stabilizer code, $\mathcal{C}_1$ and
|
|
|
|
|
$\mathcal{C}_2$ must satisfy the commutativity condition
|
|
|
|
|
\begin{align}
|
|
|
|
|
\label{eq:css_condition}
|
|
|
|
|
\bm{H}_X \bm{H}_Z^\text{T} = \bm{0}
|
|
|
|
|
\bm{H}_X \bm{H}_Z^\mathsf{T} = \bm{0}
|
|
|
|
|
.%
|
|
|
|
|
\end{align}
|
|
|
|
|
We can ensure this by choosing $\mathcal{C}_1$ and $\mathcal{C}_2$
|
|
|
|
|
@@ -1519,15 +1532,15 @@ such that $\mathcal{C}_2 \subset \mathcal{C}_1$.
|
|
|
|
|
Various methods of constructing \ac{qec} codes exist
|
|
|
|
|
\cite{swierkowska_eccentric_2025}.
|
|
|
|
|
Topological codes, for example, encode information in the features of
|
|
|
|
|
a lattice and are intrinsically robust against local errors.
|
|
|
|
|
a lattice in a way that allows for local interactions between qubits.
|
|
|
|
|
Among these, the \emph{surface code} is the most widely studied.
|
|
|
|
|
Another example are concatenated codes, which nest one code within
|
|
|
|
|
another, allowing for especially simple and flexible constructions
|
|
|
|
|
\cite[Sec.~3.2]{swierkowska_eccentric_2025}.
|
|
|
|
|
An area of research that has recently seen more attention is that of
|
|
|
|
|
quantum \ac{ldpc} (\acs{qldpc}) codes.
|
|
|
|
|
They have much better encoding efficiency than, e.g., the surface
|
|
|
|
|
code, scaling up of which would be prohibitively expensive
|
|
|
|
|
They have much higher rate than, e.g., surface codes, scaling up of
|
|
|
|
|
which would be prohibitively expensive
|
|
|
|
|
\cite[Sec.~I]{bravyi_high-threshold_2024}.
|
|
|
|
|
|
|
|
|
|
% Bivariate Bicycle codes
|
|
|
|
|
@@ -1539,7 +1552,7 @@ $\bm{H}_Z$ are constructed from two matrices $\bm{A}$ and $\bm{B}$ as
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\bm{H}_X = [\bm{A} \vert \bm{B}]
|
|
|
|
|
\hspace*{5mm} \text{and} \hspace*{5mm}
|
|
|
|
|
\bm{H}_Z = [\bm{B}^\text{T} \vert \bm{A}^\text{T}]
|
|
|
|
|
\bm{H}_Z = [\bm{B}^\mathsf{T} \vert \bm{A}^\mathsf{T}]
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
This way, we can guarantee the satisfaction of the commutativity
|
|
|
|
|
@@ -1579,16 +1592,17 @@ This necessitates a modification of the standard \ac{bp} algorithm
|
|
|
|
|
introduced in \Cref{subsec:Iterative Decoding}
|
|
|
|
|
\cite[Sec.~3.1]{yao_belief_2024}.
|
|
|
|
|
Instead of attempting to find the most likely codeword directly, the
|
|
|
|
|
algorithm will now try to find an error pattern $\hat{\bm{e}} \in
|
|
|
|
|
\mathbb{F}_2^n$ that satisfies
|
|
|
|
|
syndrome-based decoding algorithm tries to find an error pattern
|
|
|
|
|
$\hat{\bm{e}} \in \mathbb{F}_2^n$ that satisfies
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\bm{H} \hat{\bm{e}}^\text{T} = \bm{s}
|
|
|
|
|
\bm{H} \hat{\bm{e}}^\mathsf{T} = \bm{s}
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
To this end, we initialize the channel \acp{llr} as
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\tilde{L}_i = \log{\frac{P(X_i = 0)}{P(X_i = 1)}} = \log{\frac{1
|
|
|
|
|
- p_i}{p_i}}
|
|
|
|
|
\tilde{L}_i = \log{\frac{P(X_i = 0)}{P(X_i = 1)}} = \log{
|
|
|
|
|
\left( \frac{1 - p_i}{p_i} \right)
|
|
|
|
|
}
|
|
|
|
|
,%
|
|
|
|
|
\end{align*}
|
|
|
|
|
where $p_i$ is the prior probability of error of \ac{vn} $i$.
|
|
|
|
|
@@ -1645,7 +1659,7 @@ The resulting syndrome-based \ac{bp} algorithm is shown in
|
|
|
|
|
\right\}$
|
|
|
|
|
\EndFor
|
|
|
|
|
|
|
|
|
|
\If{$\bm{H}\hat{\bm{e}}^\text{T} = \bm{s}$}
|
|
|
|
|
\If{$\bm{H}\hat{\bm{e}}^\mathsf{T} = \bm{s}$}
|
|
|
|
|
\State \textbf{break}
|
|
|
|
|
\EndIf
|
|
|
|
|
|
|
|
|
|
@@ -1724,7 +1738,7 @@ This way, we obtain the \ac{ler}.
|
|
|
|
|
\mathbbm{1}\left\{ L^\text{total}_i \right\}$
|
|
|
|
|
\EndFor
|
|
|
|
|
|
|
|
|
|
\If{$\bm{H}\hat{\bm{e}}^\text{T} = \bm{s}$}
|
|
|
|
|
\If{$\bm{H}\hat{\bm{e}}^\mathsf{T} = \bm{s}$}
|
|
|
|
|
\State \textbf{break}
|
|
|
|
|
\Else
|
|
|
|
|
\State $i_\text{max} \leftarrow \argmax_{i \in \mathcal{I}'} \lvert L^\text{total}_i \rvert $
|
|
|
|
|
|