Incorporate Jonathan's corrections to Fault Tolerance Chapter
This commit is contained in:
@@ -16,17 +16,19 @@ using qubits.
|
||||
While the use of error correcting codes may facilitate this, it also
|
||||
introduces two new challenges \cite[Sec.~4]{gottesman_introduction_2009}:
|
||||
\begin{itemize}
|
||||
\item We must be able to perform operations on the encoded state
|
||||
in such a way that we do not lose the protection against errors.
|
||||
\item \ac{qec} systems are themselves partially implemented in
|
||||
quantum hardware. In addition to the errors we have
|
||||
originally introduced them for, these systems must
|
||||
be able to account for the fact they are implemented on noisy
|
||||
hardware themselves.
|
||||
\item For realizing a quantum algorithm, we must be able to
|
||||
perform operations on the encoded state in such a way that we
|
||||
do not lose the protection against errors.
|
||||
\item \ac{qec} systems, in particular the syndrome extraction
|
||||
circuit, are themselves partially implemented in
|
||||
quantum hardware.
|
||||
In addition to the errors we have originally introduced them
|
||||
for, these systems must be able to account for the fact they
|
||||
are implemented on noisy hardware themselves.
|
||||
\end{itemize}
|
||||
In the literature, both of these points are viewed under the umbrella
|
||||
of \emph{fault-tolerant} quantum computing.
|
||||
We focus only on the second aspect in this work.
|
||||
In this thesis, we focus only on the second aspect.
|
||||
|
||||
It was recognized early on as a challenge of \ac{qec} that the correction
|
||||
machinery itself may introduce new faults \cite[Sec.~III]{shor_scheme_1995}.
|
||||
@@ -43,16 +45,16 @@ address both.
|
||||
We model the possible occurrence of errors during any processing
|
||||
stage as different \emph{error locations} $E_i,~i\in [1:N]$
|
||||
in the circuit.
|
||||
$N \in \mathbb{N}$ is the total number of considered error locations.
|
||||
The parameter $N \in \mathbb{N}$ is the total number of considered
|
||||
error locations.
|
||||
The \emph{circuit error vector} $\bm{e} \in \{0,1\}^N$ is a vector
|
||||
indicating which errors occurred, with
|
||||
\begin{align*}
|
||||
e_i :=
|
||||
\begin{cases}
|
||||
1, & \text{Error $E_i$ occurred} \\
|
||||
0, & \text{otherwise}
|
||||
1, & \text{error $E_i$ occurred}, \\
|
||||
0, & \text{otherwise}.
|
||||
\end{cases}
|
||||
.%
|
||||
\end{align*}
|
||||
\Cref{fig:fault_tolerance_overview} illustrates the flow of errors.
|
||||
Specifically for \ac{css} codes, a \ac{qec} procedure is deemed
|
||||
@@ -72,12 +74,14 @@ fault-tolerant, if \cite[Def.~4.2]{derks_designing_2025}
|
||||
where $t = \lfloor (d_\text{min} -1)/2 \rfloor$ is the number of
|
||||
errors the code is able to correct.
|
||||
The vectors $\bm{e}_{\text{output},X}$ and $\bm{e}_{\text{output},Z}$
|
||||
denote only $X$ and $Z$ errors respectively.
|
||||
denote only $X$ and $Z$ errors, respectively.
|
||||
|
||||
% TODO: Properly introduce d_min for QEC, specifically for CSS codes
|
||||
In order to deal with internal errors that flip syndrome bits,
|
||||
multiple rounds of syndrome measurements must be performed.
|
||||
Typically, the number of syndrome extraction rounds is chosen as $d_\text{min}$.
|
||||
multiple rounds of syndrome measurements are performed.
|
||||
Typically, the number of syndrome extraction rounds is chosen as
|
||||
$d_\text{min}$, e.g., \cite{gong_toward_2024}
|
||||
\cite{koutsioumpas_automorphism_2025}.
|
||||
|
||||
% % This is the definition of a fault-tolerant QEC gadget
|
||||
% A \ac{qec} procedure is deemed fault tolerant if
|
||||
@@ -150,7 +154,7 @@ Typically, the number of syndrome extraction rounds is chosen as $d_\text{min}$.
|
||||
% Intro
|
||||
|
||||
We collect the probabilities of error at each location in the
|
||||
\emph{noise model}, a vector $\bm{p} \in [0,1]^N$.
|
||||
\emph{noise model}, represented by a vector $\bm{p} \in [0,1]^N$.
|
||||
There are different types of noise models, each allowing for
|
||||
different error locations in the circuit.
|
||||
|
||||
@@ -178,8 +182,7 @@ $\ket{\psi}_\text{L}$ as \emph{data qubits}.
|
||||
Note that this is a concrete implementation using CNOT gates, as
|
||||
opposed to the system-level view introduced in
|
||||
\Cref{subsec:Stabilizer Codes}.
|
||||
We visualize the different types of noise models in
|
||||
\Cref{fig:noise_model_types}.
|
||||
\Cref{fig:noise_model_types} visualizes the different types of noise models.
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Bit-Flip Noise}
|
||||
@@ -190,7 +193,7 @@ This corresponds to the classical \ac{bsc}, i.e., only $X$ errors on the
|
||||
data qubits are possible \cite[Appendix~A]{gidney_new_2023}.
|
||||
The occurrence of bit-flip errors is modeled as a Bernoulli process
|
||||
$\text{Bern}(p)$.
|
||||
This type of noise model is shown in \Cref{subfig:bit_flip}.
|
||||
\Cref{subfig:bit_flip} shows this type of noise model.
|
||||
|
||||
Note that bit-flip noise is not suitable for developing fault-tolerant
|
||||
systems, as it does not account for errors during the syndrome extraction.
|
||||
@@ -223,7 +226,7 @@ Here, we consider multiple rounds of syndrome measurements with a
|
||||
depolarizing channel before each round.
|
||||
Additionally, we allow for measurement errors by having $X$ error
|
||||
locations right before each measurement \cite[Appendix~A]{gidney_new_2023}.
|
||||
Note that it is enough to only consider $X$ errors at these points,
|
||||
Note that it is enough to only consider $X$ errors before measuring,
|
||||
since that is the only type of error directly affecting the
|
||||
measurement outcomes.
|
||||
This model is depicted in \Cref{subfig:phenomenological}.
|
||||
@@ -253,7 +256,7 @@ While phenomenological noise is useful for some design aspects of
|
||||
fault-tolerant circuitry, for simulations, circuit-level noise should
|
||||
always be used \cite[Sec.~4.2]{derks_designing_2025}.
|
||||
Note that this introduces new challenges during the decoding process,
|
||||
as the decoding complexity is increased considerably due to the many
|
||||
as the decoding complexity is considerably increased due to the many
|
||||
error locations.
|
||||
|
||||
\begin{figure}[t]
|
||||
@@ -284,11 +287,11 @@ error locations.
|
||||
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}.
|
||||
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 circuits exist, such as
|
||||
Other approaches of implementing fault-tolerance circuits exist, e.g.,
|
||||
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
|
||||
@@ -310,7 +313,7 @@ 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.
|
||||
a new \emph{circuit code} describing the whole circuit.
|
||||
Each \ac{vn} of this new code corresponds to an error location in the
|
||||
circuit and each \ac{cn} corresponds to a syndrome measurement.
|
||||
% This circuit code, combined with the prior probabilities of error
|
||||
@@ -446,12 +449,11 @@ matrix} $\bm{\Omega} \in \mathbb{F}_2^{M\times N}$, with
|
||||
\begin{align*}
|
||||
\Omega_{\ell,i} =
|
||||
\begin{cases}
|
||||
1, & \text{Error $i$ flips measurement $\ell$}\\
|
||||
0, & \text{otherwise}
|
||||
1, & \text{error $i$ flips measurement $\ell$},\\
|
||||
0, & \text{otherwise},
|
||||
\end{cases}
|
||||
,%
|
||||
\end{align*}
|
||||
where $M \in \mathbb{N}$ is the number of measurements.
|
||||
where $M \in \mathbb{N}$ is the number of performed syndrome measurements.
|
||||
To obtain $\bm{\Omega}$, we must propagate Pauli errors through the
|
||||
circuit, tracking which measurements they affect
|
||||
\cite[Sec.~2.4]{derks_designing_2025}.
|
||||
@@ -466,8 +468,8 @@ Each round yields an additional set of syndrome bits,
|
||||
and we combine them by stacking them in a new vector
|
||||
$\bm{s} \in \mathbb{F}_2^{R(n-k)}$, where $R \in \mathbb{N}$ is the
|
||||
number of syndrome measurement rounds.
|
||||
We thus have to replicate the rows of $\bm{H}_Z$, once for each
|
||||
additional syndrome measurement, to obtain
|
||||
Thus, we have to replicate the rows of $\bm{H}_Z$, once for each
|
||||
additional syndrome measurement, and obtain
|
||||
\begin{align*}
|
||||
\bm{\Omega}_0 =
|
||||
\begin{pmatrix}
|
||||
@@ -493,11 +495,11 @@ extraction circuitry, so we still consider only bit flip noise at this stage.
|
||||
Recall that $\bm{\Omega}_0$ describes which \ac{vn} is connected to
|
||||
which parity check and the syndrome indicates which parity checks
|
||||
are violated.
|
||||
This means that if an error exists at only a single \ac{vn}, we can
|
||||
read off the syndrome in the corresponding column.
|
||||
Therefore, if an error occurs that corresponds to a single \ac{vn},
|
||||
the measured syndrome is the corresponding column.
|
||||
If errors occur at multiple locations, the resulting syndrome will be
|
||||
the linear combination of the respective columns.
|
||||
We thus have
|
||||
Thus, we have
|
||||
\begin{align*}
|
||||
\bm{s} \in \text{span} \{\bm{\Omega}_0\}
|
||||
.%
|
||||
@@ -505,13 +507,13 @@ We thus have
|
||||
|
||||
% Expand to phenomenological
|
||||
|
||||
We now wish to expand the error model to phenomenological noise, though
|
||||
Next, we expand the error model to phenomenological noise, though
|
||||
only considering $X$ errors in this case.
|
||||
We introduce new error locations at the appropriate positions,
|
||||
arriving at the circuit depicted in
|
||||
resulting in the circuit depicted in
|
||||
\Cref{fig:rep_code_multiple_rounds_phenomenological}.
|
||||
For each additional error location, we extend $\bm{\Omega}_0$ by
|
||||
appending the corresponding syndrome vector as a column.
|
||||
appending the corresponding syndrome vector as a column, yielding
|
||||
\begin{gather}
|
||||
\label{eq:syndrome_matrix_ex}
|
||||
\bm{\Omega}_1 =
|
||||
@@ -790,15 +792,14 @@ to a detector.
|
||||
We should note at this point that the combination of measurements
|
||||
into detectors has no bearing on the actual construction of the
|
||||
syndrome extraction circuitry.
|
||||
It is something that happens ``virtually'' after the fact and only
|
||||
affects the decoder.
|
||||
It is something that happens ``virtually'' and only affects the decoder.
|
||||
|
||||
Note that we can use the detector matrix $\bm{D}$ to describe the set
|
||||
of possible measurement outcomes under the absence of noise.
|
||||
Similar to the we use a \ac{pcm} to describe the code space as
|
||||
\begin{equation*}
|
||||
\mathcal{C}
|
||||
= \{ \bm{x} \in \mathbb{F}_2^{n} : \bm{H}\bm{x}^\text{T} = \bm{0} \}
|
||||
= \{ \bm{x} \in \mathbb{F}_2^{n} : \bm{H}\bm{x}^\mathsf{T} = \bm{0} \}
|
||||
,%
|
||||
\end{equation*}
|
||||
the set of possible measurement outcomes is simply $\text{kern}\{\bm{D}\}$
|
||||
@@ -815,7 +816,7 @@ affect the measurements (through $\bm{\Omega}$), and we know how the
|
||||
measurements relate to the detectors (through $\bm{D}$).
|
||||
For decoding, we are interested in the effect of the errors on the
|
||||
detectors directly.
|
||||
We thus construct the \emph{detector error matrix} $\bm{H} \in
|
||||
Thus, we construct the \emph{detector error matrix} $\bm{H} \in
|
||||
\mathbb{F}_2^{D\times N}$ \cite[Def.~2.9]{derks_designing_2025} as
|
||||
\begin{align*}
|
||||
\bm{H} := \bm{D}\bm{\Omega}
|
||||
@@ -859,7 +860,7 @@ It may, however, change the decoding performance when using a practical decoder.
|
||||
|
||||
What constitutes a good set of detectors is difficult to assess
|
||||
without performing explicit decoding simulations, since it ultimately
|
||||
depends on the decoder employed.
|
||||
depends on the employed decoder.
|
||||
For iterative decoders, high sparsity is generally beneficial, but
|
||||
finding detectors that maximize sparsity is an NP-complete problem
|
||||
\cite[Sec.~2.6]{derks_designing_2025}.
|
||||
@@ -868,7 +869,7 @@ 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
|
||||
\Cref{fig:detectors_from_measurements_general}.
|
||||
We thus have $D=n-k$.
|
||||
Thus, we have $D=n-k$.
|
||||
Concretely, we denote the outcome of
|
||||
measurement $\ell \in [1:n-k]$ in round $r \in [1:R]$ by
|
||||
$m_\ell^{(r)} \in \mathbb{F}_2$
|
||||
@@ -935,17 +936,18 @@ note that the error $E_6$ in
|
||||
\Cref{fig:rep_code_multiple_rounds_phenomenological} has not only
|
||||
triggered the measurements in the syndrome extraction round immediately
|
||||
afterwards, but all subsequent ones as well.
|
||||
To only see errors in the rounds immediately following them, we
|
||||
consider our newly defined detectors instead of the measurements,
|
||||
that effectively compute the difference between the measurements.
|
||||
To only see the effect of errors in the syndrome measurement round
|
||||
immediately following them, we consider our newly defined detectors
|
||||
instead of the measurements, that effectively compute the difference
|
||||
between the measurements.
|
||||
|
||||
Each error can only trigger syndrome bits that follow it.
|
||||
Hereby, each error can only trigger syndrome bits that follow it.
|
||||
This is reflected in the triangular structure of $\bm{\Omega}$ in
|
||||
\Cref{eq:syndrome_matrix_ex}.
|
||||
Combining the measurements into detectors according to
|
||||
\Cref{eq:measurement_combination}, we are effectively performing
|
||||
row additions in such a way as to clear the bottom left of the matrix.
|
||||
The detector error matrix
|
||||
The resulting detector error matrix
|
||||
\begin{align*}
|
||||
\bm{H} =
|
||||
\left(
|
||||
@@ -959,7 +961,7 @@ The detector error matrix
|
||||
\end{array}
|
||||
\right)
|
||||
\end{align*}
|
||||
obtained this way has a block-diagonal structure.
|
||||
has a block-diagonal structure.
|
||||
Note that we exploit the fact that each syndrome measurement round is
|
||||
identical to obtain this structure.
|
||||
|
||||
@@ -1008,9 +1010,8 @@ error matrix $\bm{H}$ and the noise model $\bm{p}$.
|
||||
\cite[Sec.~6]{derks_designing_2025}.
|
||||
It serves as an abstract representation of a circuit and can be used
|
||||
both to transfer information to a decoder but also to aid in the
|
||||
design of fault-tolerant systems.
|
||||
E.g., it can be used to investigate the properties of a circuit with
|
||||
respect to fault tolerance.
|
||||
design of fault-tolerant systems, e.g., it can be used to investigate
|
||||
the properties of a circuit with respect to fault tolerance.
|
||||
It contains all information necessary for the decoding process.
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
@@ -1052,7 +1053,7 @@ value, the physical error rate $p_\text{phys}$.
|
||||
|
||||
% Per-round LER
|
||||
|
||||
Another aspect that is important to consider is the meaning of the
|
||||
Another important aspect to consider is the meaning of the
|
||||
\ac{ler} in the context of a \ac{qec} system with multiple
|
||||
rounds of syndrome measurements.
|
||||
In order to facilitate the comparability of results obtained from
|
||||
@@ -1063,7 +1064,7 @@ The simplest way of calculating the per-round \ac{ler} is by modeling
|
||||
each round as an independent experiment.
|
||||
For each experiment, an error might occur with a certain probability
|
||||
$p_\text{e,round}$.
|
||||
The overall probability of error is then
|
||||
Then the overall probability of error is
|
||||
\begin{align}
|
||||
\hspace{-12mm}
|
||||
p_\text{e,total} &= 1 - (1 - p_\text{e,round})^{R} \nonumber\\
|
||||
@@ -1073,13 +1074,14 @@ The overall probability of error is then
|
||||
.%
|
||||
\hspace{12mm}
|
||||
\end{align}
|
||||
We approximate $p_\text{e,total}$ using a Monte Carlo simulation and
|
||||
compute the per-round-\ac{ler} using \Cref{eq:per_round_ler}.
|
||||
To this end, we approximate $p_\text{e,total}$ using a Monte Carlo
|
||||
simulation and
|
||||
compute the per-round-\ac{ler} according to \Cref{eq:per_round_ler}.
|
||||
This is the approach taken in \cite{gong_toward_2024}\cite{wang_fully_2025}.
|
||||
|
||||
Another approach \cite{chen_exponential_2021}%
|
||||
\cite{bausch_learning_2024}\cite{beni_tesseract_2025} is to assume an
|
||||
exponential decay for the decoder's \emph{logical fidelity}
|
||||
exponential decay for the \emph{logical fidelity} of the decoder
|
||||
\cite[Eq.~(2)]{bausch_learning_2024}
|
||||
\begin{align*}
|
||||
F_\text{total} = (F_\text{round})^{R}
|
||||
@@ -1104,10 +1106,10 @@ topic to our own work.
|
||||
\subsection{Stim}
|
||||
\label{subsec:Stim}
|
||||
|
||||
It is not immediately apparent how the \ac{dem} will look from looking
|
||||
at a code's \ac{pcm}, because it heavily depends on the exact circuit
|
||||
construction and choice of noise model.
|
||||
As we noted in \Cref{subsec:Measurement Syndrome Matrix}, we can
|
||||
It is not immediately apparent how the \ac{dem} will look from
|
||||
considering the \ac{pcm} of a code, because it heavily depends on the
|
||||
exact circuit construction and choice of noise model.
|
||||
As we noted in \Cref{subsec:Measurement Syndrome Matrix}, we
|
||||
obtain a measurement syndrome matrix by propagating Pauli frames
|
||||
through the circuit.
|
||||
The standard choice of simulation tool used for this purpose is
|
||||
@@ -1118,16 +1120,16 @@ pypi package.
|
||||
In fact, it was in this tool that the concept of the \ac{dem} was
|
||||
first introduced.
|
||||
|
||||
One capability of stim, and \acp{dem} in general, that we didn't go
|
||||
into detail about in this chapter is the merging of error mechanisms.
|
||||
One capability of stim, and \acp{dem} in general, that we did not
|
||||
explain in detail about in this chapter, is the merging of error mechanisms.
|
||||
Since \acp{dem} differentiate errors based on their effect on the
|
||||
measurements and not on their Pauli type and location
|
||||
\cite[Sec.~1.4.3]{higgott_practical_2024}, it is natural to group
|
||||
errors that have the same effect.
|
||||
errors that have the same effect, i.e., syndrome.
|
||||
This slightly lowers the computational complexity of decoding, as the
|
||||
number of resulting \acp{vn} is reduced.
|
||||
|
||||
While stim is a useful tool for circuit simulation, it doesn't
|
||||
While stim is a useful tool for circuit simulation, it does not
|
||||
include many utilities for building syndrome extraction circuitry automatically.
|
||||
The user has to define most, if not all, of the circuit manually,
|
||||
depending on the code in question.
|
||||
|
||||
Reference in New Issue
Block a user