diff --git a/thesis/Makefile b/thesis/Makefile new file mode 100644 index 0000000..3086424 --- /dev/null +++ b/thesis/Makefile @@ -0,0 +1,24 @@ +latex=xelatex +pdflatex=xelatex +bibtex=bibtex + +chapters = chapters/introduction.tex \ + chapters/naive_simulator.tex + +all: main.pdf + +main.pdf: main.tex main.bib $(chapters) + $(latex) main + $(bibtex) main + $(latex) main + $(pdflatex) main + + +clean: + -rm main.aux + -rm main.blg + -rm main.dvi + -rm main.log + -rm main.out + -rm main.pdf + -rm main.toc diff --git a/thesis/chapters/graph_simulator.tex b/thesis/chapters/graph_simulator.tex new file mode 100644 index 0000000..4defa10 --- /dev/null +++ b/thesis/chapters/graph_simulator.tex @@ -0,0 +1,9 @@ +\section{The graph Simulator} + +\subsection{Graph Storage} + +One of the gread advantages of simulating in the graph formalism is a great increase +in simulation performance and a lower memory requirement. The simulation of +at least $10^6$ qbits on a common desktop computer should be possible\cite{andersbriegel2005}. +Therefore one has to take care when choosing a representation of the graph state. +The following diff --git a/thesis/chapters/introduction.tex b/thesis/chapters/introduction.tex new file mode 100644 index 0000000..9f9d7d9 --- /dev/null +++ b/thesis/chapters/introduction.tex @@ -0,0 +1,3 @@ +\section{Introduction} + +-- diff --git a/thesis/chapters/naive_simulator.tex b/thesis/chapters/naive_simulator.tex new file mode 100644 index 0000000..994ff4f --- /dev/null +++ b/thesis/chapters/naive_simulator.tex @@ -0,0 +1,20 @@ +\section{The naive Simulator} + +A quite big part of the simulations interesting for students and researchers is not +covered by stabilizer states and stabilizer circuits. In particular the +phase estimation algorithm is essential for many applications. Being able to simulate +such an algorithm is essential for education. + +\subsection{Core Design} + +The core of the simulator are states represented as numpy arrays \cite{numpy_array} +as a both fast, safe and handy storage. They can be modified and viewed without overhead +using python and allow fast modification using so-called NumPy ufuncs\cite{numpy_ufunc}. +All gates are implemented as NumPy ufuncs and map an $N$ qbit simulator state consisting +of a $2^N$ dimensional quantum mechanical state and an $N$ dimensional classical state +to a new $2^N$ dimensional quantum mechanical state and an $N$ dimensional classical state. + +A $N$ qbit quantum mechanical state is the outer (kronecker) product of the $N$ single qbuit +state FIXME: source. The + + diff --git a/thesis/graphics/gate_circuit_classes.dia b/thesis/graphics/gate_circuit_classes.dia new file mode 100644 index 0000000..1820e49 Binary files /dev/null and b/thesis/graphics/gate_circuit_classes.dia differ diff --git a/thesis/main.bib b/thesis/main.bib new file mode 100644 index 0000000..c73d0b0 --- /dev/null +++ b/thesis/main.bib @@ -0,0 +1,32 @@ +@online{ + numpy, + url={https://numpy.org/}, + urldate={19.09.2019}, + author={NumPy developers}, + title={NumPy}, + year=2019 +} + +@online{ + numpy_array, + url={https://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html}, + urldate={19.09.2019}, + author={NumPy developers}, + title={numpy.array -- NumPy v1.17 Manual}, + year=2019 +} + +@online{ + numpy_ufunc, + url={https://docs.scipy.org/doc/numpy/reference/ufuncs.html}, + urldate={19.09.2019}, + author={NumPy developers}, + title={Universal functions (ufunc) -- NumPy v1.17 Manual}, + year=2019 +} +@article{ + andersbriegel2005, + title={Fast simulation of stabilizer circuits using a graph state representation}, + author={Simon Anders and Hans J. Briegel}, + year=2005 +} diff --git a/thesis/main.tex b/thesis/main.tex new file mode 100644 index 0000000..5f3bbba --- /dev/null +++ b/thesis/main.tex @@ -0,0 +1,42 @@ +%\documentclass[a4paper,12pt,oneside]{scrreprt} +\documentclass[a4paper,12pt]{scrartcl} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\usepackage{amssymb} +\usepackage{setspace} +\usepackage{amsmath} +\usepackage{hyperref} +\usepackage{geometry} +\usepackage{enumerate} +\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm} + +\title{Development of an Extensible Quantum Computing +Simulator with a Focus on Simulation in the Graph Formalism } +\author{Daniel Knüttel} +\date{22.09.2019} +\begin{document} +\maketitle + +%\frontmatter +\tableofcontents + +\section{Acknowledgements} + +-- + +\section{Abstract} + +-- + +%\mainmatter + +\include{chapters/introduction} + +\include{chapters/naive_simulator} + +%\backmatter + +\bibliographystyle{unsrt} +\bibliography{main}{} +\end{document} +