From d95b5aca1107865c7959bce233f2b0331c691194 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Sat, 31 Jan 2026 23:21:26 +0100 Subject: [PATCH] Add first version of DEM explanation slides --- src/midterm_presentation/main.tex | 517 ++++++++++++++++++++++++++---- 1 file changed, 446 insertions(+), 71 deletions(-) diff --git a/src/midterm_presentation/main.tex b/src/midterm_presentation/main.tex index 264bced..a2e5bde 100644 --- a/src/midterm_presentation/main.tex +++ b/src/midterm_presentation/main.tex @@ -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};