|
|
|
|
@@ -277,7 +277,47 @@ error locations.
|
|
|
|
|
\label{fig:pure_syndrome_extraction}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
\begin{figure}[t]
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
\section{Detector Error Models}
|
|
|
|
|
\label{sec:Detector Error Models}
|
|
|
|
|
|
|
|
|
|
\emph{Detector error models} (\acsp{dem}) constitue a standardized framework for
|
|
|
|
|
passing information about a circuit used for \ac{qec} to a decoder.
|
|
|
|
|
They are also useful as a theoretical tool to aid in the design of
|
|
|
|
|
fault-tolerant \ac{qec} schemes.
|
|
|
|
|
E.g., they can be used to easily determine whether a measurement
|
|
|
|
|
schedule is fault-tolerant \cite[Example~12]{derks_designing_2025}.
|
|
|
|
|
|
|
|
|
|
Other approaches of implementing fault tolerance exist, such as
|
|
|
|
|
flag error correction, which uses additional ancilla qubits to detect
|
|
|
|
|
potentially damaging high-weight errors \cite[Sec.~1]{chamberland_flag_2018}.
|
|
|
|
|
However, \acp{dem} offer some unique advantages
|
|
|
|
|
\cite[Sec.~4.2]{derks_designing_2025}:
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item They distinguish between errors based on their effect on
|
|
|
|
|
the measurements, not based on their location in the circuit.
|
|
|
|
|
This allows for merging equivalent errors, which decreases
|
|
|
|
|
decoding complexity.
|
|
|
|
|
\item Errors on the data qubits and on the measurements are
|
|
|
|
|
treated in a unified manner. This leads to a more powerful
|
|
|
|
|
description of the overall circuit.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
In this work, we only consider the process of decoding under the
|
|
|
|
|
\ac{dem} framework.
|
|
|
|
|
|
|
|
|
|
% Core idea
|
|
|
|
|
|
|
|
|
|
To achieve fault tolerance, the goal we strive towards is to
|
|
|
|
|
consider the internal errors in addition to the input errors during
|
|
|
|
|
the decoding process.
|
|
|
|
|
The core idea behind detector error models is to do this by defining
|
|
|
|
|
a new \emph{circuit code} that describes the circuit.
|
|
|
|
|
Each \ac{vn} of this new code corresponds to an error location in the
|
|
|
|
|
circuit and each \ac{cn} corresponds to a to a syndrome measurement.
|
|
|
|
|
% This circuit code, combined with the prior probabilities of error
|
|
|
|
|
% given by the noise model, incorporates all information necessary for decoding.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[H]
|
|
|
|
|
\centering
|
|
|
|
|
|
|
|
|
|
\newcommand{\xerr}{\gate[style={fill=KITblue!50}]{\phantom{1}}}
|
|
|
|
|
@@ -323,7 +363,7 @@ error locations.
|
|
|
|
|
\label{subfig:bit_flip}
|
|
|
|
|
\end{minipage}
|
|
|
|
|
|
|
|
|
|
\vspace*{5mm}
|
|
|
|
|
\vspace*{7mm}
|
|
|
|
|
|
|
|
|
|
\begin{minipage}{\textwidth}
|
|
|
|
|
\centering
|
|
|
|
|
@@ -341,7 +381,7 @@ error locations.
|
|
|
|
|
\label{subfig:depolarizing}
|
|
|
|
|
\end{minipage}
|
|
|
|
|
|
|
|
|
|
\vspace*{5mm}
|
|
|
|
|
\vspace*{7mm}
|
|
|
|
|
|
|
|
|
|
\begin{minipage}{\textwidth}
|
|
|
|
|
\centering
|
|
|
|
|
@@ -359,7 +399,7 @@ error locations.
|
|
|
|
|
\label{subfig:phenomenological}
|
|
|
|
|
\end{minipage}
|
|
|
|
|
|
|
|
|
|
\vspace*{5mm}
|
|
|
|
|
\vspace*{7mm}
|
|
|
|
|
|
|
|
|
|
\begin{minipage}{\textwidth}
|
|
|
|
|
\centering
|
|
|
|
|
@@ -390,50 +430,12 @@ error locations.
|
|
|
|
|
% tex-fmt: on
|
|
|
|
|
\end{minipage}
|
|
|
|
|
|
|
|
|
|
\vspace*{5mm}
|
|
|
|
|
|
|
|
|
|
\caption{Types of noise models.}
|
|
|
|
|
\label{fig:noise_model_types}
|
|
|
|
|
\end{figure}
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
\section{Detector Error Models}
|
|
|
|
|
\label{sec:Detector Error Models}
|
|
|
|
|
|
|
|
|
|
\emph{Detector error models} (\acsp{dem}) constitue a standardized framework for
|
|
|
|
|
passing information about a circuit used for \ac{qec} to a decoder.
|
|
|
|
|
They are also useful as a theoretical tool to aid in the design of
|
|
|
|
|
fault-tolerant \ac{qec} schemes.
|
|
|
|
|
E.g., they can be used to easily determine whether a measurement
|
|
|
|
|
schedule is fault-tolerant \cite[Example~12]{derks_designing_2025}.
|
|
|
|
|
|
|
|
|
|
Other approaches of implementing fault tolerance exist, such as
|
|
|
|
|
flag error correction, which uses additional ancilla qubits to detect
|
|
|
|
|
potentially damaging high-weight errors \cite[Sec.~1]{chamberland_flag_2018}.
|
|
|
|
|
However, \acp{dem} offer some unique advantages
|
|
|
|
|
\cite[Sec.~4.2]{derks_designing_2025}:
|
|
|
|
|
\begin{itemize}
|
|
|
|
|
\item They distinguish between errors based on their effect on
|
|
|
|
|
the measurements, not based on their location in the circuit.
|
|
|
|
|
This allows for merging equivalent errors, which decreases
|
|
|
|
|
decoding complexity.
|
|
|
|
|
\item Errors on the data qubits and on the measurements are
|
|
|
|
|
treated in a unified manner. This leads to a more powerful
|
|
|
|
|
description of the overall circuit.
|
|
|
|
|
\end{itemize}
|
|
|
|
|
In this work, we only consider the process of decoding under the
|
|
|
|
|
\ac{dem} framework.
|
|
|
|
|
|
|
|
|
|
% Core idea
|
|
|
|
|
|
|
|
|
|
To achieve fault tolerance, the goal we strive towards is to
|
|
|
|
|
consider the internal errors in addition to the input errors during
|
|
|
|
|
the decoding process.
|
|
|
|
|
The core idea behind detector error models is to do this by defining
|
|
|
|
|
a new \emph{circuit code} that describes the circuit.
|
|
|
|
|
Each \ac{vn} of this new code corresponds to an error location in the
|
|
|
|
|
circuit and each corresponds to a \ac{cn} to a syndrome measurement.
|
|
|
|
|
This circuit code, combined with the prior probabilities of error
|
|
|
|
|
given by the noise model, incorporates all information necessary for decoding.
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%
|
|
|
|
|
\subsection{Measurement Syndrome Matrix}
|
|
|
|
|
\label{subsec:Measurement Syndrome Matrix}
|
|
|
|
|
@@ -471,7 +473,19 @@ syndrome measurements.
|
|
|
|
|
We combine these measurements by stacking them in a new vector $\bm{s}
|
|
|
|
|
\in \mathbb{F}_2^{n_\text{rounds}\cdot(n-k)}$.
|
|
|
|
|
To accomodate the additional syndrome bits, we extend the
|
|
|
|
|
matrix $\bm{\Omega}$ representing the circuit by replicating the rows as well.
|
|
|
|
|
matrix $\bm{\Omega}$ representing the circuit by replicating the rows as well:
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\bm{\Omega} =
|
|
|
|
|
\begin{pmatrix}
|
|
|
|
|
1 & 1 & 0 \\
|
|
|
|
|
0 & 1 & 1 \\
|
|
|
|
|
1 & 1 & 0 \\
|
|
|
|
|
0 & 1 & 1 \\
|
|
|
|
|
1 & 1 & 0 \\
|
|
|
|
|
0 & 1 & 1 \\
|
|
|
|
|
\end{pmatrix}
|
|
|
|
|
.%
|
|
|
|
|
\end{align*}
|
|
|
|
|
Recall that $\bm{\Omega}$ describes which \ac{vn} is connected to
|
|
|
|
|
which parity check and the syndrome indicates which parity checks
|
|
|
|
|
are violated.
|
|
|
|
|
@@ -486,11 +500,38 @@ We introduce new error locations at the respective positions,
|
|
|
|
|
arriving at the circuit depicted in
|
|
|
|
|
\autoref{fig:rep_code_multiple_rounds_phenomenological}.
|
|
|
|
|
For each additional error location, we extend $\bm{\Omega}$ by
|
|
|
|
|
appending the corresponding syndrome vector as a column.
|
|
|
|
|
appending the corresponding syndrome vector as a column:
|
|
|
|
|
\begin{gather*}
|
|
|
|
|
\bm{\Omega} =
|
|
|
|
|
\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 \\
|
|
|
|
|
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)
|
|
|
|
|
.%
|
|
|
|
|
\end{gather*}
|
|
|
|
|
Notice that the first three columns correspond to the original
|
|
|
|
|
measurement syndrome matrix, as these columns correspond to the error
|
|
|
|
|
locations on the data qubits.
|
|
|
|
|
|
|
|
|
|
\begin{figure}[t]
|
|
|
|
|
\centering
|
|
|
|
|
|
|
|
|
|
\newcommand{\preperr}[1]{
|
|
|
|
|
\gate[style={fill=blue!20}]{\scriptstyle #1}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\begin{minipage}{0.3\textwidth}
|
|
|
|
|
\centering
|
|
|
|
|
\begin{tikzpicture}
|
|
|
|
|
@@ -540,14 +581,10 @@ appending the corresponding syndrome vector as a column.
|
|
|
|
|
\end{gather*}
|
|
|
|
|
\end{minipage}
|
|
|
|
|
|
|
|
|
|
\newcommand{\preperr}[1]{
|
|
|
|
|
\gate[style={fill=blue!20}]{\scriptstyle #1}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
\vspace*{5mm}
|
|
|
|
|
|
|
|
|
|
\begin{quantikz}[
|
|
|
|
|
row sep=4mm, column sep=4mm,
|
|
|
|
|
row sep=4mm, column sep=3.4mm,
|
|
|
|
|
wire types={q,q,q,q,q,n,n,n,n},
|
|
|
|
|
execute at end picture={
|
|
|
|
|
\draw [
|
|
|
|
|
@@ -745,23 +782,51 @@ additions on the matrix $\bm{\Omega}$.
|
|
|
|
|
|
|
|
|
|
% How to choose the detectors
|
|
|
|
|
|
|
|
|
|
% TODO: Give results from current and previous stage mathematical names
|
|
|
|
|
% TODO: Fix notation (n used for both number of measurements and
|
|
|
|
|
% measurements themselves)
|
|
|
|
|
% TODO: Properly define the ranges i and r belong to
|
|
|
|
|
We still have a degree of freedom in how we choose the detectors.
|
|
|
|
|
\ldots
|
|
|
|
|
\red{[No way to automate this, NP-complete problem to find detectors
|
|
|
|
|
which yield highest sparity]}
|
|
|
|
|
There is, however, one way of defining the detectors that will prove useful
|
|
|
|
|
at a later stage.
|
|
|
|
|
To the measurement results from each syndrome extraction round, we
|
|
|
|
|
can add the results from the previous round, as illustrated in
|
|
|
|
|
\autoref{fig:detectors_from_measurements_general}.
|
|
|
|
|
\red{[Mathematical notation for measurement combination]}
|
|
|
|
|
Concretely, we denote the outcome of the
|
|
|
|
|
$i$-th syndrome measurement in round $r$ by $m_i^{(r)} \in \mathbb{F}_2$
|
|
|
|
|
and define
|
|
|
|
|
\begin{gather*}
|
|
|
|
|
\bm{m}^{(r)} :=
|
|
|
|
|
\begin{pmatrix}
|
|
|
|
|
m_1^{(r)} \\
|
|
|
|
|
\vdots \\
|
|
|
|
|
m_m^{(r)}
|
|
|
|
|
\end{pmatrix}
|
|
|
|
|
.%
|
|
|
|
|
\end{gather*}
|
|
|
|
|
Similarly, we denote the the $i$-th detector in round $r$ by
|
|
|
|
|
$d_i^{(r)} \in \mathbb{F}_2$ and define
|
|
|
|
|
\begin{gather}
|
|
|
|
|
\label{eq:measurement_combination}
|
|
|
|
|
\bm{d}^{(r)} =
|
|
|
|
|
\begin{pmatrix}
|
|
|
|
|
d_1^{(r)} \\
|
|
|
|
|
\vdots \\
|
|
|
|
|
d_m^{(r)}
|
|
|
|
|
\end{pmatrix}
|
|
|
|
|
:= \bm{m}^{(r)} + \bm{m}^{(r-1)}
|
|
|
|
|
,%
|
|
|
|
|
\end{gather}
|
|
|
|
|
where $\bm{m}^{(0)} = \bm{0}$.
|
|
|
|
|
|
|
|
|
|
We again turn our attention to the three-qubit repetition code.
|
|
|
|
|
In \autoref{fig:rep_code_multiple_rounds_phenomenological} we can see
|
|
|
|
|
that $E_6$ has occurred and has subsequently tripped the last four measurements.
|
|
|
|
|
We now take those measurements and combine them according to
|
|
|
|
|
\red{[Reference mathematical notation above]}.
|
|
|
|
|
\autoref{eq:measurement_combination}.
|
|
|
|
|
We can see this process graphically in
|
|
|
|
|
\autoref{fig:detectors_from_measurements_rep_code}
|
|
|
|
|
\autoref{fig:detectors_from_measurements_rep_code}.
|
|
|
|
|
To understand why this way of defining the detectors is useful, we
|
|
|
|
|
note that the error $E_6$ in
|
|
|
|
|
\autoref{fig:rep_code_multiple_rounds_phenomenological} has not only
|
|
|
|
|
@@ -775,11 +840,24 @@ Each error can only trip syndrome bits that follow it.
|
|
|
|
|
We can see this in the triangular structure of $\bm{\Omega}$ in
|
|
|
|
|
\autoref{fig:rep_code_multiple_rounds_phenomenological}.
|
|
|
|
|
Combining the measurements into detectors according to
|
|
|
|
|
\red{[Reference mathematical notation above]}, we are performing row
|
|
|
|
|
additions in such a way as to clear the bottom left of the matrix.
|
|
|
|
|
\autoref{eq:measurement_combination}, we are performing row additions
|
|
|
|
|
in such a way as to clear the bottom left of the matrix.
|
|
|
|
|
This yields a block-diagonal structure for the detector error matrix
|
|
|
|
|
$\bm{H}$, as in the example in
|
|
|
|
|
\autoref{fig:detectors_from_measurements_rep_code}.
|
|
|
|
|
\begin{align*}
|
|
|
|
|
\bm{H} =
|
|
|
|
|
\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 \\
|
|
|
|
|
0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
|
|
|
|
0 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
|
|
|
|
|
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 0 \\
|
|
|
|
|
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 1 & 0 & 1
|
|
|
|
|
\end{array}
|
|
|
|
|
\right)
|
|
|
|
|
\end{align*}
|
|
|
|
|
Note that we exploit the fact that each syndrome measurement round is
|
|
|
|
|
identical to obtain this structure.
|
|
|
|
|
|
|
|
|
|
@@ -801,7 +879,7 @@ identical to obtain this structure.
|
|
|
|
|
& \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} & \\
|
|
|
|
|
& \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
|
|
|
|
|
|
|
|
|
|
@@ -812,53 +890,33 @@ identical to obtain this structure.
|
|
|
|
|
\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}}}
|
|
|
|
|
\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}
|
|
|
|
|
% 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
|
|
|
|
|
|
|
|
|
|
\caption{Construction of detectors from the measurements of a
|
|
|
|
|
three-qubit repetition code.}
|
|
|
|
|
|