fixed a lot of stuff
|
@ -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")
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 153 KiB |
Before Width: | Height: | Size: 227 KiB After Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 133 KiB |
|
@ -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.
|
|
||||||
|
|
|
@ -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}
|
||||||
|
|
BIN
thesis/cover.png
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 133 KiB |
|
@ -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}{}
|
||||||
|
|
||||||
|
|