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 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 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 (code-anchor) at ($(code.south) + (-2mm,0)$);
|
||||||
\coordinate (top-anchor) at ($(top.south) + (-5mm,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}.
|
interdependence between \acp{vn} and \acp{cn}.
|
||||||
For each local set of \acp{vn}, there is only a local set of connected \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.
|
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
|
% High-level overview
|
||||||
|
|
||||||
How the locality is leveraged can be understood by considering the
|
How the locality is leveraged can be understood by considering the
|
||||||
decoding process.
|
decoding process.
|
||||||
After decoding a window, there is a subset of \acp{cn} that no longer
|
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}
|
contribute to decoding, as they are not connected to any \acp{vn}
|
||||||
with the \acp{cn} of subsequent windows.\\
|
considered for the subsequent windows.
|
||||||
\content{Commit VNs}
|
We call the set of \acp{vn} connected to those \acp{cn} the
|
||||||
\content{Benefit of this approach (as stated above: earlier decoding start)}
|
\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.
|
There are two degrees of freedom in how we perform the windowing.
|
||||||
The \emph{window size} $W \in \mathbb{N}$ represents the number of
|
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
|
The \emph{step size} $F \in \mathbb{N}$ represents the number of
|
||||||
syndrome extraction rounds passed over before starting the next window.
|
syndrome extraction rounds passed over before starting the next window.
|
||||||
$W$ controls the size of the windows while $F$ controls the overlap
|
$W$ controls the size of the windows while $F$ controls the overlap
|
||||||
between windows.
|
between them.
|
||||||
|
|
||||||
% Why we look at rows, not columns
|
|
||||||
|
|
||||||
As illustrated in \Cref{fig:windowing_pcm}, $W$ and $F$ control the
|
As illustrated in \Cref{fig:windowing_pcm}, $W$ and $F$ control the
|
||||||
window dimensions and locactions by defining the related \acp{cn},
|
window dimensions and locactions by defining the related \acp{cn},
|
||||||
not the \acp{vn}.
|
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
|
measurement rounds, the number of \acp{vn} depends on the noise model
|
||||||
and is difficult to predict beforehand.
|
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]
|
\begin{figure}[t]
|
||||||
\centering
|
\centering
|
||||||
|
|
||||||
@@ -481,12 +462,127 @@ and is difficult to predict beforehand.
|
|||||||
\vspace*{10mm}
|
\vspace*{10mm}
|
||||||
|
|
||||||
\caption{
|
\caption{
|
||||||
Visualization of the windowing process on the detector
|
Visualization of the windowing process on a detector
|
||||||
error matrix.
|
error matrix generated from the $\llbracket 72, 6, 6
|
||||||
|
\rrbracket$ BB code.
|
||||||
}
|
}
|
||||||
\label{fig:windowing_pcm}
|
\label{fig:windowing_pcm}
|
||||||
\end{figure}
|
\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?
|
% TODO: Do I need this?
|
||||||
% \content{Possibly go into the fact that current sliding-window
|
% \content{Possibly go into the fact that current sliding-window
|
||||||
% approaches don't differentiate clearly between the sliding-window
|
% approaches don't differentiate clearly between the sliding-window
|
||||||
|
|||||||
Reference in New Issue
Block a user