diff --git a/thesis/Makefile b/thesis/Makefile index 3086424..d9c9da1 100644 --- a/thesis/Makefile +++ b/thesis/Makefile @@ -3,7 +3,8 @@ pdflatex=xelatex bibtex=bibtex chapters = chapters/introduction.tex \ - chapters/naive_simulator.tex + chapters/naive_simulator.tex \ + chapters/introduction_qc.tex all: main.pdf diff --git a/thesis/chapters/naive_simulator.tex b/thesis/chapters/naive_simulator.tex index 994ff4f..6906f05 100644 --- a/thesis/chapters/naive_simulator.tex +++ b/thesis/chapters/naive_simulator.tex @@ -1,3 +1,4 @@ +% vim: ft=tex \section{The naive Simulator} A quite big part of the simulations interesting for students and researchers is not @@ -5,16 +6,17 @@ 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} +\subsection{Simulator Core} -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 +Recalling \ref{ref:nqbitsystems} an arbitrary state $\ket{\psi}$ can be written as such: + +$$ \ket{\psi} = \sum\limits_{i = 0}^{2^N - 1} c_i \ket{i} $$ + +Which yields $2^N$ coefficients $c_i = \braket{\psi}{i}$. These coefficients are used to +store the quantum mechanical state of the simulator and are stored in numpy arrays \cite{numpy_array}. +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 - +A simulator state also contains a classical state which is a length $N$ integer array containing +the measured classical bits with a default value of $-1$. +The gates are implemented as NumPy ufuncs which allows diff --git a/thesis/main.tex b/thesis/main.tex index 5f3bbba..aed4be6 100644 --- a/thesis/main.tex +++ b/thesis/main.tex @@ -2,14 +2,19 @@ \documentclass[a4paper,12pt]{scrartcl} \usepackage[utf8]{inputenc} \usepackage{graphicx} -\usepackage{amssymb} +\usepackage{amssymb, amsthm} \usepackage{setspace} \usepackage{amsmath} \usepackage{hyperref} \usepackage{geometry} \usepackage{enumerate} +\usepackage{physics} + \geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm} +\newtheorem{definition}{Definition} +\newtheorem{postulate}{Postulate} + \title{Development of an Extensible Quantum Computing Simulator with a Focus on Simulation in the Graph Formalism } \author{Daniel Knüttel} @@ -32,6 +37,8 @@ Simulator with a Focus on Simulation in the Graph Formalism } \include{chapters/introduction} +\include{chapters/introduction_qc} + \include{chapters/naive_simulator} %\backmatter