\documentclass[overviewatsection,en]{CELbeamer} % % % CEL Template % % \newcommand{\templates}{preambles} \input{\templates/packages.tex} \input{\templates/macros.tex} \grouplogo{CEL_logo.pdf} \groupname{Communications Engineering Lab (CEL)} \fundinglogos{} % % % Document setup % % \usepackage{tikz} \usepackage{tikz-3dplot} \usetikzlibrary{spy, external, intersections, positioning, tikzmark} % \ifdefined\ishandout\else \tikzexternalize % \fi \usepackage{pgfplots} \pgfplotsset{compat=newest} \usepgfplotslibrary{fillbetween} \usepgfplotslibrary{groupplots} \usepackage{enumerate} \usepackage{listings} \usepackage{subcaption} \usepackage{bbm} \usepackage{multirow} \usepackage[table,dvipsnames]{xcolor} \usepackage{amsmath} \usepackage{graphicx} \usepackage{calc} \usepackage{amssymb} \usepackage{acro} \usepackage{braket} \usepackage{quantikz} \usepackage{nicematrix} \usepackage{xpatch} \usepackage{lmodern} \usepackage{algorithmic} \usepackage{algorithm} \usepackage{stmaryrd} \title{Fault-Tolerant Quantum Error Correction} \subtitle{Master's Thesis Final Presentation} \author[ Andreas]{Andreas Tsouchlos} \date[]{} \DeclareFieldFormat{note}{} \DeclareFieldFormat{issn}{} \DeclareFieldFormat{url}{} \DeclareFieldFormat{doi}{} \DeclareFieldFormat[article,book,inproceedings]{urldate}{} \addbibresource{src/midterm_presentation/MA.bib} % % % Custom commands % % \newcommand{\red}[1]{\textcolor{red}{#1}} \newcommand{\res}{src/midterm_presentation/res} \newcommand{\X}{\textcolor{kit-blue}{\bm{X}}} \newcommand{\Z}{\textcolor{kit-orange}{\bm{Z}}} \newcommand{\Y}{\textcolor{kit-red}{\bm{Y}}} \newcommand{\I}{\bm{I}} \xpatchcmd{\fullwire} {\arrow[arrows,start anchor=#2startone,end anchor=#2endone] {#1}\arrow[arrows,start anchor=#2starttwo,end anchor=#2endtwo,#4] {#1}} {\arrow[arrows,start anchor=#2startone,end anchor=#2endone,#4] {#1}\arrow[arrows,start anchor=#2starttwo,end anchor=#2endtwo,#4] {#1}} {\typeout{Successfully patched fullwire for classical wires}} {\typeout{Failed to patch fullwire for classical wires}} \makeatletter \newcommand{\addreferencesmanual}{% \begin{scriptsize} \begin{tabular}{lp{0.88\textwidth}} \@addreferencesimanual } \newcommand\@addreferencesimanual{\@ifnextchar\stopreferencesmanual{\@addreferencesendmanual}{\@addreferencesiimanual}} \newcommand\@addreferencesiimanual[2]{% \textcolor{kit-green100}{[#1]} & \textcolor{kit-green100}{#2} \\ \@addreferencesimanual % restart the recursion } \newcommand\@addreferencesendmanual[1]{% The argument is \stopimages \end{tabular} \end{scriptsize} } \makeatother \newcommand{\citereferencemanual}[1]{\textcolor{kit-green100}{\textbf{\scriptsize{[#1]}}}} % % % Acronyms % % \DeclareAcronym{sced}{ short=SCED, long=sub-code ensemble decoding } \DeclareAcronym{qec}{ short=QEC, long=quantum error correction } \DeclareAcronym{se}{ short=SE, long=syndrome extraction } \DeclareAcronym{css}{ short=CSS, long=Calderbank -- Shor -- Steane } \DeclareAcronym{bb}{ short=BB, long=bivariate bicycle } \DeclareAcronym{dem}{ short=DEM, long=detector error model } \DeclareAcronym{bp}{ short=BP, long=belief propagation } \DeclareAcronym{vn}{ short=VN, long=variable node } \DeclareAcronym{cn}{ short=CN, long=check node } \DeclareAcronym{spa}{ short=SPA, long=sum-product algorithm } \DeclareAcronym{gd}{ short=GD, long=guided decimation } \DeclareAcronym{gdg}{ short=GDG, long=guided decimation guessing } \DeclareAcronym{osd}{ short=OSD, long=ordered statistics decoding, } \DeclareAcronym{qldpc}{ short=QLDPC, long=quantum low-density parity-check, } \DeclareAcronym{scldpc}{ short=SC-LDPC, long=spatially-coupled low-density parity-check } \DeclareAcronym{ler}{ short=LER, long=logical error rate, } % % % Document body % % \begin{document} \begin{frame}[title white vertical, picture=images/IMG_7801-cut] \titlepage \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction to Quantum Error Correction} \label{sec:Introduction to Quantum Error Correction} %%%%%%%%%%%%%%%% \subsection{Motivation} \label{subsec:Motivation} \begin{frame} \frametitle{Quantum Computing} % Related interesting stuff % - Gidney estimates we need 1399 (?) logical qubits to factor a 2048 % bit RSA integer % - He goes on to estimate that to factor such an integer in less % than a week would require around a million physical qubits % [How to factor 2048 bit RSA integers with less than a million % noisy qubits] \vspace*{-15mm} \begin{itemize} \item Simulating quantum systems on classical hardware is exponentially complex \\ $\implies$ Use quantum hardware to simulate quantum systems \citereferencemanual{Fey82} \item ``Hard'' to solve problems on classical computers can be ``easy'' on quantum computers \citereferencemanual{Pre18} \item Google Quantum AI's quantum computing roadmap \citereferencemanual{Goo23} \end{itemize} \vspace*{3mm} \begin{figure}[H] \centering \includegraphics[scale=0.43]{res/google_roadmap.png} \end{figure} \vspace*{3mm} \addreferencesmanual {Fey82}{ R. P. Feynman, ``Simulating physics with computers,'', \emph{International Journal of Theoretical Physics}, 1982. } {Pre18}{ J. Preskill, ``Quantum computing in the NISQ era and beyond,'' \emph{Quantum}, 2018. } {Goo23}{ Google Quantum AI, \emph{Quantum Computing Roadmap}, URL: \url{https://quantumai.google/qecmilestone2023}, 2023. } \stopreferencesmanual \end{frame} % TODO: Where should I quote Preskill? There are multiple bullet % points with info taken from his work \begin{frame} \frametitle{The Need for Quantum Error Correction} \vspace*{-12mm} % Related interesting stuff % - Qubits differ from bits in that they can be in superpositions % and be entangled with one another % - Quantum computers derive their strenght from the exponential % scaling of the state-space because of the way the information is % encoded % - Note that while a physical error rate of 10^{-3} may seem ok, % we need a couple trillion operations (~ 10^{13}) to factor a % 2048 bit RSA integer % [How to factor 2048 bit RSA integers with less than a million % noisy qubits] % - The "physical error rate" is really the value all error rates % in the system are set to for circuit level noise simulations % [High-threshold universal quantum computation on the surface code] % - The backlog problem is the fact that an increasing backlog of % syndrome data will lead to an exponential slowdown during the % computation \begin{itemize} % \item Quantum computers represent information through % correlations of qubits, not their values \\ % directly \citereference{preskill_quantum_2018} \item Quantum systems are inherently fragile \item Interacting with the quantum state disturbs it \item Idea: Represent $k\in \mathbb{N} $ \schlagwort{logical qubits} using $n \in \mathbb{N}$ \schlagwort{physical qubits}, $n>k$ \citereferencemanual{Rof19} \vspace*{2mm} \begin{figure}[H] \centering \begin{tikzpicture} \node[ rectangle, draw, fill=kit-blue!25, minimum height=15mm, ] (enc) {Three-qubit encoder}; \node[left=of enc] (in) {$\ket{\psi} = \alpha\ket{0} + \beta\ket{1}$}; \node[right=of enc,yshift=6mm] (out) {$\alpha\overbrace{\ket{000}}^{\ket{0}_\text{L}} +\; \beta\overbrace{\ket{111}}^{\ket{1}_\text{L}} = \ket{\psi}_\text{L}$}; \draw[-{Latex}] (in) -- (enc); \draw[-{Latex}] (enc) -- (enc -| out.west); \end{tikzpicture} \end{figure} \vspace*{5mm} \visible<2>{ \item Typical scales \begin{itemize} \item Recent scheme by IBM encodes $12$ logical qubits in $288$ physical ones \citereferencemanual{BCG$^+$24} \item Physical error rate typically set to $\sim 10^{-3}$ for simulations (e.g., \citereferencemanual{BCG$^+$24}) \item Decode with ultra-low latency to avoid \schlagwort{backlog problem} (about $\SI{1}{\micro s}$ per data \\ extraction round) \citereferencemanual{CSB$^+$24} \end{itemize} } \end{itemize} \vspace*{10mm} \addreferencesmanual {Rof19}{ J. Roffe, ``Quantum error correction: An introductory guide,'' \emph{Contemporary Physics}, 2019. } {BCG$^+$24}{ S. Bravyi et al., ``High-threshold and low-overhead fault-tolerant quantum memory,'' \emph{Nature}, 2024. } {CSB$^+$24}{ L. Caune et al., ``Demonstrating real-time and low-latency quantum error correction with superconducting qubits'', \emph{arXiv:2410.05202}, 2024. } \stopreferencesmanual \end{frame} %%%%%%%%%%%%%%%% \subsection{Fundamentals of Quantum Error Correction} \label{subsec:Fundamentals of Quantum Error Correction} % TODO: Is this all of this really necessary? \begin{frame} \frametitle{Peculiarities of the Quantum Setting} \vspace*{-17mm} % Related interesting stuff % - No cloning theorem -> Not replication of state, protection % through further entanglement % - States are superpositions -> We theoretically need to be able % to correct infinitely many different types of errors. Luckily, % it turns out that in actual fact we only really need to correct % two [Gottesman's Thesis] % - Mention that kets are just vectors, used here to represent the state % - There are actually infinitely many different errors that can % happen, but we can digitize them and only need to consider X and Z % - Not only do we only care about the coset, we specifically % don't want to know more than the syndrome can tell us because % that would mean that "we collapse the quantum mechanical state too % much" \begin{itemize} % \item \Ac{qec} is actually able to protect the actual % quantum state \item Classical systems built with bits and gates, quantum systems with qubits and quantum gates \item Consider phase flip errors in addition to bit flip errors \citereferencemanual{Rof19} \end{itemize} \vspace*{-3mm} \begin{figure}[H] \centering \begin{subfigure}{0.32\textwidth} \centering \begin{align*} \ket{0} &\mapsto \ket{1} \\ \ket{1} &\mapsto \ket{0} \end{align*} \caption{Bit flip ($\X$) error} \end{subfigure}% \begin{subfigure}{0.32\textwidth} \centering \begin{align*} \ket{0} &\mapsto \phantom{-}\ket{0} \\ \ket{1} &\mapsto -\ket{1} \end{align*} \caption{Phase flip ($\Z$) error} \end{subfigure}% \begin{subfigure}{0.32\textwidth} \centering \begin{align*} \ket{0} &\mapsto \phantom{-j}\ket{1} \\ \ket{1} &\mapsto -j\ket{0} \end{align*} \caption{$\Y$ error} \end{subfigure} \end{figure} \vspace*{-5mm} \begin{itemize} \visible<2->{ \item Measurement-induced wave collapse \\ $\implies$ Use binary syndrome for decoding \citereferencemanual{NC10} } \end{itemize} \vspace*{-5mm} \begin{figure}[H] \centering \begin{minipage}{0.25\textwidth} \centering \visible<2->{ \begin{align*} \bm{H} \bm{y}^\text{T} = \bm{H} \bm{e}^\text{T} = \bm{s} \end{align*} } \end{minipage}% \hspace*{30mm} \begin{minipage}{0.12\textwidth} \centering \visible<3->{ \begin{align*} \bm{H} = \begin{pmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \end{pmatrix} \end{align*} } \end{minipage} \begin{minipage}{0.3\textwidth} \centering \visible<3->{ % tex-fmt: off \begin{quantikz}%[row sep=4mm, column sep=4mm] & \ctrl{3} & & & & & \\ \lstick{$\ket{\psi}$} & & \ctrl{2} & \ctrl{3} & & & \\ & & & & \ctrl{2} & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & \targ{} & \targ{} & & & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c} \end{quantikz} % tex-fmt: on } \end{minipage}% \end{figure} \vspace*{3mm} \addreferencesmanual {Rof19}{ J. Roffe, ``Quantum error correction: An introductory guide,'' \emph{Contemporary Physics}, 2019. } {NC10}{ M. A. Nielsen and I. L. Chuang, ``Quantum computation and quantum information'', \emph{Cambridge University Press}, 2010. } \stopreferencesmanual \end{frame} \begin{frame} \frametitle{Evaluating the Decoding Performance} \vspace*{-5mm} \begin{itemize} \item Quantum \schlagwort{degeneracy}: Multiple solutions to the decoding problem \citereferencemanual{RWB$^+$20} \\ $\implies$ Consider \schlagwort{\acl{ler}} (LER) \end{itemize} \vspace*{15mm} \only<1>{ \phantom{ \begin{minipage}{0.35\textwidth} \begin{itemize} \item Independent variables \begin{itemize} \item \textbf{Physical error rate} \item CNOT infidelity \item Total qubit count \item \ldots \end{itemize} \end{itemize} \end{minipage}% \begin{minipage}{0.65\textwidth} \begin{itemize} \item Noise models \begin{itemize} \item \textbf{Standard circuit-based depolarizing noise} \citereferencemanual{FSG09} \item Superconductor inspired (SI1000) \citereferencemanual{GNF$^+$21} \item Entangling Measurements (EM3) \citereferencemanual{GNF$^+$21} \item \ldots \end{itemize} \end{itemize} \end{minipage} } } \only<2>{ \begin{minipage}{0.35\textwidth} \begin{itemize} \item Independent variables \begin{itemize} \item Physical error rate \item CNOT infidelity \item Total qubit count \item \ldots \end{itemize} \end{itemize} \end{minipage}% \begin{minipage}{0.65\textwidth} \begin{itemize} \item Noise models \begin{itemize} \item Standard circuit-based depolarizing noise \citereferencemanual{FSG09} \item Superconductor inspired (SI1000) \citereferencemanual{GNF$^+$21} \item Entangling Measurements (EM3) \citereferencemanual{GNF$^+$21} \item \ldots \end{itemize} \end{itemize} \end{minipage} } \only<3>{ \begin{minipage}{0.35\textwidth} \begin{itemize} \item Independent variables \begin{itemize} \item \textbf{Physical error rate} \item CNOT infidelity \item Total qubit count \item \ldots \end{itemize} \end{itemize} \end{minipage}% \begin{minipage}{0.65\textwidth} \begin{itemize} \item Noise models \begin{itemize} \item \textbf{Standard circuit-based depolarizing noise} \citereferencemanual{FSG09} \item Superconductor inspired (SI1000) \citereferencemanual{GNF$^+$21} \item Entangling Measurements (EM3) \citereferencemanual{GNF$^+$21} \item \ldots \end{itemize} \end{itemize} \end{minipage} } \vspace*{25mm} \addreferencesmanual {RWB$^+$20}{ J. Roffe et al., ``Decoding across the quantum low-density parity-check code landscape,'' \emph{Phys. Rev.}, 2020. } {FSG09}{ A. G. Fowler, A. M. Stephens, and P. Groszkowski, ``High-threshold universal quantum computing on the surface code,'' \emph{Phys. Rev.}, 2009. } {GNF$^+$21}{ C. Gidney et al., ``A Fault-tolerant honeycomb memory'', \emph{Quantum}, 2021. } \stopreferencesmanual \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Fault Tolerance and Detector Error Models} \label{sec:Fault Tolerance and Detector Error Models} %%%%%%%%%%%%%%%% \subsection{Fault Tolerance} \label{subsec:Fault Tolerance} % TODO: Fix journal for {shor_fault-tolerant_1997} not showing \begin{frame} \frametitle{Fault Tolerance} \vspace*{-10mm} \begin{itemize} \item Quantum gates used for syndrome extraction are faulty themselves \\ $\implies$ Need for \schlagwort{fault-tolerant} \acf{qec} \item In addition to correcting \schlagwort{input errors}, limit spread of \schlagwort{internal errors} \citereferencemanual{DTB$^+$25} \end{itemize} \vspace*{3mm} \begin{figure}[H] \centering \begin{tikzpicture} \node[rectangle, draw, fill=orange!20, minimum height=3cm, minimum width=3.5cm, align=left] at (0,0) (internal) {Internal\\ Errors}; \node[signal, draw, fill=Plum!20, minimum height=3cm, minimum width=4cm, align=left, signal pointer angle=140] at (-3.7, 0) (input) {Input\\ Errors}; \node at (2.5,0) {\huge =}; \node[rectangle, draw, fill=MidnightBlue!20, minimum height=3cm, minimum width=3.5cm, align=left] at (5,0) (output) {Output\\ Errors}; \node[above] at (input.north) {\small Input State}; \node[above] at (internal.north) {\small QEC}; \node[above] at (output.north) {\small Output State}; \end{tikzpicture} \end{figure} \vspace*{3mm} \begin{itemize} \visible<2->{ \item Modify syndrome extraction circuitry (e.g., multi-qubit states for each ancilla \citereferencemanual{Sho97}) \item Multiple rounds of \acf{se} } \end{itemize} \vspace*{15mm} \addreferencesmanual {DTB$^+$25}{ P.- J. H. S. Derks et al., ``Designing fault-tolerant circuits using detector error models,'' \emph{Quantum}, 2025. } {Sho97}{ P. W. Shor, ``Fault-tolerant quantum computation,'' \emph{arXiv:quant-ph/9605011}, 1997. } \stopreferencesmanual \end{frame} %%%%%%%%%%%%%%%% \subsection{Detector Error Models} \label{subsec:Detector Error Models} \begin{frame}[fragile] \frametitle{The Measurement Syndrome Matrix I} \vspace*{-18mm} \begin{itemize} \item \schlagwort{Measurement syndrome matrix} $\bm{\Omega}$ \\ contains error patterns \citereferencemanual{DTB$^+$25} \item Example: 3-qubit repetition code \end{itemize} % \vspace*{-25mm} \centering \only<1>{ \begin{minipage}{0.4\textwidth} \centering \vspace*{40mm} \begin{tikzpicture} \node{$% \bm{\Omega} = \left( \begin{array}{ccc} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 0 \\ 0 & 1 & 1 \end{array} \right)$ }; \draw [ line width=1pt, decorate, decoration={brace,mirror,amplitude=3mm,raise=5mm} ] (2.5,1.2) -- (2.5,2.85) node[midway,right,xshift=10mm]{$\text{SE}_1$}; \draw [ line width=1pt, decorate, decoration={brace,mirror,amplitude=3mm,raise=5mm} ] (2.5,-0.75) -- (2.5,0.9) node[midway,right,xshift=10mm]{$\text{SE}_2$}; \draw [ line width=1pt, decorate, decoration={brace,mirror,amplitude=3mm,raise=5mm} ] (2.5,-2.7) -- (2.5,-1.1) node[midway,right,xshift=10mm]{$\text{SE}_3$}; \end{tikzpicture} \vspace*{-10mm} \begin{gather*} \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} \end{gather*} \end{minipage}% \begin{minipage}{0.6\textwidth} \begin{figure}[H] \newcommand{\preperr}[1]{ \gate[style={fill=orange!20}]{\scriptstyle ##1} } \centering \begin{quantikz}[ row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}, execute at end picture={ \draw [ line width=1pt, decorate, decoration={brace,amplitude=3mm,raise=9mm} ] (\tikzcdmatrixname-4-19.north east) -- (\tikzcdmatrixname-5-19.south east) node[midway,right,xshift=14mm]{$\text{SE}_1$}; \draw [ line width=1pt, decorate, decoration={brace,amplitude=3mm,raise=9mm} ] (\tikzcdmatrixname-6-19.north east) -- (\tikzcdmatrixname-7-19.south east) node[midway,right,xshift=14mm]{$\text{SE}_2$}; \draw [ line width=1pt, decorate, decoration={brace,amplitude=3mm,raise=9mm} ] (\tikzcdmatrixname-8-19.north east) -- (\tikzcdmatrixname-9-19.south east) node[midway,right,xshift=14mm]{$\text{SE}_3$}; } ] % tex-fmt: off & \preperr{E_0} & \ctrl{3} & & & & & & \ctrl{5} & & & & & & \ctrl{7} & & & & & \\ \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & & & \ctrl{6} & \ctrl{7} & & & \\ & \preperr{E_2} & & & & \ctrl{2} & & & & & & \ctrl{4} & & & & & & \ctrl{6} & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & & & & & & & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \meter{} & \setwiretype{c} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{} & \targ{} & & & \meter{} & \setwiretype{c} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c} % tex-fmt: on \end{quantikz} \end{figure} \end{minipage} } \only<2>{ \begin{minipage}{0.4\textwidth} \centering \vspace*{40mm} \begin{tikzpicture} \node{$% \bm{\Omega} = \left( \begin{array}{>{\columncolor{red!20}}ccc} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 0 \\ 0 & 1 & 1 \end{array} \right)$ }; \draw [ line width=1pt, decorate, decoration={brace,mirror,amplitude=3mm,raise=5mm} ] (2.5,1.2) -- (2.5,2.85) node[midway,right,xshift=10mm]{$\text{SE}_1$}; \draw [ line width=1pt, decorate, decoration={brace,mirror,amplitude=3mm,raise=5mm} ] (2.5,-0.75) -- (2.5,0.9) node[midway,right,xshift=10mm]{$\text{SE}_2$}; \draw [ line width=1pt, decorate, decoration={brace,mirror,amplitude=3mm,raise=5mm} ] (2.5,-2.7) -- (2.5,-1.1) node[midway,right,xshift=10mm]{$\text{SE}_3$}; \end{tikzpicture} \vspace*{-10mm} \begin{gather*} \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} \end{gather*} \end{minipage}% \begin{minipage}{0.6\textwidth} \begin{figure}[H] \newcommand{\preperr}[1]{ \gate[style={fill=orange!20}]{\scriptstyle ##1} } \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}} \newcommand{\noise}{ \gate[style={noisy}]{\text{\small X}}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redwire}[1]{ \wire[r][##1][style={draw=red, line width=2pt}]{q} } \newcommand{\redtarg}{ \targ[style={draw=red}]{}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redctrl}[1]{ \ctrl[style={draw=red,fill=red,line width=2pt}]{##1} } \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} \tikzset{ noisy/.style={ starburst, starburst point height=2mm, fill=red!25, draw=red!85!black, line width=2pt, inner xsep=-2pt, inner ysep=-2pt }, } \centering \begin{quantikz}[ row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}, execute at end picture={ \draw [ line width=1pt, decorate, decoration={brace,amplitude=3mm,raise=9mm} ] (\tikzcdmatrixname-4-19.north east) -- (\tikzcdmatrixname-5-19.south east) node[midway,right,xshift=14mm]{$\text{SE}_1$}; \draw [ line width=1pt, decorate, decoration={brace,amplitude=3mm,raise=9mm} ] (\tikzcdmatrixname-6-19.north east) -- (\tikzcdmatrixname-7-19.south east) node[midway,right,xshift=14mm]{$\text{SE}_2$}; \draw [ line width=1pt, decorate, decoration={brace,amplitude=3mm,raise=9mm} ] (\tikzcdmatrixname-8-19.north east) -- (\tikzcdmatrixname-9-19.south east) node[midway,right,xshift=14mm]{$\text{SE}_3$}; } ] % tex-fmt: off & \noise\redwire{18} & \redctrl{3} & & & & & & \redctrl{5} & & & & & & \redctrl{7} & & & & & \\ \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & & & \ctrl{6} & \ctrl{7} & & & \\ & \preperr{E_2} & & & & \ctrl{2} & & & & & & \ctrl{4} & & & & & & \ctrl{6} & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \redtarg{}\redwire{16} & \targ{} & & & & & & & & & & & & & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\redwire{10} & \targ{} & & & & & & & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \meter{} & \setwiretype{c} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \redtarg\redwire{4} & \targ{} & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c} % tex-fmt: on \end{quantikz} \end{figure} \end{minipage} } \vspace*{8mm} \addreferencesmanual {DTB$^+$25}{ P.- J. H. S. Derks et al., ``Designing fault-tolerant circuits using detector error models,'' \emph{Quantum}, 2025. } \stopreferencesmanual \end{frame} \begin{frame}[fragile] \frametitle{The Measurement Syndrome Matrix} \vspace*{-18mm} \begin{itemize} \item \schlagwort{Measurement syndrome matrix} $\bm{\Omega}$ \\ contains error patterns \citereferencemanual{DTB$^+$25}\ \item Example: 3-qubit repetition code \end{itemize} \vspace*{-29mm} \centering \only<1>{ \begin{minipage}{0.4\textwidth} \centering \vspace*{40mm} \hspace*{-75mm} \scalebox{0.85}{ \parbox{.5\linewidth}{% \vspace*{22.6mm} \begin{gather*} \bm{\Omega} = \left( \begin{array}{ccccccccccccccc} 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 \end{array} \right) \\[10mm] \hspace*{50mm} % \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} \end{gather*} } } \end{minipage}% \begin{minipage}{0.6\textwidth} \begin{figure}[H] \newcommand{\preperr}[1]{ \gate[style={fill=orange!20}]{\scriptstyle ##1} } \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}} \newcommand{\noise}{ \gate[style={noisy}]{\text{\small X}}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redwire}[1]{ \wire[r][##1][style={draw=red, line width=2pt}]{q} } \newcommand{\redtarg}{ \targ[style={draw=red}]{}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redctrl}[1]{ \ctrl[style={draw=red,fill=red,line width=2pt}]{##1} } \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} \tikzset{ noisy/.style={ starburst, starburst point height=2.5mm, fill=red!25, draw=red!85!black, line width=2pt, inner xsep=-2pt, inner ysep=-2pt }, } \centering % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}] & \preperr{E_0} & \ctrl{3} & & & & \preperr{E_5} & & \ctrl{5} & & & & \preperr{E_{10}} & & \ctrl{7} & & & & & & \\ \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & \preperr{E_6} & & & \ctrl{4} & \ctrl{5} & & \preperr{E_{11}} & & & \ctrl{6} & \ctrl{7} & & & & \\ & \preperr{E_2} & & & & \ctrl{2} & \preperr{E_7} & & & & & \ctrl{4} & \preperr{E_{12}} & & & & & \ctrl{6} & & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & & & & & & & \preperr{E_3} & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \preperr{E_4} & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & & & & & & & \preperr{E_8} & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \preperr{E_9} & \meter{} & \setwiretype{c} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{} & \targ{} & & & \preperr{E_{13}} & \meter{} & \setwiretype{c} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \preperr{E_{14}} & \meter{} & \setwiretype{c} \end{quantikz} % tex-fmt: on \end{figure} \end{minipage} } \only<2>{ \begin{minipage}{0.4\textwidth} \centering \vspace*{40mm} \hspace*{-75mm} \scalebox{0.85}{ \parbox{.5\linewidth}{% \begin{gather*} \hspace*{54.25mm}% \begin{array}{c} E_5 \\ \downarrow \end{array} \end{gather*} \vspace*{-10mm} \begin{gather*} \bm{\Omega} = \left( \begin{array}{ ccccc% >{\columncolor{red!20}}c% ccccccccc } 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 \end{array} \right) \\[10mm] \hspace*{50mm} % \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} \end{gather*} } } \end{minipage}% \begin{minipage}{0.6\textwidth} \begin{figure}[H] \newcommand{\preperr}[1]{ \gate[style={fill=orange!20}]{\scriptstyle ##1} } \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}} \newcommand{\noise}{ \gate[style={noisy}]{\text{\small X}}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redwire}[1]{ \wire[r][##1][style={draw=red, line width=2pt}]{q} } \newcommand{\redtarg}{ \targ[style={draw=red}]{}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redctrl}[1]{ \ctrl[style={draw=red,fill=red,line width=2pt}]{##1} } \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} \tikzset{ noisy/.style={ starburst, starburst point height=2.5mm, fill=red!25, draw=red!85!black, line width=2pt, inner xsep=-2pt, inner ysep=-2pt }, } \centering % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}] & \preperr{E_0} & \ctrl{3} & & & & \noise\redwire{14} & & \redctrl{5} & & & & \preperr{E_{10}} & & \redctrl{7} & & & & & & \\ \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & \preperr{E_6} & & & \ctrl{4} & \ctrl{5} & & \preperr{E_{11}} & & & \ctrl{6} & \ctrl{7} & & & & \\ & \preperr{E_2} & & & & \ctrl{2} & \preperr{E_7} & & & & & \ctrl{4} & \preperr{E_{12}} & & & & & \ctrl{6} & & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & & & & & & & \preperr{E_3} & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \preperr{E_4} & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\redwire{11} & \targ{} & & & & & & & & & \preperr{E_8} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \preperr{E_9} & \meter{} & \setwiretype{c} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \redtarg\redwire{5} & \targ{} & & & \preperr{E_{13}} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \preperr{E_{14}} & \meter{} & \setwiretype{c} \end{quantikz} % tex-fmt: on \end{figure} \end{minipage} } \only<3>{ \begin{minipage}{0.4\textwidth} \centering \vspace*{40mm} \hspace*{-75mm} \scalebox{0.85}{ \parbox{.5\linewidth}{% \begin{gather*} \hspace*{61.5mm}% \begin{array}{c} E_6 \\ \downarrow \end{array} \end{gather*} \vspace*{-10mm} \begin{gather*} \bm{\Omega} = \left( \begin{array}{ cccccc% >{\columncolor{red!20}}c% cccccccc } 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & 1 \end{array} \right) \\[10mm] \hspace*{50mm} % \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} \end{gather*} } } \end{minipage}% \begin{minipage}{0.6\textwidth} \begin{figure}[H] \newcommand{\preperr}[1]{ \gate[style={fill=orange!20}]{\scriptstyle ##1} } \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}} \newcommand{\noise}{ \gate[style={noisy}]{\text{\small X}}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redwire}[1]{ \wire[r][##1][style={draw=red, line width=2pt}]{q} } \newcommand{\redtarg}{ \targ[style={draw=red}]{}% \setwiretype{n}% \wire[l][1]{q} } \newcommand{\redctrl}[1]{ \ctrl[style={draw=red,fill=red,line width=2pt}]{##1} } \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} \tikzset{ noisy/.style={ starburst, starburst point height=2.5mm, fill=red!25, draw=red!85!black, line width=2pt, inner xsep=-2pt, inner ysep=-2pt }, } \centering % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n,n,n}] & \preperr{E_0} & \ctrl{3} & & & & \preperr{E_5} & & \ctrl{5} & & & & \preperr{E_{10}} & & \ctrl{7} & & & & & & \\ \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & \noise\redwire{14} & & & \redctrl{4} & \redctrl{5} & & \preperr{E_{11}} & & & \redctrl{6} & \redctrl{7} & & & & \\ & \preperr{E_2} & & & & \ctrl{2} & \preperr{E_7} & & & & & \ctrl{4} & \preperr{E_{12}} & & & & & \ctrl{6} & & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & & & & & & & \preperr{E_3} & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \preperr{E_4} & \meter{} & \setwiretype{c} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \redtarg\redwire{10} & & & & & & & & & \preperr{E_8} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \redtarg\redwire{9} & \targ{} & & & & & & & \preperr{E_9} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{} & \redtarg\redwire{4} & & & \preperr{E_{13}} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \redtarg\redwire{3} & \targ{} & \preperr{E_{14}} & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \end{quantikz} % tex-fmt: on \end{figure} \end{minipage} } \vspace*{4mm} \addreferencesmanual {DTB$^+$25}{ P.- J. H. S. Derks et al., ``Designing fault-tolerant circuits using detector error models,'' \emph{Quantum}, 2025. } \stopreferencesmanual \end{frame} % TODO: Journal not showing for derks_designing_2025 \begin{frame}[fragile] \frametitle{The Detector Error Matrix} \vspace*{-14mm} \begin{itemize} \item Repetition of errors mitigated by XORing measurements \end{itemize} \begin{minipage}{0.4\textwidth} \begin{figure}[H] \newcommand{\redwire}[1]{ \wire[r][#1][style={draw=red, line width=2pt, double}]{q} } \newcommand{\inwire}{ \wire[l][1][style={draw=red, line width=2pt}]{q} } \newcommand{\redtarg}{ \targ[style={draw=red,line width=2pt}]{}% \setwiretype{n}% } \newcommand{\redctrl}[1]{ \ctrl[style={draw=red,fill=red, line width=2pt}]{0}% \wire[d][#1][style={draw=red, line width=2pt, double}]{q} } \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} \newcommand{\redgate}[1]{\gate[style={draw=red,fill=red!20}]{\textcolor{red}{#1}}} \centering \only<1>{ \hspace*{-46mm} % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={n,n,n,n,n,n}] & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \\ & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \\ & \redmeter{}\inwire\redwire{1} & \\ & \redmeter{}\inwire\redwire{1} & \\ & \redmeter{}\inwire\redwire{1} & \\ & \redmeter{}\inwire\redwire{1} & \end{quantikz} % tex-fmt: on } \only<2->{ % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm, wire types={n,n,n,n,n,n}] & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \setwiretype{c} & & & \ctrl[vertical wire=c]{2} & & \gate{D_1} \\ & \meter{}\wire[l][1]{q}\wire[r][1]{c} & \setwiretype{c} & & & & \ctrl[vertical wire=c]{2} & \gate{D_2} \\ & \redmeter{}\inwire\redwire{6} & & \redctrl{2} & & \targ{} & & \redgate{D_3} \\ & \redmeter{}\inwire\redwire{6} & & & \redctrl{2} & & \targ{} & \redgate{D_4} \\ & \redmeter{}\inwire\redwire{2} & & \redtarg\wire[r][4]{c} & & & & \gate{D_5} \\ & \redmeter{}\inwire\redwire{3} & & & \redtarg\wire[r][3]{c} & & & \gate{D_6} \end{quantikz} % tex-fmt: on } \end{figure} \end{minipage}% \begin{minipage}{0.6\textwidth} \newcommand\cc{\cellcolor{blue!20}} \visible<3->{ \begin{align*} \bm{H} = % tex-fmt: off \left(\begin{array}{ccccccccccccccc} 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \cc{0} & \cc{0} & \cc{0} & \cc{1} & \cc{0} & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{1} & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{1} & \cc{0} & 1 & 1 & 0 & 1 & 0 \\ \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{0} & \cc{1} & 0 & 1 & 1 & 0 & 1 \end{array}\right) % tex-fmt: on \end{align*} } \end{minipage} \vspace*{5mm} \visible<3->{ \begin{itemize} \item \schlagwort{Detector}: Parity constraint on a set of measurement outcomes \item Columns of \schlagwort{detector error matrix} $\bm{H}$ are modified error patterns \citereferencemanual{DTB$^+$25}\ \end{itemize} } \vspace*{10mm} \addreferencesmanual {DTB$^+$25}{ P.- J. H. S. Derks et al., ``Designing fault-tolerant circuits using detector error models,'' \emph{Quantum}, 2025. } \stopreferencesmanual \end{frame} \begin{frame}[fragile] \frametitle{Noise Models} % Related interesting stuff % - The difference between an n-qubit error and multiple % simultaneous single-qubit errors is that in the n-qubit case, % the errors can be correlated (e.g., XX more probable than XI) % - There is also work on using soft information at the % measurement outputs (may translate to not-just-X-errors at the % measurements) \vspace*{-12mm} \begin{itemize} \item \schlagwort{Noise model} assigns probabilities to error locations \end{itemize} \vspace*{1mm} \begin{minipage}{0.60\textwidth} \begin{itemize} \item Types of noise model \begin{itemize} \visible<1->{ \item \schlagwort{Depolarizing channel} considers \citereferencemanual{NC10} \begin{itemize} \item $\X$, $\Y$ or $\Z$ errors on the data qubits \end{itemize} } \visible<2->{ \item \schlagwort{Phenomenological noise} considers \citereferencemanual{DTB$^+$25} \begin{itemize} \item $\X$ errors on data qubits before each \\ measurement round \item $\X$ errors on measurement outcomes \end{itemize} } \visible<3->{ \item \schlagwort{Circuit-level noise} considers \citereferencemanual{DTB$^+$25} \begin{itemize} \item $\X$, $\Y$ or $\Z$ errors after state preparation \item $n$-qubit $\X$, $\Y$ or $\Z$ errors after any $n$-qubit gate \item $\X$ errors on measurement outcomes \end{itemize} } \end{itemize} \end{itemize} \end{minipage}% \hfill% \begin{minipage}{0.39\textwidth} \begin{figure}[H] \newcommand{\xerr}{\gate[style={fill=kit-blue!50}]{\phantom{1}}} \newcommand{\xyzerr}{\gate[style={ draw=black, fill=kit-red, path picture={ \fill[kit-blue!60] ($(path picture bounding box.south west)+(0,0)$) -- ($(path picture bounding box.north west)+(0,0)$) -- ($(path picture bounding box.north west)+(0.34,0)$) -- cycle; \fill[kit-orange!60] ($(path picture bounding box.north east)+(0,0)$) -- ($(path picture bounding box.south east)+(0,0)$) -- ($(path picture bounding box.south east)+(-0.34,0)$) -- cycle; \fill[kit-red!60] ($(path picture bounding box.north east)+(0,0)$) -- ($(path picture bounding box.south east)+(-0.34,0)$) -- ($(path picture bounding box.south west)+(0,0)$) -- ($(path picture bounding box.north west)+(0.34,0)$) -- cycle; } }]{\phantom{1}}} \hspace*{-18mm} \only<1>{ % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm] & \xyzerr & \ctrl{3} & & & & & \\ \lstick{$\ket{\psi}$} & \xyzerr & & \ctrl{2} & \ctrl{3} & & & \\ & \xyzerr & & & & \ctrl{2} & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & \meter{} & \setwiretype{c} \end{quantikz} % tex-fmt: on } \only<2>{ % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=4mm] & \xerr & \ctrl{3} & & & & & & \\ \lstick{$\ket{\psi}$} & \xerr & & \ctrl{2} & \ctrl{3} & & & & \\ & \xerr & & & & \ctrl{2} & & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & \xerr & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & \xerr & \meter{} & \setwiretype{c} \end{quantikz} % tex-fmt: on } \only<3>{ % tex-fmt: off \begin{quantikz}[row sep=4mm, column sep=2mm] & \xyzerr & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & & & & & \\ \lstick{$\ket{\psi}$} & \xyzerr & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & \\ & \xyzerr & & & & & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & \xyzerr & \targ{} & \xyzerr & \targ{} & \xyzerr & & & & & \xerr & \meter{} & \setwiretype{c} \\ \lstick{$\ket{0}_{\text{A}_2}$} & \xyzerr & & & & & \targ{} & \xyzerr & \targ{} & \xyzerr & \xerr & \meter{} & \setwiretype{c} \end{quantikz} % tex-fmt: on } \end{figure} \end{minipage} \vspace*{12mm} \addreferencesmanual {NC10}{ M. A. Nielsen and I. L. Chuang, ``Quantum computation and quantum information'', \emph{Cambridge University Press}, 2010. } {DTB$^+$25}{ P.- J. H. S. Derks et al., ``Designing fault-tolerant circuits using detector error models,'' \emph{Quantum}, 2025. } \stopreferencesmanual \end{frame} \begin{frame} \frametitle{Decoding using Detector Error Models} % Related interesting stuff % - Roffe et al. use the min-sum variant of BP. % - Babar et al. use the SPA % - A lot of publications use Roffe's ldpc package -> min-sum \vspace*{-18mm} \begin{itemize} \item \schlagwort{Detector error model} (DEM) combines detector error matrix and noise model \visible<2->{ \item Tanner graph of detector error matrix of bivariate bicycle (\acs{bb}) code \citereferencemanual{KSW$^+$25} } \end{itemize} \only<1>{\vspace*{-0.4mm}} \vspace*{5mm} \visible<2->{ \begin{figure}[H] \centering \includegraphics[scale=5,angle=90]{res/stergios_tanner_graph} \end{figure} } \vspace*{-5mm} \begin{itemize} \visible<2->{ \item Challenges } \begin{itemize} \visible<2->{ \item Fault tolerance: Additional error locations \\ $\implies$ \schlagwort{Increased decoding complexity} \citereferencemanual{GCR24} } \visible<3->{ \item Quantum setting: Degeneracy and short cycles \\ $\implies$ \schlagwort{Degraded performance} of belief propagation (BP) \citereferencemanual{BBA$^+$15} } \end{itemize} \end{itemize} \vspace*{8mm} \addreferencesmanual {KSW$^+$25}{ S. Koutsioumpas et al., ``Automorphism ensemble decoding of quantum LDPC codes,'' \emph{arXiv:2503.01738}, 2025. } {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024. } {BBA$^+$15}{ Z. Babar et al., ``Fifteen years of quantum LDPC coding and improved decoding strategies,'' \emph{IEEE Access}, 2015. } \stopreferencesmanual \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Sliding-Window Decoding} \label{sec:Sliding-Window Decoding} %%%%%%%%%%%%%%%% \subsection{State of the Art} \label{subsec:State of the Art} % % TODO: Mention somewhere that we are particularly interested in QLDPC codes % \begin{frame} % \frametitle{Addressing the Challenges} % % \vspace*{-14mm} % % \begin{itemize} % \item Decoding complexity addressed with window-based approaches % \begin{itemize} % \item Parallel decoding \citereferencemanual{SBB$^+$23} % \item Sliding windows % \citereferencemanual{HP23} % \citereferencemanual{GCR24} % \end{itemize} % \visible<2>{ % \item Degraded \ac{bp} performance addressed with % modification or extension % \begin{itemize} % \item \Ac{osd} post-processing % \citereferencemanual{RWB$^+$20} % \item Guided decimation \citereferencemanual{GCR24} % \item Neural approaches % \citereferencemanual{KL22} % \citereferencemanual{MSL$^+$25} % \item Ensemble decoding % \citereferencemanual{KSW$^+$25} % \end{itemize} % } % \end{itemize} % % \vspace*{15mm} % % \addreferencesmanual % {SBB$^+$23}{ % L. Skoric et al., ``Parallel window decoding enables scalable % fault tolerant quantum computation,'' \emph{Nature % Communications}, 2023. % } % {HP23}{ % S. Huang and S. Puri, ``Improved noisy syndrome decoding of % quantum LDPC codes with sliding window,'' \emph{arXiv:2311.03307}, 2023. % } % {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding % of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024. % } % {RWB$^+$20}{ % J. Roffe et al., ``Decoding across the quantum low-density % parity-check code landscape,'' \emph{Phys. Rev.}, 2020. % } % {KL22}{ % K.- Y. Kuo and C.- Y. Lai, ``Exploiting degeneracy in belief % propagation decoding of quantum codes,'' \emph{npj Quantum % Information}, 2022. % } % {MSL$^+$25}{ % S. Miao et al., ``Quaternary neural belief propagation % decoding of quantum LDPC codes with overcomplete % check matrices'', \emph{IEEE Access}, 2025. % } % {KSW$^+$25}{ % S. Koutsioumpas et al., ``Automorphism ensemble decoding of % quantum LDPC codes,'' \emph{arXiv:2503.01738}, 2025. % } % \stopreferencesmanual % \end{frame} \begin{frame} \frametitle{Sliding-Window Decoding} \vspace*{-13mm} \begin{itemize} \item Detector error matrix of $\llbracket 72,6,6 \rrbracket$ \ac{bb} code \end{itemize} \visible<3->{ \hspace*{21mm}% \begin{tikzpicture} \draw[decorate, decoration={brace, amplitude=10pt}, line width=1pt] (0,0) -- (6,0) node[midway, above=4mm] {Commit region}; \end{tikzpicture} } \vspace*{-2mm} \only<1> { \begin{figure}[H] \centering \includegraphics[scale=1.4]{res/72_bb_dem_no_windows.pdf} \end{figure} } \only<2-> { \begin{figure}[H] \centering \includegraphics[scale=1.4]{res/72_bb_dem.pdf} \end{figure} } \vspace*{-50.85mm} \visible<4->{ \hspace*{-8mm}% \begin{tikzpicture} \draw[{Latex}-{Latex}, line width=1pt] (0,0) -- (0,1); \draw[line width=1pt] (-1mm,0) -- (3mm,0); \draw[line width=1pt] (-1mm,1) -- (3mm,1); \node[left] at (-2mm,0.5) {$\sim W$}; \draw[{Latex}-{Latex}, line width=1pt] (11.5cm,0.4) -- (11.5cm,1); \draw[line width=1pt] (11.5cm,0.98) -- (11.5cm,1.5); \node[above] at (11.5cm,1.5) {$\sim F$}; \end{tikzpicture} } \vspace*{27mm} \begin{itemize} \visible<2->{ \item Split matrix into \schlagwort{overlapping windows} \citereferencemanual{HP23} \citereferencemanual{GCR24} } \visible<3->{ \item After decoding a window \begin{itemize} \item Store error estimates in \schlagwort{commit region} \item \schlagwort{Update syndrome} of overlapping region \item Move to next window \end{itemize} } \end{itemize} \vspace*{12mm} \addreferencesmanual {HP23}{ S. Huang and S. Puri, ``Improved noisy syndrome decoding of quantum LDPC codes with sliding window,'' \emph{arXiv:2311.03307}, 2023. } {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024. } \stopreferencesmanual \end{frame} %%%%%%%%%%%%%%%% \subsection{Warm-Start Sliding-Window Decoding} \label{subsec:Soft-Information-Aware Sliding-Window Decoding} \begin{frame} \frametitle{BP: Warm-Start Sliding-Window Decoding} \vspace*{-15mm} \begin{itemize} \item Contribution: \schlagwort{Warm-start} by initializing with soft information from previous window \end{itemize} \vspace*{-5mm} \begin{figure}[H] \centering \tikzset{ VN/.style={ circle, fill=kit-green, inner sep=1.5mm, }, CN/.style={ rectangle, fill=kit-blue, inner sep=1.8mm, }, } \only<1>{ \begin{tikzpicture}[node distance = 7mm] \node[VN] (vn00) {}; \node[VN, below = of vn00] (vn01) {}; \node[VN, below = of vn01] (vn02) {}; \node[VN, below = of vn02] (vn03) {}; \node[VN, below = of vn03] (vn04) {}; \coordinate (temp) at ($(vn01)!0.5!(vn02)$); \node[CN, left =15mm of temp] (cn00) {}; \node[CN, below = of cn00] (cn01) {}; \draw (vn00) -- (cn00); \draw (vn01) -- (cn00); \draw (vn03) -- (cn00); \draw (vn01) -- (cn01); \draw (vn02) -- (cn01); \draw (vn04) -- (cn01); \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \node[VN, right = 35mm of vn\prev 0] (vn\i0) {}; \node[VN, below = of vn\i0] (vn\i1) {}; \node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i2] (vn\i3) {}; \node[VN, below = of vn\i3] (vn\i4) {}; \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \node[CN, left = 15mm of temp] (cn\i0) {}; \node[CN, below = of cn\i0] (cn\i1) {}; \draw (vn\i0) -- (cn\i0); \draw (vn\i1) -- (cn\i0); \draw (vn\i3) -- (cn\i0); \draw (vn\i1) -- (cn\i1); \draw (vn\i2) -- (cn\i1); \draw (vn\i4) -- (cn\i1); } \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \draw (vn\prev 3) -- (cn\i 0); \draw (vn\prev 4) -- (cn\i 1); } \node[ draw, inner sep=5mm,line width=1pt, fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21) ] (box1) {}; \node[ draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt, fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31) ] (box2) {}; % Marker for solid box (positions 0–2) \draw[line width=1pt] ([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm) coordinate (dim1l); \draw[line width=1pt] ([yshift=-5mm]box1.south east) -- ++(0,-4mm) coordinate (dim1r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r) node[midway, below=2pt] {$W$}; % Marker for step size F on top \draw[line width=1pt] ([yshift=3mm]box2.north west) -- ++(0,4mm) coordinate (dim3l); \draw[line width=1pt] ([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm) coordinate (dim3r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r) node[midway, above=2pt] {$F$}; \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north east) -- ++(35mm,0); \end{tikzpicture} }% \only<2->{ \begin{tikzpicture}[node distance = 7mm] \node[VN] (vn00) {}; \node[VN, below = of vn00] (vn01) {}; \node[VN, below = of vn01] (vn02) {}; \node[VN, below = of vn02] (vn03) {}; \node[VN, below = of vn03] (vn04) {}; \coordinate (temp) at ($(vn01)!0.5!(vn02)$); \node[CN, left =15mm of temp] (cn00) {}; \node[CN, below = of cn00] (cn01) {}; \draw (vn00) -- (cn00); \draw (vn01) -- (cn00); \draw (vn03) -- (cn00); \draw (vn01) -- (cn01); \draw (vn02) -- (cn01); \draw (vn04) -- (cn01); \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \node[VN, right = 35mm of vn\prev 0] (vn\i0) {}; \node[VN, below = of vn\i0] (vn\i1) {}; \node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i2] (vn\i3) {}; \node[VN, below = of vn\i3] (vn\i4) {}; \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \node[CN, left = 15mm of temp] (cn\i0) {}; \node[CN, below = of cn\i0] (cn\i1) {}; \draw (vn\i0) -- (cn\i0); \draw (vn\i1) -- (cn\i0); \draw (vn\i3) -- (cn\i0); \draw (vn\i1) -- (cn\i1); \draw (vn\i2) -- (cn\i1); \draw (vn\i4) -- (cn\i1); } \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \draw (vn\prev 3) -- (cn\i 0); \draw (vn\prev 4) -- (cn\i 1); } \node[ draw, inner sep=5mm,line width=1pt, fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21) ] (box1) {}; \node[ draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt, fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31) ] (box2) {}; \draw[kit-orange, line width=2pt] (cn10) -- (vn10); \draw[kit-orange, line width=2pt] (cn10) -- (vn11); \draw[kit-orange, line width=2pt] (cn10) -- (vn13); \draw[kit-orange, line width=2pt] (cn11) -- (vn11); \draw[kit-orange, line width=2pt] (cn11) -- (vn12); \draw[kit-orange, line width=2pt] (cn11) -- (vn14); \draw[kit-orange, line width=2pt] (vn13) -- (cn20); \draw[kit-orange, line width=2pt] (vn14) -- (cn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn20); \draw[kit-orange, line width=2pt] (cn20) -- (vn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn23); \draw[kit-orange, line width=2pt] (cn21) -- (vn21); \draw[kit-orange, line width=2pt] (cn21) -- (vn22); \draw[kit-orange, line width=2pt] (cn21) -- (vn24); % Marker for solid box (positions 0–2) \draw[line width=1pt] ([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm) coordinate (dim1l); \draw[line width=1pt] ([yshift=-5mm]box1.south east) -- ++(0,-4mm) coordinate (dim1r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r) node[midway, below=2pt] {$W$}; % Marker for step size F on top \draw[line width=1pt] ([yshift=3mm]box2.north west) -- ++(0,4mm) coordinate (dim3l); \draw[line width=1pt] ([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm) coordinate (dim3r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r) node[midway, above=2pt] {$F$}; \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north east) -- ++(35mm,0); \end{tikzpicture} } \end{figure} \vspace*{-5mm} \begin{itemize} \item Pass messages from overlapping region to next window \end{itemize} \end{frame} \begin{frame} \frametitle{BP Performance: Window Size} \vspace*{-18mm} % Idea for why lower error rate -> larger improvement % - Lower error rate % -> soft info more accurate earlier % -> passed info worth more \begin{itemize} \item Examine decoding performance for \schlagwort{BP} \item Larger improvement for lower error rate \end{itemize} \vspace*{5mm} \only<1>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 32$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \only<2>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \addplot+[mark=square, line width=3pt, black, legend image code/.code={ \draw[black, solid, line width=3pt] (0.5mm,0mm) -- (5.5mm,0mm); }] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/one-shot/SyndromeMinSumDecoder/max_iter_32/LERs.csv}; \addlegendentry{Whole} \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \addplot+[mark=square, line width=3pt, densely dashed, black] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/one-shot/SyndromeMinSumDecoder/max_iter_32/LERs.csv}; \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 32$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \only<3>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options={fill=gray}, line width=2pt, solid, gray, opacity=0.35, forget plot, ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[ mark=\mark, line width=2pt, densely dashed, gray, opacity=0.35, forget plot ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 200$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \only<4>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options={fill=gray}, line width=2pt, solid, gray, opacity=0.35, forget plot, ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[ mark=\mark, line width=2pt, densely dashed, gray, opacity=0.35, forget plot ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 5000$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \end{frame} \begin{frame} \frametitle{BP Performance: Step Size} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BP} \item Similar behavior to before % \item Larger improvement for lower error rate \end{itemize} \vspace*{6.6mm} \only<1> { \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \vspace*{-20mm} \item Smaller step size\\ $\implies$ More overlap \vspace*{10mm} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 32$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} } \only<2> { \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, forget plot, solid, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, forget plot, densely dashed, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \vspace*{-20mm} \item Smaller step size\\ $\implies$ More overlap \vspace*{10mm} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 200$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} } \only<3> { \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, forget plot, solid, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, forget plot, densely dashed, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col ] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeMinSumDecoder/max_iter_5000/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \vspace*{-20mm} \item Smaller step size\\ $\implies$ More overlap \vspace*{10mm} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $n_\text{iterations} = 5000$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} } \end{frame} \begin{frame}[fragile] \frametitle{BP with Guided Decimation} \begin{minipage}{0.5\textwidth} \vspace*{-10mm} \centering \begin{itemize} \only<1>{\vspace*{10mm}} \item Most errors due to non-convergence \vspace*{10mm} \visible<2-> { \item BP with guided decimation (BPGD) \citereferencemanual{YLH+24} \begin{enumerate} \item Perform $T$ \schlagwort{BP iterations} \item Hard decision on \schlagwort{most reliable \ac{vn}} \item \schlagwort{Exclude \ac{vn}} from further processing \item Go back to step 1 \end{enumerate} \vspace*{10mm} \item Mitigates convergence problems } \end{itemize} \end{minipage}% \begin{minipage}{0.5\textwidth} \visible<3->{ \centering \vspace*{-10mm} \begin{itemize} \item $\llbracket 882, 24, 18 \le d \le 24 \rrbracket$ generalized hypergraph product (GHP) code, bit-flip noise \citereferencemanual{YLH+24} \end{itemize} % \vspace*{-5mm} \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=13cm, height=9cm, ymode=log, legend pos = south east, ymin=1e-6, ymax=1, enlargelimits=false, legend style={ cells={anchor=west}, cells={align=left}, }, xlabel = {Physical error rate}, ylabel = {Frame error rate}, xtick={0.04,0.05,...,0.1}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, grid=both, ] \addplot+[mark=pentagon, mark options={fill=black}, line width=2pt, black] table[col sep=comma, x=p, y=FER] {res/literature/yao_bp.csv}; \addlegendentry{BP} \addplot+[mark=diamond*, mark options={fill=kit-green}, line width=2pt, kit-green] table[col sep=comma, x=p, y=FER] {res/literature/yao_bpgd_1.csv}; \addlegendentry{BPGD, $T = 1$} \addplot+[mark=*, mark options={fill=kit-red}, line width=2pt, kit-red] table[col sep=comma, x=p, y=FER] {res/literature/yao_bpgd_10.csv}; \addlegendentry{BPGD, $T = 10$} \addplot+[mark=triangle*, mark options={fill=kit-blue}, line width=2pt, kit-blue] table[col sep=comma, x=p, y=FER] {res/literature/yao_bpgd_70.csv}; \addlegendentry{BPGD, $T = 70$} \addplot+[mark=square*, mark options={fill=kit-orange}, line width=2pt, kit-orange] table[col sep=comma, x=p, y=FER] {res/literature/yao_bpgd_100.csv}; \addlegendentry{BPGD, $T = 100$} \end{axis} \end{tikzpicture} \end{figure} } \end{minipage} \vspace*{5mm} \addreferencesmanual {YLH+24}{Hanwen Yao et al. ``Belief propagation decoding of quantum LDPC codes with guided decimation,'' 2024 IEEE International Symposium on Information Theory (ISIT), 2024.} \stopreferencesendmanual \end{frame} \begin{frame} \frametitle{BPGD: Warm-Start Sliding-Window Decoding I} \vspace*{-15mm} \begin{itemize} \item BPGD: Additional information about overlap region \end{itemize} \vspace*{-5mm} \begin{figure}[H] \centering \tikzset{ VN/.style={ circle, fill=kit-green, inner sep=1.5mm, }, CN/.style={ rectangle, fill=kit-blue, inner sep=1.8mm, }, } \only<1>{ \begin{tikzpicture}[node distance = 7mm] \node[VN] (vn00) {}; \node[VN, below = of vn00] (vn01) {}; \node[VN, below = of vn01] (vn02) {}; \node[VN, below = of vn02] (vn03) {}; \node[VN, below = of vn03] (vn04) {}; \coordinate (temp) at ($(vn01)!0.5!(vn02)$); \node[CN, left =15mm of temp] (cn00) {}; \node[CN, below = of cn00] (cn01) {}; \draw (vn00) -- (cn00); \draw (vn01) -- (cn00); \draw (vn03) -- (cn00); \draw (vn01) -- (cn01); \draw (vn02) -- (cn01); \draw (vn04) -- (cn01); \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \node[VN, right = 35mm of vn\prev 0] (vn\i0) {}; \node[VN, below = of vn\i0] (vn\i1) {}; \node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i2] (vn\i3) {}; \node[VN, below = of vn\i3] (vn\i4) {}; \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \node[CN, left = 15mm of temp] (cn\i0) {}; \node[CN, below = of cn\i0] (cn\i1) {}; \draw (vn\i0) -- (cn\i0); \draw (vn\i1) -- (cn\i0); \draw (vn\i3) -- (cn\i0); \draw (vn\i1) -- (cn\i1); \draw (vn\i2) -- (cn\i1); \draw (vn\i4) -- (cn\i1); } \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \draw (vn\prev 3) -- (cn\i 0); \draw (vn\prev 4) -- (cn\i 1); } \node[ draw, inner sep=5mm,line width=1pt, fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21) ] (box1) {}; \node[ draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt, fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31) ] (box2) {}; % Marker for solid box (positions 0–2) \draw[line width=1pt] ([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm) coordinate (dim1l); \draw[line width=1pt] ([yshift=-5mm]box1.south east) -- ++(0,-4mm) coordinate (dim1r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r) node[midway, below=2pt] {$W$}; % Marker for step size F on top \draw[line width=1pt] ([yshift=3mm]box2.north west) -- ++(0,4mm) coordinate (dim3l); \draw[line width=1pt] ([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm) coordinate (dim3r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r) node[midway, above=2pt] {$F$}; \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north east) -- ++(35mm,0); \end{tikzpicture} }% \only<2->{ \begin{tikzpicture}[node distance = 7mm] \node[VN] (vn00) {}; \node[VN, below = of vn00] (vn01) {}; \node[VN, below = of vn01] (vn02) {}; \node[VN, below = of vn02] (vn03) {}; \node[VN, below = of vn03] (vn04) {}; \coordinate (temp) at ($(vn01)!0.5!(vn02)$); \node[CN, left =15mm of temp] (cn00) {}; \node[CN, below = of cn00] (cn01) {}; \draw (vn00) -- (cn00); \draw (vn01) -- (cn00); \draw (vn03) -- (cn00); \draw (vn01) -- (cn01); \draw (vn02) -- (cn01); \draw (vn04) -- (cn01); \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \node[VN, right = 35mm of vn\prev 0] (vn\i0) {}; \node[VN, below = of vn\i0] (vn\i1) {}; \node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i2] (vn\i3) {}; \node[VN, below = of vn\i3] (vn\i4) {}; \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \node[CN, left = 15mm of temp] (cn\i0) {}; \node[CN, below = of cn\i0] (cn\i1) {}; \draw (vn\i0) -- (cn\i0); \draw (vn\i1) -- (cn\i0); \draw (vn\i3) -- (cn\i0); \draw (vn\i1) -- (cn\i1); \draw (vn\i2) -- (cn\i1); \draw (vn\i4) -- (cn\i1); } \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \draw (vn\prev 3) -- (cn\i 0); \draw (vn\prev 4) -- (cn\i 1); } \node[ draw, inner sep=5mm,line width=1pt, fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21) ] (box1) {}; \node[ draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt, fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31) ] (box2) {}; \draw[kit-orange, line width=2pt] (cn10) -- (vn10); \draw[kit-orange, line width=2pt] (cn10) -- (vn11); \draw[kit-orange, line width=2pt] (cn10) -- (vn13); \draw[kit-orange, line width=2pt] (cn11) -- (vn11); \draw[kit-orange, line width=2pt] (cn11) -- (vn12); \draw[kit-orange, line width=2pt] (cn11) -- (vn14); \draw[kit-orange, line width=2pt] (vn13) -- (cn20); \draw[kit-orange, line width=2pt] (vn14) -- (cn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn20); \draw[kit-orange, line width=2pt] (cn20) -- (vn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn23); \draw[kit-orange, line width=2pt] (cn21) -- (vn21); \draw[kit-orange, line width=2pt] (cn21) -- (vn22); \draw[kit-orange, line width=2pt] (cn21) -- (vn24); \node[VN, draw=kit-orange, fill=kit-orange] at (vn10) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn11) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn12) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn13) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn14) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn20) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn21) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn22) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn23) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn24) {}; % Marker for solid box (positions 0–2) \draw[line width=1pt] ([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm) coordinate (dim1l); \draw[line width=1pt] ([yshift=-5mm]box1.south east) -- ++(0,-4mm) coordinate (dim1r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r) node[midway, below=2pt] {$W$}; % Marker for step size F on top \draw[line width=1pt] ([yshift=3mm]box2.north west) -- ++(0,4mm) coordinate (dim3l); \draw[line width=1pt] ([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm) coordinate (dim3r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r) node[midway, above=2pt] {$F$}; \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north east) -- ++(35mm,0); \end{tikzpicture} } \end{figure} \vspace*{-5mm} \begin{itemize} \item Pass messages \schlagwort{and decimation information} to next window \end{itemize} \end{frame} \begin{frame} \frametitle{BPGD: Passing Decimation Information} \vspace{-19mm} \begin{itemize} \item Pass \schlagwort{decimation information} in addition to CN to VN messages \item \schlagwort{Worse performance} in the warm start case \item Largest step size yields lowest error rate \end{itemize} \vspace{2mm} \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, ] \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoderPassDecimation/max_iter_5000/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=south east, at={(current axis.south east)}, xshift=-40mm, yshift=3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \vspace*{-14.5mm} \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item \Ac{spa} + \ac{gd} \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = 3{,}600$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} \end{frame} \begin{frame} \frametitle{BPGD: Warm-Start Sliding-Window Decoding II} \vspace*{-15mm} \begin{itemize} \item Decimation information: \schlagwort{Premature hard decision} on VNs \end{itemize} \vspace*{-5mm} \begin{figure}[H] \centering \tikzset{ VN/.style={ circle, fill=kit-green, inner sep=1.5mm, }, CN/.style={ rectangle, fill=kit-blue, inner sep=1.8mm, }, } \only<1>{ \begin{tikzpicture}[node distance = 7mm] \node[VN] (vn00) {}; \node[VN, below = of vn00] (vn01) {}; \node[VN, below = of vn01] (vn02) {}; \node[VN, below = of vn02] (vn03) {}; \node[VN, below = of vn03] (vn04) {}; \coordinate (temp) at ($(vn01)!0.5!(vn02)$); \node[CN, left =15mm of temp] (cn00) {}; \node[CN, below = of cn00] (cn01) {}; \draw (vn00) -- (cn00); \draw (vn01) -- (cn00); \draw (vn03) -- (cn00); \draw (vn01) -- (cn01); \draw (vn02) -- (cn01); \draw (vn04) -- (cn01); \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \node[VN, right = 35mm of vn\prev 0] (vn\i0) {}; \node[VN, below = of vn\i0] (vn\i1) {}; \node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i2] (vn\i3) {}; \node[VN, below = of vn\i3] (vn\i4) {}; \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \node[CN, left = 15mm of temp] (cn\i0) {}; \node[CN, below = of cn\i0] (cn\i1) {}; \draw (vn\i0) -- (cn\i0); \draw (vn\i1) -- (cn\i0); \draw (vn\i3) -- (cn\i0); \draw (vn\i1) -- (cn\i1); \draw (vn\i2) -- (cn\i1); \draw (vn\i4) -- (cn\i1); } \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \draw (vn\prev 3) -- (cn\i 0); \draw (vn\prev 4) -- (cn\i 1); } \node[ draw, inner sep=5mm,line width=1pt, fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21) ] (box1) {}; \node[ draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt, fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31) ] (box2) {}; \draw[kit-orange, line width=2pt] (cn10) -- (vn10); \draw[kit-orange, line width=2pt] (cn10) -- (vn11); \draw[kit-orange, line width=2pt] (cn10) -- (vn13); \draw[kit-orange, line width=2pt] (cn11) -- (vn11); \draw[kit-orange, line width=2pt] (cn11) -- (vn12); \draw[kit-orange, line width=2pt] (cn11) -- (vn14); \draw[kit-orange, line width=2pt] (vn13) -- (cn20); \draw[kit-orange, line width=2pt] (vn14) -- (cn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn20); \draw[kit-orange, line width=2pt] (cn20) -- (vn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn23); \draw[kit-orange, line width=2pt] (cn21) -- (vn21); \draw[kit-orange, line width=2pt] (cn21) -- (vn22); \draw[kit-orange, line width=2pt] (cn21) -- (vn24); \node[VN, draw=kit-orange, fill=kit-orange] at (vn10) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn11) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn12) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn13) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn14) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn20) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn21) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn22) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn23) {}; \node[VN, draw=kit-orange, fill=kit-orange] at (vn24) {}; % Marker for solid box (positions 0–2) \draw[line width=1pt] ([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm) coordinate (dim1l); \draw[line width=1pt] ([yshift=-5mm]box1.south east) -- ++(0,-4mm) coordinate (dim1r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r) node[midway, below=2pt] {$W$}; % Marker for step size F on top \draw[line width=1pt] ([yshift=3mm]box2.north west) -- ++(0,4mm) coordinate (dim3l); \draw[line width=1pt] ([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm) coordinate (dim3r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r) node[midway, above=2pt] {$F$}; \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north east) -- ++(35mm,0); \end{tikzpicture} }% \only<2->{ \begin{tikzpicture}[node distance = 7mm] \node[VN] (vn00) {}; \node[VN, below = of vn00] (vn01) {}; \node[VN, below = of vn01] (vn02) {}; \node[VN, below = of vn02] (vn03) {}; \node[VN, below = of vn03] (vn04) {}; \coordinate (temp) at ($(vn01)!0.5!(vn02)$); \node[CN, left =15mm of temp] (cn00) {}; \node[CN, below = of cn00] (cn01) {}; \draw (vn00) -- (cn00); \draw (vn01) -- (cn00); \draw (vn03) -- (cn00); \draw (vn01) -- (cn01); \draw (vn02) -- (cn01); \draw (vn04) -- (cn01); \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \node[VN, right = 35mm of vn\prev 0] (vn\i0) {}; \node[VN, below = of vn\i0] (vn\i1) {}; \node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i2] (vn\i3) {}; \node[VN, below = of vn\i3] (vn\i4) {}; \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \node[CN, left = 15mm of temp] (cn\i0) {}; \node[CN, below = of cn\i0] (cn\i1) {}; \draw (vn\i0) -- (cn\i0); \draw (vn\i1) -- (cn\i0); \draw (vn\i3) -- (cn\i0); \draw (vn\i1) -- (cn\i1); \draw (vn\i2) -- (cn\i1); \draw (vn\i4) -- (cn\i1); } \foreach \i in {1,2,3,4} { \pgfmathtruncatemacro{\prev}{\i-1} \draw (vn\prev 3) -- (cn\i 0); \draw (vn\prev 4) -- (cn\i 1); } \node[ draw, inner sep=5mm,line width=1pt, fit=(vn00)(vn04)(cn00)(cn01)(vn20)(vn24)(cn20)(cn21) ] (box1) {}; \node[ draw, dashed, inner sep=5mm, inner ysep=8mm,line width=1pt, fit=(vn10)(vn14)(cn10)(cn11)(vn30)(vn34)(cn30)(cn31) ] (box2) {}; \draw[kit-orange, line width=2pt] (cn10) -- (vn10); \draw[kit-orange, line width=2pt] (cn10) -- (vn11); \draw[kit-orange, line width=2pt] (cn10) -- (vn13); \draw[kit-orange, line width=2pt] (cn11) -- (vn11); \draw[kit-orange, line width=2pt] (cn11) -- (vn12); \draw[kit-orange, line width=2pt] (cn11) -- (vn14); \draw[kit-orange, line width=2pt] (vn13) -- (cn20); \draw[kit-orange, line width=2pt] (vn14) -- (cn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn20); \draw[kit-orange, line width=2pt] (cn20) -- (vn21); \draw[kit-orange, line width=2pt] (cn20) -- (vn23); \draw[kit-orange, line width=2pt] (cn21) -- (vn21); \draw[kit-orange, line width=2pt] (cn21) -- (vn22); \draw[kit-orange, line width=2pt] (cn21) -- (vn24); % Marker for solid box (positions 0–2) \draw[line width=1pt] ([yshift=-5mm, line width=1pt]box1.south west) -- ++(0,-4mm) coordinate (dim1l); \draw[line width=1pt] ([yshift=-5mm]box1.south east) -- ++(0,-4mm) coordinate (dim1r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=-2mm]dim1l) -- ([yshift=-2mm]dim1r) node[midway, below=2pt] {$W$}; % Marker for step size F on top \draw[line width=1pt] ([yshift=3mm]box2.north west) -- ++(0,4mm) coordinate (dim3l); \draw[line width=1pt] ([yshift=3mm]box2.north west -| box1.north west) -- ++(0,4mm) coordinate (dim3r); \draw[{Latex}-{Latex}, line width=1pt] ([yshift=2mm]dim3l) -- ([yshift=2mm]dim3r) node[midway, above=2pt] {$F$}; \draw[-{Latex}, line width=1pt] ([yshift=8mm] box1.north east) -- ++(35mm,0); \end{tikzpicture} } \end{figure} \vspace*{-5mm} \begin{itemize} \item Pass \schlagwort{only messages} to next window \end{itemize} \end{frame} \begin{frame} \frametitle{BPGD Performance: Window Size} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BPGD} \item Jump in performance when most \acp{vn} are decimated \end{itemize} \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, % xmode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-3, ymax=1e-1, grid=both, legend pos = north east, xticklabels = {$32$,$512$,$1{,}024$,,$2{,}048$,,$3{,}072$,,$4{,}096$}, xtick={32, 512, 1024, 1536, 2048, 2560, 3072, 3584, 4096}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Number of BP iterations}, ylabel={Per-round-LER}, ] \foreach \W/\col/\mark in {3/kit-red/o,4/kit-blue/triangle,5/kit-orange/square} { \edef\temp{\noexpand \addplot+[ mark=\mark, line width=2pt, densely dashed, forget plot, \col ] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col/\mark in {3/kit-red/*,4/kit-blue/triangle*,5/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options = {fill=\col}, line width=2pt, solid, \col ] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=north east, at={(current axis.north east)}, xshift=-40mm, yshift=-3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $p = 0.0025$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} \end{frame} \begin{frame} \frametitle{BPGD Performance: Step Size} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BPGD} \item Jump in performance when most \acp{vn} are decimated \end{itemize} \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, % xmode=log, legend style={ cells={anchor=west}, cells={align=left}, minimum width=25mm, }, enlargelimits=false, ymin=1e-3, ymax=1e-1, grid=both, legend pos = north east, xticklabels = {$32$,$512$,$1{,}024$,,$2{,}048$,,$3{,}072$,,$4{,}096$}, xtick={32, 512, 1024, 1536, 2048, 2560, 3072, 3584, 4096}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Number of BP iterations}, ylabel={Per-round-LER}, ] \foreach \F/\col/\mark in {3/kit-red/o,2/kit-blue/triangle,1/kit-orange/square} { \edef\temp{\noexpand \addplot+[mark=\mark, line width=2pt, densely dashed, forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col/\mark in {3/kit-red/*,2/kit-blue/triangle*,1/kit-orange/square*} { \edef\temp{\noexpand \addplot+[ mark=\mark, mark options={fill=\col}, line width=2pt, solid, \col ] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeSpaGdDecoder/p_0.0025/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \end{axis} \setlength{\tabcolsep}{3pt} \node[ draw, fill=white, anchor=north east, at={(current axis.north east)}, xshift=-40mm, yshift=-3.15mm, inner xsep=1mm, ] (linestyle legend) { \begin{tabular}{ll} \raisebox{4pt}{% \tikz{% \draw[black, densely dashed, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-2pt}{Cold start} \\[2.5pt] \raisebox{5pt}{% \tikz{% \draw[black, solid, line width=2pt] (0,0) -- (0.6cm,0);% }% } & \raisebox{-1pt}{Warm start} \end{tabular} }; \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code \item $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $p = 0.0025$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Conclusion and Outlook} \label{subsec:Conclusion and Outlook} \begin{frame} \frametitle{Conclusion and Outlook} \vspace*{-7mm} \begin{minipage}[c]{0.65\textwidth} \begin{itemize} \item Conclusion \begin{itemize} \item \schlagwort{Fault tolerance} important for scalable quantum computing \item Use soft information for warm start \\ $\implies$ \schlagwort{More effective iterations}, no additional overhead \end{itemize} \visible<2->{ \item Future work \begin{itemize} \item Examine other \schlagwort{inner decoders} (e.g., guided decimation guesssing \citereferencemanual{GCR24}, neural BP4 \citereferencemanual{MSL$^+$25}) \item Exploit spatially-coupled structure for \schlagwort{code design} (e.g., increase coupling width) \end{itemize} } \end{itemize} \end{minipage}% \begin{minipage}[c]{0.35\textwidth} \centering \visible<3->{ \begin{figure}[H] \centering \vspace*{-25mm} \begin{tikzpicture} \node[scale=10] at (0, 0) {\textcolor{kit-blue}{{\fontfamily{phv}\selectfont ?}}}; \node[align=center] at (0,-5) {Thank you for your attention! \\ Any questions?}; \end{tikzpicture} \end{figure} } \end{minipage} \vspace*{15mm} \addreferencesmanual {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024. } {MSL$^+$25}{ S. Miao et al., ``Quaternary neural belief propagation decoding of quantum LDPC codes with overcomplete check matrices'', \emph{IEEE Access}, 2025. } \stopreferencesmanual \end{frame} \appendix \beginbackup \begin{frame} \frametitle{System Level Overview} \vspace*{-10mm} \begin{figure}[H] \centering \begin{subfigure}[t]{0.5\textwidth} \centering \includegraphics[scale=1.1]{res/architecture} \vspace*{5mm} \caption{Schematic workflow of surface code quantum computation \citereferencemanual{ZZC$^+$23}.} \end{subfigure}% \begin{subfigure}[t]{0.5\textwidth} \centering \tikzset{ block/.style={ draw, rectangle, fill = kit-blue!25, minimum width=75mm, minimum height=15mm, } } \scalebox{0.7}{ \begin{tikzpicture}[node distance=15mm and 20mm] \node[block] (encoding) {Encoding}; \node[block, below=of encoding] (channel) {Quantum Channel}; \node[block, below=of channel] (reverse-op) {Reverse Operation}; \node[block, right=of channel] (syn-extr) {Syndrome Extraction}; \node[block, below=of syn-extr] (syn-dec) {Syndrome Decoder}; \node[above=of encoding] (input) {$\ket{\phi}$}; \node[below=of reverse-op] (output) {$\hat{\mathcal{E}}\mathcal{E}\ket{\psi}$}; \draw [-{Latex}] (encoding) -- (channel) node[midway, right] {$\ket{\psi}$}; \draw [-{Latex}] (channel) -- (reverse-op) node[midway, right] {$\mathcal{E}\ket{\psi}$}; \draw [-{Latex}] (channel) -- (syn-extr) node[midway, above] {$\mathcal{E}\ket{\psi}$}; \draw [-{Latex}] (syn-extr) -- (syn-dec) node[midway, right] {$z$}; \draw [-{Latex}] (syn-dec) -- (reverse-op) node[midway, above] {$\hat{\mathcal{E}}$}; \draw [-{Latex}] (input) -- (encoding); \draw [-{Latex}] (reverse-op) -- (output); \end{tikzpicture} } \vspace*{5mm} \caption{Block diagram of QEC using stabilizer codes \citereferencemanual{MSL$^+$25}.} \end{subfigure} \end{figure} \vspace*{5mm} \addreferencesmanual {ZZC$^+$23}{ F. Zhang et al., ``A classical architecture for digital quantum computers,'' \emph{ACM Transactions on Quantum Computing}, 2023. } {MSL$^+$25}{ S. Miao et al., ``Quaternary neural belief propagation decoding of quantum LDPC codes with overcomplete check matrices'', \emph{IEEE Access}, 2025. } \stopreferencesmanual \end{frame} \begin{frame} \frametitle{Stabilizer and Calderbank Shor Steane Codes} \vspace*{-5mm} % Related interesting stuff % - Using stabilizers to describe quantum codes is a bit like % using parity check equations to describe classical codes % -> stabilizer codes are the quantum analog of binary linear codes % - For CSS codes, "the parity checks for the X errors and the % parity checks for the Z errors can be represented independently % of one another" \begin{itemize} \item Stabilizer codes \citereferencemanual{NC10} \begin{itemize} \item Implicitly defined using \schlagwort{stabilizer generators} \item Can be represented using parity check matrices \item Quantum analog of linear block codes \end{itemize} \vspace*{10mm} \item \Acf{css} codes \citereferencemanual{NC10} \begin{itemize} \item Subset of stabilizer codes \item Able to correct $\X$ and $\Z$ errors independently \item Described using two separate parity check matrices $\bm{H}_X$ and $\bm{H}_Z$ \item Can be constructed from two binary linear codes $\mathcal{C}_1 \left[ n, k_1 \right]$ and $\mathcal{C}_2 \left[ n, k_2 \right]$ with $\mathcal{C}_2 \subset \mathcal{C}_1$ \end{itemize} \end{itemize} \vspace*{20mm} \addreferencesmanual {NC10}{ M. A. Nielsen and I. L. Chuang, ``Quantum computation and quantum information'', \emph{Cambridge University Press}, 2010. } \stopreferencesmanual \end{frame} \begin{frame} \frametitle{The Quantum Error Correcting Landscape} \vspace*{-10mm} \begin{itemize} \item Taxonomy of main QEC code families \citereferencemanual{SPG$^+$25} \end{itemize} \vspace*{2mm} \begin{figure}[H] \centering \includegraphics[scale=2.5]{res/taxonomy.pdf} \end{figure} \begin{itemize} \item Surface code is the industry standard for experimental implementations, but has poor encoding efficiency \citereferencemanual{BCG$^+$24} \item \Ac{qldpc} codes particularly interesting because of \begin{itemize} \item Constant overhead scaling \citereferencemanual{Got14} \item Linear distance scaling \citereferencemanual{BCG$^+$24} \end{itemize} \end{itemize} \vspace*{15mm} \addreferencesmanual {SPG$^+$25}{ A. Swierkowska et al., ``ECCentric: An empirical analysis of quantum error correction codes'', \emph{arXiv:2511.01062v1}, 2025. } {BCG$^+$24}{ S. Bravyi et al., ``High-threshold and low-overhead fault-tolerant quantum memory,'' \emph{Nature}, 2024. } {Got14}{ D. Gottesman, ``Fault-Tolerant Quantum computation with constant overhead'', \emph{arXiv:1310.2984}, 2014. } \stopreferencesendmanual \end{frame} \begin{frame} \frametitle{Guided Decimation Guessing Decoding} \begin{minipage}{0.57\textwidth} \begin{itemize} \item BP with guided decimation (BPGD) \\ $\implies$ Iteratively fix most reliable \ac{vn} \vspace*{10mm} \item \schlagwort{Guided decimation guessing} (GDG) \citereferencemanual{GCR24} \begin{itemize} \item Choose VN with \schlagwort{lowest} log-likelihood ratio \item Choose VN to fix based on \schlagwort{LLR history} \item Explore both VN values in parallel (\schlagwort{guessing}) \end{itemize} \end{itemize} \end{minipage}% \begin{minipage}{0.43\textwidth} \begin{figure}[H] \centering \includegraphics[scale=1.3]{res/gdg.pdf} \end{figure} \end{minipage}% \vspace*{30mm} \addreferencesmanual {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024. } \stopreferencesmanual \end{frame} \begin{frame} \frametitle{The Detector Error Matrix} \vspace*{-17mm} \begin{itemize} \item Visualization of general process % \red{Deal with 3-qubit state (somehow represent arbitrary % qubit state)} \end{itemize} \vspace*{2mm} \begin{figure}[H] \centering \tikzset{ gate/.style={ draw, %line width=1pt, minimum height=2cm, } } % tex-fmt: off \begin{quantikz}[row sep=2mm, column sep=4mm, wire types={q,q,q,n,n,n}] & \gate[3]{\text{SE}_1} & & \gate[3]{\text{SE}_2} & & \gate[3]{\text{SE}_3} & & \gate[3]{\text{SE}_4} & \\ \lstick{$\ket{\psi}$} & & & & & & & & & \setwiretype{n} & \ldots \\ & \wire[d][3]{c} & & \wire[d][1]{c} & & \wire[d][1]{c} & & \wire[d][1]{c} & \\ & \ctrl[wire=c]{0}\wire[r][1]{c} & \wire[d][1]{c} & \ctrl[vertical wire=c]{1}\wire[r][1]{c} & \wire[d][1]{c} & \ctrl[vertical wire=c]{1}\wire[r][1]{c} & \wire[d][1]{c} & \ctrl[vertical wire=c]{1}\wire[r][1]{c} & \\ & & \wire[r][1]{c} & \targ{}\wire[d][1]{c} & \wire[r][1]{c} & \targ{}\wire[d][1]{c} & \wire[r][1]{c} & \targ{}\wire[d][1]{c} & \\ & \gate[1]{\bm{D}_1} & & \gate[1]{\bm{D}_2} & & \gate[1]{\bm{D}_3} & & \gate[1]{\bm{D}_4} & \\ \end{quantikz} % tex-fmt: on \end{figure} \begin{itemize} \item E.g., for \ac{bb} codes under circuit-level noise \citereferencemanual{GCR24} \end{itemize} \vspace*{-4mm} \begin{align*} \bm{H} = \begin{pmatrix} \bm{H}_0 & \bm{H}_1 & & & & & \\ & \bm{H}_2 & \bm{H}_0 & \bm{H}_1 & & & \\ & & & \bm{H}_2 & \bm{H}_0 & \bm{H}_1 & \\ & & & & & \bm{H}_2 & \\ & & & & & & & \ddots \end{pmatrix} \end{align*} \vspace*{5mm} \addreferencesmanual {GCR24}{A. Gong et al., ``Toward low-latency iterative decoding of qLDPC codes under circuit-level noise,'' arXiv:2403.18901, 2024. } \stopreferencesmanual \end{frame} \begin{frame} \frametitle{BP Performance: Window Size II} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BP} \item Larger improvement for fewer iterations \end{itemize} \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, % xmode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-3, ymax=1e-1, grid=both, legend pos = north east, xtick={32,512,1024,2048,4096}, % xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Number of BP iterations}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $p = 0.0025$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} \end{frame} \begin{frame} \frametitle{BP Performance: Step Size II} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BP} \item Similar behavior to before \end{itemize} \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, % xmode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-3, ymax=1e-1, grid=both, legend pos = north east, xtick={32,512,1024,2048,4096}, % xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Number of BP iterations}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, forget plot, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=max_iter, y=LER_per_round, ] {res/sim/max_iter/WindowingSyndromeMinSumDecoder/p_0.0025/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item Min-sum decoder \item Parameters \begin{itemize} \item $p = 0.0025$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} \end{frame} \begin{frame} \frametitle{BPGD Performance: Window Size I} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BPGD} \item Larger improvement for lower error rate \end{itemize} \vspace*{5mm} \only<1>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item \Ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = 32$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \only<2>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, gray, opacity=0.35, forget plot] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, gray, opacity=0.35, forget plot] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = 200$ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \only<3>{ \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] % \foreach \W/\col in % {3/kit-red,4/kit-blue,5/kit-orange} { % \edef\temp{\noexpand % \addplot+[mark=o, line width=2pt, % solid, gray, opacity=0.15, forget plot] % table[ % col sep=comma, x=physical_p, % y=LER_per_round, % ] % {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_1/W_\W/LERs.csv}; % } % \temp % } % % \foreach \W/\col in % {3/kit-red,4/kit-blue,5/kit-orange} { % \edef\temp{\noexpand % \addplot+[mark=o, line width=2pt, % densely dashed, gray, opacity=0.15, % forget plot] % table[ % col sep=comma, x=physical_p, % y=LER_per_round, % ] % {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_1/W_\W/LERs.csv}; % } % \temp % } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, gray, opacity=0.35, forget plot] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, gray, opacity=0.35, forget plot] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_True/F_1/W_\W/LERs.csv}; } \temp \addlegendentryexpanded{$W = \W$} } \foreach \W/\col in {3/kit-red,4/kit-blue,5/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_False/F_1/W_\W/LERs.csv}; } \temp } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = n $ \item $F = 1$ \end{itemize} \end{itemize} \end{minipage} } \end{frame} \begin{frame} \frametitle{BPGD Performance: Step Size I} \vspace*{-18mm} \begin{itemize} \item Examine decoding performance for \schlagwort{BPGD} \item Similar behavior to before \end{itemize} \vspace*{5mm} \only<1> { \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = 32$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} } \only<2> { \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, forget plot, solid, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, forget plot, densely dashed, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_32/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = 200$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} } \only<3> { \begin{minipage}{0.66\textwidth} \centering \begin{figure}[H] \centering \begin{tikzpicture} \begin{axis}[ width=16cm, height=12cm, ymode=log, legend style={ cells={anchor=west}, cells={align=left}, }, enlargelimits=false, ymin=1e-5, ymax=2e-1, grid=both, legend pos = south east, xtick={0.001,0.0015,...,0.004}, xticklabel style={/pgf/number format/fixed}, xticklabel style={/pgf/number format/precision=4}, scaled x ticks=false, xlabel={Physical error rate}, ylabel={Per-round-LER}, extra description/.code={ \node[rotate=90, anchor=south] at ([xshift=15mm]current axis.east) {Warm s. (---), Cold s. (- - -)}; }, ] \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, forget plot, solid, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, forget plot, densely dashed, gray, opacity=0.35] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_200/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, solid, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_True/F_\F/W_5/LERs.csv}; } \temp \addlegendentryexpanded{$F = \F$} } \foreach \F/\col in {3/kit-red,2/kit-blue,1/kit-orange} { \edef\temp{\noexpand \addplot+[mark=o, line width=2pt, densely dashed, \col] table[ col sep=comma, x=physical_p, y=LER_per_round, ] {res/sim/WF/WindowingSyndromeSpaGdDecoder/max_iter_5000/pass_soft_info_False/F_\F/W_5/LERs.csv}; } \temp } \end{axis} \end{tikzpicture} \end{figure} \end{minipage}% \begin{minipage}{0.33\textwidth} \centering \begin{itemize} \item $\llbracket 144,12,12\rrbracket$ \ac{bb} code, \\ $12$ \ac{se} rounds \item \ac{spa} + \ac{gd} decoder \item Parameters \begin{itemize} \item $T = 1$ \item $n_\text{iterations} = 5000$ \item $W = 5$ \end{itemize} \end{itemize} \end{minipage} } \end{frame} \backupend \end{document}