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} \usetikzlibrary{spy, external, intersections, positioning}
% \ifdefined\ishandout\else % \ifdefined\ishandout\else
\tikzexternalize % \tikzexternalize
% \fi % \fi
\usepackage{pgfplots} \usepackage{pgfplots}
@ -40,14 +40,15 @@
\usepackage{subcaption} \usepackage{subcaption}
\usepackage{bbm} \usepackage{bbm}
\usepackage{multirow} \usepackage{multirow}
\usepackage{xcolor} \usepackage[table]{xcolor}
\usepackage{amsmath} \usepackage{amsmath}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{calc} \usepackage{calc}
\usepackage{amssymb} \usepackage{amssymb}
\usepackage{acro} \usepackage{acro}
\usepackage{braket} \usepackage{braket}
\usepackage{qcircuit} % \usepackage{qcircuit}
\usepackage{quantikz}
\title{Fault Tolerant Quantum Error Correction} \title{Fault Tolerant Quantum Error Correction}
\subtitle{Master's Thesis Midterm Presentation} \subtitle{Master's Thesis Midterm Presentation}
@ -271,6 +272,7 @@
\caption{Phase flip (Z) error} \caption{Phase flip (Z) error}
\end{subfigure} \end{subfigure}
\end{figure} \end{figure}
\item \red{Introduce Y errors}
\item Measuring the qubits directly destroys superpositions \item Measuring the qubits directly destroys superpositions
and entanglement \\ and entanglement \\
$\rightarrow$ We generally only work with the syndrome, $\rightarrow$ We generally only work with the syndrome,
@ -321,14 +323,9 @@
$\mathcal{C}_2 \left[ n, k_2 \right]$ with $\mathcal{C}_2 \left[ n, k_2 \right]$ with
$\mathcal{C}_2 \subset \mathcal{C}_1$ $\mathcal{C}_2 \subset \mathcal{C}_1$
\end{itemize} \end{itemize}
\vspace*{10mm}
\item \red{Do I need to go more in depth for either
stabilizer codes or CSS codes?}
\end{itemize} \end{itemize}
\vspace*{10mm} \vspace*{20mm}
\addreferences \addreferences
{nielsen_quantum_2010} {nielsen_quantum_2010}
@ -371,22 +368,22 @@
\vspace*{5mm} \vspace*{5mm}
\begin{figure}[H] \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 \centering
\mbox{
% tex-fmt: off % tex-fmt: off
\Qcircuit @C=1em @R=.7em { \begin{quantikz}%[row sep=4mm, column sep=4mm]
& & \ctrl{3} & \qw & \qw & \qw & \qw & \qw \\ & \ctrl{3} & & & & & \\
\ket{\psi} & & \qw & \ctrl{2} & \ctrl{3} & \qw & \qw & \qw \\ \lstick{$\ket{\psi}$} & & \ctrl{2} & \ctrl{3} & & & \\
& & \qw & \qw & \qw & \ctrl{2} & \qw & \qw \\ & & & & \ctrl{2} & & \\
\ket{0}_{\text{A}_1} & & \targ & \targ & \qw & \qw & \meter & \\ \lstick{$\ket{0}_{\text{A}_1}$} & \targ{} & \targ{} & & & \meter{} \\
\ket{0}_{\text{A}_2} & & \qw & \qw & \targ & \targ & \meter & \lstick{$\ket{0}_{\text{A}_2}$} & & & \targ{} & \targ{} & \meter{}
} \end{quantikz}
% tex-fmt: on % tex-fmt: on
} % \caption{Circuit-level noise model for the 3-qubit repetition code}
\vspace*{5mm}
\caption{Syndrome extraction circuit for the 3-qubit repetition code}
\end{figure} \end{figure}
% \vspace*{5mm} % \vspace*{5mm}
@ -405,18 +402,19 @@
\subsection{Fault Tolerance} \subsection{Fault Tolerance}
\label{subsec:Fault Tolerance} \label{subsec:Fault Tolerance}
% TODO: Fix journal for {shor_fault-tolerant_1997} not showing
\begin{frame} \begin{frame}
\frametitle{Fault Tolerance} \frametitle{Fault Tolerance}
\vspace*{-18mm} \vspace*{-20mm}
\begin{itemize} \begin{itemize}
\item The quantum gates we use for syndrome extraction are \item The quantum gates we use for syndrome extraction are
faulty themselves \\ faulty themselves \\
$\rightarrow$ We need \emph{fault-tolerant} \ac{qec} $\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 \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 \item We have to modify the syndrome extraction circuitry to
be fault tolerant (e.g., by using specially prepared be fault tolerant (e.g., by using specially prepared
multi-qubit states for each ancilla multi-qubit states for each ancilla
@ -424,31 +422,24 @@
\item We generally perform multiple rounds of syndrome extraction \item We generally perform multiple rounds of syndrome extraction
\end{itemize} \end{itemize}
\vspace*{-3mm} \vspace*{1mm}
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\scalebox{0.6}{
\mbox{
% tex-fmt: off % tex-fmt: off
\Qcircuit @C=1em @R=.7em { \begin{quantikz}[row sep=2mm, column sep=4mm, wire types={q,q,q,q,q,n,n}]
& & \ctrl{3} & \qw & \qw & \qw & \qw & \qw & \ctrl{5} & \qw & \qw & \qw & \qw & \qw \\ & \ctrl{3} & & & & & & \ctrl{5} & & & & \\
\ket{\psi} & & \qw & \ctrl{2} & \ctrl{3} & \qw & \qw & \qw & \qw & \ctrl{4} & \ctrl{5} & \qw & \qw & \qw \\ \lstick{$\ket{\psi}$} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & \setwiretype{n}\ldots \\
& & \qw & \qw & \qw & \ctrl{2} & \qw & \qw & \qw & \qw & \qw & \ctrl{4} & \qw & \qw \\ & & & & \ctrl{2} & & & & & & \ctrl{4} & \\
\ket{0}_{\text{A}_1} & & \targ & \targ & \qw & \qw & \meter & & & & & & & \\ \lstick{$\ket{0}_{\text{A}_1}$} & \targ{} & \targ{} & & & & & & & & & \meter{} \\
\ket{0}_{\text{A}_2} & & \qw & \qw & \targ & \targ & \meter & & & & & & & \\ \lstick{$\ket{0}_{\text{A}_2}$} & & & \targ{} & \targ{} & & & & & & & \meter{} \\
& & & & & & \ket{0}_{\text{A}_3} & & \targ & \targ & \qw & \qw & \meter & \\ & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & \meter{} \\
& & & & & & \ket{0}_{\text{A}_4} & & \qw & \qw & \targ & \targ & \meter & & \cdots & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{}
} \end{quantikz}
% tex-fmt: on % tex-fmt: on
}
}
\caption{Multiple rounds of syndrome measurements for the
3-qubit repetition code}
\end{figure} \end{figure}
% \vspace*{-2mm} \vspace*{1mm}
\addreferences \addreferences
{roffe_quantum_2019} {roffe_quantum_2019}
@ -456,35 +447,411 @@
\stopreferences \stopreferences
\end{frame} \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} \subsection{Detector Error Models}
\label{subsec:Detector Error Models} \label{subsec:Detector Error Models}
\begin{frame} \begin{frame}[fragile]
\frametitle{Detector Error Models} \frametitle{The Detector Error Model}
\vspace*{-10mm}
\begin{itemize} \begin{itemize}
\item Idea: Go "one layer of abstraction higher" \\ \item \red{Introduce the concept of a detector (it may be
$\rightarrow$ Redefine syndrome and create new PC matrix from that 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} \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} \end{frame}
\begin{frame} \begin{frame}
@ -562,13 +929,20 @@
\begin{itemize} \begin{itemize}
\item Top level overview of entire system: X and Z syndrome \item Top level overview of entire system: X and Z syndrome
extraction, logical operator measurement, where decoding 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} \end{itemize}
\vspace*{15mm} \vspace*{15mm}
\addreferences \addreferences
{derks_designing_2025} {derks_designing_2025}
{fowler_high-threshold_2009}
\stopreferences \stopreferences
\end{frame} \end{frame}
@ -667,7 +1041,8 @@
\scalebox{0.7}{ \scalebox{0.7}{
\begin{tikzpicture}[node distance=15mm and 20mm] \begin{tikzpicture}[node distance=15mm and 20mm]
\node[block] (encoding) {Encoding}; \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) \node[block, below=of channel] (reverse-op)
{Reverse Operation}; {Reverse Operation};