diff --git a/src/thesis/acronyms.tex b/src/thesis/acronyms.tex index 856661b..13b4c25 100644 --- a/src/thesis/acronyms.tex +++ b/src/thesis/acronyms.tex @@ -18,6 +18,11 @@ long=sum-product algorithm } +\DeclareAcronym{css}{ + short=CSS, + long=Calderbank-Shor-Steane +} + \DeclareAcronym{llr}{ short=LLR, long=log-likelihood ratio diff --git a/src/thesis/chapters/2_fundamentals.tex b/src/thesis/chapters/2_fundamentals.tex index 527c6b3..9f06b34 100644 --- a/src/thesis/chapters/2_fundamentals.tex +++ b/src/thesis/chapters/2_fundamentals.tex @@ -1155,8 +1155,8 @@ Consider the two-qubit repetition code \underbrace{\ket{11}}_{=:\ket{1}_\text{L}} .% \end{align*} -We call $\ket{\psi}_L$ the logical state. -We define the \emph{codespace} as $\mathcal{C} := \text{span}\mleft\{ +We call $\ket{\psi}_L$ the logical state, and +we define the \emph{codespace} as $\mathcal{C} := \text{span}\mleft\{ \ket{00}, \ket{11} \mright\}$ and the \emph{error subspace} as $\mathcal{F} := \text{span} \mleft\{\ket{01}, \ket{10} \mright\}$. Note that this code is only able to detect single $X$-type errors. @@ -1195,7 +1195,7 @@ $E\ket{\psi}_\text{L}$ lies in $\mathcal{C}$ or $\mathcal{F}$. % non-compromising meausrement of the information To do this without directly observing (and thus potentially collapsing) the logical state $\ket{\psi}_\text{L}$, we prepare an -ancilla qubit with state $\ket{0}_\text{A}$ and we entangle it with +ancilla qubit with state $\ket{0}_\text{A}$ and entangle it with $\ket{\psi}_\text{L}$ in such a way that the eigenvalue is indicated by measuring that instead. More specifically, using a stabilizer measurement circuit as shown in @@ -1258,7 +1258,7 @@ This effect is referred to as error \emph{digitization} % The stabilizer group Operators such as $Z_1Z_2$ above are called \emph{stabilizers}. -An operator $P_i \in \mathcal{G}_n$ is called a stabilizer of an +More generally, an operator $P_i \in \mathcal{G}_n$ is called a stabilizer of an $[[n, k, d_\text{min}]]$ code $\mathcal{C}$, if \begin{itemize} \item It stabilizes all logical states, i.e., @@ -1307,11 +1307,11 @@ and the stabilizer measurement returns 1. For classical binary linear block codes, we use $n-k$ parity-checks to reduce the degrees of freedom introduced by the encoding operation. -Effectively, each parity-check defines a local code, splitting the -vector space in half, with only one half containing valid codewords. +Effectively, each parity-check defines a local code splitting the +vector space in half, with only one part containing valid codewords. The global code is the intersection of all local codes. We can do the same in the quantum case. -Each split is represented using stabilizer, whose eigenvalues signify +Each split is represented using a stabilizer, whose eigenvalues signify whether a candidate vector lies in the local codespace or local error subspace. It is only a valid codeword if it lies in the codespace of all local codes. We call codes constructed this way \emph{stabilizer codes}. @@ -1323,19 +1323,60 @@ describe which local codes are violated. To obtain the syndrome, we simply measure the corresponding operators $P_i$, each using a circuit as explained in \autoref{subsec:Stabilizer Measurements}. -A full \emph{syndrome extraction circuit} is depicted in \autoref{fig:sec}. +Note that this is an abstract representation of the syndrome extraction. +For the actual implementation in hardware, we can transform this into +a circuit that requires only CNOT and H-gates +\cite[Sec.~10.5.8]{nielsen_quantum_2010}. -% TODO: Move this further up to the commutativity of operators? -\indent\red{[Fixing the error after finding it - \cite[Sec.~10.5.5]{nielsen_quantum_2010} -> This may require -introducing the gates as unitary]} \\ -\indent\red{[Logical operators \cite[Sec.~4.2]{roffe_quantum_2019}]} \\ -\indent\red{[Measuring logical operators yields the outcomes of -the encoded computations \cite[Sec.~2.6]{derks_designing_2025}]} \\ -\indent\red{[X and Z measurements can be performed with only CNOT and -Hadamard gates \cite[Sec.~10.5.8]{nielsen_quantum_2010}]} \\ -\indent\red{[(?) Stabilizer generators]} \\ -\indent\red{[Parity-check matrix \cite[Sec.~10.5.1]{nielsen_quantum_2010}]} +% Logical operators + +In order to modify the logical state encoded using the physical +qubits, we can use \emph{logical operators} \cite[Sec.~4.2]{roffe_quantum_2019}. +For each qubit, there are two logical operators, $X_i$ and $Z_j$. +These are operators that +\begin{itemize} + \item Commute with all the stabilizers in $\mathcal{S}$. + \item Anti-commute with one another, i.e., $[ \overline{X}_i, + \overline{Z}_i ]_{+} = \overline{X}_i \overline{Z}_i + + \overline{Z}_i \overline{X}_i = 0$. +\end{itemize} +We can also measure these operators to find out the logical state a +physical state corresponds to \cite[Sec.~2.6]{derks_designing_2025}. + +% Parity-check matrix + +% TODO: Do I have to introduce before that stabilizers only need X +% and Z operators? +Stabilizer codes are the quantum analog of classical linear block codes. +As such, we can represent them using a \emph{check matrix} +\cite[Sec.~10.5.1]{nielsen_quantum_2010}. +This is similar to a classical \ac{pcm} in that it contains $n-k$ +rows, each describing one constraint. Each constraint restricts an additional +degree of freedom of the higher-dimensional space we use to introduce +redundancy. +In contrast to the classical case, this matrix now has $2n$ columns, +as we have to consider both the $X$ and $Z$ type operators that make up +the stabilizers. +Take for example the Steane code \cite[Eq.~10.83]{nielsen_quantum_2010}. +We can describe it using the check matrix +\begin{align*} + \left[ + \begin{array}{ccccccc|ccccccc} + 0 & 0 & 0 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ + 0 & 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ + 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 1 & 1 \\ + 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 + \end{array} + \right] + .% +\end{align*} +We can understand each row as defining a stabilizer. +The first $n$ columns correspond to $X$ operators acting on the +corresponding physical qubit, the rest to the $Z$ operators. + +% TODO: Write \begin{figure}[t] \centering @@ -1352,7 +1393,7 @@ Hadamard gates \cite[Sec.~10.5.8]{nielsen_quantum_2010}]} \\ % tex-fmt: on \caption{ - Illustration of a general syndrome extraction circuit. + Illustration of a full syndrome extraction circuit. Adapted from \cite[Figure~4]{roffe_quantum_2019}. } \label{fig:sec} @@ -1366,13 +1407,17 @@ Stabilizer codes are especially practical to work with when they can handle $X$- and $Z$-type errors independently. We can then separate the stabilizer generators into some with only $Z$ operators and some with only $X$ operators. +We call such codes \ac{css} codes. \indent\red{[Z-type operators for X type errors and vice versa ]} \\ \indent\red{[Construction from two binary linear codes \cite[p.~452,469]{nielsen_quantum_2010}]} \\ +%%%%%%%%%%%%%%%% \subsection{Quantum Low-Density Parity-Check Codes} +\label{subsec:Quantum Low-Density Parity-Check Codes} +\noindent\red{[(?) Mention color and surface codes]} \\ \noindent\red{[Constant overhead scaling]} \\ \noindent\red{[Scaling of minimum distance with code length]} \\ \noindent\red{[Bivariate Bicycle codes]} \\ @@ -1382,37 +1427,19 @@ $Z$ operators and some with only $X$ operators. measured syndrome, the most likely error coset rather than the exact physical error.'' % tex-fmt: off -\cite[Sec.~II~B)]{koutsioumpas_colour_2025}]}% +\cite[Sec.~II~B)]{koutsioumpas_colour_2025}% % tex-fmt: on - \\ +]} \\ - \red{ - \textbf{General Notes:} - \begin{itemize} - \item Note that there are other codes than stabilizer codes - (and research and give some examples), but only - stabilizer codes are considered in this work - \item Degeneracy - \item The QEC decoding problem (considering degeneracy) - \cite[Sec.~2.3]{yao_belief_2024} - \end{itemize} - \textbf{Content:} - \begin{itemize} - \item Stabilizer codes - \begin{itemize} - \item syndrome extraction circuit - \item Stabilizer codes are effectively the QM - % TODO: Actually binary linear codes or - % just linear codes? - equivalent of binary linear codes (e.g., - expressible via check matrix) - \item Similar to parity checks, quantum states can be - more conveniently described using stabilizers - rather than working with the states directly - \cite[Sec.~10.5.1]{nielsen_quantum_2010} - \end{itemize} - \item Color codes? - \item Surface codes? - \end{itemize} - } +%%%%%%%%%%%%%%%% +\subsection{Decoding Quantum Codes} +\label{subsec:Decoding Quantum Codes} + +\noindent\indent\red{[The QEC decoding problem +\cite[Sec.~2.3]{yao_belief_2024}]} \\ +\indent\red{[+ Degeneracy]} \\ +\indent\red{[+ Short cycles]} \\ +\indent\red{[Fixing the error after finding it + \cite[Sec.~10.5.5]{nielsen_quantum_2010} -> This +may require introducing the gates as unitary]} diff --git a/src/thesis/main.tex b/src/thesis/main.tex index a86beb1..95c77ca 100644 --- a/src/thesis/main.tex +++ b/src/thesis/main.tex @@ -30,6 +30,8 @@ \renewcommand{\todo}[2][]{\tikzexternaldisable\@todo[#1]{#2}\tikzexternalenable} \makeatother +\setcounter{MaxMatrixCols}{20} + % % % Custom commands