Compare commits
3 Commits
163ef926e7
...
7015f9d644
| Author | SHA1 | Date | |
|---|---|---|---|
| 7015f9d644 | |||
| b50308d014 | |||
| 93f310d843 |
@@ -1,18 +1,144 @@
|
||||
% TODO: Make all [H] -> [t]
|
||||
\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]
|
||||
% Intro
|
||||
|
||||
\content{Syndrome extraction circuitry itself introduces errors}
|
||||
\content{High level explanation of fault tolerance (with figure)}
|
||||
\content{Mathematical definition of fault tolerance}
|
||||
|
||||
% Practical considerations
|
||||
|
||||
\content{We generally need to perform multiple rounds of syndrome extraction}
|
||||
\content{The number of rounds of syndrome extraction is usually
|
||||
chosen equal to the $d_\text{min}$ of the code}
|
||||
\content{One-shot decoding property}
|
||||
|
||||
\begin{figure}[H]
|
||||
\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}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Noise Models}
|
||||
\label{sec:Noise Models}
|
||||
|
||||
% Intro
|
||||
|
||||
\content{Explanation of what a noise model is}
|
||||
\content{Mention there are different types of noise models, each with
|
||||
different possible error locations}
|
||||
|
||||
% Figure intro
|
||||
|
||||
\content{\autoref{fig:pure_syndrome_extraction} shows the syndrome
|
||||
extraction circuit of a three-qubit repetition code with stabilizers
|
||||
$Z_1Z_2$ and $Z_2Z_3$. This code is only able to deal with X errors.
|
||||
We will use it as a propotypical model to examine the different types
|
||||
of noise models}
|
||||
\content{This is now a concrete implementation of the syndrome
|
||||
measurement circuit using CNOT gates, as opposed to the system-level
|
||||
view in \autoref{subsec:Stabilizer Codes}}
|
||||
\content{\autoref{fig:noise_model_types} shows a number of diffent
|
||||
types of noise models}
|
||||
|
||||
% Bit-flip noise
|
||||
|
||||
\content{Bit-flip noise}
|
||||
\content{Introduce \emph{data qubits}}
|
||||
\content{Only X errors on data qubits}
|
||||
\content{Most similar to classical channel coding}
|
||||
\content{\textbf{TODO}: What is this useful for? Just as a first step?}
|
||||
|
||||
% Depolarizing channel
|
||||
|
||||
\content{Depolarizing channel}
|
||||
\content{X/Y/Z errors on data qubits}
|
||||
\content{\textbf{TODO}: What does this model? Memory experiment with
|
||||
ideal syndrome extraction?}
|
||||
\content{\textbf{TODO}: Why is it called depolarizing?}
|
||||
|
||||
% Phenomenological noise
|
||||
|
||||
\content{Phenomenological noise}
|
||||
\content{First noise model that considers errors during syndrome extraction}
|
||||
\content{X errors before each syndrome extraction round}
|
||||
\content{X errors before measurements}
|
||||
\content{\textbf{TODO}: Why is this useful? Derks et al. mentioned
|
||||
something about it being useful to derive fault-tolerant circuits}
|
||||
\content{\textbf{TODO}: Make sure phenomenological noise is only X errors}
|
||||
|
||||
% Circuit-level noise
|
||||
|
||||
\content{Circuit-level noise}
|
||||
\content{This is generally what we strive to be able to decode under}
|
||||
\content{X/Y/Z errors before each syndrome extraction round}
|
||||
\content{$n$-qubit Pauli errors after each $n$-qubit Pauli gate}
|
||||
\content{Define $n$-qubit Pauli errors}
|
||||
\content{X errors right before the measurements}
|
||||
\content{Note that the only errors right before the measurements that
|
||||
have any effect on the measurement outcomes are X errors. That is why
|
||||
it is enough to consider this type of error at this point in the circuit.}
|
||||
|
||||
% Different noise models for circuit-level noise
|
||||
|
||||
\content{Comparison from Gidney's paper}
|
||||
\content{In this work we only consider standard circuit-based
|
||||
depolarizing noise}
|
||||
|
||||
\begin{figure}[H]
|
||||
\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}_\text{L}$} & \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:pure_syndrome_extraction}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\newcommand{\xerr}{\gate[style={fill=KITblue!50}]{\phantom{1}}}
|
||||
@@ -41,53 +167,75 @@
|
||||
}
|
||||
}]{\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
|
||||
\begin{minipage}{0.7\textwidth}
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
% tex-fmt: off
|
||||
\begin{quantikz}[row sep=4mm, column sep=4mm]
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \xerr & \ctrl{3} & & & & & \\
|
||||
& \xerr & & \ctrl{2} & \ctrl{3} & & & \\
|
||||
& \xerr & & & & \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
|
||||
\subcaption{Bit-flip noise.}
|
||||
\end{minipage}
|
||||
|
||||
\caption{Phenomenological noise.}
|
||||
\end{subfigure}
|
||||
\vspace*{5mm}
|
||||
|
||||
\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
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
% tex-fmt: off
|
||||
\begin{quantikz}[row sep=4mm, column sep=4mm]
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \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{Circuit-level noise.}
|
||||
\end{subfigure}%
|
||||
\subcaption{Depolarizing channel.}
|
||||
\end{minipage}
|
||||
|
||||
\vspace*{5mm}
|
||||
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
% tex-fmt: off
|
||||
\begin{quantikz}[row sep=4mm, column sep=4mm]
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \xerr & \ctrl{3} & & & & & & \xerr & & \setwiretype{n} & \\
|
||||
& \xerr & & \ctrl{2} & \ctrl{3} & & & & \xerr & & \setwiretype{n} & \gate[style={left,draw=none}]{\cdots} \\
|
||||
& \xerr & & & & \ctrl{2} & & & \xerr & & \setwiretype{n} & \\
|
||||
\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
|
||||
|
||||
\subcaption{Phenomenological noise.}
|
||||
\end{minipage}
|
||||
|
||||
\vspace*{5mm}
|
||||
|
||||
\begin{minipage}{\textwidth}
|
||||
\centering
|
||||
% tex-fmt: off
|
||||
\begin{quantikz}[row sep=4mm, column sep=2mm]
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \xyzerr & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & & & & & \xyzerr & & \setwiretype{n} & \\
|
||||
& \xyzerr & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & \ctrl{3} & \xyzerr \wire[d][3]{q} & & & & & \xyzerr & & \setwiretype{n} & \gate[style={left,draw=none,xshift=3.5mm}]{\cdots} \\
|
||||
& \xyzerr & & & & & & & \ctrl{2} & \xyzerr \wire[d][2]{q} & & & \xyzerr & & \setwiretype{n} & \\
|
||||
\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
|
||||
|
||||
\subcaption{Circuit-level noise.}
|
||||
\end{minipage}
|
||||
\end{minipage}%
|
||||
\hfill%
|
||||
\begin{subfigure}[c]{0.25\textwidth}
|
||||
\begin{minipage}{0.23\textwidth}
|
||||
\centering
|
||||
% tex-fmt: off
|
||||
\begin{quantikz}[row sep=4mm, column sep=2mm]
|
||||
@@ -97,70 +245,63 @@
|
||||
\setwiretype{n} & \gate{\phantom{1}} &
|
||||
\end{quantikz}
|
||||
% tex-fmt: on
|
||||
\end{subfigure}
|
||||
\end{minipage}
|
||||
|
||||
\caption{Types of noise models.}
|
||||
\label{fig:Types of noise models.}
|
||||
\label{fig:noise_model_types}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Detector Error Models}
|
||||
\label{sec:Detector Error Models}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node[rectangle, draw, fill=orange!20, minimum
|
||||
height=2cm, minimum width=2.5cm, align=left] at (0,0)
|
||||
(internal) {Internal\\ Errors};
|
||||
\content{\textbf{TODO}: Look up how Derks et al. introduce DEMs}
|
||||
|
||||
\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};
|
||||
% Different ways of implementing fault tolerance
|
||||
|
||||
\node at (1.97,0) {\huge =};
|
||||
\content{Ways of implementing fault tolerance different from DEMs}
|
||||
|
||||
\node[rectangle, draw, fill=orange!20, minimum height=2cm,
|
||||
minimum width=2.5cm, align=left] at (4,0) (output)
|
||||
{Output\\ Errors};
|
||||
% Core idea
|
||||
|
||||
\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}
|
||||
\content{Model additional error locations in the code}
|
||||
\content{Construct ``circuit code'' from original code}
|
||||
|
||||
\caption{Sources of error in a fault-tolerant \ac{qec} system.}
|
||||
\end{figure}
|
||||
% Benefits
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
\content{Benefits of this approach}
|
||||
|
||||
\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}%
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Measurement Syndrome Matrix}
|
||||
\label{subsec:Measurement Syndrome Matrix}
|
||||
|
||||
\caption{
|
||||
Syndrome extraction circuit for the three-qubit repetition
|
||||
code under bit-flip noise.
|
||||
}
|
||||
\label{fig:}
|
||||
\end{figure}
|
||||
% Core idea
|
||||
|
||||
\begin{figure}[t]
|
||||
\content{Core idea: Matrix describes parity checks \\
|
||||
$\rightarrow$ A column shows which parity checks the
|
||||
corresponding VN contributes to \\
|
||||
$\rightarrow$ View columns as syndromes corresponding to error
|
||||
locations in the circuit
|
||||
}
|
||||
|
||||
% Multiple rounds of syndrome extraction
|
||||
|
||||
% TODO: First introduce syndrome measurement matrix, mathematically
|
||||
% (consult Derks et al.'s paper). Then use the three-qubit repetition
|
||||
% code as an example only
|
||||
\autoref{fig:rep_code_multiple_rounds_bit_flip} shows a circuit
|
||||
performing three rounds of syndrome extraction for the three-qubit
|
||||
repetition code introduced earlier.
|
||||
We are only considering bit-flip noise at this point.
|
||||
For each syndrome extraction round, we get an additional set of
|
||||
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 model this behavior mathematically, we append additional rows to
|
||||
the check matrix.
|
||||
We call this matrix the \emph{measurement syndrome matrix}
|
||||
$\bm{\Omega}$.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{minipage}{0.3\textwidth}
|
||||
@@ -252,7 +393,7 @@
|
||||
}
|
||||
]
|
||||
% tex-fmt: off
|
||||
\lstick[3]{$\ket{\psi}$} & \preperr{E_0} & \ctrl{3} & & & & & & \ctrl{5} & & & & & & \ctrl{7} & & & & & \\
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \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} \\
|
||||
@@ -268,9 +409,10 @@
|
||||
Repeated syndrome extraction circuit for the three-qubit
|
||||
repetition code under bit flip noise.
|
||||
}
|
||||
\label{fig:rep_code_multiple_rounds_bit_flip}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
\begin{figure}[H]
|
||||
\begin{gather*}
|
||||
\hspace*{-33.3mm}%
|
||||
\begin{array}{c}
|
||||
@@ -345,15 +487,15 @@
|
||||
|
||||
% 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}
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \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
|
||||
|
||||
@@ -363,7 +505,52 @@
|
||||
}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Detector Error Matrix}
|
||||
\label{subsec:Detector Error Matrix}
|
||||
|
||||
% Core idea
|
||||
|
||||
% TODO: Make this a proper definition?
|
||||
Instead of using the measurements as parity indicators directly, we
|
||||
may wish to combine them in some way.
|
||||
We call such combinations \emph{detectors}.
|
||||
Formally, a detector is a parity constraint on a set of measurement
|
||||
outcomes \cite[Def.~2.1]{derks_designing_2025}.
|
||||
|
||||
\content{Detector matrix}
|
||||
|
||||
\content{Detector error matrix}
|
||||
|
||||
\content{One way of defining the detectors is ...}
|
||||
|
||||
\begin{figure}[H]
|
||||
\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}]
|
||||
\lstick[3]{$\ket{\psi}_\text{L}$} & \gate[3]{\text{SE}_1} & & \gate[3]{\text{SE}_2} & & \gate[3]{\text{SE}_3} & & \gate[3]{\text{SE}_4} & \\
|
||||
& & & & & & & & & \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}
|
||||
|
||||
\content{The three-qubit repetition code as an exmaple}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\hspace*{-5mm}
|
||||
@@ -419,26 +606,38 @@
|
||||
\label{fig:Construction of the detectors from the measurements}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
\centering
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Detector Error Models}
|
||||
\label{subsec:Detector Error Models}
|
||||
|
||||
\tikzset{
|
||||
gate/.style={
|
||||
draw, %line width=1pt,
|
||||
minimum height=2cm,
|
||||
}
|
||||
}
|
||||
\content{Combination of detector error matrix and noise model}
|
||||
\content{Contains all information necessary for decoding
|
||||
\cite[Intro.]{derks_designing_2025}}
|
||||
\content{Not only useful for decoding, but also for ... (Derks et al.)}
|
||||
|
||||
% 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
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Practical Considerations}
|
||||
\label{sec:Practical Considerations}
|
||||
|
||||
% Intro
|
||||
|
||||
\content{Intro}
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Practical Methodology}
|
||||
\label{subsec:Practical Methodology}
|
||||
|
||||
\content{Per-round-LER explanation}
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Stim}
|
||||
\label{subsec:Stim}
|
||||
|
||||
\content{Circuit code heavily depends on the exact circuit construction}
|
||||
\content{Not easy to predict how errors at different locations
|
||||
propagate through the circuit an what detectors they affect}
|
||||
|
||||
\content{Stim is a software package that generates DEMs from circuits}
|
||||
\content{The user still has to define the circuit themselves, and
|
||||
especially the detectors \cite[Sec~2.5]{derks_designing_2025}}
|
||||
|
||||
\caption{Construction of detectors from measurements in the general case.}
|
||||
\end{figure}
|
||||
|
||||
@@ -1,10 +1,50 @@
|
||||
% TODO: Make all [H] -> [t]
|
||||
\chapter{Decoding under Detector Error Models}
|
||||
|
||||
% Intro
|
||||
|
||||
\content{Intro}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Sliding-Window Decoding}
|
||||
\label{sec:Sliding-Window Decoding}
|
||||
|
||||
\begin{figure}[t]
|
||||
% Intro
|
||||
|
||||
\content{Callback to previous chapter}
|
||||
\content{(Maybe even historical) overview of the literature}
|
||||
|
||||
% High-level overview of Sliding-Window decoding
|
||||
|
||||
\content{Benefits of sliding-window decoding (lower latency due to
|
||||
earlier decoding start)}
|
||||
\content{Why it works (block diagonal structure $\rightarrow$ ``Done
|
||||
with processing'' some VNs)}
|
||||
|
||||
% Detailed explanation of sliding-window decoding
|
||||
|
||||
\content{We look at rows not columns}
|
||||
\content{Define W}
|
||||
\content{Define F}
|
||||
\content{Explain how we get the columns once we know the rows}
|
||||
\content{\textbf{General note}: Mathematical definitions where possible}
|
||||
|
||||
% Syndrome update
|
||||
|
||||
\content{Explain commit region}
|
||||
\content{Why we need to update the syndrome}
|
||||
\content{How we update the syndrome}
|
||||
\content{\textbf{General note}: Mathematical definitions where possible}
|
||||
|
||||
% Complete process
|
||||
|
||||
\content{1. Decode window}
|
||||
\content{2. Commit VN estimates}
|
||||
\content{3. Update syndrome}
|
||||
\content{4. Decode next window}
|
||||
\content{(?) Explicitly mention we don't reuse existing messages?}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\hspace*{-114mm}%
|
||||
@@ -40,10 +80,30 @@
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Warm-Start Sliding-Window Decoding under BP}
|
||||
\section{Warm-Start Sliding-Window Decoding}
|
||||
\label{sec:warm_start_bp}
|
||||
|
||||
\begin{figure}[t]
|
||||
% Intro
|
||||
|
||||
\content{Change view from PCM to Tanner graph}
|
||||
\content{Call attention to SC-LDPC-like structure}
|
||||
\content{High-level overview of modification}
|
||||
|
||||
% Warm-Start decoding for BP
|
||||
|
||||
\content{Pass messages to next window}
|
||||
\content{(?) Explicitly mention initialization using only CN->VN
|
||||
messages + swapping of CN and VN update?}
|
||||
\content{(?) Algorithm}
|
||||
|
||||
% Warm-Start decoding for BPGD
|
||||
|
||||
\content{Modified structure of BPGD $\rightarrow$ In addition to
|
||||
messages, pass decimation info}
|
||||
\content{(?) Explicitly mention decimation info = channel llrs?}
|
||||
\content{(?) Algorithm}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\tikzset{
|
||||
@@ -145,7 +205,7 @@
|
||||
\label{fig:windowing_tanner}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[t]
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\tikzset{
|
||||
@@ -267,11 +327,7 @@
|
||||
\label{fig:messages_tanner}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Warm-Start Sliding-Window Decoding under BPGD}
|
||||
\label{sec:warm_start_bpgd}
|
||||
|
||||
\begin{figure}[t]
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\tikzset{
|
||||
@@ -405,3 +461,29 @@
|
||||
\label{fig:messages_decimation_tanner}
|
||||
\end{figure}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\section{Numerical results}
|
||||
\label{sec:warm_start_bpgd}
|
||||
|
||||
% Intro
|
||||
|
||||
\content{Some info on used code (what it is, why it was chosen)}
|
||||
\content{Some info on simulation setup (Stim, circuit-level noise,
|
||||
standard circuit-based depolarizing noise model, etc.)}
|
||||
\content{All datapoints generated with at least 100 error frames}
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Belief Propagation}
|
||||
\label{subsec:Belief Propagation}
|
||||
|
||||
% Simulation setup
|
||||
|
||||
\content{Use min-sum}
|
||||
|
||||
%%%%%%%%%%%%%%%%
|
||||
\subsection{Belief Propagation with Guided Decimation}
|
||||
\label{subsec:Belief Propagation with Guided Decimation}
|
||||
|
||||
% Results when passing all info
|
||||
% Results when passing only messages
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
% style=ieee,
|
||||
% sorting=nty,
|
||||
% ]{biblatex}
|
||||
\usepackage{todonotes}
|
||||
% \usepackage{todonotes}
|
||||
\usepackage{quantikz}
|
||||
\usepackage{stmaryrd}
|
||||
\usepackage{algorithm}
|
||||
@@ -32,9 +32,9 @@
|
||||
\usetikzlibrary{external}
|
||||
\tikzexternalize
|
||||
|
||||
\makeatletter
|
||||
\renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
|
||||
\makeatother
|
||||
% \makeatletter
|
||||
% \renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable}
|
||||
% \makeatother
|
||||
|
||||
\setcounter{MaxMatrixCols}{20}
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
%
|
||||
|
||||
\newcommand{\red}[1]{\textcolor{red}{#1}}
|
||||
\newcommand{\content}[1]{\noindent\indent\red{[#1]}\\}
|
||||
|
||||
\newcommand{\figwidth}{10cm}
|
||||
\newcommand{\figheight}{7.5cm}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user