\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}

    \begin{itemize}
        \item Some (physical) problems are classically hard to solve.
        %\pause
        \item The quantum simulator: Mapping a hard problem to quantum hardware that can simulate this specific problem.
        %\pause
        \item The (universal) quantum computer: able to simulate any unitary transformation on the system.
    \end{itemize}

\end{frame}
}

{
\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}{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}.
    \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.
    }
    
    Where $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 SU(2^n)$ is called \textit{gate} acting on the system. 
            For $\bar{U} \in SU(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 SU(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 SU(2^n)$ can be approximated arbitrarely good 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 SU(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 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 SU(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 SU(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}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_01.png}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_02.png}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_02.png}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_03.png}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_03.png}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_04.png}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_04.png}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_05.png}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_05.png}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_06.png}
\end{frame}
}
{
\begin{frame}{Clearing VOPs: Example}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_01.png}
    \includegraphics[width=0.5\textwidth]{graphs/clear_vop_06.png}
\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}
    \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}
}

\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.
        }
    \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 $SU(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.
            }
        \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.
            }
    \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}
