Files
ma-thesis/src/final_presentation/main.tex

5004 lines
208 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
\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 02)
\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 02)
\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 02)
\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 02)
\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 02)
\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 02)
\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}