\documentclass[10pt]{beamer} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{amssymb, amsthm} \usepackage{setspace} \usepackage{amsmath} \usepackage{hyperref} \usepackage{url} \usepackage{geometry} \usepackage{enumerate} \usepackage{physics} \usepackage{listings} %\usepackage{struktex} \usepackage{qcircuit} \usepackage{adjustbox} \usepackage{tikz} \usepackage{calc} \usetikzlibrary{calc} \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 Graph 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}} \newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};} \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}}% } \NewDocumentCommand{\DrawBox}{s O{}}{% \tikz[overlay,remember picture]{ \IfBooleanTF{#1}{% \coordinate (RightPoint) at ($(left |- right)+(\linewidth-\labelsep-\labelwidth,0.0)$); }{% \coordinate (RightPoint) at (right.east); }% \draw[black,#2] ($(left)+(-0.2em,0.9em)$) rectangle ($(RightPoint)+(0.2em,-0.3em)$);} } \makeatother \begin{document} \maketitle \section{Introduction} { \begin{frame}{Motivation: Exponentially Hard (Physical) Problems} \begin{itemize} \item{Some mathematical problems cannot be solved in polynomial time, for instance prime factorization.} \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 Universal Quantum Computer} \begin{itemize} % 2^n complex vector, arbitrary unitary, measurements \item{A universal quantum computer is a $2^n$ dimensional complex vector to which any unitary can be applied with a quantum mechanical measurement process.} \item{Algorithms using the exponentially large Hilbert space can solve some classically exponentially hard problems in polynomial time.} \end{itemize} \end{frame} } { \begin{frame}{Motivation: Using Quantum Computing for Physics} \begin{itemize} % Literaturübersicht. \item{ Possible applications of quantum computing include: \begin{itemize} \item{Preparing ground states of non-perturbative systems by adiabatic time evolution (\textit{https://www.scottaaronson.com/qclec/26.pdf}).\\ Also works in QCD (\textit{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 (\textit{see later}).} \item{Compute trace formuli (\textit{arXiv:2001.11145v1}).} \end{itemize} } % Future use & current use. % (Tensor networks) \item{ In the near future only small and noisy machines will be available. Some Hilbert spaces have infinite dimension (bosonic states). Two main strategies exist to deal with this problem: \begin{itemize} \item{Selecting a physically interesting subspace. % (tensor networks) } \item{Dividing the Hilbert space in system and bath, treating the bath statistically (\textit{Andreas Hackl}).} \end{itemize} } \item{ Long Term: Fault tolerant computing. } \end{itemize} \end{frame} } \section{Binary Quantum Computing} { \begin{frame}{One Qbit} \begin{itemize} \item{One qbit has the Hilbert space $\mathcal{H}$ with basis vectors $\ket{0}$, $\ket{1}$.} \item{The Pauli matrices $X, Y, Z$ are gates commonly used. $X$ is also called the $NOT$ gate as it maps $\ket{0}$ to $\ket{1}$ and vice versa. } \item{The Hadamard gate $H = \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 & 1 \\ 1 & -1\end{array}\right)$ transforms from Pauli $Z$ to $X$ basis.} \item{The $R_\phi = \left(\begin{array}{cc} 1 & 0 \\ 0 & \exp(i\phi)\end{array}\right)$ gate rotates a state vector around the $Z$ axis.} \item{The $R_{\frac{\pi}{2}}$ gate transforms from $X$ to $Y$ basis.} \end{itemize} \end{frame} } { \begin{frame}{Universal Gates} \begin{itemize} \item{A quantum computer should be able to simulate any unitary on $\mathcal{H}^{\otimes n}$ the $n$ qbit Hilbert space.} \item{Similarly to classical computers a universal set of operations is required.} \item{\tikzmark{left}One can show that any unitary acting on $\mathcal{H}^{\otimes n}$ can be generated using the $CX$ and universal gates acting on $\mathcal{H}$ with \begin{equation} CX_{i,j} = \ket{0}\bra{0}_j \otimes I_i + \ket{1}\bra{1}_j \otimes X_i. \end{equation} } \item{The gates $\{H, R_\phi\}$ are universal on $\mathcal{H}$.\hfill\tikzmark{right}} \end{itemize} \DrawBox \end{frame} } { \begin{frame}{Measurements and Computational Hardness} \begin{itemize} \item{When measuring a qbit $i$ the observable $Z_i$ is measured.} \item{Operations on the $2^n$ dimensional state will have to update $2^n$ complex coefficients. This cannot be performed in $\mbox{poly}(n)$ time.} \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} \begin{aligned} \exp(t(A + B)) &= \left(\exp(\frac{t}{2N}A)\exp(\frac{t}{N}B)\exp(\frac{t}{2N}A)\right)^N \\ & + \mathcal{O}\left(\frac{t^3}{N^3}\right)\\ \end{aligned} \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, R_\frac{\pi}{2}, CZ$ and measurements starting from the $\ket{0}^{\otimes n}$ state can be \textbf{simulated} and \textbf{sampled efficiently on a classical computer}, i.e. in $\mbox{poly}(n, m)$ time where $m$ is the amount of gates/measurements.} \end{itemize} \end{frame} } { \begin{frame}{The Gottesman-Knill Theorem} \begin{itemize} \item{Note that a general state has $2^n$ complex coefficients. Computing operations on this state is therefore exponentially hard in $n$.} \item{Note that using the $R_\phi$ is universal and $R_\frac{\pi}{4}$ allows rational approximations of universal gates.} \item{Restricting $\phi$ to $\frac{\pi}{2}$ allows the simulation of large numbers of qbits on a classical computer.\\ {\bf Goal of this project is to create a simulator that can simulate several thousand up to millions of qbits. }} \end{itemize} \end{frame} } { \begin{frame}{Graphical States} \begin{itemize} \item{ For a set of vertices $V = \{0, ..., n-1\}$, some edges $E \subset V \otimes V$, and local Clifford operators $O = \{o_0, ..., o_{n-1}\}$ the tuple $(V, E, O)$ is the graphical representation of a stabilizer state. } \item{The state associated with $(V, E, O)$ is given by \begin{equation} \ket{G} = \left(\bigotimes\limits_{i=0}^{n-1} o_i \right) \prod\limits_{\{i,j\} \in E} CZ_{i,j} \ket{+}^{\otimes n} \end{equation} where $\ket{+} = H\ket{0} = \frac{1}{\sqrt{2}}(\ket{0} + \ket{1})$. } \item{One can show that all stabilizer states can be brought into this form.} \item{For the derivation of the stabilizer and graphical states see my bachelor's thesis.} \end{itemize} \end{frame} } { \begin{frame}{Example: The $5$ Qbit EPR State} \begin{itemize} \item{Start from $\ket{0}^{\otimes n}$.} \item{Get to the state $\ket{\psi} = \frac{\ket{0}^{\otimes n} + \ket{1}^{\otimes n}}{\sqrt{2}}$.} \item{Use the circuit \\ \[ \Qcircuit @C=1em @R=.7em { & \gate{H} & \ctrl{1} & \qw & \ctrl{2} & \qw & \ctrl{3} & \qw & \ctrl{4} &\qw \\ & \qw & \gate{X} & \qw & \qw & \qw & \qw & \qw & \qw &\qw \\ & \qw & \qw & \qw & \gate{X} & \qw & \qw & \qw & \qw &\qw \\ & \qw & \qw & \qw & \qw & \qw & \gate{X} & \qw & \qw &\qw \\ & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \gate{X} &\qw \\ } \] } \item{The state has the form \begin{equation} \ket{\psi} = \left(\prod\limits_{1 < i < 5} CX_{i,0}\right) H_0 \ket{0}. \end{equation}} \end{itemize} \end{frame} } { \begin{frame}{Example: The $5$ Qbit EPR State} \begin{itemize} \item{$CX_{i,j} = H_i CZ_{i,j} H_i$.} \item{The new circuit is \[ \Qcircuit @C=1em @R=.7em { & \gate{H} & \ctrl{1} & \qw & \ctrl{2} & \qw & \ctrl{3} & \qw & \ctrl{4} & \qw &\qw \\ & \gate{H} & \gate{Z} & \qw & \qw & \qw & \qw & \qw & \qw & \gate{H} &\qw \\ & \gate{H} & \qw & \qw & \gate{Z} & \qw & \qw & \qw & \qw & \gate{H} &\qw \\ & \gate{H} & \qw & \qw & \qw & \qw & \gate{Z} & \qw & \qw & \gate{H} &\qw \\ & \gate{H} & \qw & \qw & \qw & \qw & \qw & \qw & \gate{Z} & \gate{H} &\qw \\ } \] } \item{Switching from starting state $\ket{0}^{\otimes n}$ to $\ket{+}^{\otimes n}$ gives the graphical representation.} \end{itemize} \end{frame} } { \begin{frame}{Example: The $5$ Qbit EPR State} \noindent\begin{minipage}{0.4\textwidth} \center \adjustbox{max width=\textwidth}{ \Qcircuit @C=1em @R=.7em { & \gate{H} & \ctrl{1} & \qw & \ctrl{2} & \qw & \ctrl{3} & \qw & \ctrl{4} &\qw \\ & \qw & \gate{X} & \qw & \qw & \qw & \qw & \qw & \qw &\qw \\ & \qw & \qw & \qw & \gate{X} & \qw & \qw & \qw & \qw &\qw \\ & \qw & \qw & \qw & \qw & \qw & \gate{X} & \qw & \qw &\qw \\ & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \gate{X} &\qw \\ } }\\ \begin{equation} \begin{aligned} \ket{\psi} &= \left(\prod\limits_{1 < i < 5} CX_{i,0}\right) H_0 \ket{0}^{\otimes n}\\ \end{aligned} \end{equation} \end{minipage} \hfill \begin{minipage}{0.5\textwidth} \center \includegraphics[width=\textwidth, height=\textheight, keepaspectratio=true]{example_graphs/graph_EPR_state.png} The graphical state with $E =\{\{0,1\}, \{0,2\}, \{0,3\}, \{0,4\}\}$ and $O = (I, H, H, H, H)$. \begin{equation} \begin{aligned} \ket{G} = \left(\prod\limits_{1 < i < 5} H_i\right) \left(\prod\limits_{1 < i < 5} CZ_{i,0}\right) \ket{+}^{\otimes n} \end{aligned} \end{equation} \end{minipage} \end{frame} } { \begin{frame}{Dynamics of Graphical States} \begin{itemize} \item{ \noindent\begin{minipage}{0.4\textwidth} Applying a local Clifford gate $U_i$ is trivial: Just the vertex operator is updated to $U o_i$. \end{minipage} \hfill \begin{minipage}{0.5\textwidth} \tikzmark{left}Apply $SH = R_{\frac{\pi}{2}}H$ to qbit $2$:\\ \includegraphics[width=\textwidth, height=\textheight, keepaspectratio=true]{example_graphs/graph_update_VOP.png}\tikzmark{right} \DrawBox \end{minipage} } \item{ \noindent\begin{minipage}{0.4\textwidth} If $o_a, o_b \in \{I, Z, R_\frac{\pi}{2}, R_\frac{\pi}{2}^\dagger\}$ applying a $CZ_{a,b}$ just toggles the edge $\{a,b\}$ in $E$.%: $E' = E \Delta \{\{a,b\}\}$. %With the symmetric set difference $\Delta$. \end{minipage} \hfill \begin{minipage}{0.5\textwidth} \tikzmark{left}Apply $CZ_{2,0}$:\\ \includegraphics[width=\textwidth, height=\textheight, keepaspectratio=true]{example_graphs/graph_apply_CZ.png}\hfill\tikzmark{right} \DrawBox \end{minipage} } \end{itemize} \end{frame} } { \begin{frame}{Dynamics of Graphical States} \begin{itemize} \item{ \noindent\begin{minipage}{0.4\textwidth} If the vertices $a, b$ are isolated the resulting state after applying $CZ_{a,b}$ can be precomputed. \end{minipage} \hfill \begin{minipage}{0.5\textwidth} \tikzmark{left}Before:\\ \includegraphics[width=\textwidth, height=0.3\textheight, keepaspectratio=true]{example_graphs/graph_two_qbit_CZ_before.png}\\ After:\\ \includegraphics[width=0.5\textwidth, height=0.3\textheight, keepaspectratio=true]{example_graphs/graph_two_qbit_CZ_after.png}\hfill\tikzmark{right} \DrawBox \end{minipage} } \item{ \noindent\begin{minipage}{0.4\textwidth} When the VOPs do not commute with $CZ$ and the vertices are not isolated one can clear at least one vertex operator (i.e. transforming it to $I$). This changes the neighbourhood of the vertices. \end{minipage} \hfill \begin{minipage}{0.5\textwidth} \tikzmark{left}The starting state:\\ \includegraphics[width=0.7\textwidth, height=0.5\textheight, keepaspectratio=true]{example_graphs/graph_clear_VOPs_CZ_before.png}\hfill\tikzmark{right} \DrawBox \end{minipage} } \end{itemize} \end{frame} } { \begin{frame}{Dynamics of Graphical States} \begin{itemize} \item{ If both vertex operators can be cleared $\{a,b\}$ is toggled in $E$. \noindent\begin{minipage}{0.4\textwidth} \tikzmark{left}After clearing vertices $1,2$:\\ \includegraphics[width=0.7\textwidth, height=0.5\textheight, keepaspectratio=true]{example_graphs/graph_clear_VOPs_CZ_cleared.png}\hfill\tikzmark{right} \DrawBox \end{minipage} \hfill \begin{minipage}{0.4\textwidth} \tikzmark{left}Applying $CZ_{2, 1}$:\\ \includegraphics[width=0.7\textwidth, height=0.5\textheight, keepaspectratio=true]{example_graphs/graph_clear_VOPs_CZ_after.png}\tikzmark{right} \DrawBox \end{minipage} } \item{ If just one vertex operator has been cleared the other vertex is isolated and one can precompute all resulting states.} \end{itemize} \end{frame} } \section{Implementation and Performance} { \begin{frame}{Implementation} \noindent\begin{minipage}{0.5\textwidth} \center \includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio=true]{screenshot_github.png} \end{minipage} \hfill \begin{minipage}{0.4\textwidth} {\small \begin{itemize} \item{The code is GPLv3.0 licensed.} \item{GitHub repository: \url{https://github.com/daknuett/pyqcs}} \item{Install it via PyPI: \lstinline{pip3 install pyqcs}} \item{The code is tested automatically on TravisCI.} \end{itemize} } \end{minipage} \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}{Performance} \begin{itemize} \item{Simulation using stabilizers (in particular using the graphical representation) is polynomial hard.} \item{Simulation using dense state vectors is exponentially hard.} \item{The performance of the graphical simulator depends on the state/circuit.} \end{itemize} \end{frame} } { \begin{frame}{Physical Applications} \begin{itemize} \item{The graphical simulator cannot be used for physical applications because interesting problems require real (or at least rational) probability amplitudes.} \item{Stabilizer states do not span a vector space.} \item{The idea of finding a more efficient representation for a subset of states can be used in physics.} \end{itemize} \end{frame} } { \begin{frame}{References} See the bibliography of my bachelor thesis. \end{frame} } \end{document}