diff --git a/src/thesis/chapters/3_fault_tolerant_qec.tex b/src/thesis/chapters/3_fault_tolerant_qec.tex index 06623bf..b080f6b 100644 --- a/src/thesis/chapters/3_fault_tolerant_qec.tex +++ b/src/thesis/chapters/3_fault_tolerant_qec.tex @@ -12,7 +12,7 @@ \subsection{Practical Methodology} \subsection{Stim} -\begin{figure}[H] +\begin{figure}[t] \centering \newcommand{\xerr}{\gate[style={fill=KITblue!50}]{\phantom{1}}} @@ -103,7 +103,7 @@ \label{fig:Types of noise models.} \end{figure} -\begin{figure}[H] +\begin{figure}[t] \centering \begin{tikzpicture} @@ -129,3 +129,207 @@ \caption{Sources of error in a fault-tolerant \ac{qec} system.} \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=orange!20}]{\scriptstyle #1} + } + + \vspace*{10mm} + + \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 two-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*{10mm} + + \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=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 + + \hspace*{-7mm} + % tex-fmt: off + \begin{quantikz}[row sep=4mm, column sep=4mm, 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 two-qubit + repetition code under phenomenological noise. + } +\end{figure} + diff --git a/src/thesis/main.tex b/src/thesis/main.tex index a6c3316..b8a2ffb 100644 --- a/src/thesis/main.tex +++ b/src/thesis/main.tex @@ -25,6 +25,8 @@ \usepackage{stmaryrd} \usepackage{algorithm} \usepackage[noEnd=false]{algpseudocodex} +\usepackage{nicematrix} +\usepackage{colortbl} \usetikzlibrary{calc, positioning, arrows, fit} \usetikzlibrary{external}