fixed a lot of stuff

This commit is contained in:
Daniel Knüttel 2020-03-30 09:59:57 +02:00
parent c6746ddd49
commit bf5b21413d
13 changed files with 41 additions and 15 deletions

View File

@ -3,6 +3,9 @@ import matplotlib
import numpy as np import numpy as np
import json import json
matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
matplotlib.rc('text', usetex=True)
matplotlib.rcParams.update({'errorbar.capsize': 2}) matplotlib.rcParams.update({'errorbar.capsize': 2})
results_naive = np.genfromtxt("qbit_scaling_naive.csv") results_naive = np.genfromtxt("qbit_scaling_naive.csv")

View File

@ -3,6 +3,9 @@ import matplotlib
import numpy as np import numpy as np
import json import json
matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
matplotlib.rc('text', usetex=True)
matplotlib.rcParams.update({'errorbar.capsize': 2}) matplotlib.rcParams.update({'errorbar.capsize': 2})
results_naive = np.genfromtxt("qbit_scaling_naive.csv") results_naive = np.genfromtxt("qbit_scaling_naive.csv")

View File

@ -4,6 +4,8 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
import json import json
matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
matplotlib.rc('text', usetex=True)
matplotlib.rcParams.update({'errorbar.capsize': 2}) matplotlib.rcParams.update({'errorbar.capsize': 2})
results_graph0 = np.genfromtxt("circuit_scaling_graph1.csv") results_graph0 = np.genfromtxt("circuit_scaling_graph1.csv")

View File

@ -4,6 +4,8 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
import json import json
matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
matplotlib.rc('text', usetex=True)
matplotlib.rcParams.update({'errorbar.capsize': 2}) matplotlib.rcParams.update({'errorbar.capsize': 2})
results_graph0 = np.genfromtxt("circuit_scaling_graph0.csv") results_graph0 = np.genfromtxt("circuit_scaling_graph0.csv")

View File

@ -4,6 +4,8 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
import json import json
matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
matplotlib.rc('text', usetex=True)
matplotlib.rcParams.update({'errorbar.capsize': 2}) matplotlib.rcParams.update({'errorbar.capsize': 2})
results_graph0 = np.genfromtxt("circuit_scaling_graph0_measurements.csv") results_graph0 = np.genfromtxt("circuit_scaling_graph0_measurements.csv")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 133 KiB

View File

@ -6,26 +6,26 @@ many companies and institutions working on building and using quantum computers
\cite{ibmq}\cite{intelqc}\cite{microsoftqc}\cite{dwavesys}\cite{lrzqc}\cite{heise25_18}. \cite{ibmq}\cite{intelqc}\cite{microsoftqc}\cite{dwavesys}\cite{lrzqc}\cite{heise25_18}.
One important topic in this research is quantum error correction One important topic in this research is quantum error correction
\cite{nielsen_chuang_2010}\cite{gottesman2009}\cite{gottesman1997}\cite{shor1995} \cite{nielsen_chuang_2010}\cite{gottesman2009}\cite{gottesman1997}\cite{shor1995}
that will allow the execution of arbitrarily long quantum circuits \cite{nielsen_chuang_2010}. One that will allow the execution of arbitrarily long quantum circuits \cite{nielsen_chuang_2010}.
important class of quantum error correction strategies are stabilizer codes A notable class of quantum error correction strategies are stabilizer codes
\cite{gottesman2009}\cite{gottesman1997} that can be simulated exponentially \cite{gottesman2009}\cite{gottesman1997} that can be simulated exponentially
faster than general quantum circuits faster than general quantum circuits
\cite{gottesman_aaronson2008}\cite{CHP}\cite{andersbriegel2005}. \cite{gottesman_aaronson2008}\cite{CHP}\cite{andersbriegel2005}.
Being able to simulate large stabilizer states is particularly interesting for
exploring quantum error correction strategies as fault tolerant quantum computing
requires several layers of encoding - so called concatenated codes \cite{nielsen_chuang_2010} -
that use many physical qbits organized in several layers to encode one logical qbit.
One particularly efficient way to simulate stabilizer states is the graphical One particularly efficient way to simulate stabilizer states is the graphical
representation \cite{andersbriegel2005} that has been studied extensively in representation \cite{andersbriegel2005} that has been studied extensively in
the context of both quantum error correction and quantum information theory the context of both quantum error correction and quantum information theory
\cite{schlingenmann2001}\cite{dahlberg_ea2019}\cite{vandennest_ea2004}\cite{hein_eisert_briegel2008}. \cite{schlingenmann2001}\cite{dahlberg_ea2019}\cite{vandennest_ea2004}\cite{hein_eisert_briegel2008}.
This paper describes the development of a quantum computing simulator This paper describes the development of a quantum computing simulator
using both the usual dense state vector representation for a general state using both the usual dense state vector representation for a general state
and a graphical representation for stabilizer states. After giving some introduction and a graphical representation for stabilizer states. After giving an introduction
to quantum computing some basic properties of stabilizer states and their to quantum computing, some basic properties of stabilizer states and their
dynamics are elucidated. Using this the graphical representation is introduced dynamics are elucidated. Using this the graphical representation is introduced
and some operations on the graphical states are explained. Following is and notable operations on the graphical states are explained. Following is
a chapter describing the implementation of these techniques and some performance a chapter describing the implementation of these techniques and some performance
analysis. analysis.
Being able to simulate large stabilizer states is particularly interesting for
exploring quantum error correction strategies as fault tolerant quantum computing
requires several layers of encoding - so called concatenated codes \cite{nielsen_chuang_2010} -
that require many physical qbits to encode one logical qbit.

View File

@ -214,6 +214,8 @@ As mentioned in \ref{ref:many_qbits} one can approximate an arbitrary $n$-qbit
gate $U$ as a product of some single-qbit gates and either $CX$ or $CZ$. gate $U$ as a product of some single-qbit gates and either $CX$ or $CZ$.
Writing (possibly huge) products of matrices is quite unpractical and Writing (possibly huge) products of matrices is quite unpractical and
unreadable. To address this problem quantum circuits have been introduced. unreadable. To address this problem quantum circuits have been introduced.
The quantum circuits introduced here follow the conventions from
\cite{nielsen_chuang_2010}.
These represent the qbits as a horizontal line and a gate acting on a qbit is These represent the qbits as a horizontal line and a gate acting on a qbit is
a box with a name on the respective line. Quantum circuits are read from a box with a name on the respective line. Quantum circuits are read from
left to right. This means that a gate $U_i = Z_i X_i H_i$ has the left to right. This means that a gate $U_i = Z_i X_i H_i$ has the
@ -244,6 +246,15 @@ Several qbits can be abbreviated by writing a slash on the qbit line:
} }
\] \]
Measurements are denoted using a special "gate", the classical result
is written as double lines:
\[
\Qcircuit @C=1em @R=.7em {
& \gate{H} & \gate{X} & \qw & \meter & \cw \\
}
\]
\section{Quantum Algorithms} \section{Quantum Algorithms}
\label{ref:quantum_algorithms} \label{ref:quantum_algorithms}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 133 KiB

View File

@ -1,4 +1,4 @@
\documentclass[a4paper,12pt,numbers=noenddot]{scrreprt} \documentclass[a4paper,12pt,numbers=noenddot,egregdoesnotlikesansseriftitles]{scrreprt}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{amssymb, amsthm} \usepackage{amssymb, amsthm}
@ -52,18 +52,18 @@ Supervised by Prof. Dr. Christoph Lehner}
{\LARGE University of Regensburg\par} {\LARGE University of Regensburg\par}
{\Large Institute I - Theoretical Physics\par} {\Large Institute I - Theoretical Physics\par}
\vspace{1cm} \vspace{0.7cm}
{\Large Bachelor Thesis\par} {\Large Bachelor Thesis\par}
\vspace{1cm} \vspace{0.7cm}
{\huge\bfseries An Efficient Quantum Computing Simulator using a Graphical Description for Many-Qbit Systems \par} {\huge\bfseries An Efficient Quantum Computing Simulator using a Graphical Description for Many-Qbit Systems \par}
\vspace{1cm} \vspace{0.7cm}
{\Large\itshape Daniel Knüttel\par} {\Large\itshape Daniel Knüttel\par}
\includegraphics[width=\textwidth]{cover.png} \includegraphics[width=\textwidth]{cover.png}
\vfill \vfill
{\Large\itshape Supervised by \par {\Large\itshape Supervised by \par
Dr. Christoph Lehner} Prof. Dr. Christoph Lehner}
\vfill \vfill
{\large 10.04.2020} {\large 10.04.2020}
\end{titlepage} \end{titlepage}
@ -82,6 +82,9 @@ Supervised by Prof. Dr. Christoph Lehner}
\include{chapters/appendix} \include{chapters/appendix}
\end{appendices} \end{appendices}
\newpage
\listoffigures
\bibliographystyle{unsrt} \bibliographystyle{unsrt}
\bibliography{main}{} \bibliography{main}{}