25 Commits

Author SHA1 Message Date
1de3eb10fc Change cel slides submodule url 2026-03-23 01:06:07 +01:00
a3191fa0b7 Change phrasing 2026-03-23 01:00:00 +01:00
4c778e7bc6 Add cel slides template to TEXINPUTS in Makefile 2026-03-23 00:59:35 +01:00
fd0a354cf9 Minor changes 2026-03-23 00:58:52 +01:00
3b9f108ee5 Fix gitmodules url 2026-03-23 00:57:23 +01:00
993148d902 Check out newest version of thesis template 2026-03-23 00:57:06 +01:00
c3b0c194fe Make current thesis text use CEL template 2026-03-22 22:57:35 +01:00
7703fa4023 Add cel thesis template to lib/ as submodule 2026-03-22 22:21:06 +01:00
29968c8c4d Finish fist draft of binary linear block codes 2026-03-22 22:11:35 +01:00
e5dc0bc074 Add .tmux_session.sh 2026-03-21 18:58:32 +01:00
361e572a1b Add outline and first page of content for thesis 2026-03-21 18:57:32 +01:00
d8ca717021 Final corrections 2026-02-05 13:02:24 +01:00
44ffee48fd Remove empty slide; Fix TOC 2026-02-05 04:52:36 +01:00
723cfe438a Add graphics 2026-02-05 04:47:28 +01:00
ada33d4af1 Finish backup slide 2026-02-05 04:47:12 +01:00
54c08c5bc3 Finish performance evaluation and conclusion slides 2026-02-05 03:26:54 +01:00
27bcf9ec15 Center slide contents 2026-02-04 22:41:40 +01:00
979f33a825 Replace all references with manual strings 2026-02-04 22:34:48 +01:00
a3e6d273a7 Remove unnecessary text 2026-02-04 21:17:08 +01:00
a624e49f23 Add Tanner graph from AutDec paper 2026-02-04 20:59:47 +01:00
67264e74c9 Animate noise model 2026-02-04 20:16:53 +01:00
93a10270fb Animate detector circuit 2026-02-04 18:32:20 +01:00
ed3a1f50fd Make detector XOR graphic red 2026-02-04 18:20:14 +01:00
f3ee9a32df Add error annotation above omega matrix 2026-02-04 16:11:57 +01:00
57d2ce2dd6 Add changes up to slide 11 2026-02-04 13:56:33 +01:00
18 changed files with 3245 additions and 585 deletions

5
.gitmodules vendored
View File

@@ -1,3 +1,6 @@
[submodule "lib/cel-slides-template-2025"]
path = lib/cel-slides-template-2025
url = git@gitlab.kit.edu:kit/cel/misc/cel-slides-template-2025.git
url = ssh://git@100.123.176.93:2222/an.tsouchlos/cel-slides-template-2025.git
[submodule "lib/cel-thesis"]
path = lib/cel-thesis
url = ssh://git@100.123.176.93:2222/an.tsouchlos/cel-thesis.git

9
.tmux_session.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
SESSION=$1
tmux send-keys -t "$SESSION:1" "cd ~/workspace/private/ma-thesis/" Enter
tmux send-keys -t "$SESSION:1" "./.setup_local_env.sh" Enter
# tmux send-keys -t "$SESSION:1" "export TEXINPUTS=./lib/cel-slides-template-2025:\$TEXINPUTS" C-m
tmux send-keys -t "$SESSION:1" "trap './.clean_local_env.sh' EXIT" Enter
tmux send-keys -t "$SESSION:1" "nvim" Enter
tmux send-keys -t "$SESSION:1" "\\ll" Enter

View File

@@ -4,7 +4,8 @@ DOCUMENTS := $(patsubst src/%/main.tex,build/%.pdf,$(wildcard src/*/main.tex))
all: $(DOCUMENTS)
build/%.pdf: src/%/main.tex build/prepared
latexmk $<
TEXINPUTS=./lib/cel-slides-template-2025:$(dir $<):$$TEXINPUTS \
latexmk -outdir=build/$* $<
mv build/main.pdf $@
build/prepared:

1
lib/cel-thesis Submodule

Submodule lib/cel-thesis added at f783ba56a1

View File

@@ -64,8 +64,7 @@
\Ac{qec} is a field of research combining quantum mechanics and
``classical'' communications engineering.
This chapter provides the relevant theoretical background on both of
these topics and subsequently, building on top of this, introduces the
the fundamentals of \ac{qec}.
these topics and subsequently introduces the the fundamentals of \ac{qec}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO: Is Quantum Information Theory the correct title here? Would someth

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

29
src/thesis/acronyms.tex Normal file
View File

@@ -0,0 +1,29 @@
\DeclareAcronym{qec}{
short=QEC,
long=quantum error correction
}
\DeclareAcronym{bp}{
short=BP,
long=belief propagation
}
\DeclareAcronym{sc}{
short=SC,
long=spatially coupled
}
\DeclareAcronym{ldpc}{
short=LDPC,
long=low-density parity-check
}
\DeclareAcronym{ml}{
short=ML,
long=maximum likelihood
}
\DeclareAcronym{pcm}{
short=PCM,
long=parity-check matrix
}

1461
src/thesis/bibliography.bib Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
\chapter{Introduction}

View File

@@ -0,0 +1,370 @@
\chapter{Fundamentals}
\label{ch:Fundamentals}
\Ac{qec} is a field of research combining ``classical''
communications engineering and quantum information science.
This chapter provides the relevant theoretical background on both of
these topics and subsequently introduces the the fundamentals of \ac{qec}.
% TODO: Is an explanation of BP with guided decimation needed in this chapter?
% TODO: Is an explanation of OSD needed chapter?
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Classical Error Correction}
\label{sec:Classical Error Correction}
% TODO: Maybe rephrase: The core concept is not the realization, its's the
% thing itself
The core concept underpinning error correcting codes is the
realization that a finite amount of redundancy, introduced
deliberately and systematically to information before its
tranmission, can be utilized to reduce the error rate of a
communications system considerably.
This idea has been expanded upon significantly since it was first
brought forward by Claude Shannon in 1948 \cite{shannon_mathematical_1948}.
In this section, we explore the concepts of ``classical'' (as in non-quantum)
error correction that are central to this work.
We start by looking at different ways of encoding information,
first considering binary linear block codes in general and then \ac{ldpc} and
\ac{sc}-\ac{ldpc} codes.
Finally, we pivot to the decoding process, specifically the \ac{bp}
algorithm.
% TODO: Use subsubsections?
\subsection{Binary Linear Block Codes}
%
% Codewords, n, k, rate
%
% TODO: Do I need a specific reference for the expanded Hilbert space thing?
One particularly important class of coding schemes is that of binary
linear block codes.
The information to be protected takes the form of a sequence of of
binary symbols, which is split into separate blocks.
Each block is encoded, transmitted, and decoded separately.
The encoding step introduces redundancy by mapping input messages
$\bm{u} \in \mathbb{F}_2^k$ of length $k \in \mathbb{N}$ (called the
\textit{information length}) onto \textit{codewords} $\bm{x} \in
\mathbb{F}_2^n$ of length $n \in \mathbb{N}$ (called the
\textit{block length}) with $n > k$.
A measure of the amount of introduced redundancy is the \textit{code
rate} $R = k/n$.
We call the set of all codewords $\mathcal{C}$ the \textit{code}
\cite[Sec. 3.1]{ryan_channel_2009}.
%
% d_min and the [] Notation
%
During the encoding process, a mapping from $\mathbb{F}_2^k$
onto $\mathcal{C} \subset \mathbb{F}_2^n$ takes place.
The input messages are mapped onto an expanded vector space, where
they are ``further appart'', giving rise to the error correcting
properties of the code.
This notion of the distance between two codewords $\bm{x}_1$ and
$\bm{x}_2$ can be expressed using the \textit{Hamming distance} $d(\bm{x}_1,
\bm{x}_2)$, which is defined as the number of positions in which they differ.
We define the \textit{minimum distance} of a code $\mathcal{C}$ as
\begin{align*}
d_\text{min} = \min \left\{ d(\bm{x}_1, \bm{x}_2) : \bm{x}_1,
\bm{x}_2 \in \mathcal{C}, \bm{x}_1 \neq \bm{x}_2 \right\}
.
\end{align*}
We can signify that a binary linear block code has information length
$k$, block length $n$ and minimum distance $d_\text{min}$ using the
notation $[n,k,d_\text{dmin}]$ \cite[Sec. 1.3]{macwilliams_theory_1977}.
%
% Parity checks, H, and the syndrome
%
A particularly elegant way of describing the subspace $C$ of
$\mathbb{F}_2^n$ that the codewords make up is the notion of
\textit{parity checks}.
Since $\lvert \mathcal{C} \rvert = 2^k$ and $\lvert \mathbb{F}_2^n
\rvert = 2^n$, we could introduce $n-k$ conditions to constrain the
additional degrees of freedom.
These conditions, called parity checks, take the form of equations
over $\mathbb{F}_2^n$, linking the individual positions of each codeword.
We can arrange the coefficients of these equations in the
\textit{parity-check matrix} (\acs{pcm}) $\bm{H} \in
\mathbb{F}_2^{(n-k) \times n}$ and equivalently define the code as
\cite[Sec. 3.1]{ryan_channel_2009}
\begin{align*}
\mathcal{C} = \left\{ \bm{x} \in \mathbb{F}_2^n :
\bm{H}\bm{x}^\text{T} = \bm{0} \right\}
.%
\end{align*}
The \textit{syndrome} $\bm{s} = \bm{H} \bm{v}^\text{T}$ describes
which parity checks a candidate codeword $\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 doesn't grow
exponentially with $n$, in contrast to keeping track of all codewords directly.
%
% The decoding problem
%
Figure \ref{fig:Diagram of a transmission system} visualizes the
entire communication process \cite[Sec. 1.1]{ryan_channel_2009}.
An input message $\bm{u}\in \mathbb{F}_2^k$ is mapped onto a codeword $\bm{x}
\in \mathbb{F}_2^n$. This is passed on to a modulator, which
interacts with the physical channel.
A demodulator processes the received message and forwards the result
$\bm{y} \in \mathbb{R}^n$ to a decoder.
Finally, the decoder is responsible for obtaining an estimate
$\hat{\bm{u}} \in \mathbb{F}_2^k$ of the original input message from the
received message.
This is done by first finding an estimate $\hat{\bm{x}}$ of the sent
codeword and undoing the encoding.
The decoding problem that we generally attempt to solve thus consists
in finding the best estimate $\hat{\bm{x}}$ given $\bm{y}$.
One approach is to use the \ac{ml} criterion \cite[Sec.
1.4]{ryan_channel_2009}
\begin{align*}
\hat{\bm{u}}_\text{ML} = \arg\max_{\bm{x} \in \mathcal{C}}
P(\bm{Y} = \bm{y} \vert \bm{X} = \bm{x})
.
\end{align*}
Finally, we differentiate between \textit{soft decision} decoding, where
$\bm{y} \in \mathbb{R}^n$, and \textit{hard decision} decoding, where
$\bm{y} \in \mathbb{F}_2^n$ \cite[Sec. 1.5.1.3]{ryan_channel_2009}.
%
\begin{figure}[h]
\centering
\tikzset{
box/.style={
rectangle, draw=black, minimum width=17mm, minimum height=8mm,
},
}
\begin{tikzpicture}
[
node distance = 2mm and 7mm,
]
\node (in) {};
\node[box, right=of in] (enc) {Encoder};
\node[box, minimum width=25mm, right=of enc] (mod) {Modulator};
\node[box, below right=of mod] (cha) {Channel};
\node[box, minimum width=25mm, below left=of cha] (dem) {Demodulator};
\node[box, left=of dem] (dec) {Decoder};
\node[left=of dec] (out) {};
\draw[-{latex}] (in) -- (enc) node[midway, above] {$\bm{u}$};
\draw[-{latex}] (enc) -- (mod) node[midway, above] {$\bm{x}$};
\draw[-{latex}] (mod) -| (cha);
\draw[-{latex}] (cha) |- (dem);
\draw[-{latex}] (dem) -- (dec) node[midway, above] {$\bm{y}$};
\draw[-{latex}] (dec) -- (out) node[midway, above] {$\hat{\bm{u}}$};
\end{tikzpicture}
\caption{Overview of a transmission system.}
\label{fig:Diagram of a transmission system}
\end{figure}
%
%
% Hard vs. soft information
%
\subsection{Low-Density Parity-Check Codes}
\red{
\begin{itemize}
\item Use \cite[Ch. 5]{ryan_channel_2009} as a reference
\item Core concept (Large $n$ with manageable complexity)
\item Tanner graphs, VNs and CNs
\end{itemize}
}
\subsection{Spatially-Coupled LDPC Codes}
\red{
\begin{itemize}
\item Core idea
\item Mathematical description (H)
\end{itemize}
}
\subsection{Belief Propagation}
\red{
\begin{itemize}
\item Core idea
\item BP for SC-LDPC codes
\end{itemize}
}
\section{Quantum Mechanics and Quantum Information Science}
\label{sec:Quantum Mechanics and Quantum Information Science}
% TODO: Should the brief intro to QC be made later on or here?
%%%%%%%%%%%%%%%%
\subsection{Core Concepts and Notation}
\label{subsec:Notation}
\ldots can be very elegantly expressed using the language of
linear algebra.
\todo{Mention that we model the state of a quantum mechanical system
as a vector}
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}$.
Kets denote ordinary 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}$.
Their inner product is $\braket{a\vert b}$.
\red{\textbf{Tensor product}}
\red{\ldots
\todo{Introduce determinate state or use a different word?}
Take for example two systems with the determinate states $\ket{0}$
and $\ket{1}$. In general, the state of each can be written as the
superposition%
%
\begin{align*}
\alpha \ket{0} + \beta \ket{1}
.%
\end{align*}
%
Combining these two sytems into one, the overall state becomes%
%
\begin{align*}
&\mleft( \alpha_1 \ket{0} + \beta_1 \ket{1} \mright) \otimes
\mleft( \alpha_2 \ket{0} + \beta_2 \ket{1} \mright) \\
= &\alpha_1 \alpha_2 \ket{0} \ket{0}
+ \alpha_1 \alpha_2 \ket{0} \ket{1}
+ \beta_1 \alpha_2 \ket{1} \ket{0}
+ \beta_1 \beta_2 \ket{1} \ket{1}
% =: &\alpha_{00} \ket{00}
% + \alpha_{01} \ket{01}
% + \alpha_{10} \ket{10}
% + \alpha_{11} \ket{11}
.%
\end{align*}%
%
\ldots When not ambiguous in the context, the tensor product
symbol may be omitted, e.g.,
\begin{align*}
\ket{0} \otimes \ket{0} = \ket{0}\ket{0}
.%
\end{align*}
}
As we will see, the core concept that gives quantum computing its
power is entanglement. When two quantum mechanical systems are
entangled, measuring the state of one will collapse that of the other.
Take for example two subsystems with the overall state
%
\begin{align*}
\ket{\psi} = \frac{1}{\sqrt{2}} \mleft( \ket{0}\ket{0} +
\ket{1}\ket{1} \mright)
.%
\end{align*}
%
If we measure the first subsystem as being in $\ket{0}$, we can
be certain that a measurement of the second subsystem will also yield $\ket{0}$.
Introducing a new notation for entangled states, we can write%
%
\begin{align*}
\ket{\psi} = \frac{1}{\sqrt{2}} \left( \ket{00} + \ket{11} \right)
.%
\end{align*}
%
\subsection{Projective Measurements}
\label{subsec:Projective Measurements}
% TODO: Write
%%%%%%%%%%%%%%%%
\subsection{Quantum Gates}
\label{subsec:Quantum Gates}
\red{
\textbf{Content:}
\begin{itemize}
\item Bra-ket notation
\item The tensor product
\item Projective measurements (the related operators,
eigenvalues/eigenspaces, etc.)
\begin{itemize}
\item First explain what an operator is
\end{itemize}
\item Abstract intro to QC: Use gates to process qubit
states, similar to classical case
\item X, Z, Y operators/gates
\item Hadamard gate (+ X and Z are the same thing in differt bases)
\item Notation of operators on multi-qubit states
\item The Pauli, Clifford and Magic groups
\end{itemize}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Quantum Error Correction}
\label{sec:Quantum Error Correction}
\red{
\textbf{Content:}
\begin{itemize}
\item General context
\begin{itemize}
\item Why we want QC
\item Why we need QEC (correcting errors due to noisy gates)
\item Main challenges of QEC compared to classical
error correction
\end{itemize}
\item Stabilizer codes
\begin{itemize}
\item Definition of a stabilizer code
\item The stabilizer its generators (note somewhere
that the generators have to commute to be able to
be measured without disturbing each other)
\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)
\end{itemize}
\item Digitization of errors
\item CSS codes
\item Color codes?
\item Surface codes?
\item Fault tolerant error correction (gates with which we do
error correction are also noisy)
\begin{itemize}
\item Transversal operations
\item \dots
\end{itemize}
\item Circuit level noise
\item Detector error model
\begin{itemize}
\item Columns of the check matrix represent different
possible error patterns $\rightarrow$ Check matrix
doesn't quite correspond to the codewords we used
initially anymore, but some similar structure ist
still there (compare with syndrome)
\end{itemize}
\end{itemize}
\textbf{General Notes:}
\begin{itemize}
\item Give a brief overview of the history of QEC
\item Note (and research if this is actually correct) that QC
was developed on an abstract level before thinking of
what hardware to use
\item Note that there are other codes than stabilizer codes
(and research and give some examples), but only
stabilizer codes are considered in this work
\item Degeneracy
\item The QEC decoding problem (considering degeneracy)
\end{itemize}
}
\subsection{Stabilizer Codes}
\subsection{CSS Codes}
\subsection{Quantum Low-Density Parity-Check Codes}

View File

@@ -0,0 +1,13 @@
\chapter{Fault Tolerant QEC}
\section{Fault Tolerance}
\section{Noise Models}
\subsection{Depolarizing Channel}
\subsection{Phenomenological Noise}
\subsection{Circuit-Level Noise}
\section{Detector Error Models}
\subsection{Measurement Syndrome Matrix}
\subsection{Detector Error Matrix}
\subsection{Detector Error Models}
\section{Practical Considerations}
\subsection{Practical Methodology}
\subsection{Stim}

View File

@@ -0,0 +1,5 @@
\chapter{Decoding under Detector Error Models}
\section{Sliding-Window Decoding}
\section{Treating Detector Error Matrices like SC-LDPC Codes}
\section{Soft-Information Aware Sliding-Window Decoding}
\section{Numerical Results and Analysis}

View File

@@ -0,0 +1 @@
\chapter{Conclusion and Outlook}

98
src/thesis/main.tex Normal file
View File

@@ -0,0 +1,98 @@
\documentclass{lib/cel-thesis/cel-thesis}
\usepackage[a4paper,left=3cm,right=3cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{float}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mleftright}
\usepackage{bm}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{acro}
\usepackage{braket}
% \usepackage[
% backend=biber,
% style=ieee,
% sorting=nty,
% ]{biblatex}
\usepackage{todonotes}
\usetikzlibrary{calc, positioning, arrows}
%
%
% Custom commands
%
%
\newcommand{\red}[1]{\textcolor{red}{#1}}
%
%
% Acronyms
%
%
\input{acronyms.tex}
\usepackage{babelbib}
\setlanguage
\usepackage{caption}
\usepackage{bm}
\usepackage{subcaption}
\usepackage{todonotes} % great for draft annotations
\DeclareCaptionLabelFormat{bf-nodot}{\textbf{#1}~\textbf{#2}}
\captionsetup{labelformat=bf-nodot,labelsep=colon}
%
%
% Content
%
%
\thesisTitle{Fault Tolerant Quantum Error Correction}
\thesisType{Master's Thesis}
\thesisAuthor{Andreas Tsouchlos}
\thesisAdvisor{Prof. Dr.-Ing. Laurent Schmalen}
\thesisHeadOfInstitute{Prof. Dr.-Ing. Laurent Schmalen}
% \thesisHeadOfInstitute{Prof. Dr.-Ing. Peter Rost}
%\thesisHeadOfInstitute{Prof. Dr.-Ing. Peter Rost\\Prof. Dr.-Ing.
% Laurent Schmalen}
\thesisSupervisor{Jonathan Mandelbaum}
\thesisStartDate{01.11.2025}
\thesisEndDate{04.05.2026}
\thesisSignatureDate{Signature date}
\thesisLanguage{english}
\begin{document}
\pagenumbering{roman} % all the preliminaries should be counted roman style
\maketitle
\newpage
% \include{chapters/abstract}
\cleardoublepage
\pagenumbering{arabic}
\tableofcontents
\cleardoublepage
\input{chapters/1_introduction.tex}
\input{chapters/2_fundamentals.tex}
\input{chapters/3_fault_tolerant_qec.tex}
\input{chapters/4_decoding_under_dems.tex}
\input{chapters/5_conclusion_and_outlook.tex}
% \appendix
% \listoffigures
% \listoftables
% \include{abbreviations}
\bibliography{lib/cel-thesis/IEEEabrv,bibliography}
\end{document}