Incorporate Jonathan's correction to sliding-window decoding sections

This commit is contained in:
2026-05-04 17:35:33 +02:00
parent 7bf1b2f8d7
commit a977860ddb
2 changed files with 77 additions and 75 deletions

View File

@@ -2,31 +2,30 @@
\chapter{Decoding under Detector Error Models}
\label{ch:Decoding}
In \Cref{ch:Fundamentals} we introduced the fundamentals of classical
In \Cref{ch:Fundamentals}, we introduced the fundamentals of classical
error correction, before moving on to quantum information science and
finally combining the two in \acf{qec}.
In \Cref{ch:Fault tolerance} we then turned to fault-tolerance, with
In \Cref{ch:Fault tolerance}, we then turned to fault-tolerance, with
a focus on a specific way of implementing it, called \acfp{dem}.
In this chapter, we move on from the fundamental concepts and examine
how to apply them in practice.
Specifically, we concern ourselves with the practical aspects of decoding
under \acp{dem}.
Specifically, we consider the practical aspects of decoding under \acp{dem}.
We investigate decoding \acf{qldpc} codes under \acp{dem} in particular.
In particular, we investigate decoding \acf{qldpc} codes under \acp{dem}.
We focus on \ac{qldpc} codes, as they have emerged as leading
candidates for practical quantum error correction, offering
comparable thresholds with substantially improved encoding rates
\cite[Sec.~1]{bravyi_high-threshold_2024}.
Because of this, the decoding algorithms we consider will all be
related to \acf{bp} in some way.
based on \acf{bp}.
Our aim is to build a fault-tolerant \ac{qec} system that works well
even in the presence of circuit-level noise.
We must overcome two main challenges to achieve this.
First, recall the problems related to degeneracy, which is inherent
to quantum codes.
Because multiple minimum-weight codewords exist, the \ac{bp}
algorithm becomes uncertain of the direction to proceed in.
Because multiple minimum-weight solutions to the decoding problem may
exist, the \ac{bp} algorithm becomes uncertain of the direction to proceed in.
Additionally, the commutativity conditions of the stabilizers
necessitate the existence of short cycles.
Together, these two aspects lead to substantial convergence problems
@@ -40,28 +39,28 @@ We also perform multiple rounds of syndrome measurements,
exacerbating the problem.
This leads to a massively increased computational complexity and
latency of the decoding process.
In our experiments using the $\llbracket 144,12,12 \rrbracket$
\acf{bb} code with $12$ syndrome measurement rounds, for example, the
number of \acp{vn} grew from $144$ to $9504$, and the
number of \acfp{cn} grew from $72$ to $1008$.
For example, in our experiments using the $\llbracket 144,12,12
\rrbracket$ \acf{bb} code with $12$ syndrome measurement rounds, the
number of \acp{vn} grew from $144$ to $9504$, and the number of
\acfp{cn} grew from $72$ to $1008$.
The first problem is not inherent to \acp{dem} or fault-tolerance,
but rather quantum codes in general.
Many different approaches to solving it exist, usually centered
around somehow modifying \ac{bp}.
The most popular approach is combining a few initial
iterations of \ac{bp} with a second decoding algorithm, \ac{osd}
around modifying \ac{bp}.
The most popular approach is combining a few initial iterations of
\ac{bp} with a second decoding algorithm, namely \ac{osd}
\cite{roffe_decoding_2020}.
Other approaches exist, such as \ac{aed}
\cite{koutsioumpas_automorphism_2025}, where multiple variations of
the code are decoded simultaneously to increase the chances of convergence.
the syndrome, based on graph and code symmetries, are decoded
simultaneously to increase the chances of convergence.
Here, we will focus on the \acf{bpgd} algorithm
\cite{yao_belief_2024} we already introduced in \Cref{ch:Fundamentals},
for reasons that will become clear later in the chapter.
\cite{yao_belief_2024} introduced in \Cref{ch:Fundamentals}.
The second problem is inherent to decoding using \acp{dem}.
This is an area that has received less attention.
As we saw in \Cref{sec:Quantum Error Correction}, for \ac{qec},
This is an area that has so far received less attention in the literature.
As discerned in \Cref{sec:Quantum Error Correction}, for \ac{qec},
latency is the main constraint, not raw computational complexity.
The main way this is addressed in the literature is \emph{sliding
window decoding}, which attempts to divide the overall decoding
@@ -70,7 +69,7 @@ problem into many smaller ones that can be solved more efficiently.
% TODO: This could potentially be a bit more text (e.g., go into
% SC-LDPC like structure that serves as the inspiration for the
% warm-start decoding. Or just go into warm-start decoding)
Our own work will focus mostly on the the solution of the second
In this thesis, we will focus mostly on the the solution of the second
problem using sliding-window decoding.
We will start by briefly reviewing the existing work related to
sliding-window decoding,
@@ -200,7 +199,7 @@ Each of these windows is then decoded separately.
% Some general notes
\Cref{fig:literature} gives an overview over the existing body of work
\Cref{fig:literature} gives an overview over the existing works
related to sliding-window decoding.
The papers \cite{huang_improved_2023} and \cite{huang_increasing_2024} are
lumped together, as they share the same content;
@@ -217,9 +216,9 @@ software freely available online%
\footnote{
\url{https://github.com/gongaa/SlidingWindowDecoder}
}.
A final thing to note is that \cite{dennis_topological_2002} never
explicitly mentions sliding windows; the authors call their scheme
``overlapping recovery''.
Finally, note that \cite{dennis_topological_2002} never explicitly
mentions sliding windows; the authors call their scheme ``overlapping
recovery''.
% Topological vs QLDPC
@@ -244,7 +243,7 @@ Finally, \cite{gong_toward_2024} explores \ac{bb} codes.
% Sequential vs parallel
After having divided the whole circuit into separate windows, the question
arises of how exactly to realize the decoding.
arises of how to make use of the window-like structure for decoding.
There are two main approaches, with differing mechanisms of reducing
the latency.
Some papers decode the sliding windows in a parallel fashion.
@@ -252,7 +251,8 @@ The benefit in this case is
is that classical hardware can be utilized more effectively.
Others choose a sequential approach.
Here, decoding can start earlier, as there is no need to wait for the
syndrome measurements of all windows before beginning with the decoding.
syndrome measurements of subsequent windows before beginning with the
decoding of earlier windows.
With the exception of \cite{dennis_topological_2002}, literature
treating topological codes has mostly focused on parallel decoding
while literature treating \ac{qldpc} codes has wholly considered
@@ -261,7 +261,7 @@ sequential decoding.
% Deep-dive into QLDPC methods
For this work, the publications treating \ac{qldpc} codes are
especially interesting.
particularly interesting.
The experimental conditions for these are summarized in
\Cref{table:experimental_conditions}.
As we noted above, \ac{hgp} and \ac{lp} codes are considered in
@@ -286,12 +286,12 @@ explicitly work with the \ac{dem} formalism.
sliding-window decoding for \ac{qldpc} codes.}
\vspace*{3mm}
\label{table:experimental_conditions}
\begin{tabular}{l|ccc}
\begin{tabular}{lccc}\toprule
% tex-fmt: off
Publication & Code & Noise Model & Decoder \\ \hline
\hspace{-2.5mm}\cite{huang_improved_2023},\cite{huang_increasing_2024} & \acs{hgp}, \acs{lp} & Phenomenological noise & \acs{bp} + \acs{osd} \\
\hspace{-2.5mm}\cite{gong_toward_2024} & \acs{bb} & Circuit-level noise & \acs{bp} + \acs{gdg} \\
\hspace{-2.5mm}\cite{kang_quits_2025} & \acs{hgp}, \acs{lp}, \acs{bpc} & Circuit-level noise & \acs{bp} + \ac{osd}
Publication & Code & Noise Model & Decoder \\ \midrule
\hspace{-2.5mm}\cite{huang_improved_2023},\cite{huang_increasing_2024} & \acs{hgp}, \acs{lp} & Phenomenological noise & \acs{bp} + \acs{osd} \\
\hspace{-2.5mm}\cite{gong_toward_2024} & \acs{bb} & Circuit-level noise & \acs{bp} + \acs{gdg} \\
\hspace{-2.5mm}\cite{kang_quits_2025} & \acs{hgp}, \acs{lp}, \acs{bpc} & Circuit-level noise & \acs{bp} + \acs{osd} \\ \bottomrule
% tex-fmt: on
\end{tabular}
\end{table}
@@ -382,7 +382,7 @@ explicitly work with the \ac{dem} formalism.
\subsection{Window Splitting and Sequential Sliding-Window Decoding}
\label{subsec:Window Splitting and Sequential Sliding-Window Decoding}
In this section, we will examine the methodology by which a detector
In this section, we examine the methodology by which a detector
error matrix is divided into overlapping windows.
The algorithm detailed here follows \cite{kang_quits_2025}, which
is in turn based on \cite{huang_increasing_2024}.
@@ -411,11 +411,10 @@ After decoding a window, there is a subset of \acp{cn} that
no longer contribute to decoding, since none of their
neighboring \acp{vn} appear in subsequent windows.
We call the set of \acp{vn} connected to those \acp{cn} the
\emph{commit region} and we wish to commit them before moving to the
\emph{commit region} and we commit them before moving to the
next window, i.e., fix the values we estimate for the corresponding bits.
As mentioned above, the benefit of this sequential sliding-window
decoding approach
is that the decoding process can begin as soon as the syndrome
The benefit of this sequential sliding-window decoding approach is
that the decoding process can begin as soon as the syndrome
measurements for the first window are complete.
% W and F and why we look at rows, not columns
@@ -425,15 +424,15 @@ The \emph{window size} $W \in \mathbb{N}$ represents the number of
syndrome extraction rounds lumped into one window, while
the \emph{step size} $F \in \mathbb{N}$ represents the number of
syndrome extraction rounds skipped before starting the next window.
$W$ controls the size of the windows while $F$ controls the overlap
between them.
The parameter $W$ controls the size of the windows while $F$ controls
the overlap between them.
As illustrated in \Cref{fig:windowing_pcm}, $W$ and $F$ control the
window dimensions and locations by defining the related \acp{cn},
not the \acp{vn}.
This is because while the number of overall \acp{cn} is only affected
This is because the number of overall \acp{cn} is only affected
by the choice of the underlying code and the number of syndrome
measurement rounds, the number of \acp{vn} depends on the noise model
and is difficult to predict beforehand.
measurement rounds, while the number of \acp{vn} depends on the noise
model and is difficult to predict beforehand.
\begin{figure}[t]
\centering
@@ -469,18 +468,16 @@ and is difficult to predict beforehand.
matrix generated from the $\llbracket 72, 6, 6 \rrbracket$
BB code under circuit-level noise.
The block-diagonal structure reflects the time-like locality
of the syndrome extraction circuit., with each block
of the syndrome extraction circuit, with each block
corresponding to one syndrome measurement round.
Two consecutive windows are highlighted: the window size $W$
controls the number of syndrome rounds included in each
window, while the step size $F$ controls how many rounds
separate the start of one window from the next.
Two consecutive windows are highlighted: the window size $W
\in \mathbb{N}$ controls the number of syndrome rounds
included in each window, while the step size $F \in
\mathbb{N}$ controls how many rounds separate the start of
one window from the next.
The bracketed region indicates the commit
region of the first window, i.e., the \acp{vn} that are committed
before moving to the second window.
% Visualization of the windowing process on a detector
% error matrix generated from the $\llbracket 72, 6, 6
% \rrbracket$ BB code.
before moving to the decoding of the second window.
}
\label{fig:windowing_pcm}
\end{figure}
@@ -493,9 +490,9 @@ We use the variables $n,m \in \mathbb{N}$ to describe the number of
We index the \acp{vn} using the variable $i \in \mathcal{I} :=
[0:n-1]$ and the \acp{cn} using the variable $j \in \mathcal{J} := [ 0 : m-1]$.
Finally, we call $\mathcal{N}_\text{V}(i) = \left\{ j\in \mathcal{J}:
\bm{H}_{j,i} = 1 \right\}$ and $\mathcal{N}_\text{C}(j) := \left\{ i
\in \mathcal{I} : \bm{H}_{j,i} = 1 \right\}$ the neighborhoods of the
corresponding nodes.
H_{j,i} = 1 \right\}$ and $\mathcal{N}_\text{C}(j) := \left\{ i
\in \mathcal{I} : H_{j,i} = 1 \right\}$ the neighborhoods of the
respective nodes.
In this case, we take $\bm{H} \in \mathbb{F}_2^{m\times n}$ to be the
check matrix of the underlying code, from which the \ac{dem} was generated.
We use $m_\text{DEM}, \mathcal{I}_\text{DEM}$, and $\mathcal{J}_\text{DEM}$
@@ -503,17 +500,17 @@ to refer to the respective values defined from the detector error matrix.
% How we get the corresponding rows
We begin by describing the sets of \acp{cn} relevant to each window.
First, we describe the sets of \acp{cn} relevant to each window.
For indexing, we use the variable $\ell \in [0:n_\text{win} - 1]$,
where $n_\text{win} \in \mathbb{N}$ is the number of windows.
Because we defined the step size $F$ as the number of syndrome
extraction rounds to skip, the first \ac{cn} of window $\ell$ should have index
Since we define the step size $F$ as the number of syndrome
extraction rounds to skip, the first \ac{cn} of window $\ell$ has index
$\ell F m$.
Similarly, because of the way we defined the window size $W$, the
number of \acp{cn} should be $Wm$ for all but the last window.
Similarly, due to the definition of the window size $W$, the
number of \acp{cn} per window is $Wm$ for all but the last window.
The number of \acp{cn} in the last window may differ if there are
not enough \acp{cn} left to completely fill it.
We thus define
Thus, we define
\begin{align*}
\mathcal{J}_\text{win}^{(\ell)} &:= \left\{ j\in \mathcal{J}_\text{DEM}:~
\ell F m \le j < \min \left\{m_\text{DEM}, (\ell F + W) m \right\}
@@ -522,13 +519,13 @@ We thus define
\mathcal{J}_\text{commit}^{(\ell)} &:= \left\{ j\in \mathcal{J}_\text{DEM}:~
\ell F m \le j < \min \left\{m_\text{DEM}, (\ell + 1) F m \right\}
\right\}
.%
,%
\end{align*}
$\mathcal{J}_\text{win}^{(\ell)}$ is the set of all \acp{cn} in the
window while $\mathcal{J}_\text{commit}^{(\ell)}$ is the set of \acp{cn}
where $\mathcal{J}_\text{win}^{(\ell)}$ is the set of all \acp{cn} in the
window and $\mathcal{J}_\text{commit}^{(\ell)}$ is the set of \acp{cn}
that do not contribute to the next window and whose neighboring
\acp{vn} will thus be committed.
We can additionally define the set of \acp{cn} that are shared between windows
Additionally, we can define the set of \acp{cn} that are shared between windows
$\ell$ and $\ell + 1$ as $\mathcal{J}_\text{overlap}^{(\ell)} :=
\mathcal{J}_\text{win}^{(\ell)}\setminus \mathcal{J}_\text{commit}^{(\ell)}$.
@@ -537,8 +534,9 @@ $\ell$ and $\ell + 1$ as $\mathcal{J}_\text{overlap}^{(\ell)} :=
We can now turn our attention to defining the sets of \acp{vn} relevant
to each window.
We first introduce a helper function $i_\text{max} :
\mathcal{P}(\mathbb{N}) \to \mathbb{N}$, which takes a set of
\ac{cn} indices and returns the largest neighboring \ac{vn} index.
\mathcal{P}(\mathbb{N}) \to \mathbb{N}$, which takes a set
$\mathcal{S} \in \mathcal{P}(\mathbb{N})$ of \ac{cn} indices and
returns the largest neighboring \ac{vn} index.
We define
\begin{align*}
i_\text{max}\left( \mathcal{S} \right) := \max \left\{ i\in
@@ -552,13 +550,13 @@ where we set $i_\text{max} (\emptyset) = -1$ by convention%
and $\mathcal{I}_\text{win}^{(\ell)}$ appropriately.
}%
.
The commit region of window $\ell$ should include all of the \acp{vn}
The commit region of window $\ell$ includes all of the \acp{vn}
neighboring any of the \acp{cn} in $\mathcal{J}_\text{commit}^{(\ell)}$.
Consequently, the maximum index of the \acp{vn} we consider should be
Consequently, the maximum index of the \acp{vn} we consider is
$i_\text{max}(\mathcal{J}_\text{commit}^{(\ell)})$.
Additionally, the set of \acp{vn} committed in the next window should
start immediately afterwards.
We thus define
contain the next largest index.
Thus we define
\begin{align*}
\mathcal{I}_\text{commit}^{(\ell)}
&:= \left\{i \in \mathcal{I}_\text{DEM} :~
@@ -680,7 +678,7 @@ and after decoding all windows we will therefore have committed all \acp{vn}.
% Syndrome update
\Cref{fig:vis_rep} illustrates the meaning of the various sets of nodes.
\Cref{fig:vis_rep} illustrates the the various sets of nodes.
We can also see a subtlety we must handle carefully when
moving on to decode the next window.
While the \acp{vn} in $\mathcal{J}_\text{commit}^{(\ell)}$ have no
@@ -690,9 +688,12 @@ This is the case because these \acp{vn} have neighboring \acp{cn} in
the next window.
The part of the detector error matrix $\bm{H}_\text{DEM}$ describing
these connections is
$\bm{H}_\text{overlap}^{(\ell)} =
\left(\bm{H}_\text{DEM}\right)_{\mathcal{J}_\text{overlap}^{(\ell)},
\mathcal{I}_\text{commit}^{(\ell)}}$.
\begin{align*}
\bm{H}_\text{overlap}^{(\ell)} :=
\left(\bm{H}_\text{DEM}\right)_{\mathcal{J}_\text{overlap}^{(\ell)},
\mathcal{I}_\text{commit}^{(\ell)}}
.%
\end{align*}
We have to account for this fact by updating the syndrome $\bm{s}$
based on the committed bit values.
Specifically, if $\hat{\bm{e}}_\text{commit}^{(\ell)}$ describes the error

View File

@@ -29,6 +29,7 @@
\usepackage{colortbl}
\usepackage{cleveref}
\usepackage{lipsum}
\usepackage{booktabs}
\usetikzlibrary{calc, positioning, arrows, fit}
\usetikzlibrary{external}