Add first version of DEM explanation slides

This commit is contained in:
Andreas Tsouchlos 2026-01-31 23:21:26 +01:00
parent 90f421fbfe
commit d95b5aca11

View File

@ -27,7 +27,7 @@
\usetikzlibrary{spy, external, intersections, positioning}
% \ifdefined\ishandout\else
\tikzexternalize
% \tikzexternalize
% \fi
\usepackage{pgfplots}
@ -40,14 +40,15 @@
\usepackage{subcaption}
\usepackage{bbm}
\usepackage{multirow}
\usepackage{xcolor}
\usepackage[table]{xcolor}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{amssymb}
\usepackage{acro}
\usepackage{braket}
\usepackage{qcircuit}
% \usepackage{qcircuit}
\usepackage{quantikz}
\title{Fault Tolerant Quantum Error Correction}
\subtitle{Master's Thesis Midterm Presentation}
@ -271,6 +272,7 @@
\caption{Phase flip (Z) error}
\end{subfigure}
\end{figure}
\item \red{Introduce Y errors}
\item Measuring the qubits directly destroys superpositions
and entanglement \\
$\rightarrow$ We generally only work with the syndrome,
@ -321,14 +323,9 @@
$\mathcal{C}_2 \left[ n, k_2 \right]$ with
$\mathcal{C}_2 \subset \mathcal{C}_1$
\end{itemize}
\vspace*{10mm}
\item \red{Do I need to go more in depth for either
stabilizer codes or CSS codes?}
\end{itemize}
\vspace*{10mm}
\vspace*{20mm}
\addreferences
{nielsen_quantum_2010}
@ -371,22 +368,22 @@
\vspace*{5mm}
\begin{figure}[H]
% \newcommand{\anyerrgate}{\gate[style={fill=red!20}]{\mathcal{E}_\text{XYZ}}}
\newcommand{\preperr}{\gate[style={fill=orange!20}]{\phantom{1}}}
\newcommand{\gateerr}{\gate[style={fill=red!20}]{\phantom{1}}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\centering
\mbox{
% tex-fmt: off
\Qcircuit @C=1em @R=.7em {
& & \ctrl{3} & \qw & \qw & \qw & \qw & \qw \\
\ket{\psi} & & \qw & \ctrl{2} & \ctrl{3} & \qw & \qw & \qw \\
& & \qw & \qw & \qw & \ctrl{2} & \qw & \qw \\
\ket{0}_{\text{A}_1} & & \targ & \targ & \qw & \qw & \meter & \\
\ket{0}_{\text{A}_2} & & \qw & \qw & \targ & \targ & \meter &
}
% tex-fmt: on
}
\vspace*{5mm}
\caption{Syndrome extraction circuit for the 3-qubit repetition code}
% 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{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & \targ{} & \targ{} & \meter{}
\end{quantikz}
% tex-fmt: on
% \caption{Circuit-level noise model for the 3-qubit repetition code}
\end{figure}
% \vspace*{5mm}
@ -405,18 +402,19 @@
\subsection{Fault Tolerance}
\label{subsec:Fault Tolerance}
% TODO: Fix journal for {shor_fault-tolerant_1997} not showing
\begin{frame}
\frametitle{Fault Tolerance}
\vspace*{-18mm}
\vspace*{-20mm}
\begin{itemize}
\item The quantum gates we use for syndrome extraction are
faulty themselves \\
$\rightarrow$ We need \emph{fault-tolerant} \ac{qec}
\citereference{roffe_quantum_2019}
\item A \ac{qec} procedure is said to be fault tolerant if it
can account for errors that occur at any location in the circuit
can account for errors that occur at any location in the
circuit \citereference{roffe_quantum_2019}
\item We have to modify the syndrome extraction circuitry to
be fault tolerant (e.g., by using specially prepared
multi-qubit states for each ancilla
@ -424,31 +422,24 @@
\item We generally perform multiple rounds of syndrome extraction
\end{itemize}
\vspace*{-3mm}
\vspace*{1mm}
\begin{figure}[H]
\centering
\scalebox{0.6}{
\mbox{
% tex-fmt: off
\Qcircuit @C=1em @R=.7em {
& & \ctrl{3} & \qw & \qw & \qw & \qw & \qw & \ctrl{5} & \qw & \qw & \qw & \qw & \qw \\
\ket{\psi} & & \qw & \ctrl{2} & \ctrl{3} & \qw & \qw & \qw & \qw & \ctrl{4} & \ctrl{5} & \qw & \qw & \qw \\
& & \qw & \qw & \qw & \ctrl{2} & \qw & \qw & \qw & \qw & \qw & \ctrl{4} & \qw & \qw \\
\ket{0}_{\text{A}_1} & & \targ & \targ & \qw & \qw & \meter & & & & & & & \\
\ket{0}_{\text{A}_2} & & \qw & \qw & \targ & \targ & \meter & & & & & & & \\
& & & & & & \ket{0}_{\text{A}_3} & & \targ & \targ & \qw & \qw & \meter & \\
& & & & & & \ket{0}_{\text{A}_4} & & \qw & \qw & \targ & \targ & \meter & & \cdots
}
% tex-fmt: on
}
}
\caption{Multiple rounds of syndrome measurements for the
3-qubit repetition code}
% tex-fmt: off
\begin{quantikz}[row sep=2mm, column sep=4mm, wire types={q,q,q,q,q,n,n}]
& \ctrl{3} & & & & & & \ctrl{5} & & & & \\
\lstick{$\ket{\psi}$} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & \setwiretype{n}\ldots \\
& & & & \ctrl{2} & & & & & & \ctrl{4} & \\
\lstick{$\ket{0}_{\text{A}_1}$} & \targ{} & \targ{} & & & & & & & & & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & \targ{} & \targ{} & & & & & & & \meter{} \\
& & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & \meter{} \\
& & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{}
\end{quantikz}
% tex-fmt: on
\end{figure}
% \vspace*{-2mm}
\vspace*{1mm}
\addreferences
{roffe_quantum_2019}
@ -456,35 +447,411 @@
\stopreferences
\end{frame}
\begin{frame}
\frametitle{Noise models}
\begin{itemize}
\item The depolarizing channel
\item Phenomenological noise
\item Circuit-level noise (we generally have all error
probabilities equal the same value \\
for simulations \citereference{fowler_high-threshold_2009})
\end{itemize}
\vspace*{15mm}
\addreferences
{fowler_high-threshold_2009}
\stopreferences
\end{frame}
%%%%%%%%%%%%%%%%
\subsection{Detector Error Models}
\label{subsec:Detector Error Models}
\begin{frame}
\frametitle{Detector Error Models}
\begin{frame}[fragile]
\frametitle{The Detector Error Model}
\vspace*{-10mm}
\begin{itemize}
\item Idea: Go "one layer of abstraction higher" \\
$\rightarrow$ Redefine syndrome and create new PC matrix from that
\item \red{Introduce the concept of a detector (it may be
better to do this on the next slide, and in doing so
explain that the syndrome results are XORed together)}
\item Example: 3-qubit repetition code for X errors,
phenomenological noise model, two rounds of syndrome extraction
\end{itemize}
\centering
\only<1>{
\begin{minipage}{0.3\textwidth}
\centering
\begin{align*}
\bm{H} =
\left(
\begin{array}{ccc}
1 & 1 & 0 \\
0 & 1 & 1 \\
1 & 1 & 0 \\
0 & 1 & 1
\end{array}\right)
\end{align*}
\end{minipage}%
\begin{minipage}{0.7\textwidth}
\begin{figure}[H]
\newcommand{\preperr}{\gate[style={fill=orange!20}]{\phantom{1}}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=4mm, wire types={q,q,q,q,q,n,n}]
& \preperr & \ctrl{3} & & & & & & \ctrl{5} & & & & \\
\lstick{$\ket{\psi}$} & \preperr & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & \\
& \preperr & & & & \ctrl{2} & & & & & & \ctrl{4} & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{}
\end{quantikz}
% tex-fmt: on
\end{figure}
\end{minipage}
}
\only<2>{
\begin{minipage}{0.3\textwidth}
\centering
\begin{align*}
\bm{H} =
\left(
\begin{array}{>{\columncolor{red!20}}ccc}
1 & 1 & 0 \\
0 & 1 & 1 \\
1 & 1 & 0 \\
0 & 1 & 1
\end{array}\right)
\end{align*}
\end{minipage}%
\begin{minipage}{0.7\textwidth}
\begin{figure}[H]
\newcommand{\preperr}[1]{\gate[style={fill=orange!20}]{##1}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\newcommand{\noise}{
\gate[style={noisy}]{\text{\small X}}\setwiretype{n}
}
\newcommand{\redwire}[1]{
\wire[r][##1][style={draw=red, line width=2pt}]{q}
}
\newcommand{\redtarg}{\targ[style={draw=red}]{}\setwiretype{n}}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
}
\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}]
& \noise\redwire{11}\wire[l][1]{q} & \redctrl{3} & & & & & & \redctrl{5} & & & & \\
\lstick{$\ket{\psi}$} & \preperr{\phantom{1}} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & \\
& \preperr{\phantom{1}} & & & & \ctrl{2} & & & & & & \ctrl{4} & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \redtarg\redwire{10}\wire[l][1]{q} & \targ{} & & & & & & & & & \meter[style={draw=red,fill=red!20}]{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg{}\redwire{4}\wire[l][1]{q} & \targ{} & & & \meter[style={draw=red,fill=red!20}]{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{}
\end{quantikz}
% tex-fmt: on
\end{figure}
\end{minipage}
}
\only<3>{
\begin{minipage}{0.3\textwidth}
\centering
\begin{align*}
\bm{H} =
\left(
\begin{array}{ccc>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c}
1 & 1 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0} \\
0 & 1 & 1 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0} \\
1 & 1 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0} \\
0 & 1 & 1 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}
\end{array}\right)
\end{align*}
\end{minipage}%
\begin{minipage}{0.7\textwidth}
\begin{figure}[H]
\newcommand{\preperr}[1]{\gate[style={fill=orange!20}]{##1}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\newcommand{\noise}{
\gate[style={noisy}]{\text{\small X}}\setwiretype{n}
}
\newcommand{\redwire}[1]{
\wire[r][##1][style={draw=red, line width=2pt}]{q}
}
\newcommand{\redtarg}{\targ[style={draw=red}]{}\setwiretype{n}}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
}
\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}]
& \preperr{\phantom{1}} & \ctrl{3} & & & & \preperr{\phantom{1}} & & \ctrl{5} & & & & & \\
\lstick{$\ket{\psi}$} & \preperr{\phantom{1}} & & \ctrl{2} & \ctrl{3} & & \preperr{\phantom{1}} & & & \ctrl{4} & \ctrl{5} & & & \\
& \preperr{\phantom{1}} & & & & \ctrl{2} & \preperr{\phantom{1}} & & & & & \ctrl{4} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & \preperr{\phantom{1}} & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & \preperr{\phantom{1}} & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & \preperr{\phantom{1}} & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \preperr{\phantom{1}} & \meter{}
\end{quantikz}
% tex-fmt: on
\end{figure}
\end{minipage}
}
\only<4>{
\begin{minipage}{0.3\textwidth}
\centering
\begin{align*}
\bm{H} =
\left(
\begin{array}{ccc>{\columncolor{red!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c}
1 & 1 & 0 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}& \phantom{0} \\
0 & 1 & 1 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}& \phantom{0} \\
1 & 1 & 0 & 1 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}& \phantom{0} \\
0 & 1 & 1 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}& \phantom{0}
\end{array}\right)
\end{align*}
\end{minipage}%
\begin{minipage}{0.7\textwidth}
\begin{figure}[H]
\newcommand{\preperr}[1]{\gate[style={fill=orange!20}]{##1}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\newcommand{\noise}{
\gate[style={noisy}]{\text{\small X}}\setwiretype{n}
}
\newcommand{\redwire}[1]{
\wire[r][##1][style={draw=red, line width=2pt}]{q}
}
\newcommand{\redtarg}{\targ[style={draw=red}]{}\setwiretype{n}}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
}
\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}]
& \preperr{\phantom{1}} & \ctrl{3} & & & & \noise\wire[l][1]{q}\redwire{7} & & \redctrl{5} & & & & & \\
\lstick{$\ket{\psi}$} & \preperr{\phantom{1}} & & \ctrl{2} & \ctrl{3} & & \preperr{\phantom{1}} & & & \ctrl{4} & \ctrl{5} & & & \\
& \preperr{\phantom{1}} & & & & \ctrl{2} & \preperr{\phantom{1}} & & & & & \ctrl{4} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & \preperr{\phantom{1}} & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & \preperr{\phantom{1}} & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\wire[l][1]{q}\redwire{5} & \targ{} & & & \preperr{\phantom{1}} & \meter[style={draw=red,fill=red!20}]{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \preperr{\phantom{1}} & \meter{}
\end{quantikz}
% tex-fmt: on
\end{figure}
\end{minipage}
}
\only<5>{
\begin{minipage}{0.3\textwidth}
\centering
\begin{align*}
\bm{H} =
\left(
\begin{array}{cccc>{\columncolor{red!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c>{\columncolor{gray!20}}c}
1 & 1 & 0 & 0 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0} \\
0 & 1 & 1 & 0 & 0 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0} \\
1 & 1 & 0 & 1 & 1 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0} \\
0 & 1 & 1 & 0 & 1 & \phantom{0}& \phantom{0}&
\phantom{0}& \phantom{0}& \phantom{0}
\end{array}\right)
\end{align*}
\end{minipage}%
\begin{minipage}{0.7\textwidth}
\begin{figure}[H]
\newcommand{\preperr}[1]{\gate[style={fill=orange!20}]{##1}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\newcommand{\noise}{
\gate[style={noisy}]{\text{\small X}}\setwiretype{n}
}
\newcommand{\redwire}[1]{
\wire[r][##1][style={draw=red, line width=2pt}]{q}
}
\newcommand{\redtarg}{\targ[style={draw=red}]{}\setwiretype{n}}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
}
\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}]
& \preperr{\phantom{1}} & \ctrl{3} & & & & \preperr{\phantom{1}} & & \ctrl{5} & & & & & \\
\lstick{$\ket{\psi}$} & \preperr{\phantom{1}} & & \ctrl{2} & \ctrl{3} & & \noise\wire[l][1]{q}\redwire{7} & & & \redctrl{4} & \redctrl{5} & & & \\
& \preperr{\phantom{1}} & & & & \ctrl{2} & \preperr{\phantom{1}} & & & & & \ctrl{4} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & \preperr{\phantom{1}} & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & \preperr{\phantom{1}} & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \redtarg\wire[l][1]{q}\redwire{4} & & & \preperr{\phantom{1}} & \meter[style={draw=red,fill=red!20}]{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \redtarg\wire[l][1]{q}\redwire{3} & \targ{} & \preperr{\phantom{1}} & \meter[style={draw=red,fill=red!20}]{}
\end{quantikz}
% tex-fmt: on
\end{figure}
\end{minipage}
}
\only<6>{
\begin{minipage}{0.3\textwidth}
\centering
\begin{align*}
\bm{H} =
\left(
\begin{array}{cccccccccc}
1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\
1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 \\
0 & 1 & 1 & 0 & 1 & 1 & 0 & 0 & 0 & 1
\end{array}\right)
\end{align*}
\end{minipage}%
\begin{minipage}{0.7\textwidth}
\begin{figure}[H]
\newcommand{\preperr}[1]{\gate[style={fill=orange!20}]{##1}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\newcommand{\noise}{
\gate[style={noisy}]{\text{\small X}}\setwiretype{n}
}
\newcommand{\redwire}[1]{
\wire[r][##1][style={draw=red, line width=2pt}]{q}
}
\newcommand{\redtarg}{\targ[style={draw=red}]{}\setwiretype{n}}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
}
\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}]
& \preperr{\phantom{1}} & \ctrl{3} & & & & \preperr{\phantom{1}} & & \ctrl{5} & & & & & \\
\lstick{$\ket{\psi}$} & \preperr{\phantom{1}} & & \ctrl{2} & \ctrl{3} & & \preperr{\phantom{1}} & & & \ctrl{4} & \ctrl{5} & & & \\
& \preperr{\phantom{1}} & & & & \ctrl{2} & \preperr{\phantom{1}} & & & & & \ctrl{4} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & \preperr{\phantom{1}} & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & \preperr{\phantom{1}} & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & \preperr{\phantom{1}} & \meter{} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \preperr{\phantom{1}} & \meter{}
\end{quantikz}
% tex-fmt: on
\end{figure}
\end{minipage}
}
\end{frame}
\begin{frame}[fragile]
\frametitle{Noise models}
\vspace*{-7mm}
\begin{minipage}{0.60\textwidth}
\begin{itemize}
\item The \emph{depolarizing channel} considers
\citereference{nielsen_quantum_2010}
\begin{itemize}
\item X, Y or Z errors on the data qubits
\end{itemize}
\item \emph{Phenomenological noise} considers
\citereference{derks_designing_2025}
\begin{itemize}
\item X errors on data qubits before each \\
measurement round
\item X errors on measurement outcomes
\end{itemize}
\item \emph{Circuit-level noise} considers
\citereference{derks_designing_2025}
\begin{itemize}
\item \colorbox{orange!20}{X, Y or Z errors after
state preparation}
\item \colorbox{red!20}{$n$-qubit X, Y or Z
errors after any $n$-qubit gate}
\item \colorbox{blue!20}{X errors on measurement outcomes}
\end{itemize}
\end{itemize}
\end{minipage}%
\hfill%
\begin{minipage}{0.39\textwidth}
\begin{figure}[H]
\newcommand{\preperr}{\gate[style={fill=orange!20}]{\phantom{1}}}
\newcommand{\gateerr}{\gate[style={fill=red!20}]{\phantom{1}}}
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
\hspace*{-18mm}
% tex-fmt: off
\begin{quantikz}[row sep=2mm, column sep=2mm]
& \preperr & \ctrl{3} & \gateerr \wire[d][3]{q} & & & & & & & & & \\
\lstick{$\ket{\psi}$} & \preperr & & & \ctrl{2} & \gateerr \wire[d][2]{q} & \ctrl{3} & \gateerr \wire[d][3]{q} & & & & & \\
& \preperr & & & & & & & \ctrl{2} & \gateerr \wire[d][2]{q} & & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & \preperr & \targ{} & \gateerr & \targ{} & \gateerr & & & & & \measerr & \meter{} \\
\lstick{$\ket{0}_{\text{A}_2}$} & \preperr & & & & & \targ{} & \gateerr & \targ{} & \gateerr & \measerr & \meter{}
\end{quantikz}
% tex-fmt: on
\caption{Circuit-level noise model for the 3-qubit
repetition code (for X errors)}
\end{figure}
\end{minipage}
\vspace*{15mm}
\addreferences
{derks_designing_2025}
{nielsen_quantum_2010}
\stopreferences
\end{frame}
\begin{frame}
@ -562,13 +929,20 @@
\begin{itemize}
\item Top level overview of entire system: X and Z syndrome
extraction, logical operator measurement, where decoding
takes place, etc. (fig. 3 of \citereference{derks_designing_2025})
takes place, etc. (fig. 3 of
\citereference{derks_designing_2025})
\item For circuit-level noise, often, all error probabilities
are set to the same value for simulations
\citereference{fowler_high-threshold_2009}. There are
other approaches (e.g., SDMB noise, SI noise)
\citereference{derks_designing_2025}
\end{itemize}
\vspace*{15mm}
\addreferences
{derks_designing_2025}
{fowler_high-threshold_2009}
\stopreferences
\end{frame}
@ -667,7 +1041,8 @@
\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 encoding] (channel)
{Quantum Channel};
\node[block, below=of channel] (reverse-op)
{Reverse Operation};