Progress, first pass up to schrodinger sim.

This commit is contained in:
Meeg Leeto 2023-07-07 18:28:07 +01:00
parent 1ea1bf42e1
commit f6af24d515
3 changed files with 946 additions and 10 deletions

View File

@ -1 +1,259 @@
% Place citations here, in bibtex format
@book{Homer2001,
doi = {10.1007/978-1-4757-3544-4},
url = {https://doi.org/10.1007/978-1-4757-3544-4},
year = {2001},
publisher = {Springer New York},
author = {Steven Homer and Alan L. Selman},
title = {Computability and Complexity Theory}
}
@book{Nielsen2012,
doi = {10.1017/cbo9780511976667},
url = {https://doi.org/10.1017/cbo9780511976667},
year = {2012},
month = jun,
publisher = {Cambridge University Press},
author = {Michael A. Nielsen and Isaac L. Chuang},
title = {Quantum Computation and Quantum Information}
}
@book{arora2009computational,
title = {Computational Complexity: A Modern Approach},
author = {Arora, S. and Barak, B.},
isbn = {9780521424264},
lccn = {2009002789},
url = {https://books.google.pt/books?id=8Wjqvsoo48MC},
year = {2009},
publisher = {Cambridge University Press}
}
@inproceedings{Bernstein1993,
doi = {10.1145/167088.167097},
url = {https://doi.org/10.1145/167088.167097},
year = {1993},
publisher = {{ACM} Press},
author = {Ethan Bernstein and Umesh Vazirani},
title = {Quantum complexity theory},
booktitle = {Proceedings of the twenty-fifth annual {ACM} symposium on Theory of computing - {STOC} {\textquotesingle}93}
}
@inproceedings{Chen2017,
author = {Aaronson, Scott and Chen, Lijie},
title = {Complexity-Theoretic Foundations of Quantum Supremacy Experiments},
year = {2017},
isbn = {9783959770408},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, DEU},
abstract = {In the near future, there will likely be special-purpose quantum computers with 40--50 high-quality qubits. This paper lays general theoretical foundations for how to use such devices to demonstrate "quantum supremacy": that is, a clear quantum speedup for some task, motivated by the goal of overturning the Extended Church-Turing Thesis as confidently as possible.First, we study the hardness of sampling the output distribution of a random quantum circuit, along the lines of a recent proposal by the Quantum AI group at Google. We show that there's a natural average-case hardness assumption, which has nothing to do with sampling, yet implies that no polynomial-time classical algorithm can pass a statistical test that the quantum sampling procedure's outputs do pass. Compared to previous work -- for example, on BosonSampling and IQP -- the central advantage is that we can now talk directly about the observed outputs, rather than about the distribution being sampled.Second, in an attempt to refute our hardness assumption, we give a new algorithm, inspired by Savitch's Theorem, for simulating a general quantum circuit with n qubits and depth d in polynomial space and dO(n) time. We then discuss why this and other known algorithms fail to refute our assumption.Third, resolving an open problem of Aaronson and Arkhipov, we show that any strong quantum supremacy theorem -- of the form "if approximate quantum sampling is classically easy, then the polynomial hierarchy collapses"-- must be non-relativizing. This sharply contrasts with the situation for exact sampling.Fourth, refuting a conjecture by Aaronson and Ambainis, we show that there is a sampling task, namely Fourier Sampling, with a 1 versus linear separation between its quantum and classical query complexities.Fifth, in search of a "happy medium" between black-box and non-black-box arguments, we study quantum supremacy relative to oracles in P/poly. Previous work implies that, if one-way functions exist, then quantum supremacy is possible relative to such oracles. We show, conversely, that some computational assumption is needed: if SampBPP = SampBQP and NP ⊆ BPP, then quantum supremacy is impossible relative to oracles with small circuits.},
booktitle = {Proceedings of the 32nd Computational Complexity Conference},
articleno = {22},
numpages = {67},
keywords = {computational complexity, quantum supremacy, quantum computing},
location = {Riga, Latvia},
series = {CCC '17}
}
@inproceedings{Shor1994,
doi = {10.1109/sfcs.1994.365700},
url = {https://doi.org/10.1109/sfcs.1994.365700},
publisher = {{IEEE} Comput. Soc. Press},
author = {P.W. Shor},
title = {Algorithms for quantum computation: discrete logarithms and factoring},
booktitle = {Proceedings 35th Annual Symposium on Foundations of Computer Science},
year = {1994}
}
@unpublished{Kitaev1995,
title = {Quantum measurements and the Abelian Stabilizer Problem},
author = {Kitaev, A. Yu.},
year = {1995},
eprint = {9511026},
doi = {10.48550/ARXIV.QUANT-PH/9511026},
archiveprefix = {arXiv},
primaryclass = {quant-ph},
note = {\url{https://arxiv.org/abs/quant-ph/9511026}},
keywords = {Quantum Physics (quant-ph), FOS: Physical sciences, FOS: Physical sciences},
copyright = {Assumed arXiv.org perpetual, non-exclusive license to distribute this article for submissions made before January 2004}
}
@article{arute2019,
title = {Quantum supremacy using a programmable superconducting processor},
author = {Arute, Frank and Arya, Kunal and Babbush, Ryan and Bacon, Dave and Bardin, Joseph C and Barends, Rami and Biswas, Rupak and Boixo, Sergio and Brandao, Fernando GSL and Buell, David A and others},
journal = {Nature},
volume = {574},
number = {7779},
pages = {505--510},
year = {2019},
publisher = {Nature Publishing Group}
}
@article{Terhal2018,
doi = {10.1038/s41567-018-0131-y},
url = {https://doi.org/10.1038/s41567-018-0131-y},
year = {2018},
month = apr,
publisher = {Springer Science and Business Media {LLC}},
volume = {14},
number = {6},
pages = {530--531},
author = {Barbara M. Terhal},
title = {Quantum supremacy, here we come},
journal = {Nature Physics}
}
@inproceedings{Haner2017,
doi = {10.1145/3126908.3126947},
url = {https://doi.org/10.1145/3126908.3126947},
year = {2017},
month = nov,
publisher = {{ACM}},
author = {Thomas H\"{a}ner and Damian S. Steiger},
title = {0.5 petabyte simulation of a 45-qubit quantum circuit},
booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis}
}
@unpublished{Markov2018,
title = {Quantum Supremacy Is Both Closer and Farther than It Appears},
author = {Igor Markov and Aneeqa Fatima and Sergei Isakov and Sergio Boixo},
year = {2018},
eprint = {1807.10749},
archiveprefix = {arXiv},
primaryclass = {quant-ph},
note = {\url{https://arxiv.org/abs/1807.10749}}
}
@article{Bravyi2016,
doi = {10.1103/physrevlett.116.250501},
url = {https://doi.org/10.1103/physrevlett.116.250501},
year = {2016},
month = jun,
publisher = {American Physical Society ({APS})},
volume = {116},
number = {25},
author = {Sergey Bravyi and David Gosset},
title = {Improved Classical Simulation of Quantum Circuits Dominated by Clifford Gates},
journal = {Physical Review Letters}
}
@article{VandenNest2010,
doi = {10.26421/qic10.3-4-6},
url = {https://doi.org/10.26421/qic10.3-4-6},
year = {2010},
month = mar,
publisher = {Rinton Press},
volume = {10},
number = {3{\&}4},
pages = {258--271},
author = {M. Van den Nest},
title = {Classical simulation of quantum computation, the gottesman-Knill theorem, and slightly beyond},
journal = {Quantum Information and Computation}
}
@book{Gottesman1999,
title = {Group22: Proceedings of the XXII International Colloquium on Group Theoretical Methods in Physics, Hobart, July 13-17, 1998},
author = {Corney, S.P. and Delbourgo, R. and Jarvis, P.D.},
pages = {{32}--{43}},
isbn = {9781571460547},
series = {International Press lectures and conference proceedings in physics},
url = {https://books.google.pt/books?id=YPH4PgAACAAJ},
year = {1999},
publisher = {International Press}
}
@article{Gottesman2004,
title = {Improved simulation of stabilizer circuits},
author = {Aaronson, Scott and Gottesman, Daniel},
journal = {Phys. Rev. A},
volume = {70},
issue = {5},
pages = {052328},
numpages = {14},
year = {2004},
month = {Nov},
publisher = {American Physical Society},
doi = {10.1103/PhysRevA.70.052328},
url = {https://link.aps.org/doi/10.1103/PhysRevA.70.052328}
}
@article{Bravyi2005,
doi = {10.1103/physreva.71.022316},
url = {https://doi.org/10.1103/physreva.71.022316},
year = {2005},
month = feb,
publisher = {American Physical Society ({APS})},
volume = {71},
number = {2},
author = {Sergey Bravyi and Alexei Kitaev},
title = {Universal quantum computation with ideal Clifford gates and noisy ancillas},
journal = {Physical Review A}
}
@article{DeRaedt2019,
doi = {10.1016/j.cpc.2018.11.005},
url = {https://doi.org/10.1016/j.cpc.2018.11.005},
year = {2019},
month = apr,
publisher = {Elsevier {BV}},
volume = {237},
pages = {47--61},
author = {Hans De Raedt and Fengping Jin and Dennis Willsch and Madita Willsch and Naoki Yoshioka and Nobuyasu Ito and Shengjun Yuan and Kristel Michielsen},
title = {Massively parallel quantum computer simulator, eleven years later},
journal = {Computer Physics Communications}
}
@book{DeRaedt2006,
title = {Handbook of Theoretical and Computational Nanotechnology},
author = {H. De Raedt and K. Michielsen},
editor = {M. Rieth and W. Schommers},
publisher = {American Scientific Publishers},
year = {2006},
pages = {2--48}
}
@unpublished{Smelyanskiy2016,
title = {qHiPSTER: The Quantum High Performance Software Testing Environment},
author = {Smelyanskiy, Mikhail and Sawaya, Nicolas P. D. and Aspuru-Guzik, Alán},
year = {2016},
eprint = {1601.07195},
archiveprefix = {arXiv},
primaryclass = {quant-ph},
note = {\url{https://arxiv.org/abs/1601.07195}},
keywords = {Quantum Physics (quant-ph), Distributed, Parallel, and Cluster Computing (cs.DC), FOS: Physical sciences, FOS: Physical sciences, FOS: Computer and information sciences, FOS: Computer and information sciences}
}
@article{Niwa2002,
doi = {10.1103/physreva.66.062317},
url = {https://doi.org/10.1103/physreva.66.062317},
year = {2002},
month = dec,
publisher = {American Physical Society ({APS})},
volume = {66},
number = {6},
author = {Jumpei Niwa and Keiji Matsumoto and Hiroshi Imai},
title = {General-purpose parallel simulator for quantum computing},
journal = {Physical Review A}
}
@article{Jones2019,
doi = {10.1038/s41598-019-47174-9},
url = {https://doi.org/10.1038/s41598-019-47174-9},
year = {2019},
month = jul,
publisher = {Springer Science and Business Media {LLC}},
volume = {9},
number = {1},
author = {Tyson Jones and Anna Brown and Ian Bush and Simon C. Benjamin},
title = {{QuEST} and High Performance Simulation of Quantum Computers},
journal = {Scientific Reports}
}
@inproceedings{Haner2016,
doi = {10.1109/sc.2016.73},
url = {https://doi.org/10.1109/sc.2016.73},
year = {2016},
month = nov,
publisher = {{IEEE}},
author = {Thomas Haner and Damian S. Steiger and Mikhail Smelyanskiy and Matthias Troyer},
title = {High Performance Emulation of Quantum Circuits},
booktitle = {{SC}16: International Conference for High Performance Computing, Networking, Storage and Analysis}
}

BIN
main.pdf Normal file

Binary file not shown.

696
main.tex
View File

@ -1,25 +1,703 @@
\documentclass{article}
\RequirePackage{silence}
\WarningFilter{revtex4-2}{Repair the float}
\documentclass[aps,pra,nofootinbib,twocolumn]{revtex4-2}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{microtype}
\usepackage{graphicx}
\usepackage{amsthm}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{physics}
\usepackage{float}
\usepackage{qcircuit}
\usepackage{calc}
\usepackage{marginnote}
\input{preamble.tex}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{definition}{Definition}
\title{}
\author{}
\date{}
\ExplSyntaxOn
\clist_new:N \l_my_footlist
\cs_new:Nn \my_footnotelater:n {
\clist_gput_right:Nn \l_my_footlist {{#1}}
}
\cs_new:Nn \my_footnotenow: {
\clist_gpop:NN \l_my_footlist \l_tmpa_tl
\exp_args:Nv\footnote{l_tmpa_tl}
}
\NewDocumentCommand{\FootnoteLater}{m}{\my_footnotelater:n{#1}}
\NewDocumentCommand{\FootnoteNow}{}{\my_footnotenow:}
\ExplSyntaxOff
\ExplSyntaxOn
\cs_new:Nn \postulate:nn {
\emph{#2}
%\hyperlink{#1}{#2}
}
\NewDocumentCommand \Postulate { m }
{
\str_case_e:nnF { \str_foldcase:n { #1 } }
{
{ state\space space }{\postulate:nn{postulate:state-space}{#1}}
{ evolution }{\postulate:nn{postulate:evolution}{#1}}
{ measurement }{\postulate:nn{postulate:measurement}{#1}}
{ composite\space systems }{\postulate:nn{postulate:composite-systems}{#1}}
}{
\textbf{!!}#1\textbf{!!}
}
}
\ExplSyntaxOff
\NewDocumentCommand{\Naturals}{}{\mathbb{N}}
\let\NN\Naturals
\NewDocumentCommand{\Integers}{}{\mathbb{Z}}
\let\ZZ\Integers
\NewDocumentCommand{\Reals}{}{\mathbb{R}}
\let\RR\Reals
\NewDocumentCommand{\Complex}{}{\mathbb{C}}
\let\CC\Complex
\NewDocumentCommand{\Hilbert}{}{\ensuremath{\mathbb{H}}}
\NewDocumentCommand{\Controlled}{m}{\ensuremath{{{}_C#1}}}
\NewDocumentCommand{\Clifford}{}{\text{Clifford}}
\NewDocumentCommand{\Schrodinger}{}{{Schr\"{o}dinger}}
\begin{document}
% Document contents here
\title{Survey on classical quantum computer simulators}
\author{Miguel Mur\c{c}a}
\affiliation{Instituto Superior T\'{e}cnico, University of Lisbon, Portugal}
\date{\today}
\maketitle
\section{Introduction}
\subsection{Quantum computation fundamentals}
\label{sec:quantum-computation-fundamentals}
\subsubsection{State vector}
\label{sec:state-vector}
Quantum computation is the field of study concerned with computation performed
within the postulates imposed by the theory of quantum mechanics. The notion of
``computation'', as here used, is the same as in the field of (classical)
computability and complexity theory, and so we refer to, for example,
Ref.~\cite{Homer2001} for a formal overview of the topic. However, for
simplicity, computation can be taken to mean the evaluation of some function
over some discrete input range. In any case, this function (or, more generally,
the computational task at hand) will be made concrete in context.
The postulates of quantum mechanics, on the other hand, are well defined and
may succinctly be stated as follows \cite{Nielsen2012}:
\FootnoteLater{The dagger symbol (${}^\dagger$) is used to denote conjugate
transposition.}
\makeatother
\begin{description}
\makeatletter
\let\old@item\item
\def\my@item#1#2{[\label{#2}{#1}]}
\def\item[#1][#2]{\expandafter\old@item\my@item{#1}{#2}}
\makeatother
\item[State space][postulate:state-space]
An isolated quantum system is represented by a ray of unit two-norm
vectors in a complex vector space equipped with an inner product (i.e.,
a Hilbert space). This space is referred to as the \emph{state space}.
\item[Evolution][postulate:evolution]
The evolution of an isolated quantum system, as represented by its
quantum state vector $\vec \psi$, is given by a unitary operator acting
on that quantum state vector. I.e., let \Hilbert\ be the Hilbert space
such that the quantum state vector is, at some moment, $\vec\psi \in
\Hilbert$. Then, there exists an operator $U \in
\Hilbert\times\Hilbert$, satisfying $UU^\dagger = U^\dagger U = I$
\FootnoteNow{} such that, after some time, the state of the system is
given by the quantum state vector $U \vec\psi$.
\item[Measurement][postulate:measurement] \hskip 0pt plus 1em
A set of operators $\{M_m\}_m$, acting on $\Hilbert$ and satisfying
$\sum_m M_m^\dagger M_m = I$, define a ``measurement''. Each operator
$M_m$ has an associated outcome $m$, such that the measurement operation
yields outcome $m$ with probability $\lVert{ M_m
{\vec\psi}}\rVert_2^2$. After the measurement, the quantum system is
described by the quantum state vector $M_m {\vec\psi} / \norm*{M_m
\vec\psi}_2$.
\item[Composite Systems][postulate:composite-systems]
If a quantum system is composed of multiple quantum subsystems, then
the corresponding state vector space is given by the tensor product of
the quantum state vector spaces of the subsystems.
\end{description}
A quantum computation is, thus, a computation carried out within these
postulates. Taking the computational task to be a decision problem (i.e.,
a question to which the computer should output a ``yes'' or ``no'' answer), we
may, without loss of generality, consider that the final answer is produced by
a final measurement (as defined in the measurement postulate), with outcomes
``yes'' ($m=1$) or ``no'' ($m=0$).
In the classical case, it is well known that a binary alphabet -- the ``bit''
-- is sufficient to perform computation (in the sense that it requires only a
logarithmic overhead in comparison to a larger alphabet; see \cite[Claim
1.5]{arora2009computational}). To perform quantum computation, we will likewise
work with a quantum analogue of the bit, the ``qubit''. In particular, a qubit
is a quantum state of a Hilbert space of dimension $2$, $\Hilbert_2$. For
concreteness, we choose two quantum state vectors of $\Hilbert_2$ that are
orthogonal,
%
\begin{equation}
\ket{0}, \ket{1}
\end{equation}
%
and that thus form a basis of $\Hilbert_2$, the ``computational basis''. We've
also here introduced the so-called ``Dirac notation'', or ``bra-ket notation'',
common in quantum mechanics, and by extension in quantum computing works. We
present a summary of Dirac notation in Table \ref{table:dirac-notation}, and we
will henceforth use this notation.
\begin{table}
\newcommand{\rowskip}{8pt}
\renewcommand{\arraystretch}{0}
\begin{tabular}{r @{\hskip 1em}|@{\hskip 1em} l} \hline\hline\vrule height 14pt width 0pt
$\ket{\psi}$ & Vector $\psi$, or ``ket'' $\psi$. Corresponds to $\vec\psi$. \\[\rowskip]
$\bra{\psi}$ & Dual of $\ket{\psi}$, or ``bra'' $\psi$. Corresponds to ${\vec\psi}^\dagger$. \\[\rowskip]
$\braket{a}{b}$ & Inner product between vectors $\ket{a}$ and $\ket{b}$. \\[\rowskip]
$\ket{a} \otimes \ket{b}$ & Tensor product between vectors $\ket{a}$ and $\ket{b}$. \\[0pt]
& If both $\ket{a},\ket{b} \in \Hilbert_n$, $\ket{a}\otimes\ket{b} \in \Hilbert_{n^2}$. \\[\rowskip]
$\ket{a}\mskip-5mu\ket{b}$& Shortened notation for $\ket{a} \otimes \ket{b}$. \\[\rowskip]
$\bra{a} A \ket{b}$ & Inner product between $\ket{a}$ and $A\ket{b}$, or, \\[0pt]
& equivalently, $A^\dagger \ket{a}$ and $\ket{b}$. \\[0pt]
& If $\ket{a}=\ket{b}$, may be referred to as the \\[0pt]
& \emph{expectation value} of $A$ under $\ket{a}$. \\[\rowskip]
$\dyad{a}$ & Projector onto the span of $\ket{a}$.
\\[14pt]
\hline\hline
\end{tabular}
\caption{Summary of ``Dirac notation'', or ``bra-ket notation''.}
\label{table:dirac-notation}
\end{table}
In analogy to how, in the classical case, a binary alphabet can represent larger
alphabets, multiple qubits can be used to span a larger Hilbert space, by the
\Postulate{composite systems} postulate. Indeed, $n$ qubits span $2^n$
orthogonal states in their collective state space, which we may label by the
binary string given by each of the qubits, or the corresponding number:
%
{
\makeatletter
\def\my@ksp{\mskip-5mu}
\def\my@neg@ksp{\mskip5mu}
\def\my@ssp{\mskip-3mu}
\let\old@ket\ket
\let\old@ldots\ldots
\let\old@equiv\equiv
\def\ket#1{\old@ket{#1}\my@ksp}
\def\ldots{\my@neg@ksp\my@ssp\old@ldots\my@ssp}
\def\equiv{\my@neg@ksp\old@equiv}
\makeatother
%
\begin{equation}
\begin{array}{l}
\hskip-2em \ket{0}\ket{0}\ldots\ket{0}\ket{0} \equiv \ket{0_b}, \\
\hskip-1em \ket{0}\ket{0}\ldots\ket{0}\ket{1} \equiv \ket{1_b}, \\
\ket{0}\ket{0}\ldots\ket{1}\ket{0} \equiv \ket{2_b}, \\
\hskip1em \ldots \\
\hskip1.5em \ket{1}\ket{1}\ldots\ket{1}\ket{1} \equiv \ket{2^n-1_b}.
\end{array}
\end{equation}
}
Per the \Postulate{state space} postulate, a state of $n$ qubits may be given by
a linear combination of these basis states:
%
\begin{equation} \label{eq:superposition}
\begin{array}{c}
\displaystyle \ket{\psi} = \sum_{j=0}^{2^n-1} \alpha_j \ket{j_b} \\[2.5em]
\alpha_j \in \Complex, \quad \sum_{j=0}^{2^n-1} \abs{\alpha_j}^2 = 1
\end{array}
\end{equation}
If more than one $\alpha_j$ is non-zero, we say the state is in
``superposition''. Measuring a state in superposition produces different
outcomes, depending on the state's overlap with the outcome state. To see this,
consider the measurement
%
\begin{equation} \label{eq:computational-basis-measurement}
\{ M_m = \dyad{m_b} \qquad m=0,\ldots,2^n-1 \}.
\end{equation}
Since every $\ket{j_b}$ has unit norm, and $\{\ket{j_b}\}_{j=0,\ldots,2^n-1}$
span the Hilbert space being considered, this set satisfies the conditions
outlined in the \Postulate{measurement} postulate. We conclude also from the
postulate that the probability of observing outcome $j$ is given by
%
\begin{equation}
\Probability_{\ket{\psi}}[j] = \abs{\alpha_j}^2.
\end{equation}
\subsubsection{Density matrix}
\label{sec:density-matrix}
Consider the measurement \eqref{eq:computational-basis-measurement} on state
\eqref{eq:superposition}. After performing such a measurement, one holds state
$\ket{j_b}$ with probability $\Probability_{\ket{\psi}}[j]$. This is not
correctly described by a superposition. To see this, suppose a single qubit,
and a Hadamard gate:
%
\begin{equation}
\def\arraycolsep{8pt}
\begin{array}{cc}
\def\arraycolsep{4pt}
H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} & %
\begin{array}{c} H\ket{0} = \frac{1}{\sqrt{2}}(\ket{0} + \ket{1}) \\
H\ket{1} = \frac{1}{\sqrt{2}} (\ket{0}-\ket{1}) \end{array}
\end{array}
\end{equation}
From this definition and the previous discussion,
%
\begin{equation} \label{eq:hadamard-action}
\def\strut{\vrule height 0pt depth 1em width 0pt}
\everymath={\displaystyle}
\begin{array}{c}
\Pr_{H\ket{0}}[0] = \Pr_{H\ket{1}}[0] = 1/2 \\[1.2em]
\strut \Pr_{H\ket{0}}[1] = \Pr_{H\ket{1}}[1] = 1/2
\end{array}
\end{equation}
%
and we note that this is also true of the states
%
\begin{equation} \label{eq:plus-minus-states}
\everymath={\displaystyle}
\def\arraycolsep{.5cm}
\begin{array}{cc}
\ket{+} = \frac{\ket{0} + \ket{1}}{\sqrt{2}} & %
\ket{-} = \frac{\ket{0} - \ket{1}}{\sqrt{2}}.
\end{array}
\end{equation}
We conclude from Eq.~\eqref{eq:hadamard-action} that by taking a $\ket{0}$
state, applying a Hadamard gate, measuring, and again applying a Hadamard gate
and measuring, we should observe $0$ with probability $1/2$, and likewise $1$
with probability $1/2$. But, following the postulates and attempting to
describe the intermediate situation by either $\ket{+}$ or $\ket{-}$, we find
that
%
\begin{equation}
\everymath={\displaystyle}
\begin{array}{c}
H \ket{+} = \ket{0} \\
H \ket{-} = \ket{1}
\end{array}
\end{equation}
%
which would indicate either $\Pr[0] = 1$ or $\Pr[1] = 1$.
\FootnoteLater{Alternatively, the density matrix formalism allows one to
express both ``quantum randomness'', as resulting from the measurement of
a state in superposition, and ``classical randomness'', in the sense of
operations conditioned on a random/unknown bit string.}
Indeed, the system may be described by one of several states not in
superposition, while we are uncertain about which which state describes it. The
density matrix formalism (or \emph{density operator} formalism) gives a formal
tool for describing this situation \FootnoteNow. If a quantum state is in state
$\ket{\psi_j}$ with probability $p_j$, the associated density operator is
%
\begin{equation}
\rho = \sum_j p_j \dyad{\psi_j}.
\end{equation}
In general, to be a valid density operator, $\rho$ must have unit trace and be
a positive operator. In particular, the density operator associated to a state
vector $\ket{\psi}$ is
%
\begin{equation}
\rho = \dyad{\psi},
\end{equation}
%
and a statistical mixture between multiple $\rho_j$ with corresponding
probability $p_j$ is given by the density operator
%
\begin{equation}
\rho = \sum_j p_j \rho_j.
\end{equation}
Density matrices are a ``complete'' formalism, in the sense that we may rephrase
the postulates of quantum mechanics only in terms of the density matrix
operator; in fact one may check that the two sets of postulates are equivalent.
\begin{description}
\makeatletter
\let\old@item\item
\let\old@makelabel\makelabel
\renewcommand{\item}[1][0]{%
\old@item[#1]%
\hfill\break}
\def\ResetLabel{%
\let\item\old@item%
\let\makelabel\old@makelabel}
\makeatother
\item[State space {\it(Density matrix)}]
An isolated physical system is completely described by a \emph{density
operator}, which is a positive operator of unit trace in a Hilbert
space. If a system is in state $\rho_j$ with probability $p_j$, its
density operator is $\rho = \sum_j p_j \rho_j$.
\item[Evolution {\it(Density matrix)}]
Let a quantum system be described, at some moment, by the density
operator $\rho$. Then, there exists a unitary operator $U$ such that,
after some time, the quantum system is now described by the density
operator $\rho' = U\rho U^\dagger$.
\item[Measurement {\it(Density matrix)}]
A set of operators $\{M_m\}_m$, acting on the space of $\rho$, and
satisfying $\sum_m M_m^\dagger M_m$, define a ``measurement''. Each
operator $M_m$ has an outcome $m$ associated to it. If a quantum state
is described by a density operator $\rho$, the outcome of a measurement
is $m$ with probability $\Tr(M_m^\dagger M_m \rho)$, and, after the
measurement, the system is now described by the density matrix $\rho' =
M_m \rho M_m^\dagger / \Tr(M_m^\dagger M_m \rho)$.
\item[Composite Systems {\it(Density matrix)}]
The density operator describing a quantum system composed of multiple
quantum subsystems is given by the tensor product of the density
operators of each of the subsystems.
\end{description}
A quantum state with density matrix $\rho$ for which there exists
%
\begin{equation}
\everymath={\displaystyle}
\begin{array}{r@{\quad}c@{\quad}l}
\ket{\psi} & \text{such that} & \rho = \dyad{\psi}
\end{array}
\end{equation}
%
is said to be a \emph{pure} state, while a state that cannot satisfy this is
said to be a \emph{mixed} state.
A density operator may be used to describe a quantum subsystem: if a system is
composed of subsystems $A$ and $B$, jointly described by the density operator
$\rho$, then subsystem $A$ is described by density operator
%
\begin{equation}
\rho_A = \Tr_B(\rho) = \sum_j (I_A \otimes \bra{j}_B) \rho (I_A \otimes \ket{j}_B)
\end{equation}
%
where $\Tr_B$ is the newly defined \emph{partial trace} operation, and we take
$\{\ket{j}\}_j$ to be a basis over the state space of $B$.
\subsubsection{Quantum circuits}
To conclude this section, we introduce a common notation to denote unitary
transformations, and by extension quantum algorithms: quantum circuits.
\FootnoteLater{Rigorously, this depends on how the unitary is ``given''. Here,
consider that a unitary is given by specifying its action over each element
$\ket{j}$ of a set spanning the state space. By linearity (cf.\ the
\Postulate{evolution} postulate), this determines the action of the unitary
over any vector in the state space.}
Recall that a quantum computation may be described by a sequence of unitary
evolutions and measurements, and a final measurement. While the measurements
correspond (by the \Postulate{measurement} postulate) to a physical procedure,
it is not necessarily clear how to implement a given unitary
transformation\FootnoteNow. Instead, we assume the ability to physically realize
a number of elementary operations, and compose these operations to build more
sophisticated unitary evolutions. Table \ref{table:basic-operations} lists some
common basic operations. Critically, a limited set of these elementary
operations can be sufficient to express any unitary evolution. I.e., the notion
of a \emph{universal quantum gate set} is well defined. The set of gates
specified in Table \ref{table:basic-operations} form a universal quantum gate
set. One could even reduce the size of this set while maintaining universality;
for example, the set of $\{R_X, R_Y, R_Z, \Controlled{X}\}$ gates is also
universal \cite{Nielsen2012}. A common choice of universal gate set is the
``Clifford+$T$'' set, where the Clifford gate set, $\{S, H, \Controlled{X}\}$,
is augmented with the $T$ gate. Note that the Clifford gate set generates all
the Pauli gates. The term ``Clifford group'' is used to denote the set of all
operations generated by the Clifford gate set.
\begin{table}
\def\Action#1{$\begin{array}{l} #1 \end{array}$}
\def\TabularSpacing{\hskip 0em plus 1em minus 1em}
\def\CX{\Controlled{X}}
\begin{tabular}{c @{\TabularSpacing}c@{\TabularSpacing} c} \hline\hline\vrule height 14pt width 0pt
Symbol & Definition & Description \\
\hline\vrule height 18pt width 0pt
$X$ & \Action{X\ket{0} = \ket{1} \\ X\ket{1} = \ket{0}} & $X$-Pauli or ``not'' gate \\
$Y$ & \Action{Y\ket{0} = -i\ket{1} \\ Y\ket{1} = i\ket{0}} & $Y$-Pauli gate \\
$Z$ & \Action{Z\ket{0} = \ket{0} \\ Z\ket{1} = -\ket{1}} & $Z$-Pauli gate \\
$H$ & \Action{H\ket{0} = \sqrt{1/2}(\ket{0}+\ket{1}) \\ H\ket{1} = \sqrt{1/2}(\ket{0}-\ket{1})} & Hadamard gate \\
$S$ & \Action{S\ket{0} = \ket{0} \\ S\ket{1} = i\ket{1}} & Phase gate \\
$T$ & \Action{T\ket{0} = \ket{0} \\ T\ket{1} = e^{i\pi/4}\ket{1}} & $\pi/8$ gate \\[9pt]
$R_X(\theta)$ & $\exp{-i\theta X/2}$ & $X$-rotation gate \\[9pt]
$R_Y(\theta)$ & $\exp{-i\theta Y/2}$ & $Y$-rotation gate \\[9pt]
$R_Z(\theta)$ & $\exp{-i\theta Z/2}$ & $Z$-rotation gate \\[6pt]
$\CX$ & $\dyad{0}\otimes I + \dyad{1}\otimes X$ & Controlled-not gate \\[6pt]
\hline\hline
\end{tabular}
\caption{Common ``native'' operations, often assumed to be physically
realizable, to be composed into other operations.}
\label{table:basic-operations}
\end{table}
Quantum circuits provide a visual notation to denote composition of elementary
gates into larger unitary evolutions and measurements. The main elements of a
quantum circuit are given in Table \ref{table:quantum-circuit}. Assuming every
operation in the elementary gate set can be performed in a time step, it follows
that the number of vertical slices in a quantum circuit correspond to the
running time of the circuit. This is referred to as the circuit's \emph{depth}.
The circuit's \emph{width} is the number of qubits acted upon non-trivially by
the circuit, and relates to the space requirements of the circuit.
Because a quantum algorithm corresponds to known unitary evolutions and
measurements, it is expressible in quantum circuit form. We say, then, that a
quantum algorithm is efficient if the corresponding quantum circuit's width and
depth scale at most polynomially with input size.
\begin{table*}
\def\TabularSpacing{\hskip 2em plus 1em minus 1em}
\def\Description#1{\begin{minipage}[c]{.6\linewidth}{#1}\end{minipage}}
\def\GateStrut#1{\vrule height 9pt depth 3pt width 0pt\hskip .25em{#1}\hskip.25em}
\begin{tabular}{c @{\TabularSpacing}c@{\TabularSpacing} c} \hline\hline\vrule height 14pt width 0pt
Symbol & Definition & Description \\
\hline\vrule height 1cm width 0pt
$\Qcircuit { &\qw }$ & Wire & \Description{Reperesents the state space
associated to a qubit, i.e., $\Hilbert_2$. Multiple wires,
vertically aligned, represent the collective Hilbert space, given
by the tensor product of the individual $\Hilbert_2$ spaces
(cf.\ the \Postulate{composite systems} postulate).}
\\[.8cm]
$\Qcircuit @C=1em { \lstick{{}_A}&\qw{/}&\qw }$ & Register &
\Description{Represents multiple wires, i.e., a subspace of dimension
$2^n$, where $n$ is the number of wires in the register. As shown, a
register may be labelled.} \\[.7cm]
$\Qcircuit @C=1em{ &\gate{U}&\qw }$ & Gate & \Description{Unitary $U$ acting
on the state space associated to the incoming wire (left-hand side).
The outgoing wire (right-hand side) corresponds to the state space
after the action of the gate.} \\[.7cm]
$\Qcircuit @C=1em { & \meter & \cw }$ & Measurement & \Description{
Measurement of the state subspace associated to the incoming wire
(left-hand side), according to the measurement $\{(\dyad{0}, 0),
\allowbreak (\dyad{1}, 1)\}$ (``computational basis measurement'').
The double wire represents the resulting classical bit (i.e., a
$\ZZ_2$ space).} \\[.8cm]
\begin{minipage}[c]{1.4cm}
$\Qcircuit @C=1em @R=1em {\lstick{{}_A}& \ctrl{1} & \qw \\ \lstick{{}_B}{\kern6pt/}& \gate{U} & \qw}$
\end{minipage} & Controlled operation & \Description{Denotes the
operation $\dyad{0}_A\otimes I_B + \dyad{1}_A\otimes U_B$ acting on the
collective state space of $A$ and $B$.} \\[.6cm]
$\Qcircuit @C=1em { \lstick{\ket{\psi}} & \gate{U} & \qw}$ & Application & \Description{
The quantum state resulting from application of
the unitary represented by the quantum circuit on the quantum state
specified on the left-hand side. The resulting state may be denoted
on the right-hand side. \\ Here, represents the state
$U\ket{\psi}$.} \\[1cm]
\hskip-1.2em $\Qcircuit @C=.5em {& {/}\qw & \gate{\GateStrut{V}} & \gate{\GateStrut{W}} & \qw \\}$ & Composition & \Description{Circuits are
``read'' left-to-right. Thus, the concatenation of two circuits
denoting the actions of operators, respectively, $V$ and $W$, results
in a circuit denoting the operator $WV$.} \\[.6cm]
\hline\hline
\end{tabular}
\caption{Quantum circuit notation.}
\label{table:quantum-circuit}
\end{table*}
\subsection{Simulation theory}
The quantum computational model, as introduced in the previous section, is
believed to be more powerful than the classical computing model
\cite{Bernstein1993}. One canonical example of evidence for this separation is
the existence of Shor's Algorithm for efficient factoring
\cite{Shor1994,Kitaev1995}. Thus, the task of classically simulating a quantum
computation becomes doubly significant: on the one hand, an efficient classical
algorithm to simulate an arbitrary quantum computation would have a fundamental
impact in the current understanding of computational complexity (but, for this
reason, is not expected to exist). On the other hand, it is necessary to ensure
that a particular instance of a quantum circuit cannot be classically simulated
in practice in order to claim that a quantum computation has been carried out
``with advantage'' (i.e., beyond a classical regime, or what is often referred
to as ``quantum supremacy'') \cite{arute2019,Terhal2018,Haner2017,Markov2018}.
Finally, even in the quantum advantage regime, small-scale classical
simulations remain relevant as a source of reference data for validation
\cite{Bravyi2016}.
As discussed in section \ref{sec:state-vector}, a quantum state of $n$ qubits is
determined by a vector of $2^n$ complex values, up to a global phase factor, and
subject to a normalization constraint. Therefore, on first approach, one may
believe that a quantum circuit of more than $40$--$45$ qubits cannot be
classically simulated, simply due to the memory requirements of maintaining a
quantum state vector. However, this consideration ignores the details of any
particular problem instance, such as the existence of structure or constraints
in the quantum circuit to be ran, or specifications on the desired output. In
this section, we review some key theoretical results regarding classical
simulation of quantum computations, as well as some general techniques.
\subsubsection{Strong simulation \texorpdfstring{\textit{vs.\!}}{vs.} weak simulation}
As defined in section \ref{sec:quantum-computation-fundamentals}, the final
output of a quantum computation results from a measurement. Due to the nature of
measurements, the outcome is a random variable, and its distribution depends on
the underlying state vector before the measurement. Thus, should a classical
simulation of a quantum algorithm:
%
\renewcommand{\labelenumi}{\textit{\roman{enumi}.}}
\begin{enumerate}
\item generate a random outcome observing the same output distribution as
the quantum counterpart, or;
\item explicitly specify the distribution of the generated output?
\end{enumerate}
These two problem specifications correspond, respectively, to the notions of
\emph{weak simulation} and \emph{strong simulation}. Requiring either strong or
weak simulation may significantly affect the computational hardness of the task;
indeed there exist circuits for which classical weak simulation is easy, but
classical strong simulation is hard \cite{VandenNest2010}. Stating these two
notions more formally:
\begin{definition}[Strong simulation \cite{VandenNest2010}]
Given a description of a quantum circuit of $n$ qubits, which corresponds
to unitary operator $U$, terminating with a measurement of the first qubit
in the computational basis, output $\Tr(\dyad{0} \mkern5mu U \mkern-3mu
\dyad{0_b} U^\dagger)$.
\end{definition}
\begin{definition}[Weak simulation \cite{VandenNest2010}]
Given a description of a quantum circuit of $n$ qubits, which corresponds
to unitary operator $U$, terminating with a measurement of the first qubit
in the comptuational basis, output $0$ with probability $\Tr(\dyad{0}
\mkern5mu U \mkern-3mu \dyad{0_b} U^\dagger)$, or $1$ otherwise.
\end{definition}
\FootnoteLater{By the \Postulate{state space} postulate, a global phase factor
is physically irrelevant. However, relative phase differences should not be
disregarded. As a simple example, consider the action of the Hadamard gate
(eqs.~\eqref{eq:hadamard-action},\eqref{eq:plus-minus-states}): the only
difference between the $\ket{+}$ and $\ket{-}$ states is the relative phase
difference between the $\ket{0}$ and $\ket{1}$ components -- however, the
result from acting with the Hadamard gate is completely different.}
In practice, one may wish to simulate the circuit only up to some point, or to
inspect the intermediate state of a small-scale computation \cite{Bravyi2016}.
This motivates a different definition of strong simulation by some authors.
Namely, recalling Eq.~\eqref{eq:superposition}, note that knowledge of
$\alpha_j$ is enough to determine the probability of observing any measurement
in the computational basis. However, the converse is not true: because $\Pr[j]
= \abs{\alpha_j}^2$, knowledge of $\Pr[j]$ fails to inform about the complex
phase of $\alpha_j$\FootnoteNow. So, strong simulation may be taken to mean:
\begin{definition}[Strong simulation, wave-function version \cite{Chen2017}]
\label{def:strong-simulation-wavefn}
Given a quantum circuit of $n$ qubits, corresponding to a unitary operator
$U$, and an $n$-bit string $j$, output $\bra{j_b} U \ket{0_b}$.
\end{definition}
Note that, in all of the definitions above, we took the quantum circuits to be
described by a unitary operator, which may not be trivially true if measurements
are performed half-way in the circuit (cf.\ section~\ref{sec:density-matrix}),
or if classical post-processing is employed. However, a well-known result,
which we review in appendix~\ref{appendix:delayed-measurement}, allows us to
defer all measurements to the end of the circuit, such that the whole of the
computation is carried out unitarily.
\subsubsection{Clifford circuits and the Gottesman-Knill theorem}
Recall that Clifford gates are gates in the Clifford set, i.e., any quantum
circuit that can be written in terms of phase, Hadamard, and Controlled-Not
gates (cf.\ Table~\ref{table:basic-operations}). Then, the Gottesman-Knill
theorem states the following:
\begin{theorem}[Gottesman-Knill \cite{Gottesman1999}]
\label{theorem:gottesman-knill}
\def\ketneg{\mkern-5mu}
Every (uniform family of) Clifford circuit(s), when applied to the input
state $\ket{0_b} \equiv \ket{0}\ketneg\ket{0}\ldots\ket{0}$, and when
followed by a computational basis measurement of the first qubit, can be
efficiently simulated classically in the strong sense.
\end{theorem}
The theorem is constructive, and in Ref.~\cite{Gottesman2004} Gottesman and
Aaronson provide a high-performance (weak) simulator of Clifford circuits that
can scale up to tens of thousands of qubits. Van den Nest \cite{VandenNest2010}
gives an alternative derivation of the theorem that allows for direct strong
simulation as well (both the regular and wave-function version).
Despite this result, Clifford circuits very easily extend to the universality
regime: not only by augmentation of the gate set -- the Clifford+$T$ gate set
is already universal -- but also by choice of the input state. Indeed, there
exist ``magic states'', such that a supply of these (pre-prepared) quantum
states and Clifford operations are enough to perform universal quantum
computation \cite{Bravyi2005}.
This move from Clifford-based computation to quantum universality entails a
``jump'', since Clifford circuits are not as powerful as classical circuits.
In Ref.~\cite{VandenNest2010}, this computational gap is discussed and
eliminated, by giving a superclass of Clifford circuits, ``$HT$ circuits'', that
is equivalent to classical computation and can be weakly simulated.
\subsubsection{Schr\"{o}dinger Simulation}
\Schrodinger\ simulation refers to the straightforward approach of maintaining
the global state-vector, updating it as new unitary operations are encountered
\cite{DeRaedt2019}. As such, it is inherently a form of the wave-function
version of strong simulation (definition \ref{def:strong-simulation-wavefn}).
This method also requires, by definition, that $2^n$ complex values are
maintained for a state of $n$ qubits, such that it cannot physically scale
beyond a certain number of qubits (about $45$-$50$ qubits, corresponding to a
petabyte or more of memory, if each amplitude is represented within $8$ bytes).
Despite this constraint, a significant amount of research has been devoted to
\Schrodinger\ simulation in the memory-tractable regime ($n \lesssim 50$),
specifically in pushing this limit and speeding up the running time
\cite{Smelyanskiy2016,DeRaedt2019,Jones2019,Haner2017,Haner2016,Niwa2002,DeRaedt2006}.
\appendix
\section{Delayed measurement}
\label{appendix:delayed-measurement}
The delayed measurement lemma states:
%
\begin{lemma}[Delayed measurement \cite{Nielsen2012}]
\begin{equation}
\def\RegisterSlash{{\hskip 1em /}}
{\raisebox{10pt}{
$\displaystyle
\Qcircuit @C=1em @R=1em {
& \qw & \ctrl{1} & \meter \\
\RegisterSlash & \qw & \gate{U} & \qw
}
$
}}
\mskip 10mu = \mskip 5mu
{\raisebox{11pt}{
$\displaystyle
\Qcircuit @C=1em @R=1em {
& \meter & \cctrl{1} & \\
\RegisterSlash & \qw & \gate{U} & \qw
}
$
}}
\end{equation}
%
i.e., measurements can always be moved from an intermediate stage of a
quantum circuit to the end of the circuit, replacing conditional classical
operations by controlled quantum operations.
\end{lemma}
This statement may be proven by explicitly calculating the density matrix
resulting from the action of each circuit, for an arbitrary input, and checking
that the result is the same. It follows that, when speaking of a quantum
algorithm, one may always take the procedure to be described by a unitary
operation followed by measurements.
\bibliography{citations}