bachelor_thesis/presentation/main_long.tex

1131 lines
40 KiB
TeX

\documentclass[10pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{amssymb, amsthm}
\usepackage{setspace}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{enumerate}
\usepackage{physics}
\usepackage{listings}
%\usepackage{struktex}
\usepackage{qcircuit}
\usepackage{adjustbox}
\usepackage{tikz}
\usetheme{metropolis}
\setbeamercolor{background canvas}{bg=white!20}
\title{An Efficient Quantum Computing Simulator using a Graphical Description for Many-Qbit Systems}
\subtitle{Simulation in the Stabilizer Formalism}
\author{Daniel Knüttel}
\date{21.02.2020}
\institute{Universität Regensburg}
\titlegraphic{\small\center Universität Regensburg\\
Faculty of the Institute of Theoretical Physics
\vspace{-11mm}\flushright\includegraphics[height=1.0cm]{logo.png}}
%\logo{\includegraphics[width=1cm]{logo.png}\hfill}
%\newcommand{\nologo}{\setbeamertemplate{logo}{}} % command to set the logo to nothing
%\newcommand{\congress}{Faculty of the Institute of Theoretical Physics}
%% footer
\makeatletter
\setbeamertemplate{footline}
{
%\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.9\paperwidth,ht=2.25ex,dp=1ex,left]{Faculty of the Institute of Theoretical Physics}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.1\paperwidth,ht=2.25ex,dp=1ex,right]{Faculty of the Institute of Theoretical Physics}%
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
\end{beamercolorbox}}%
}
\makeatother
\begin{document}
\maketitle
\section{Introduction}
{
\begin{frame}{Motivation: Exponentially Hard (Physical) Problems}
\begin{itemize}
\item{Some mathematical problems are exponentially hard to solve, for instance prime factorization.}
\item{Some physical systems are hard to observe or manipulate, relativistic fermions on a curved spacetime are
a typical example.}
\item{There exist several physical systems which are interesting to study but hard so simulate such as
QCD simulations at finite chemical potential or real time scattering amplitudes in QCD.}
\item{The exponential behaviour in time (and space) complexity brings classical supercomputers to their limits.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{The Quantum Simulator}
\begin{itemize}
\item{Mapping a system which is hard to observe and/or hard to manipulate to an analogous system.}
\item{A typical example is Graphene which has a band structure near the $K$ point similar to relativistic fermions.}
\item{Original idea from Feynman.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{The Universal Quantum Computer}
\begin{itemize}
\item{A quantum system to which any unitary transformation can be applied.}
\item{Any quantum system with sufficiently small hilbert space can be simulated.}
\item{Quantum algorithms such as the Phase Estimation Algorithm have physical applications.}
\item{Applications in other fields: Quantum AI, breaking encryption (via prime factorization), Quantum Search, ...}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Motivation: Using Quantum Computing for Physics}
\begin{itemize}
\item{Preparing ground states of non-perturbative systems by adiabatic
time evolution. Also works in QCD (arXiv:2001.11145v1).}
\item{Use algorithms such as Phase Estimation to analyze the spectrum
of a system.}
\item{Study the time evolution by applying the transfer matrix.}
\item{Compute trace formuli (arXiv:2001.11145v1).}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Challenges}
\begin{itemize}
\item{Many Hilbert space have non-finite dimension.}
\item{Choosing interesting subspaces can be hard.}
\item{Treating the rest of the Hilbert space can be hard.}
\item{Possible approach: Choose a subspace and treat the other subspace
as a bath (Andreas Hackl).}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Quantum Errors and Quantum Error Correction}
\begin{itemize}
\item Quantum systems at non-zero temperature often have dephasing effects and a finite population lifetime (relaxation).
%\pause
\item Fault tolerant QC needs a way to correct for those errors.
%\pause
\item Several strategies exist; one important class of quantum error correction codes are \textbf{stabilizer codes}.
\item{Parts of the theoretical description of quantum errors can be used for physical
problems (see above).}
\end{itemize}
\end{frame}
}
\section{Binary Quantum Computing}
{
\begin{frame}{Qbits}
\textbf{Definition}
{\itshape
A qbit is a two-level quantum mechanical system $\ket{0}, \ket{1}$ with $\braket{0}{1} = 0$.
In the following $Z = \sigma_Z, X = \sigma_X, Y = \sigma_Y$ will be used. $I$ is the identity matrix.
}
$\ket{0}, \ket{1}$ are the eigenkets of the $Z$ operator:
$Z\ket{0} = +1\ket{0}$ and $Z\ket{1} = -1\ket{1}$.
\end{frame}
}
{
\begin{frame}{Qbits and Gates}
\begin{itemize}
\item{
\textbf{Postulate}
{\itshape
A $n$-qbit system is the tensor product of the single-qbit systems.
}
}
%\pause
%\item{
% For $n$ qbits define the integer state $\ket{j}$ as
% \begin{equation}
% \ket{j} := \ket{\mbox{0b}i_0i_1...i_{n-1}} := \ket{i_0}_s \otimes \ket{i_1}_s \otimes ... \otimes \ket{i_{n-1}}_s
% \end{equation}
%}
\item{
A transformation $U \in U(2^n)$ is called \textit{gate} acting on the system.
For $\bar{U} \in U(2)$ the gate $U_i$ acting on qbit $i$ is given by
\begin{equation}
U_i := \left(\bigotimes\limits_{k < i} I\right) \otimes \bar{U} \otimes \left(\bigotimes\limits_{k > i} I\right)
\end{equation}
}
%\pause
\item{
For $\bar{U} \in U(2)$ and qbits $i \neq j$
\begin{equation}
CU_{i,j} := \ket{1}\bra{1}_j \otimes U_i + \ket{0}\bra{0}_j \otimes I
\end{equation}
is the controlled $\ket{U}$ gate acting on $i$ with control-qbit $j$.
}
%\pause
\end{itemize}
\end{frame}
}
{
\begin{frame}{Gates}
Some notable gates are
\begin{itemize}
\item{
the Hadamard gate
\begin{equation}
H := \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 & 1 \\ 1 & -1\end{array}\right)
\end{equation}
which transforms from the $Z$ to the $X$ basis}
%\pause
\item{the rotation gate
\begin{equation}
R_{\phi} := \left(\begin{array}{cc} 1 & 0 \\ 0 & \exp(i\phi)\end{array}\right)
\end{equation}
that performs a rotation around the $Z$ axis.}
%\pause
\end{itemize}
\end{frame}
}
{
\begin{frame}{Gates}
\begin{itemize}
\item{The $Z$ and $S$ gates are given by:
\begin{equation}
Z := \left(\begin{array}{cc} 1 & 0 \\ 0 & -1\end{array}\right) = R_{\pi}
\end{equation}
\begin{equation}
S := \left(\begin{array}{cc} 1 & 0 \\ 0 & i\end{array}\right) = R_{\frac{\pi}{2}}
\end{equation}
The $S$ gate transforms from $X$ to $Y$ basis.
}
%\pause
\item{
\textbf{Theorem}
{\itshape
Any gate $U \in U(2^n)$ can be generated using the $H$, $R_\phi$
and $CZ_{i,j}$ gate.
}
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Integer States}
\begin{itemize}
\item{
The eigenstates of the $Z_i$ are called integer states. They have the form
\begin{equation}
\ket{j} = \ket{\mbox{0b}l_1...l_n} = \ket{l_1}_s \otimes ... \otimes \ket{l_n}s
\end{equation}
}
%\pause
\item{
For $n$ qbits there exist $2^n$ such states and they form a basis
\begin{equation}
\ket{\psi} = \sum\limits_{i=0}^{n-1} \ket{i}\braket{i}{\psi} = \sum\limits_{i=0}^{n-1} c_i\ket{i}
\end{equation}
with the condition $\sum\limits_{i=0}^{n-1} c_i^2 = 1$.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Measurement}
\begin{itemize}
\item{Measurements are performed in $Z$ basis, i.e. for a qbit $i$
$Z_i$ is measured.
}
\item{
The results of the measurements are associated with a classical result $s \in \{0, 1\}$
using
\begin{equation}
Z_i\ket{\psi'} = (-1)^s \ket{\psi'}
\end{equation}
after the measurement.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Quantum Circuits}
\begin{itemize}
\item{
Writing a unitary transformation as a product of the generator gates is unreadable.
To fix this problem quantum circuits have been introduced.
}
%\pause
\item{
Qbits are represented by horizontal lines.
}
%\pause
\item{
Gates acting on a qbit are boxes on the lines.
}
%\pause
\item{
Control-qbits are connected to the gate via a vertical line.
}
%\pause
\item{
Circuits are read left to right.
}
%\pause
\item{
Example:
\Qcircuit @C=1em @R=.7em {
& \gate{H} & \ctrl{1} & \qw &\qw \\
& \gate{H} & \gate{Z} & \gate{H} &\qw \\
}
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Case Study: Spin Chain in a Magnetic Field}
\begin{itemize}
\item{
For a set of $n$ spins in a magnetic field one can rescale the Hamiltonian
of the system to
\begin{equation}
H = -\sum\limits_{i=1}^{n-1} Z_i Z_{i-1} + g\sum\limits_{i=0}^{n-1} X_i
\end{equation}
}
%\pause
\item{
The time evolution of such a system is given by the transfer matrix
\begin{equation}
T := \exp(-itH) \in U(2^n)
\end{equation}
}
%\pause
\item{
By associating every qbit with one spin (both are two-level systems)
one should be able to simulate the behaviour of the spin chain using
a quantum computer.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Case Study: Spin Chain in a Magnetic Field}
\begin{itemize}
\item{
Trotterizing the matrix exponential
\begin{equation}
\exp(t(A + B)) = \left(\exp(\frac{t}{N}A)\exp(\frac{t}{N}B)\right)^N + \mathcal{O}\left(\frac{t^2}{N^2}\right)
\end{equation}
}
\item{
For $n=3$ spins one gets a circuit
{\centering\adjustbox{max width=\textwidth}{
\Qcircuit @C=1em @R=.7em {
& \qw & \gate{X} & \gate{R_{-\frac{t}{2N}}} & \gate{X} & \gate{R_{\frac{t}{2N}}} & \gate{X} & \gate{X} & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \gate{H} & \gate{R_{-2\frac{gt}{2N}}} & \gate{H} & \gate{R_{\frac{gt}{2N}}} & \gate{X} & \gate{R_{\frac{gt}{2N}}} & \gate{X} & \gate{X} & \gate{R_{-\frac{t}{2N}}} & \gate{X} & \gate{R_{\frac{t}{2N}}} & \gate{X} & \gate{X} & \qw & \qw & \qw & \qw & \qw & \qw & \qw &\qw \\
& \qw & \ctrl{-1} & \qw & \qw & \qw & \qw & \ctrl{-1} & \qw & \gate{X} & \gate{R_{-\frac{t}{2N}}} & \gate{X} & \gate{R_{\frac{t}{2N}}} & \gate{X} & \gate{X} & \gate{H} & \gate{R_{-2\frac{gt}{2N}}} & \gate{H} & \gate{R_{\frac{gt}{2N}}} & \gate{X} & \gate{R_{\frac{gt}{2N}}} & \gate{X} & \ctrl{-1} & \qw & \qw & \qw & \qw & \ctrl{-1} & \qw & \gate{X} & \gate{R_{-\frac{t}{2N}}} & \gate{X} & \gate{R_{\frac{t}{2N}}} & \gate{X} & \gate{X} &\qw \\
& \qw & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \ctrl{-1} & \qw & \qw & \qw & \qw & \ctrl{-1} & \gate{H} & \gate{R_{-2\frac{gt}{2N}}} & \gate{H} & \gate{R_{\frac{gt}{2N}}} & \gate{X} & \gate{R_{\frac{gt}{2N}}} & \gate{X} & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \ctrl{-1} & \qw & \qw & \qw & \qw & \ctrl{-1} &\qw \\
}
}}
}
\item{Applying this circuit $N$ times gives an approximation for the time evolution of a state.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Case Study: Spin Chain in a Magnetic Field}
\begin{figure}[h]
\begin{center}
\includegraphics[width=\linewidth]{spin_chain/time_evo_6spin_g3.png}
\end{center}
\end{figure}
\end{frame}
}
\section{Stabilizers}
{
\begin{frame}{The Gottesman-Knill Theorem}
\begin{itemize}
\item{When restriciting the $R_\phi$ gate to $\phi = \frac{\pi}{2}$
many states can still be simulated.}
\item{\textbf{Theorem}(\textit{Gottesman-Knill}):
All states that can be reached using $H, S, CZ$ and measurements
starting from the $\ket{0}^{\otimes n}$ state can be
simulated and sampled efficiently, i.e. in $\mbox{poly}(n, m)$ time
where $m$ is the amount of gates/measurements.}
\item{Note that a general state has $2^n$ complex coefficients.
Computing operations on this state is therefore exponentially hard in
$n$.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{The multilocal Pauli Group and the Clifford Group}
\begin{itemize}
\item{\textbf{Definition}
{\itshape
$P := \{\pm1X, \pm1Y, \pm1Z, \pm1I, \pm iX, \pm iY, \pm iZ, \pm iI\}$ (with the matrix product)
is called the Pauli group.\\
$P_n := \left\{p_1 \otimes ... \otimes p_n \middle| p_i \in P \right\}$ is called the multilocal Pauli group.
}}
%\pause
\item{
\textbf{Definition}
{\itshape
$C_n := \left\{U \in U(2^n) \middle| \forall p \in P_n: U^\dagger p U \in P_n\right\}$
is called the Clifford group
}
}
%\pause
\item{
One can show that $C_n$ is generated by $H, S, CZ_{i,j}$.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Generators of a Group}
\begin{itemize}
\item{
\textbf{Definition}
{\itshape
For a finite group $G$ one says $G$ is generated by $g_1, ..., g_N$ iff any $g \in G$ can be expressed
as a product of $g_1, ..., g_N$. These generators are chosen to be the minimal set for which this
condition holds.
One also writes
\begin{equation}
G = \langle g_1,...,g_N \rangle \equiv \langle g_i\rangle_i
\end{equation}
}
}
\item{
The generators are not unique. For instance $C_1$ can be generated using $H, S$ or $\sqrt{-iX}, \sqrt{iZ}$.
}
%\pause
\item{
The generators of a group have some kind of independence property.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Stabilizers and Stabilizer Spaces}
\begin{itemize}
\item{
\textbf{Definition}
{\itshape
A finite abelian subgroup $S$ of $P_n$ is called a set of stabilizers iff $-I \notin S$ and
all elements of $S$ commute.
}
}
\item{
From $-I \notin S$ follows that all elements of $S$ are hermitian.
}
\item{
From the definition as tensor products of Pauli matrices follows that the
elements of $S$ have eigenvalues $\pm1$.
}
\item{
These properties together yield that all elements of $S$ can be diagonalized simultaneously.
Further there exists a vector space $V_S$ with $s \ket{\psi} = +1 \ket{\psi}$ for all $s \in S$
and all $\ket{\psi} \in V_S$. This space is called the stabilizer space of $S$
and all $\ket{\psi}$ are called stabilizer states.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Stabilizer States}
\begin{itemize}
\item{
One can show that for $S = \langle S^{(i)} \rangle_{i=1,...,n}$ the stabilizer space $V_S$
has dimension $1$.
}
\item{
Therefore the state $\ket{\psi}$ that is the +1 eigenstate of all stabilizers is (up to a
global phase) unique.
}
\item{Notable stabilizer states are:
\begin{itemize}
\item{ $\ket{0b0..0} = \ket{0}\otimes ... \otimes \ket{0}$ and $\ket{0b1..1} = \ket{1}\otimes ... \otimes \ket{1}$
which are stabilized by $\langle Z_i \rangle_i$ and $\langle -Z_i \rangle_i$ respectively.
}
\item{
$\ket{+}$ stabilized by $\langle X_i \rangle_i$ (and $\ket{-}$ analogously).
}
\item{
$\frac{\ket{0b00} + \ket{0b11}}{\sqrt{2}}$ the Bell/EPR state which is stabilized by $\langle X_1X_2, Z_1Z_2\rangle$.
}
\end{itemize}
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Dynamics of Stabilizer States}
\begin{itemize}
\item{
Under a transformation $U \in U(2^n)$ the state changes to
\begin{equation}
\ket{\psi'} = U \ket{\psi}
\end{equation}
}
\item{
The stabilizers of $\ket{\psi}$ change to
\begin{equation}
\ket{\psi'} = U\ket{\psi} = US^{(i)}\ket{\psi} = US^{(i)}U^\dagger U\ket{\psi} = US^{(i)}U^\dagger\ket{\psi'}
\end{equation}
using this it is clear that for $U \in C_n$ the state $\ket{\psi'}$ is a stabilizer state again with the stabilizers
$S' = \langle US^{(i)}U^\dagger\rangle_{i=1,...,n}$
}
\item{
Under the transformations $C_n$ one can describe the dynamics of the stabilizer states by their
stabilizers.
}
\item{Because the stabilizers are given by $n$ matrices which are the tensor product of $n$ Pauli matrices
this can be simulated in $\mathcal{O}\left(n^2\right)$ time instead of $\mathcal{O}\left(2^n\right)$.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Measurements on Stabilizer States}
\begin{itemize}
\item{
Consider a Pauli observable $g_a \in \{(-1)^s X_a, (-1)^s Y_a, (-1)^s Z_a\}$ and the projector
onto its eigenspace $\frac{I + g_a}{2}$.
}
\item{If $g_a$ commutes with all $S^{(i)}$ the observable $g_a$ is diagonal in this basis and
the stabilizer state $\ket{\psi}$ is the $+1$ eigenstate of $g_a$. Therefore the measurement is
deterministic and the stabilizers remain unchanged.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Measurements on Stabilizer States}
\begin{itemize}
\item{If $g_a$ does not commute with all stabilizers $A := \left\{S^{(i)} \middle| \left[g_a, S^{(i)}\right] \neq 0\right\}$
is the set of stabilizers that anticommute with $g_a$.}
\item{
To compute the probability to measure a result of $s=0$ one can use the trace formula
\begin{equation}
\begin{aligned}
P(s=0) &= \left|\Tr(\frac{I + g_a}{2} \ket{\psi}\bra{\psi})\right| \\
&= \left|\Tr(\frac{I + g_a}{2} S^{(j)} \ket{\psi}\bra{\psi})\right| \\
&= \left|\Tr(S^{(j)}\frac{I - g_a}{2} \ket{\psi}\bra{\psi})\right| \\
&= \left|\Tr(\frac{I - g_a}{2} \ket{\psi}\bra{\psi})\right| \\
&= P(s=1)\\
\end{aligned}
\end{equation}
where $S^{(j)} \in A$. The stabilizer $S^{(j)}$ pulled to the right using the cyclic property of the
trace and absorbed into the $\bra{\psi}$.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Measurements on Stabilizer States}
\begin{itemize}
\item{As the stabilizers and the observable are both multilocal Pauli operators
they either commute or anticommute.}
\item{Let $S^{(i)}, S^{(j)} \in A$ then
\begin{equation}
\begin{aligned}
\ket{\psi'} &= \frac{I + g_a}{2} \ket{\psi}\\
&= \frac{I + g_a}{2}S^{(i)}S^{(j)}\ket{\psi}\\
&= S^{(i)}\frac{I - g_a}{2}S^{(j)}\ket{\psi}\\
&= S^{(i)}S^{(j)}\frac{I + g_a}{2}\ket{\psi}.\\
\end{aligned}
\end{equation}
I.e. the new state is stabilized by the product $S^{(i)}S^{(j)}$.}
\item{
This yields that the new state is stabilized by
\begin{equation}
\langle \{g_a\} \cup \{S^{(j)}S^{(i)} | S^{(i)} \in A \setminus \{S^{(j)}\} \rangle.
\end{equation}
}
\end{itemize}
\end{frame}
}
\section{Graphical Description of Stabilizer States}
{
\begin{frame}{Graphs}
\begin{itemize}
\item{\textbf{Definition}
{\itshape
The tuple $(V, E)$ is called a graph iff $V$ is a set of vertices with $|V| = n \in \mathbb{N}$ elements.
In the following $V = \{0, ..., n-1\}$ will be used.
$E$ is the set of edges $E \subset \left\{\{i, j\} \middle| i,j \in V, i \neq j\right\}$.
}}
\item{
Example for a valid graph:\\
\includegraphics[width=\linewidth,height=0.5\textheight,keepaspectratio]{graphs/valid_graph.png}
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{ VOP-free Graph States}
\begin{itemize}
\item{\textbf{Definition}
{\itshape
For $G = (V,E)$, $i \in V$ define
\begin{equation}
K_G^{(i)} := X_i \prod\limits_{\{i,j\} \in E} Z_j
\end{equation}
the stabilizers associated with the graph $G$.
}}
\item{
The state stabilized by all $K_G^{(i)}$ is
\begin{equation}
\ket{\bar{G}} = \prod\limits_{\{i,j\} \in E} CZ_{i,j} \ket{+}.
\end{equation}
This state is called vertex operator-free (VOP-free) graph state.
}
\item{
Applying a $CZ_{i,j}$ gate toggles the edge $\{i,j\}$ in $E$.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Dynamics of VOP-free Graph States}
\begin{itemize}
\item{
For $a \in V$ the transformation
\begin{equation}
M_a := \sqrt{-iX_i} \prod\limits_{\{i,j\} \in E} \sqrt{iZ_j}
\end{equation}
toggles the neighbourhood $n_a := \left\{ j \middle| \{a,j\} \in E\right\}$
of $a$. I.e. it toggles the edges $n_a \otimes n_a$.
}
\item{
Many Clifford operations cannot be described by the VOP-free graph states.\\
Example:
\begin{equation}
\begin{aligned}
&G = \left(\{0, 1\}, \{\}\right)\\
&\ket{\bar{G}} = \ket{+}\\
&U = H_0H_1 \\
&U \ket{\bar{G}} = \ket{\mbox{0b}00}\\
\end{aligned}
\end{equation}
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Graph States}
\begin{itemize}
\item{\textbf{Definition}
{\itshape
$(V, E, O)$ is called a graph with vertex operators (VOPs) iff $(V,E)$ is a
graph as in the definition above and $O = (o_1, ..., o_n)$ where
the $o_i \in C_1$.
The Stabilizers are given by
\begin{equation}
\left(\bigotimes\limits_{i} o_i\right) K_G^{(i)} \left(\bigotimes\limits_{i} o_i\right)^\dagger
\end{equation}
and the stabilizer state is
\begin{equation}
\ket{G} = \left(\bigotimes\limits_{i} o_i\right) \ket{\bar{G}}.
\end{equation}
}}
\item{One can show that there exist $24$ local Clifford gates. Therefore $O$
can be represented by $n$ integers from $0$ to $23$.}
\item{It is clear that any single qbit Clifford gate changes the VOPs
to $o_i \rightarrow c_i o_i$.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{The $CZ$ Gate on Graph States}
\begin{itemize}
\item{As it is clear how local Clifford gates act on a graph state it is
enough to show how a $CZ$ gate acts on the graph states to proof that
any Clifford gate can be applied to a graph state.}
\item{Consider the gate $CZ_{a,b}$ for $a,b \in V$.}
\item{If $CZ_{a,b}$ commutes with $o_a$ and $o_b$ the gate just toggles the edge
$\{a,b\}$ in $E$.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{$CZ$ on Two Qbits}
\begin{itemize}
\item{If the vertices are a clique (i.e. are connected only to each other) or
are isolated they separate from the rest of the state. In this case
one can consider just the space of two qbits.
}
\item{
The amount of stabilizer states on these two qbits is finite. An upper bound
is given by $2\cdot24^2$, i.e. $24$ Clifford operators on each vertex and
the graph with or without and edge.
}
\item{All those states and the result after applying a $CZ$ gate can be
computed.}
\item{If one vertex has the VOP $I$ the result can be chosen
such that the VOP remains $I$.}
\item{This is used to implement the $CZ$ on isolated (or 2-clique) vertices.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Clearing Vertex Operators}
\begin{itemize}
\item{Recalling the transformation $M_a$ it is clear that the
graph state $\ket{G}$ is invariant under this transformation:
\begin{enumerate}[1]
\item Toggle the neighbourhood of $a$.
\item Right-multiply $M_a^\dagger$ to the VOPs.
\end{enumerate}
This transformation is called $L_a$.
}
\item{Using $\sqrt{-iX}$ and $\sqrt{iZ}$ as generators of $C_1$ one can
express any VOP as a product of $\sqrt{-iX},\sqrt{iZ}$.}
\item{Let the vertex $a$ have a neighbour $j \neq b$, then the VOP
on $a$ can be reduced to the identity by moving from right to left through the
product and applying $L_a$ for a $\sqrt{-iX}$ and $L_i$ for a $\sqrt{iZ}$.}
\item{Any vertex $j \in n_a \setminus \{i\}$ picks up powers of $\sqrt{iZ}$ during this
operation. As $\sqrt{iZ}$ commutes with $CZ$ this is no problem.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Clearing Vertex Operators to Apply a $CZ$}
\begin{itemize}
\item{The VOP on $a$ ($b$) can be cleared if $a$ ($b$) has at least one
neighbour that is not $b$ ($a$).}
\item{To apply a $CZ_{a,b}$ use the following algorithm to clear the
VOPs as much as possible:
\begin{enumerate}[1]
\item Try to clear the VOP of $a$.
\item{ Try to clear the VOP on $b$.}
\item{If the VOP of $a$ wasn't clear yet, try to clear it again.}
\end{enumerate}
}
\item{After this procedure it is certain that at least one VOP is $I$
and possibly both VOPs commute with $CZ$. If they both commute
applying the $CZ$ is done by toggling the edge $\{a,b\}$.
}
\item{If one VOP does not commute with $CZ$ this vertex is either isolated
or connected to the other operand vertex only. One can show that the
two qbit $CZ$ method can be applied here if the identity on the vertex
connected to the rest of the graph is preserved.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\begin{itemize}
\item{Vertex operators are represented by an integer; most of the VOPs are not important.}
\item{Some notable VOPs are $0 = H$, $1 = S$, $2 = I$, $19 = \sqrt{iZ}^2\sqrt{-iX}^3$.}
\item{
\includegraphics[width=0.5\textwidth]{graphs/clear_vop_01.png}
Clearing the VOP on vertex $1$ uses the transformation $La(1) La(1) La(1) La(2) La(2)$.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_01.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$19 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & \frac{\sqrt{2} i}{2}\\- \frac{\sqrt{2} i}{2} & - \frac{\sqrt{2}}{2}\end{matrix}\right]$\\
$19 = \sqrt{iZ}^2\sqrt{-iX}^3$
\end{minipage}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_02.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$ 21 = \left[\begin{matrix}0 & -1\\1 & 0\end{matrix}\right]$\\
$ 21 = \sqrt{iZ}^2\sqrt{-iX}^2$
\end{minipage}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_02.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$ 21 = \left[\begin{matrix}0 & -1\\1 & 0\end{matrix}\right]$\\
$ 21 = \sqrt{iZ}^2\sqrt{-iX}^2$
\end{minipage}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_03.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$11 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & - \frac{\sqrt{2} i}{2}\\\frac{\sqrt{2} i}{2} & - \frac{\sqrt{2}}{2}\end{matrix}\right]$\\
$11 = \sqrt{iZ}^2\sqrt{-iX}$
\end{minipage}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_03.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$11 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & - \frac{\sqrt{2} i}{2}\\\frac{\sqrt{2} i}{2} & - \frac{\sqrt{2}}{2}\end{matrix}\right]$\\
$11 = \sqrt{iZ}^2\sqrt{-iX}$
\end{minipage}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_04.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$5 = \left[\begin{matrix}1 & 0\\0 & -1\end{matrix}\right]$\\
$5 = \sqrt{iZ}^2$
\end{minipage}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_04.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$5 = \left[\begin{matrix}1 & 0\\0 & -1\end{matrix}\right]$\\
$5 = \sqrt{iZ}^2$
\end{minipage}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_05.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$ 7 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & - \frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\end{matrix}\right]$\\
$7 = \sqrt{iZ}$
\end{minipage}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_05.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$ 7 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & - \frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\end{matrix}\right]$\\
$7 = \sqrt{iZ}$
\end{minipage}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_06.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$2 = \left[\begin{matrix}1 & 0\\0 & 1\end{matrix}\right]$\\
\end{minipage}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_01.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$19 = \left[\begin{matrix}\frac{\sqrt{2}}{2} & \frac{\sqrt{2} i}{2}\\- \frac{\sqrt{2} i}{2} & - \frac{\sqrt{2}}{2}\end{matrix}\right]$\\
$19 = \sqrt{iZ}^2\sqrt{-iX}^3$
\end{minipage}
\noindent\begin{minipage}{0.5\textwidth}
\includegraphics[width=\textwidth]{graphs/clear_vop_06.png}
\end{minipage} \hfill
\begin{minipage}{0.4\textwidth}
Vertex operator \\
$2 = \left[\begin{matrix}1 & 0\\0 & 1\end{matrix}\right]$
\end{minipage}
\end{frame}
}
{
\begin{frame}{Measurements on Graph States}
\begin{itemize}
\item{When measuring $Z_a$ the projector $P_a := \frac{I \pm Z_a}{a}$ can be
pulled behind the vertex operator $o_a$ by transforming the observable:
\begin{equation}
\begin{aligned}
P_a \ket{G} &= \left(\prod\limits_{i \neq a} o_i\right) P_a o_a \ket{\bar{G}} \\
&= \left(\prod\limits_{i \neq a} o_i\right) o_a o_a^\dagger P_a o_a \ket{\bar{G}} \\
&= \left(\prod\limits_{i} o_i \right) \tilde{P}_a \ket{\bar{G}}\\
\end{aligned}
\end{equation}
With a new projector $\tilde{P}_a = \frac{I + g_a}{2}$.
}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Measurements on Graph States}
\begin{itemize}
\item{The anticommuting stabilizers are given by
\begin{itemize}
\item{$A_X = \{K_G^{(i)} | i \in n_a\}$ for $g_a = \pm X_a$,}
\item{$A_Y = \{K_G^{(i)} | i \in n_a \cup \{a\}\}$ for $g_a = \pm Y_a$ and}
\item{$A_Z = \{K_G^{(a)}\}$ for $g_a = \pm Z_a$.}
\end{itemize}}
\item{This can be used to compute the probability amplitudes and update $(G,V,E)$ after
the measurement.}
\end{itemize}
\end{frame}
}
\section{Implementation and Performance}
{
\begin{frame}{Implementation}
\center
\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio=true]{screenshot_github.png}
\end{frame}
}
{
\begin{frame}{Implementation}
\begin{itemize}
\item{Both a dense vector simulator and a simulator using the graphical
representation have been implemented in the \lstinline{python3} package
\lstinline{pyqcs}.}
\item{To increase simulation efficiency the core of both simulators has been
implemented in \lstinline{C}.}
\item{The dense vector states are stored in \lstinline{numpy} arrays.}
\item{The graph is stored in an length $n$ array of linked lists. The vertex operators
are stored in a \lstinline{uint8_t} array.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Performance: Dense Vector vs. Graphical Representation}
\includegraphics[width=\textwidth]{../performance/scaling_qbits_linear.png}
\end{frame}
}
{
\begin{frame}{Performance: Dense Vector vs. Graphical Representation}
\includegraphics[width=\textwidth]{../performance/scaling_qbits_log.png}
\end{frame}
}
{
\begin{frame}{Performance: Circuit Length on Graphical Representation}
\includegraphics[width=\textwidth]{../performance/regimes/scaling_circuits_linear.png}
\end{frame}
}
{
\begin{frame}{Performance: Circuit Length on Graphical Representation}
\begin{itemize}
\item{There seem to be three regimes: Low-linear regime, intermediate regime and high-linear regime.}
\item{In the low-linear regime only few VOPs have to be cleared.
The length of this regime increases with the number of qbits.
}
\item{In the high-linear regime the neighbourhoods are big; the probability that VOPs
must be cleared is high. Clearing VOPs involves many vertices.}
\item{The intermediate is dominated by growing neighbourhoods $\Rightarrow$
no linear behaviour.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Graph in the Low-Linear Regime}
\includegraphics[width=\textwidth]{../thesis/graphics/graph_low_linear_regime.png}
\end{frame}
}
{
\begin{frame}{Window in a Graph in the Intermediate Regime}
\includegraphics[width=\textwidth]{../thesis/graphics/graph_intermediate_regime_cut.png}
\end{frame}
}
{
\begin{frame}{Window in a Graph in the High-Linear Regime}
\includegraphics[width=\textwidth]{../thesis/graphics/graph_high_linear_regime_cut.png}
\end{frame}
}
{
\begin{frame}{Performance: Circuit Length on Graphical Representation}
\begin{itemize}
\item{Pauli measurements reduce entanglement entropy.}
\item{Pauli measurements reduce the amount of edges in the graph.}
\item{When adding measurement to the random circuits the regimes
do not show up.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Performance: Circuit Length on Graphical Representation}
\includegraphics[width=\textwidth]{../performance/regimes/scaling_circuits_measurements_linear.png}
\end{frame}
}
\section{Conclusion and Outlook}
{
\begin{frame}{Properties of Stabilizer States}
\begin{itemize}
\item{Stabilizer states support entanglement; One example is the Bell state $\frac{\ket{\mbox{0b}00} + \ket{\mbox{0b}11}}{\sqrt{2}}$.}
\item{Some forms of superposition exist in the stabilizer formalism.}
\item{Stabilizer states and their dynamics (including measurement) can be simulated exponentiallly faster than dense state vectors.}
\end{itemize}
\end{frame}
}
{
\begin{frame}{Non-Universality}
\begin{itemize}
\item{Recalling the discussion around measurement in the stabilizer formalism
only probability amplitudes $0, \frac{1}{2}, 1$ are possible for any Pauli
observable.}
\item{As seen in the example simulation of a spin chain other probability amplitudes
are important and particularely interesting.}
\item{Only few unitaries and states can be simulated.}
\item{The stabilizers have lost the vector space property:
only special superpositions are allowed.}
\end{itemize}
\end{frame}
}
{
{
\begin{frame}{Possible Ways of Extending the Formalism I}
\begin{itemize}
\item{One possible way would be to use more qbits to increase the
amount of possible measurement outcomes.}
\item{One could describe the evolution of a general hermitian unitary
by expressing it as a sum of multilocal Pauli operators. Applying
non-Clifford gates would reintroduce exponential growth.
}
\item{Expressing a non-stabilizer state as a sum of stabilizer states
and computing their time evolution under Clifford gates might
be possible. Handling relative phases to ensure interference is
correct may require special care.}
\end{itemize}
\end{frame}
}
\begin{frame}{Possible Ways of Extending the Formalism II}
\begin{itemize}
\item{The reason why the multilocal Pauli operators can be stored
so efficiently is that they are the tensor product of $U(2)$ matrices.}
\item{
A key property of the Clifford group is that it preserves this feature:
multilocal Pauli operators are mapped to multilocal Pauli operator, the
result is a tensor product again. The Clifford group is the Normalizer of
the multilocal Pauli group.
}
%\item{One interesting way to search for new/other states and circuits that can
% be simulated efficiently would be to check what hermitian matrices
% are tensor products of single qbit matrices and what operations would
% preserve this property.
% }
\item{The Stabilizer Formalism has since been generalized to finite
Abelian groups over the Hilbert space. The Clifford gates are generalized
to normalizers.}
\end{itemize}
\end{frame}
}
%{
%\begin{frame}{Possible Ways of Extending the Formalism II}
% \begin{itemize}
% \item{Single qbit gates will always preserve the tensor product property:
% \begin{equation}
% g_i' = U_k g_i U_k^\dagger = \left(\bigotimes\limits_{j<k} g_{i,j}\right) \otimes Ug_{i,k}U^\dagger \otimes \left(\bigotimes\limits_{j>k} g_{i,j}\right)
% \end{equation}
% }
% \item{It would probably be enough to search for matrices $g_1, g_2$
% for which
% \begin{equation}
% \langle CX_{1,2} (g_1 \otimes g_2) CX_{1,2}\rangle = \langle g_1' \otimes g_2'\rangle
% \end{equation}
% holds. The Pauli matrices are one group that fulfills this property.
% }
%
% \item{It is not immideately clear how measurement would work.}
%
% \end{itemize}
%\end{frame}
%}
\end{document}