\chapter{Introduction}
\label{ch:Introduction}

\acresetall

% Intro to quantum computing

In 1982, Richard Feynman, motivated by the difficulty of simulating
quantum-mechanical systems on classical hardware, put forward the
idea of building computers that are themselves quantum mechanical
\cite{feynman_simulating_1982}.
The use of such quantum computers has since been shown to offer promising
prospects not only with regard to simulating quantum systems but also
for solving certain kinds of problems that are classically intractable.
The most prominent example is Shor's algorithm for integer
factorization \cite{shor_algorithms_1994}.

Similar to the way classical computers are built from bits and gates,
quantum computers are built from \emph{qubits} and \emph{quantum gates}.
Because of quantum entanglement, it does not suffice to consider the
qubits individually, we also have to consider correlations between them.
For a system of $n$ qubits, this makes the state space grow with
$2^n$ instead of linearly with $n$, as would be the case for a classical system
\cite[Sec.~1]{gottesman_stabilizer_1997}.
This is both the reason quantum systems are difficult to simulate and
what provides them with their power \cite[Sec.~2.1]{roffe_decoding_2020}.

% The need for QEC

Realizing algorithms that leverage these quantum-mechanical effects
requires hardware that can execute long quantum computations reliably.
This poses a problem, because the qubits making up current devices
consistently interact with their environment \cite[Sec.~1]{roffe_quantum_2019}.
This interaction acts as a continuous small-scale measurement, an
effect we call \emph{decoherence} of the stored quantum state, which
results in errors on the qubits.
Decoherence is the reason large systems do not exhibit visible quantum
properties at human scales \cite[Sec.~1]{gottesman_stabilizer_1997}.

% Intro to QEC

\Ac{qec} has emerged as a leading candidate in solving this problem.
It addresses the issue by encoding the information of $k$
\emph{logical qubits} into a larger number $n>k$ of \emph{physical
qubits}, in close analogy to classical channel coding
\cite[Sec.~1]{roffe_quantum_2019}.
The redundancy introduced this way can then be used to detect and
correct a corrupted the quantum state.
The quantum setting imposes some important constraints that do not exist in the
classical case, however \cite[Sec.~2.4]{roffe_quantum_2019}:
\begin{itemize}
    \item The no-cloning theorem prohibits the duplication of quantum states.
    \item In addition to the bit-flip errors we know from the
        classical setting, qubits are subject to \emph{phase-flips}.
    \item We are not allowed to directly measure the encoded qubits,
        as that would collapse their quantum states.
\end{itemize}
We can deal with the first constraint by not duplicating information, instead
spreading the quantum state across the physical qubits
\cite[Sec.~I]{calderbank_good_1996}.
To deal with phase-flip errors, we must take special care when
constructing \ac{qec} codes.
Using \ac{css} codes, for example, we can use two separate classical
binary linear codes to protect against the two kinds of errors
\cite[Sec. 10.5.6]{nielsen_quantum_2010}.
Finally, we can get around the last issue by using \emph{stabilizer
measurements}.
These are parity measurements that give us information about
potential errors without revealing the underlying qubit states
\cite[Sec.~II.C.]{babar_fifteen_2015}.
This way, we perform a \emph{syndrome extraction} and base the
subsequent decoding process on the measured syndrome.

Another difference between \ac{qec} and classical channel coding is
the resource constraints.
For \ac{qec}, achieving low latency matters more than having a low
overall computational complexity, due to the backlog problem
\cite[Sec.~II.G.3.]{terhal_quantum_2015}: Certain gates turn
single-qubit errors into multi-qubit ones, so errors must be
corrected beforehand.
A \ac{qec} system that is too slow accumulates a backlog at these points,
causing exponential slowdown.

Several code constructions have been proposed for \ac{qec} codes over the years.
Topological codes, such as surface codes, have been the industry
standard for experimental applications for a long time
\cite[Sec.~I]{koutsioumpas_colour_2025}, due to their
reliance on only local connections between qubits
\cite[Sec.~5]{roffe_decoding_2020}.
Recently, \ac{qldpc} codes have been getting increasing
attention as they have been shown to offer comparable thresholds with
substantially improved encoding rates \cite[Sec.~1]{bravyi_high-threshold_2024}.
\ac{qldpc} codes are generally decoded using a syndrome-based variant
of the \ac{bp} algorithm \cite[Sec.~1]{roffe_decoding_2020}.
We focus on \ac{qldpc} codes in our work and specifically \ac{bb} codes,
as they are promising candidates for practical QEC due to their high
encoding rates, large minimum distances, and short-depth syndrome
extraction circuits \cite[Sec.~1]{bravyi_high-threshold_2024}.

% DEMs and fault tolerance

The syndrome extraction itself is implemented on quantum hardware and
is therefore subject to the same noise as the data qubits.
As a consequence, the \ac{qec} procedure, meant to protect the quantum
state, itself introduces new \emph{internal errors}.
A procedure is called \emph{fault-tolerant} if it remains effective
even in the presence of these internal errors
\cite[Sec.~4]{gottesman_introduction_2009}.
To deal with internal errors that flip syndrome bits, multiple rounds
of syndrome measurements are performed.

One approach of implementing fault tolerance is using \acp{dem}.
A \ac{dem} abstracts away the underlying circuit,
focusing only on the relationship between possible errors
and their effects on the syndrome \cite[Sec.~1.4.3]{higgott_practical_2024}.
A \emph{detector error matrix} is generated from the circuit, which is
used for decoding instead of the original check matrix.
The detector error matrix is much larger than the
check matrix of the underlying code, since it needs to represent many
more error locations.
For example, in our experiments using the $\llbracket 144,12,12
\rrbracket$ \ac{bb} code with $12$ syndrome measurement rounds, the
number of \acp{vn} grew from $144$ to $9504$ and the number of
\acp{cn} grew from $72$ to $1008$.
Therefore, decoding under a \ac{dem} poses a challenge with respect to the
latency constraint.

To keep the latency of \ac{dem} decoding manageable, one approach is
\emph{sliding-window decoding}.
Instead of decoding on the entire detector error matrix at once,
it is partitioned into several overlapping windows.
Once decoding of one window is complete, error estimates on the initial part
that is no longer needed are committed, and the next window is processed.
This way, decoding can start as soon as the syndrome bits required
for the first window have been extracted.
The idea originates with the \emph{overlapping recovery} scheme
proposed for the surface code in
\cite[Sec.~IV.B]{dennis_topological_2002} and has since been studied
for surface and toric codes \cite{kuo_fault-tolerant_2024} as well as
for \ac{qldpc} codes under both phenomenological and circuit-level
noise \cite{huang_increasing_2024,gong_toward_2024,kang_quits_2025}.

% Reseach gap + our work

We observe a structural similarity between sliding-window decoding for
\acp{dem} and window decoding for \ac{sc}-\acs{ldpc} codes.
In contrast to the latter, however, where \ac{bp} messages are
carried between windows \cite[Sec.~III.~C.]{hassan_fully_2016},
the existing realizations of sliding-window decoding for \ac{qec}
discard the soft information produced inside one window before moving
to the next.
We propose \emph{warm-start sliding-window decoding}, in which the
\ac{bp} messages from the overlap region of the previous window are
reused to initialize \ac{bp} in the current window in place of the
standard cold-start initialization.
We formulate the warm start for standard \ac{bp} and for
\ac{bpgd}, a variant of \ac{bp} with better convergence properties
for \ac{qec} codes.
The decoders are evaluated by Monte Carlo simulation on the
$\llbracket 144,12,12 \rrbracket$ \ac{bb} code under standard
circuit-based depolarizing noise over $12$ syndrome extraction rounds.
The main finding is that warm-starting yields a consistent
improvement at low iteration budgets, which is the regime relevant for
low-latency operation.

% Outline of the Thesis

This thesis is structured as follows:
\Cref{ch:Fundamentals} reviews the fundamentals of classical and
quantum error correction.
On the classical side, it covers binary linear block codes,
\ac{ldpc} and \ac{sc}-\ac{ldpc} codes, and the \ac{bp} decoding
algorithm.
On the quantum side, it introduces the relevant quantum mechanical
notation, stabilizer measurements, stabilizer codes, \acf{css} codes,
\ac{qldpc} codes, and the \ac{bpgd} algorithm.

\Cref{ch:Fault tolerance} introduces fault-tolerant \ac{qec}.
It formalizes the notion of fault tolerance, presents the noise
models considered in this work, and develops the \ac{dem} formalism
through the measurement syndrome matrix, the detector matrix, and the
detector error matrix.
The chapter closes with a discussion of practical considerations
including the choice of noise model, the per-round \acf{ler}, and the
Stim toolchain.

\Cref{ch:Decoding} considers practical aspects of decoding under \acp{dem}.
It reviews the existing literature on sliding-window decoding for
\ac{qec}, develops the formal windowing construction we build upon,
introduces the proposed warm-start sliding-window decoder for
plain \ac{bp} and for \ac{bpgd}, and reports numerical results on the
$\llbracket 144,12,12 \rrbracket$ \ac{bb} code.

% TODO: Possibly extend to mention specific proposed research directions
\Cref{ch:Conclusion} concludes the thesis and outlines directions for
further research.

