\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.