Rewrite VN and CN set definition text; Fix earlier TODOs
This commit is contained in:
@@ -146,7 +146,7 @@ Each of these windows is then decoded separately.
|
||||
|
||||
\node[literature, below right=1mm and -12mm of qldpc] (huang) {\cite{huang_improved_2023},\cite{huang_increasing_2024}};
|
||||
\node[literature, below=of huang] (gong) {\cite{gong_toward_2024}};
|
||||
\node[literature, below=of gong] (kang) {\cite{kang_quits_2025}};
|
||||
\node[literature, below=of gong] (kang) {\cite{kang_quits_2025}};
|
||||
|
||||
\coordinate (code-anchor) at ($(code.south) + (-2mm,0)$);
|
||||
\coordinate (top-anchor) at ($(top.south) + (-5mm,0)$);
|
||||
@@ -397,19 +397,25 @@ This block-diagonal structure introduces some locality in the
|
||||
interdependence between \acp{vn} and \acp{cn}.
|
||||
For each local set of \acp{vn}, there is only a local set of connected \acp{cn}.
|
||||
We exploit this fact by cutting the matrix into overlapping windows.
|
||||
\Cref{fig:windowing_pcm} depicts this process.
|
||||
\Cref{fig:windowing_pcm} depicts this process using the $\llbracket
|
||||
72, 6, 6 \rrbracket$ BB code as an example.
|
||||
|
||||
% High-level overview
|
||||
|
||||
How the locality is leveraged can be understood by considering the
|
||||
decoding process.
|
||||
After decoding a window, there is a subset of \acp{cn} that no longer
|
||||
contribute to the decoding process, as they do not share any \acp{vn}
|
||||
with the \acp{cn} of subsequent windows.\\
|
||||
\content{Commit VNs}
|
||||
\content{Benefit of this approach (as stated above: earlier decoding start)}
|
||||
contribute to decoding, as they are not connected to any \acp{vn}
|
||||
considered for the 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
|
||||
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
|
||||
measurements for the first window are complete.
|
||||
|
||||
% W and F
|
||||
% W and F and why we look at rows, not columns
|
||||
|
||||
There are two degrees of freedom in how we perform the windowing.
|
||||
The \emph{window size} $W \in \mathbb{N}$ represents the number of
|
||||
@@ -417,10 +423,7 @@ syndrome extraction rounds lumped into one window.
|
||||
The \emph{step size} $F \in \mathbb{N}$ represents the number of
|
||||
syndrome extraction rounds passed over before starting the next window.
|
||||
$W$ controls the size of the windows while $F$ controls the overlap
|
||||
between windows.
|
||||
|
||||
% Why we look at rows, not columns
|
||||
|
||||
between them.
|
||||
As illustrated in \Cref{fig:windowing_pcm}, $W$ and $F$ control the
|
||||
window dimensions and locactions by defining the related \acp{cn},
|
||||
not the \acp{vn}.
|
||||
@@ -429,28 +432,6 @@ 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.
|
||||
|
||||
% How we get the corresponding rows and columns
|
||||
|
||||
\content{How we get the rows}
|
||||
\content{Explain how we get the columns once we know the rows}
|
||||
\content{\textbf{General note}: Mathematical definitions where possible}
|
||||
|
||||
% Syndrome update
|
||||
|
||||
\content{Explain commit region}
|
||||
\content{Why we need to update the syndrome}
|
||||
\content{How we update the syndrome}
|
||||
\content{\textbf{General note}: Mathematical definitions where possible}
|
||||
|
||||
% Complete process
|
||||
|
||||
\content{(?) Proper algorithm definition?}
|
||||
\content{1. Decode window}
|
||||
\content{2. Commit VN estimates}
|
||||
\content{3. Update syndrome}
|
||||
\content{4. Decode next window}
|
||||
\content{(?) Explicitly mention we don't reuse existing messages?}
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
|
||||
@@ -481,12 +462,127 @@ and is difficult to predict beforehand.
|
||||
\vspace*{10mm}
|
||||
|
||||
\caption{
|
||||
Visualization of the windowing process on the detector
|
||||
error matrix.
|
||||
Visualization of the windowing process on a detector
|
||||
error matrix generated from the $\llbracket 72, 6, 6
|
||||
\rrbracket$ BB code.
|
||||
}
|
||||
\label{fig:windowing_pcm}
|
||||
\end{figure}
|
||||
|
||||
% Notation recap
|
||||
|
||||
We briefly reintroduce the notation important for the definition of the windows.
|
||||
We use the variables $n,m \in \mathbb{N}$ to describe the number of
|
||||
\acp{vn} and \acp{cn} respectively.
|
||||
We index the \acp{vn} using the variable $i \in \mathcal{I} := \left\{
|
||||
1,\ldots,n \right\}$ and the \acp{cn} using the variable $j \in
|
||||
\mathcal{J} := \left\{ 1, \ldots, m \right\}$.
|
||||
Finally, we call $\mathcal{N}_\text{V}(i) = \left\{ i\in \mathcal{I}:
|
||||
\bm{H}_{j,i} = 1 \right\}$ and $\mathcal{N}_\text{C}(j) := \left\{ j
|
||||
\in \mathcal{J} : \bm{H}_{j,i} = 1 \right\}$ the neighborhoods of the
|
||||
corresponding 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.
|
||||
|
||||
% How we get the corresponding rows
|
||||
|
||||
We begin by describing the sets of \acp{cn} relevant to each window.
|
||||
For indexing, we use the variable $\ell \in \left\{
|
||||
0,\ldots,n_\text{win} - 1 \right\}$, 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
|
||||
$\ell F m$.
|
||||
Similarly, because of the way we defined the step size $W$, the
|
||||
number of \acp{cn} should be $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%
|
||||
\footnote{
|
||||
Note that the inequality is written in terms of $j-1$, not just $j$.
|
||||
This is done to transform between zero-based and one-based indexing.
|
||||
}
|
||||
\red{
|
||||
\begin{align*}
|
||||
\mathcal{J}_\text{win}^{(\ell)}
|
||||
&:= \left\{ j\in \mathcal{J}:~ \ell F m \le j - 1 < (\ell F +
|
||||
W)\cdot m \right\} \\[2mm]
|
||||
& \hspace{30mm} \text{and} \\[2mm]
|
||||
\mathcal{J}_\text{commit}^{(\ell)}
|
||||
&:= \left\{ j\in \mathcal{J}:~ \ell F m \le j - 1 < (\ell + 1)\cdot
|
||||
F m \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}
|
||||
that do not contribute to the next window and whose neighboring
|
||||
\acp{vn} will thus be comitted.
|
||||
|
||||
% How we get the corresponding columns
|
||||
|
||||
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}) \mapsto \mathbb{N}$, which takes a set 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
|
||||
\mathcal{N}_\text{C}(j) : j\in \mathcal{S} \right\}
|
||||
.
|
||||
\end{align*}
|
||||
The commit region of window $\ell$ should include 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
|
||||
$i_\text{max}(\mathcal{J}_\text{commit}^{\ell})$.
|
||||
Additionally, the set of \acp{vn} comitted in the next window should
|
||||
start immediately afterwards.
|
||||
We thus define
|
||||
\red{
|
||||
\begin{align*}
|
||||
\mathcal{I}_\text{commit}^{(\ell)}
|
||||
&:= \left\{i \in \mathcal{I} :~
|
||||
i_\text{max}\left( \mathcal{J}_\text{commit}^{(\ell-1)} \right)
|
||||
< i - 1 \le
|
||||
i_\text{max}\left( \mathcal{J}_\text{commit}^{(\ell)} \right)
|
||||
\right\}\\[2mm]
|
||||
& \hspace{39mm} \text{and} \\[2mm]
|
||||
\mathcal{I}_\text{win}^{(\ell)}
|
||||
&:= \left\{i \in \mathcal{I} :~
|
||||
i_\text{max}\left( \mathcal{J}_\text{commit}^{(\ell-1)} \right)
|
||||
< i - 1 \le
|
||||
i_\text{max}\left( \mathcal{J}_\text{win}^{(\ell)} \right)
|
||||
\right\}
|
||||
.%
|
||||
\end{align*}
|
||||
}%
|
||||
Note that we have
|
||||
\begin{align*}
|
||||
\bigcup_{\ell=0}^{n_\text{win}-1}
|
||||
\mathcal{I}_\text{commit}^{(\ell)} = \mathcal{I}
|
||||
\end{align*}
|
||||
and after decoding all windows we will therefore have committed all \acp{vn}.
|
||||
|
||||
% Syndrome update
|
||||
|
||||
\content{Explain commit region}
|
||||
\content{Why we need to update the syndrome}
|
||||
\content{How we update the syndrome}
|
||||
\content{\textbf{General note}: Mathematical definitions where possible}
|
||||
|
||||
% Complete process
|
||||
|
||||
\content{(?) Proper algorithm definition?}
|
||||
\content{1. Decode window}
|
||||
\content{2. Commit VN estimates}
|
||||
\content{3. Update syndrome}
|
||||
\content{4. Decode next window}
|
||||
\content{(?) Explicitly mention we don't reuse existing messages?}
|
||||
|
||||
\content{Definition for last window is different}
|
||||
\content{Double-check all definitions}
|
||||
|
||||
% TODO: Do I need this?
|
||||
% \content{Possibly go into the fact that current sliding-window
|
||||
% approaches don't differentiate clearly between the sliding-window
|
||||
|
||||
Reference in New Issue
Block a user