Finish writing stabilizer codes
This commit is contained in:
@@ -18,6 +18,11 @@
|
|||||||
long=sum-product algorithm
|
long=sum-product algorithm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
\DeclareAcronym{css}{
|
||||||
|
short=CSS,
|
||||||
|
long=Calderbank-Shor-Steane
|
||||||
|
}
|
||||||
|
|
||||||
\DeclareAcronym{llr}{
|
\DeclareAcronym{llr}{
|
||||||
short=LLR,
|
short=LLR,
|
||||||
long=log-likelihood ratio
|
long=log-likelihood ratio
|
||||||
|
|||||||
@@ -1155,8 +1155,8 @@ Consider the two-qubit repetition code
|
|||||||
\underbrace{\ket{11}}_{=:\ket{1}_\text{L}}
|
\underbrace{\ket{11}}_{=:\ket{1}_\text{L}}
|
||||||
.%
|
.%
|
||||||
\end{align*}
|
\end{align*}
|
||||||
We call $\ket{\psi}_L$ the logical state.
|
We call $\ket{\psi}_L$ the logical state, and
|
||||||
We define the \emph{codespace} as $\mathcal{C} := \text{span}\mleft\{
|
we define the \emph{codespace} as $\mathcal{C} := \text{span}\mleft\{
|
||||||
\ket{00}, \ket{11} \mright\}$ and the \emph{error subspace} as
|
\ket{00}, \ket{11} \mright\}$ and the \emph{error subspace} as
|
||||||
$\mathcal{F} := \text{span} \mleft\{\ket{01}, \ket{10} \mright\}$.
|
$\mathcal{F} := \text{span} \mleft\{\ket{01}, \ket{10} \mright\}$.
|
||||||
Note that this code is only able to detect single $X$-type errors.
|
Note that this code is only able to detect single $X$-type errors.
|
||||||
@@ -1195,7 +1195,7 @@ $E\ket{\psi}_\text{L}$ lies in $\mathcal{C}$ or $\mathcal{F}$.
|
|||||||
% non-compromising meausrement of the information
|
% non-compromising meausrement of the information
|
||||||
To do this without directly observing (and thus potentially
|
To do this without directly observing (and thus potentially
|
||||||
collapsing) the logical state $\ket{\psi}_\text{L}$, we prepare an
|
collapsing) the logical state $\ket{\psi}_\text{L}$, we prepare an
|
||||||
ancilla qubit with state $\ket{0}_\text{A}$ and we entangle it with
|
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
|
$\ket{\psi}_\text{L}$ in such a way that the eigenvalue is indicated
|
||||||
by measuring that instead.
|
by measuring that instead.
|
||||||
More specifically, using a stabilizer measurement circuit as shown in
|
More specifically, using a stabilizer measurement circuit as shown in
|
||||||
@@ -1258,7 +1258,7 @@ This effect is referred to as error \emph{digitization}
|
|||||||
% The stabilizer group
|
% The stabilizer group
|
||||||
|
|
||||||
Operators such as $Z_1Z_2$ above are called \emph{stabilizers}.
|
Operators such as $Z_1Z_2$ above are called \emph{stabilizers}.
|
||||||
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 called a stabilizer of an
|
||||||
$[[n, k, d_\text{min}]]$ code $\mathcal{C}$, if
|
$[[n, k, d_\text{min}]]$ code $\mathcal{C}$, if
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item It stabilizes all logical states, i.e.,
|
\item It stabilizes all logical states, i.e.,
|
||||||
@@ -1307,11 +1307,11 @@ and the stabilizer measurement returns 1.
|
|||||||
|
|
||||||
For classical binary linear block codes, we use $n-k$ parity-checks
|
For classical binary linear block codes, we use $n-k$ parity-checks
|
||||||
to reduce the degrees of freedom introduced by the encoding operation.
|
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 half containing valid codewords.
|
vector space in half, with only one part containing valid codewords.
|
||||||
The global code is the intersection of all local codes.
|
The global code is the intersection of all local codes.
|
||||||
We can do the same in the quantum case.
|
We can do the same in the quantum case.
|
||||||
Each split is represented using stabilizer, whose eigenvalues signify
|
Each split is represented using a stabilizer, whose eigenvalues signify
|
||||||
whether a candidate vector lies in the local codespace or local error subspace.
|
whether a candidate vector lies in the local codespace or local error subspace.
|
||||||
It is only a valid codeword if it lies in the codespace of all local codes.
|
It is only a valid codeword if it lies in the codespace of all local codes.
|
||||||
We call codes constructed this way \emph{stabilizer codes}.
|
We call codes constructed this way \emph{stabilizer codes}.
|
||||||
@@ -1323,19 +1323,60 @@ describe which local codes are violated.
|
|||||||
To obtain the syndrome, we simply measure the corresponding
|
To obtain the syndrome, we simply measure the corresponding
|
||||||
operators $P_i$, each using a circuit as explained in
|
operators $P_i$, each using a circuit as explained in
|
||||||
\autoref{subsec:Stabilizer Measurements}.
|
\autoref{subsec:Stabilizer Measurements}.
|
||||||
A full \emph{syndrome extraction circuit} is depicted in \autoref{fig:sec}.
|
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
|
||||||
|
\cite[Sec.~10.5.8]{nielsen_quantum_2010}.
|
||||||
|
|
||||||
% TODO: Move this further up to the commutativity of operators?
|
% Logical operators
|
||||||
\indent\red{[Fixing the error after finding it
|
|
||||||
\cite[Sec.~10.5.5]{nielsen_quantum_2010} -> This may require
|
In order to modify the logical state encoded using the physical
|
||||||
introducing the gates as unitary]} \\
|
qubits, we can use \emph{logical operators} \cite[Sec.~4.2]{roffe_quantum_2019}.
|
||||||
\indent\red{[Logical operators \cite[Sec.~4.2]{roffe_quantum_2019}]} \\
|
For each qubit, there are two logical operators, $X_i$ and $Z_j$.
|
||||||
\indent\red{[Measuring logical operators yields the outcomes of
|
These are operators that
|
||||||
the encoded computations \cite[Sec.~2.6]{derks_designing_2025}]} \\
|
\begin{itemize}
|
||||||
\indent\red{[X and Z measurements can be performed with only CNOT and
|
\item Commute with all the stabilizers in $\mathcal{S}$.
|
||||||
Hadamard gates \cite[Sec.~10.5.8]{nielsen_quantum_2010}]} \\
|
\item Anti-commute with one another, i.e., $[ \overline{X}_i,
|
||||||
\indent\red{[(?) Stabilizer generators]} \\
|
\overline{Z}_i ]_{+} = \overline{X}_i \overline{Z}_i +
|
||||||
\indent\red{[Parity-check matrix \cite[Sec.~10.5.1]{nielsen_quantum_2010}]}
|
\overline{Z}_i \overline{X}_i = 0$.
|
||||||
|
\end{itemize}
|
||||||
|
We can also measure these operators to find out the logical state a
|
||||||
|
physical state corresponds to \cite[Sec.~2.6]{derks_designing_2025}.
|
||||||
|
|
||||||
|
% Parity-check matrix
|
||||||
|
|
||||||
|
% TODO: Do I have to introduce before that stabilizers only need X
|
||||||
|
% and Z operators?
|
||||||
|
Stabilizer codes are the quantum analog of classical linear block codes.
|
||||||
|
As such, we can represent them using a \emph{check matrix}
|
||||||
|
\cite[Sec.~10.5.1]{nielsen_quantum_2010}.
|
||||||
|
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,
|
||||||
|
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}.
|
||||||
|
We can describe it using the check matrix
|
||||||
|
\begin{align*}
|
||||||
|
\left[
|
||||||
|
\begin{array}{ccccccc|ccccccc}
|
||||||
|
0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
0 & 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\
|
||||||
|
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 1 & 1 \\
|
||||||
|
0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1
|
||||||
|
\end{array}
|
||||||
|
\right]
|
||||||
|
.%
|
||||||
|
\end{align*}
|
||||||
|
We can understand each row as defining a stabilizer.
|
||||||
|
The first $n$ columns correspond to $X$ operators acting on the
|
||||||
|
corresponding physical qubit, the rest to the $Z$ operators.
|
||||||
|
|
||||||
|
% TODO: Write
|
||||||
|
|
||||||
\begin{figure}[t]
|
\begin{figure}[t]
|
||||||
\centering
|
\centering
|
||||||
@@ -1352,7 +1393,7 @@ Hadamard gates \cite[Sec.~10.5.8]{nielsen_quantum_2010}]} \\
|
|||||||
% tex-fmt: on
|
% tex-fmt: on
|
||||||
|
|
||||||
\caption{
|
\caption{
|
||||||
Illustration of a general syndrome extraction circuit.
|
Illustration of a full syndrome extraction circuit.
|
||||||
Adapted from \cite[Figure~4]{roffe_quantum_2019}.
|
Adapted from \cite[Figure~4]{roffe_quantum_2019}.
|
||||||
}
|
}
|
||||||
\label{fig:sec}
|
\label{fig:sec}
|
||||||
@@ -1366,13 +1407,17 @@ Stabilizer codes are especially practical to work with when they can
|
|||||||
handle $X$- and $Z$-type errors independently.
|
handle $X$- and $Z$-type errors independently.
|
||||||
We can then separate the stabilizer generators into some with only
|
We can then separate the stabilizer generators into some with only
|
||||||
$Z$ operators and some with only $X$ operators.
|
$Z$ operators and some with only $X$ operators.
|
||||||
|
We call such codes \ac{css} codes.
|
||||||
|
|
||||||
\indent\red{[Z-type operators for X type errors and vice versa ]} \\
|
\indent\red{[Z-type operators for X type errors and vice versa ]} \\
|
||||||
\indent\red{[Construction from two binary linear codes
|
\indent\red{[Construction from two binary linear codes
|
||||||
\cite[p.~452,469]{nielsen_quantum_2010}]} \\
|
\cite[p.~452,469]{nielsen_quantum_2010}]} \\
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
\subsection{Quantum Low-Density Parity-Check Codes}
|
\subsection{Quantum Low-Density Parity-Check Codes}
|
||||||
|
\label{subsec:Quantum Low-Density Parity-Check Codes}
|
||||||
|
|
||||||
|
\noindent\red{[(?) Mention color and surface codes]} \\
|
||||||
\noindent\red{[Constant overhead scaling]} \\
|
\noindent\red{[Constant overhead scaling]} \\
|
||||||
\noindent\red{[Scaling of minimum distance with code length]} \\
|
\noindent\red{[Scaling of minimum distance with code length]} \\
|
||||||
\noindent\red{[Bivariate Bicycle codes]} \\
|
\noindent\red{[Bivariate Bicycle codes]} \\
|
||||||
@@ -1382,37 +1427,19 @@ $Z$ operators and some with only $X$ operators.
|
|||||||
measured syndrome, the most likely error coset rather than the exact
|
measured syndrome, the most likely error coset rather than the exact
|
||||||
physical error.''
|
physical error.''
|
||||||
% tex-fmt: off
|
% tex-fmt: off
|
||||||
\cite[Sec.~II~B)]{koutsioumpas_colour_2025}]}%
|
\cite[Sec.~II~B)]{koutsioumpas_colour_2025}%
|
||||||
% tex-fmt: on
|
% tex-fmt: on
|
||||||
\\
|
]} \\
|
||||||
|
|
||||||
\red{
|
%%%%%%%%%%%%%%%%
|
||||||
\textbf{General Notes:}
|
\subsection{Decoding Quantum Codes}
|
||||||
\begin{itemize}
|
\label{subsec:Decoding Quantum Codes}
|
||||||
\item Note that there are other codes than stabilizer codes
|
|
||||||
(and research and give some examples), but only
|
\noindent\indent\red{[The QEC decoding problem
|
||||||
stabilizer codes are considered in this work
|
\cite[Sec.~2.3]{yao_belief_2024}]} \\
|
||||||
\item Degeneracy
|
\indent\red{[+ Degeneracy]} \\
|
||||||
\item The QEC decoding problem (considering degeneracy)
|
\indent\red{[+ Short cycles]} \\
|
||||||
\cite[Sec.~2.3]{yao_belief_2024}
|
\indent\red{[Fixing the error after finding it
|
||||||
\end{itemize}
|
\cite[Sec.~10.5.5]{nielsen_quantum_2010} -> This
|
||||||
\textbf{Content:}
|
may require introducing the gates as unitary]}
|
||||||
\begin{itemize}
|
|
||||||
\item Stabilizer codes
|
|
||||||
\begin{itemize}
|
|
||||||
\item syndrome extraction circuit
|
|
||||||
\item Stabilizer codes are effectively the QM
|
|
||||||
% TODO: Actually binary linear codes or
|
|
||||||
% just linear codes?
|
|
||||||
equivalent of binary linear codes (e.g.,
|
|
||||||
expressible via check matrix)
|
|
||||||
\item Similar to parity checks, quantum states can be
|
|
||||||
more conveniently described using stabilizers
|
|
||||||
rather than working with the states directly
|
|
||||||
\cite[Sec.~10.5.1]{nielsen_quantum_2010}
|
|
||||||
\end{itemize}
|
|
||||||
\item Color codes?
|
|
||||||
\item Surface codes?
|
|
||||||
\end{itemize}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
\renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
|
\renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
|
||||||
\makeatother
|
\makeatother
|
||||||
|
|
||||||
|
\setcounter{MaxMatrixCols}{20}
|
||||||
|
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
% Custom commands
|
% Custom commands
|
||||||
|
|||||||
Reference in New Issue
Block a user