Files
ma-thesis/src/thesis/chapters/3_fault_tolerant_qec.tex

445 lines
25 KiB
TeX

\chapter{Fault Tolerant QEC}
\section{Fault Tolerance}
\section{Noise Models}
\subsection{Depolarizing Channel}
\subsection{Phenomenological Noise}
\subsection{Circuit-Level Noise}
\section{Detector Error Models}
\subsection{Measurement Syndrome Matrix}
\subsection{Detector Error Matrix}
\subsection{Detector Error Models}
\section{Practical Considerations}
\subsection{Practical Methodology}
\subsection{Stim}
\begin{figure}[t]
\centering
\newcommand{\xerr}{\gate[style={fill=KITblue!50}]{\phantom{1}}}
\newcommand{\xyzerr}{\gate[style={
draw=black,
fill=KITred,
path picture={
% tex-fmt: off
\fill[KITblue!60]
($(path picture bounding box.south west)+(0,0)$)
-- ($(path picture bounding box.north west)+(0,0)$)
-- ($(path picture bounding box.north west)+(0.28,0)$)
-- cycle;
\fill[KITorange!60]
($(path picture bounding box.north east)+(0,0)$)
-- ($(path picture bounding box.south east)+(0,0)$)
-- ($(path picture bounding box.south east)+(-0.28,0)$)
-- cycle;
\fill[KITred!60]
($(path picture bounding box.north east)+(0,0)$)
-- ($(path picture bounding box.south east)+(-0.28,0)$)
-- ($(path picture bounding box.south west)+(0,0)$)
-- ($(path picture bounding box.north west)+(0.28,0)$)
-- cycle;
% tex-fmt: on
}
}]{\phantom{1}}}
\begin{subfigure}{0.48\textwidth}
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=4mm]
\lstick[3]{$\ket{\psi}$} & \xyzerr & \ctrl{3} & & & & & \\
& \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
\caption{Depolarizing channel.}
\end{subfigure}%
\begin{subfigure}{0.48\textwidth}
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=4mm]
\lstick[3]{$\ket{\psi}$} & \xerr & \ctrl{3} & & & & & & \\
& \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
\caption{Phenomenological noise.}
\end{subfigure}
\vspace*{3mm}
\centering
\begin{subfigure}[c]{0.75\textwidth}
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=2mm]
\lstick[3]{$\ket{\psi}$} & \xyzerr & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & & & & & \\
& \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
\caption{Circuit-level noise.}
\end{subfigure}%
\hfill%
\begin{subfigure}[c]{0.25\textwidth}
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=2mm]
\setwiretype{n} & \xerr & \gate[style={right, draw=none, xshift=-15mm}]{\text{X error}} \\
\setwiretype{n} & \xyzerr & \gate[style={right, draw=none, xshift=-15mm}]{\text{X,Z, or Y error}} \\
\setwiretype{n} & \gate{\phantom{1}}\wire[d][1]{q} & \gate[style={right, draw=none, xshift=-15mm},2]{\text{Correlated error}} \\
\setwiretype{n} & \gate{\phantom{1}} &
\end{quantikz}
% tex-fmt: on
\end{subfigure}
\caption{Types of noise models.}
\label{fig:Types of noise models.}
\end{figure}
\begin{figure}[t]
\centering
\begin{tikzpicture}
\node[rectangle, draw, fill=orange!20, minimum
height=2cm, minimum width=2.5cm, align=left] at (0,0)
(internal) {Internal\\ Errors};
\node[signal, draw, fill=orange!20, minimum height=2cm,
minimum width=2.5cm, align=left, signal pointer angle=140]
at (-2.45, 0) (input) {Input\\ Errors};
\node at (1.97,0) {\huge =};
\node[rectangle, draw, fill=orange!20, minimum height=2cm,
minimum width=2.5cm, align=left] at (4,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}
\caption{Sources of error in a fault-tolerant \ac{qec} system.}
\end{figure}
\begin{figure}[t]
\centering
\begin{minipage}{0.5\textwidth}
\begin{align*}
\bm{H} =
\begin{pmatrix}
1 & 1 & 0 \\
0 & 1 & 1
\end{pmatrix}
\end{align*}
\end{minipage}%
\begin{minipage}{0.5\textwidth}
% tex-fmt: off
\begin{quantikz}%[row sep=4mm, column sep=4mm]
\lstick[3]{$\ket{\psi}$} & \ctrl{3} & & & & & \\
& & \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}%
\caption{
Syndrome extraction circuit for the three-qubit repetition
code under bit-flip noise.
}
\label{fig:}
\end{figure}
\begin{figure}[t]
\centering
\begin{minipage}{0.3\textwidth}
\centering
\begin{tikzpicture}
\node{$%
\bm{\Omega} =
\begin{pmatrix}
1 & 1 & 0 \\
0 & 1 & 1 \\
1 & 1 & 0 \\
0 & 1 & 1 \\
1 & 1 & 0 \\
0 & 1 & 1
\end{pmatrix}%
$
};
\draw [
line width=1pt,
decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm}
]
(1,0.55) -- (1,1.4)
node[midway,right,xshift=10mm]{$\text{SE}_1$};
\draw [
line width=1pt,
decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm}
]
(1,-0.4) -- (1,0.45)
node[midway,right,xshift=10mm]{$\text{SE}_2\hspace{2mm},$};
\draw [
line width=1pt,
decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm}
]
(1,-1.38) -- (1,-0.5)
node[midway,right,xshift=10mm]{$\text{SE}_3$};
\end{tikzpicture}
\end{minipage}%
\begin{minipage}{0.3\textwidth}
\centering
\vspace*{-6mm}
\begin{gather*}
\bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\}
\end{gather*}
\end{minipage}
\newcommand{\preperr}[1]{
\gate[style={fill=blue!20}]{\scriptstyle #1}
}
\vspace*{5mm}
\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
\lstick[3]{$\ket{\psi}$} & \preperr{E_0} & \ctrl{3} & & & & & & \ctrl{5} & & & & & & \ctrl{7} & & & & & \\
& \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}
\caption{
Repeated syndrome extraction circuit for the three-qubit
repetition code under bit flip noise.
}
\end{figure}
\begin{figure}[t]
\begin{gather*}
\hspace*{-33.3mm}%
\begin{array}{c}
E_6 \\
\downarrow
\end{array}
\end{gather*}
\vspace*{-8mm}
\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),
\hspace*{7mm}
\bm{s} \in \text{span} \mleft\{
\bm{\Omega} \mright\}
\end{gather*}
\vspace*{5mm}
\newcommand{\preperr}[1]{
\gate[style={fill=blue!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=1.5pt}]{q}
}
\newcommand{\redtarg}{
\targ[style={draw=red}]{}%
\setwiretype{n}%
\wire[l][1]{q}
}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=1.5pt}]{#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=1.5pt,
inner xsep=-2pt, inner ysep=-2pt
},
}
\centering
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=3mm, wire types={q,q,q,q,q,n,n,n,n}]
\lstick[3]{$\ket{\psi}$} & \preperr{E_0} & \ctrl{3} & & & & \preperr{E_5} & & \ctrl{5} & & & & \preperr{E_{10}} & & \ctrl{7} & & & & & & \\
& \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=1.5pt}]{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=1.5pt}]{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=1.5pt}]{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=1.5pt}]{q} & \setwiretype{n}
\end{quantikz}
% tex-fmt: on
\caption{
Repeated syndrome extraction circuit for the three-qubit
repetition code under phenomenological noise.
}
\end{figure}
\begin{figure}[t]
\centering
\hspace*{-5mm}
\begin{minipage}{0.42\textwidth}
\newcommand{\redwire}[1]{
\wire[r][#1][style={draw=red, line width=1.5pt, double}]{q}
}
\newcommand{\inwire}{
\wire[l][1][style={draw=red, line width=1.5pt}]{q}
}
\newcommand{\redtarg}{
\targ[style={draw=red,line width=1.5pt}]{}%
\setwiretype{n}%
}
\newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red, line width=1.5pt}]{0}%
\wire[d][#1][style={draw=red, line width=1.5pt, double}]{q}
}
\newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}
\newcommand{\redgate}[1]{\gate[style={draw=red,fill=red!20}]{\textcolor{red}{#1}}}
% tex-fmt: off
\begin{quantikz}[row sep=4mm, column sep=3mm, 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{minipage}%
\begin{minipage}{0.56\textwidth}
\newcommand\cc{\cellcolor{orange!20}}
\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}
\caption{Construction of detectors from the measurements of a
three-qubit repetition code.}
\label{fig:Construction of the detectors from the measurements}
\end{figure}
\begin{figure}[t]
\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
\caption{Construction of detectors from measurements in the general case.}
\end{figure}