From 682eeb644e7f7928348f5538677791c3c36256c9 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Thu, 30 Apr 2026 19:59:21 +0200 Subject: [PATCH] Add literature overview figure --- src/thesis/bibliography.bib | 32 ++ src/thesis/chapters/4_decoding_under_dems.tex | 301 ++++++++++++++++-- src/thesis/clean_bibliography.sh | 3 + 3 files changed, 306 insertions(+), 30 deletions(-) diff --git a/src/thesis/bibliography.bib b/src/thesis/bibliography.bib index 6396a5a..0aa9664 100644 --- a/src/thesis/bibliography.bib +++ b/src/thesis/bibliography.bib @@ -1098,3 +1098,35 @@ year = {2021}, pages = {383--387}, } + +@article{kelly_state_2015, + title = {State preservation by repetitive error detection in a superconducting quantum circuit}, + volume = {519}, + issn = {0028-0836, 1476-4687}, + doi = {10.1038/nature14270}, + number = {7541}, + journal = {Nature}, + author = {Kelly, J. and Barends, R. and Fowler, A. G. and Megrant, A. and Jeffrey, E. and White, T. C. and Sank, D. and Mutus, J. Y. and Campbell, B. and Chen, Yu and Chen, Z. and Chiaro, B. and Dunsworth, A. and Hoi, I.-C. and Neill, C. and O'Malley, P. J. J. and Quintana, C. and Roushan, P. and Vainsencher, A. and Wenner, J. and Cleland, A. N. and Martinis, John M.}, + month = mar, + year = {2015}, + pages = {66--69}, +} + +@misc{bombin_modular_2023, + title = {Modular decoding: parallelizable real-time decoding for quantum computers}, + shorttitle = {Modular decoding}, + doi = {10.48550/arXiv.2303.04846}, + publisher = {arXiv}, + author = {Bomb{\'i}n, H{\'e}ctor and Dawson, Chris and Liu, Ye-Hua and Nickerson, Naomi and Pastawski, Fernando and Roberts, Sam}, + month = mar, + year = {2023}, +} + +@misc{leverrier_decoding_2022, + title = {Decoding quantum {Tanner} codes}, + doi = {10.48550/arXiv.2208.05537}, + publisher = {arXiv}, + author = {Leverrier, Anthony and Z{\'e}mor, Gilles}, + month = dec, + year = {2022}, +} diff --git a/src/thesis/chapters/4_decoding_under_dems.tex b/src/thesis/chapters/4_decoding_under_dems.tex index 5283bae..68b5232 100644 --- a/src/thesis/chapters/4_decoding_under_dems.tex +++ b/src/thesis/chapters/4_decoding_under_dems.tex @@ -49,7 +49,7 @@ 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 by far is combining a few initial +The most popular approach is combining a few initial iterations of \ac{bp} with a second decoding algorithm, \ac{osd} \cite{roffe_decoding_2020}. Other approaches exist, such as \ac{aed} @@ -62,31 +62,256 @@ for reasons that will become clear later in the chapter. The second problem is inherent to decoding using \acp{dem}. This is an area that has been less studied. As we saw in \Cref{sec:Quantum Error Correction}, for \ac{qec}, -latency is the main constraint, not raw computational complexity, -and reducing latency is the main goal of the existing literature. -This is generally done using windowing approaches; either -sliding-window based, where the latency is reduced due an earlier -start to the decoding process \cite{kuo_fault-tolerant_2024}% -\cite{huang_improved_2023}\cite{huang_increasing_2024}\cite{gong_toward_2024}, -or by decoding multiple windows in parallel -\cite{skoric_parallel_2023}\cite{tan_scalable_2023}. -This work is based on the sliding-window method. +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 +problem into many smaller ones that can be solved more efficiently. + +% TODO: This could potentially be abit 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) +We will start by briefly reviewing the existing work related to +sliding-window decoding, +before focusing on one specific incarnation. +We will then introduce a modification to the existing algorithm and +perform numerical simulations to evaluate it. + +% and reducing latency is the main goal of the existing literature. +% This is generally done using windowing approaches; either +% sliding-window based, where the latency is reduced due an earlier +% start to the decoding process \cite{kuo_fault-tolerant_2024}% +% \cite{huang_improved_2023}\cite{huang_increasing_2024}\cite{gong_toward_2024}, +% or by decoding multiple windows in parallel +% \cite{skoric_parallel_2023}\cite{tan_scalable_2023}. +% This work is based on the sliding-window method. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Sliding-Window Decoding} \label{sec:Sliding-Window Decoding} +% Spacetime codes + +\ac{qec} codes are often viewed through the lenses of the +\emph{space} and \emph{time} dimensions. +Both directions add redundancy, but they do so in a different way and +guard against different defects. +The space dimension corresponds to the redundancy added through the +code itself, while the time dimension corresponds to the repetition +of the syndrome measurements \cite[Sec.~IV.B]{dennis_topological_2002}. + +% Basic idea + +The idea of sliding-window decoding is to exploit the time-like +structure by splitting the circuit into overlapping windows along the +time dimension. +Each of these windows is then decoded separately. + +%%%%%%%%%%%%%%%% +\subsection{Existing Literature} +\label{subsec:Existing Literature} + +% Review of existing literature + +Research on this topic has been ongoing for some time, though mostly +for topological codes. +The literature on \ac{qldpc} codes is more limited. Figure +\Cref{fig:literature} gives an overview of the related body of work. + +\red{ + \begin{itemize} + \item \cite{huang_increasing_2024} use BP+OSD, + \cite{gong_toward_2024} use BP+GDG + \item \cite{huang_improved_2023} use phenomenological noise, + \cite{gong_toward_2024} circuit-level noise + \item Go into the way the parallel decoding approaches + consolidate the overlap regions + \item \cite{huang_improved_2023} use hypegraph and lifted + product codes, \cite{gong_toward_2024} use BB codes + \item \cite{kuo_fault-tolerant_2024} use toric codes, the + rest of the topological papers surface codes + \item \cite{dennis_topological_2002} call their scheme ``overlap-add'' + \item QUITS views sliding-window decoding more separately + \item Reasons for latency improvement () + \end{itemize} +} + +\begin{figure}[H] + \centering + + \tikzset{ + literature/.append style={ + minimum width=6mm, + minimum height=6mm, + text width=18mm, + align=left, + } + } + \tikzset{ + heading/.append style={ + draw=black, + minimum width=22mm, + minimum height=6mm, + align=left, + rounded corners = 1mm, + } + } + + \begin{tikzpicture}[node distance = 0mm and 0mm] + % tex-fmt: off + \node[heading, minimum width=15mm, fill=gray!25] (code) {Code}; + \node[heading, below right=1mm and -5mm of code, fill=orange!20] (top) {Topological}; + \node[heading, below right=42mm and -5mm of code, fill=orange!20] (qldpc) {QLDPC}; + + \node[literature, below right=0mm and -12mm of top] (dennis) {\cite{dennis_topological_2002}}; + \node[literature, below=of dennis] (tan) {\cite{tan_scalable_2023}}; + \node[literature, below=of tan] (skoric) {\cite{skoric_parallel_2023}}; + \node[literature, below=of skoric] (bombin) {\cite{bombin_modular_2023}}; + \node[literature, below=of bombin] (kuo) {\cite{kuo_fault-tolerant_2024}}; + + \node[literature, below right=0mm and -12mm of qldpc] (huang) {\cite{huang_improved_2023},\cite{huang_increasing_2024}}; + \node[literature, below=of huang] (gong) {\cite{gong_toward_2024}}; + + \coordinate (code-anchor) at ($(code.south) + (-2mm,0)$); + \coordinate (top-anchor) at ($(top.south) + (-5mm,0)$); + \coordinate (qldpc-anchor) at ($(qldpc.south) + (-5mm,0)$); + + \draw (code-anchor) |- (top); + \draw (code-anchor) |- (qldpc); + + \draw (top-anchor) |- (dennis); + \draw (top-anchor) |- (tan); + \draw (top-anchor) |- (skoric); + \draw (top-anchor) |- (bombin); + \draw (top-anchor) |- (kuo); + + \draw (qldpc-anchor) |- (huang); + \draw (qldpc-anchor) |- (gong); + + \draw [ + line width=1pt, + decorate, + decoration={brace,amplitude=2mm,raise=5mm} + ] + (dennis.north east) -- (dennis.south east) + node[midway,right,xshift=10mm]{Sequential}; + + \draw [ + line width=1pt, + decorate, + decoration={brace,amplitude=2mm,raise=5mm} + ] + (tan.north east) -- (kuo.south east) + node[midway,right,xshift=10mm]{Parallel}; + + \draw [ + line width=1pt, + decorate, + decoration={brace,amplitude=2mm,raise=5mm} + ] + (huang.north east) -- (gong.south east) + node[midway,right,xshift=10mm]{Sequential}; + % tex-fmt: on + \end{tikzpicture} + + \caption{Overview of literature on sliding-window decoding.} + \label{fig:literature} +\end{figure} + +% \red{ +% Existing work +% \begin{itemize} +% \item \cite{gong_toward_2024} +% \begin{itemize} +% \item BB codes (QLDPC) +% \item Circuit-level noise +% \item Sequential +% \item Cites $\underbrace{\cite{dennis_topological_2002} +% \cite{tan_scalable_2023} +% \cite{skoric_parallel_2023}}_\text{Surface code} +% \underbrace{\cite{huang_improved_2023}}_\text{QLDPC,Phenomenological}$ +% \end{itemize} +% \item \cite{huang_improved_2023} +% \begin{itemize} +% \item Hypergraph product codes, Lifted product codes (QLDPC) +% \item Phenomenological noise +% \item Sequential +% \item Cites $\underbrace{\cite{dennis_topological_2002} +% [Huang, Brown, 2021] +% \cite{skoric_parallel_2023} +% \cite{tan_scalable_2023} +% \cite{bombin_modular_2023}}_\text{Surface code}$ +% \end{itemize} +% \item \cite{dennis_topological_2002} +% \begin{itemize} +% \item Surface code (Topological) +% \item No idea what noise, don't care either (Gong et +% al. say circuit-level noise) +% \item ``Overlapping recovery'' -> Sequential +% \end{itemize} +% \item \cite{tan_scalable_2023} +% \begin{itemize} +% \item Surface code (Topological) +% \item Circuit-level noise +% \item Parallel +% \item Cites \cite{dennis_topological_2002} +% \end{itemize} +% \item \cite{skoric_parallel_2023} +% \begin{itemize} +% \item Surface code (Topological) +% \item Circuit-level noise +% \item Parallel +% \item Cites \cite{dennis_topological_2002} +% \end{itemize} +% \item \cite{huang_increasing_2024} +% \begin{itemize} +% \item Same as \cite{huang_improved_2023} +% \end{itemize} +% \item \cite{kuo_fault-tolerant_2024} +% \begin{itemize} +% \item Toric codes (Topological) +% \item Circuit-level noise +% \item Parallel +% \item Cites \cite{dennis_topological_2002} +% \cite{tan_scalable_2023} +% \cite{skoric_parallel_2023} \cite{gong_toward_2024} +% \end{itemize} +% \item \cite{bombin_modular_2023} +% \begin{itemize} +% \item Surface codes (Topological) +% \item No idea if it's even fault-tolerant +% \item Parallel +% \item Cites \cite{dennis_topological_2002} +% \cite{tan_scalable_2023} +% \cite{skoric_parallel_2023} \cite{leverrier_decoding_2022} +% \end{itemize} +% % This is not BP and not parallelization over the time dimension +% % \item \cite{leverrier_decoding_2022} +% % \begin{itemize} +% % \item Quantum tanner codes (QLDPC) +% % \item Parallel +% % \item No idea if it's even fault-tolerant +% % \item Cites [don't care] +% % \end{itemize} +% \item \cite{kang_quits_2025} +% \begin{itemize} +% \item Cites \cite{huang_increasing_2024} \ldots +% \end{itemize} +% \end{itemize} +% } + \content{Possibly go into the fact that current sliding-window approaches don't differentiate clearly between the sliding-window part and the decoder part. This work aims to extend the sliding-window part in a general fashion that is compatible with many -different decoder parts.} + different decoder parts. Combine this with QUITS modular structure +for sliding window decoding} -% Intro +%%%%%%%%%%%%%%%% +\subsection{Implementation of Sliding-Window Decoding} +\label{subsec:Implementation of Sliding-Window Decoding} -\content{Callback to previous chapter} -\content{(Maybe even historical) overview of the literature} -\content{Better yet: A proper (at least as proper as possible) review} +We build on the approach taken by \cite{huang_increasing_2024} and +\cite{gong_toward_2024}. % High-level overview of Sliding-Window decoding @@ -135,7 +360,8 @@ with processing'' some VNs)} \hspace*{-98mm}% \begin{tikzpicture} \draw[{Latex}-{Latex}, line width=.7pt] (0, -0.75mm) -- (0, 5mm); - \draw[line width=1pt] (-1mm,-0.75mm) -- (3mm,-0.75mm); + \draw[line width=1pt] (-1mm,-0.75mm) -- +(3mm,-0.75mm); \draw[line width=1pt] (-1mm,5mm) -- (3mm,5mm); \node[left] at (-2mm,2.125mm) {$\sim W$}; @@ -580,7 +806,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \W/\col/\mark in {3/KITred/triangle*,4/KITblue/diamond*,5/KITorange/square*} { \edef\temp{\noexpand - \addplot+[mark=\mark, solid, mark options={fill=\col}, \col] + \addplot+[mark=\mark, solid, mark +options={fill=\col}, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, @@ -660,7 +887,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \W/\col/\mark in {3/KITred/triangle*,4/KITblue/diamond*,5/KITorange/square*} { \edef\temp{\noexpand - \addplot+[mark=\mark, solid, mark options={fill=\col}, \col] + \addplot+[mark=\mark, solid, mark +options={fill=\col}, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, @@ -742,7 +970,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \F/\col/\mark in {3/KITred/triangle*,2/KITblue/diamond*,1/KITorange/square*} { \edef\temp{\noexpand - \addplot+[mark=\mark, solid, mark options={fill=\col}, \col] + \addplot+[mark=\mark, solid, mark +options={fill=\col}, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, @@ -809,7 +1038,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \W/\col/\mark in {3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} { \edef\temp{\noexpand - \addplot+[mark=\mark, densely dashed, forget plot, \col] + \addplot+[mark=\mark, densely dashed, +forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -879,7 +1109,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \F/\col/\mark in {3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} { \edef\temp{\noexpand - \addplot+[mark=\mark, densely dashed, forget plot, \col] + \addplot+[mark=\mark, densely dashed, +forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -916,7 +1147,8 @@ standard circuit-based depolarizing noise model, etc.)} \ac{bb} code under circuit-level noise. $12$ rounds of syndrome extraction were performed and - standard circuit-based depolarizing noise was chosen as the noise model. + standard circuit-based depolarizing noise was chosen as the +noise model. The physical error probabilty was fixed to $0.0025$. } \end{figure} @@ -1074,7 +1306,8 @@ standard circuit-based depolarizing noise model, etc.)} included both the messages on the Tanner graph and decimation information. $12$ rounds of syndrome extraction were performed and - standard circuit-based depolarizing noise was chosen as the noise model. + standard circuit-based depolarizing noise was chosen as the +noise model. } \end{figure} @@ -1119,7 +1352,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \W/\col/\mark in {3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} { \edef\temp{\noexpand - \addplot+[mark=\mark, densely dashed, forget plot, \col] + \addplot+[mark=\mark, densely dashed, +forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1189,7 +1423,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \F/\col/\mark in {3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} { \edef\temp{\noexpand - \addplot+[mark=\mark, densely dashed, forget plot, \col] + \addplot+[mark=\mark, densely dashed, +forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1233,7 +1468,8 @@ standard circuit-based depolarizing noise model, etc.)} The information used for the warm-start intialization included only the messages on the Tanner graph. $12$ rounds of syndrome extraction were performed and - standard circuit-based depolarizing noise was chosen as the noise model. + standard circuit-based depolarizing noise was chosen as the +noise model. The physical error probabilty was fixed to $0.0025$. } \end{figure} @@ -1387,7 +1623,8 @@ standard circuit-based depolarizing noise model, etc.)} The information used for the warm-start intialization included only the messages on the Tanner graph. $12$ rounds of syndrome extraction were performed and - standard circuit-based depolarizing noise was chosen as the noise model. + standard circuit-based depolarizing noise was chosen as the +noise model. } \end{figure} @@ -1432,7 +1669,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \W/\col/\mark in {3/KITred/triangle,4/KITblue/diamond,5/KITorange/square} { \edef\temp{\noexpand - \addplot+[mark=\mark, densely dashed, forget plot, \col] + \addplot+[mark=\mark, densely dashed, +forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1502,7 +1740,8 @@ standard circuit-based depolarizing noise model, etc.)} \foreach \F/\col/\mark in {3/KITred/triangle,2/KITblue/diamond,1/KITorange/square} { \edef\temp{\noexpand - \addplot+[mark=\mark, densely dashed, forget plot, \col] + \addplot+[mark=\mark, densely dashed, +forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, @@ -1546,8 +1785,10 @@ standard circuit-based depolarizing noise model, etc.)} The information used for the warm-start intialization included only the messages on the Tanner graph. $12$ rounds of syndrome extraction were performed and - standard circuit-based depolarizing noise was chosen as the noise model. + standard circuit-based depolarizing noise was chosen as the +noise model. The physical error probabilty was fixed to $0.0025$. } \end{figure} + diff --git a/src/thesis/clean_bibliography.sh b/src/thesis/clean_bibliography.sh index 05cc552..5def790 100755 --- a/src/thesis/clean_bibliography.sh +++ b/src/thesis/clean_bibliography.sh @@ -1,2 +1,5 @@ sed -i "s/Świerkowska/{\\\\'S}wierkowska/" bibliography.bib +sed -i "s/Héctor/H{\\\\'e}ctor/" bibliography.bib +sed -i "s/Bombín/Bomb{\\\\'i}n/" bibliography.bib +sed -i "s/Zémor/Z{\\\\'e}mor/" bibliography.bib sed -Ezi "s/\s(abstract|note|urldate|url|keywords|file) = \{[^}]*(\{[^}]*\}[^}]*)*\},?\n//g" bibliography.bib