From 4da37dbddccf97dd9747effe1cefe07a06776a76 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Sat, 25 Apr 2026 17:28:17 +0200 Subject: [PATCH] Add three-qubit rep. code syndrome extraction circuit under bit-flip noise --- src/thesis/chapters/3_fault_tolerant_qec.tex | 120 +++++++++++++------ 1 file changed, 86 insertions(+), 34 deletions(-) diff --git a/src/thesis/chapters/3_fault_tolerant_qec.tex b/src/thesis/chapters/3_fault_tolerant_qec.tex index d76fd08..8a77b35 100644 --- a/src/thesis/chapters/3_fault_tolerant_qec.tex +++ b/src/thesis/chapters/3_fault_tolerant_qec.tex @@ -129,6 +129,37 @@ \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 @@ -182,10 +213,10 @@ \end{minipage} \newcommand{\preperr}[1]{ - \gate[style={fill=orange!20}]{\scriptstyle #1} + \gate[style={fill=blue!20}]{\scriptstyle #1} } - \vspace*{10mm} + \vspace*{5mm} \begin{quantikz}[ row sep=4mm, column sep=4mm, @@ -234,7 +265,7 @@ \end{quantikz} \caption{ - Repeated syndrome extraction circuit for the two-qubit + Repeated syndrome extraction circuit for the three-qubit repetition code under bit flip noise. } \end{figure} @@ -275,10 +306,10 @@ \bm{\Omega} \mright\} \end{gather*} - \vspace*{10mm} + \vspace*{5mm} \newcommand{\preperr}[1]{ - \gate[style={fill=orange!20}]{\scriptstyle #1} + \gate[style={fill=blue!20}]{\scriptstyle #1} } \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}} @@ -312,21 +343,19 @@ \centering - \scalebox{0.9}{ - % 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 - } + % 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 two-qubit @@ -356,21 +385,19 @@ \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} \newcommand{\redgate}[1]{\gate[style={draw=red,fill=red!20}]{\textcolor{red}{#1}}} - \scalebox{0.9}{ - % tex-fmt: off - \begin{quantikz}[row sep=4mm, column sep=4mm, 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 - } + % 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{blue!20}} + \newcommand\cc{\cellcolor{orange!20}} \begin{align*} \bm{H} = @@ -387,10 +414,35 @@ \end{align*} \end{minipage} - \caption{Construction of the detectors from the measurements.} + \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} + \begin{figure}[t] \centering