fixed some stuff as suggested by Simon
|
@ -12,18 +12,18 @@ with open("qbit_scaling_meta.json") as fin:
|
||||||
|
|
||||||
|
|
||||||
h0 = plt.errorbar(results_naive[:, 0], results_naive[:, 2], results_naive[:, 3]
|
h0 = plt.errorbar(results_naive[:, 0], results_naive[:, 2], results_naive[:, 3]
|
||||||
, label=f"Dense Vector Simulator $N_c={int(results_naive[:, 1][0])}$ circuits"
|
, label=f"Dense Vector Simulator $N_c={int(results_naive[:, 1][0])}$ Circuits"
|
||||||
, marker="o"
|
, marker="o"
|
||||||
, color="black")
|
, color="black")
|
||||||
h1 = plt.errorbar(results_graph[:, 0], results_graph[:, 2], results_graph[:, 3]
|
h1 = plt.errorbar(results_graph[:, 0], results_graph[:, 2], results_graph[:, 3]
|
||||||
, label=f"Graphical Simulator $N_c={int(results_graph[:, 1][0])}$ circuits"
|
, label=f"Graphical Simulator $N_c={int(results_graph[:, 1][0])}$ Circuits"
|
||||||
, marker="^"
|
, marker="^"
|
||||||
, color="black")
|
, color="black")
|
||||||
|
|
||||||
plt.legend(handles=[h0, h1])
|
plt.legend(handles=[h0, h1])
|
||||||
plt.xlabel("Number of Qbits $N_q$")
|
plt.xlabel("Number of Qbits $N_q$")
|
||||||
plt.ylabel("Execution time per circuit [s]")
|
plt.ylabel("Execution Time per Circuit [s]")
|
||||||
plt.title(f"Execution Time for ${meta['ngates_per_qbit']}\\times N_q$ Gates with random Circuits (rescaled)")
|
plt.title(f"Execution Time for ${meta['ngates_per_qbit']}\\times N_q$ Gates with Random Circuits (Rescaled)")
|
||||||
|
|
||||||
plt.savefig("scaling_qbits_linear.png", dpi=400)
|
plt.savefig("scaling_qbits_linear.png", dpi=400)
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
|
@ -12,19 +12,19 @@ with open("qbit_scaling_meta.json") as fin:
|
||||||
|
|
||||||
|
|
||||||
h0 = plt.errorbar(results_naive[:, 0], results_naive[:, 2], results_naive[:, 3]
|
h0 = plt.errorbar(results_naive[:, 0], results_naive[:, 2], results_naive[:, 3]
|
||||||
, label=f"Dense Vector Simulator $N_c={int(results_naive[:, 1][0])}$ circuits"
|
, label=f"Dense Vector Simulator $N_c={int(results_naive[:, 1][0])}$ Circuits"
|
||||||
, marker="o"
|
, marker="o"
|
||||||
, color="black")
|
, color="black")
|
||||||
h1 = plt.errorbar(results_graph[:, 0], results_graph[:, 2], results_graph[:, 3]
|
h1 = plt.errorbar(results_graph[:, 0], results_graph[:, 2], results_graph[:, 3]
|
||||||
, label=f"Graphical Simulator $N_c={int(results_graph[:, 1][0])}$ circuits"
|
, label=f"Graphical Simulator $N_c={int(results_graph[:, 1][0])}$ Circuits"
|
||||||
, marker="^"
|
, marker="^"
|
||||||
, color="black")
|
, color="black")
|
||||||
|
|
||||||
plt.yscale("log")
|
plt.yscale("log")
|
||||||
plt.legend(handles=[h0, h1])
|
plt.legend(handles=[h0, h1])
|
||||||
plt.xlabel("Number of Qbits $N_q$")
|
plt.xlabel("Number of Qbits $N_q$")
|
||||||
plt.ylabel("Execution time per circuit [s]")
|
plt.ylabel("Execution Time per Circuit [s]")
|
||||||
plt.title(f"Execution Time for ${meta['ngates_per_qbit']}\\times N_q$ Gates with random Circuits (rescaled)")
|
plt.title(f"Execution Time for ${meta['ngates_per_qbit']}\\times N_q$ Gates with Random Circuits (Rescaled)")
|
||||||
|
|
||||||
plt.savefig("scaling_qbits_log.png", dpi=400)
|
plt.savefig("scaling_qbits_log.png", dpi=400)
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
|
@ -16,8 +16,8 @@ h0 = plt.errorbar(results_graph0[:, 0], results_graph0[:, 2], results_graph0[:,
|
||||||
, color="black")
|
, color="black")
|
||||||
|
|
||||||
plt.legend(handles=[h0])
|
plt.legend(handles=[h0])
|
||||||
plt.xlabel("Number of gates in circuit")
|
plt.xlabel("Number of Gates in Circuit")
|
||||||
plt.ylabel("Execution time per circuit [s]")
|
plt.ylabel("Execution Time per Circuit [s]")
|
||||||
plt.title(f"Execution Time for Random Circuits")
|
plt.title(f"Execution Time for Random Circuits")
|
||||||
|
|
||||||
plt.savefig("scaling_circuits_50qbit_linear.png", dpi=400)
|
plt.savefig("scaling_circuits_50qbit_linear.png", dpi=400)
|
||||||
|
|
|
@ -21,8 +21,8 @@ h1 = plt.errorbar(results_graph1[:, 0], results_graph1[:, 2], results_graph1[:,
|
||||||
, color="black")
|
, color="black")
|
||||||
|
|
||||||
plt.legend(handles=[h0, h1])
|
plt.legend(handles=[h0, h1])
|
||||||
plt.xlabel("Number of gates in circuit")
|
plt.xlabel("Number of Gates in Circuit")
|
||||||
plt.ylabel("Execution time per circuit [s]")
|
plt.ylabel("Execution Time per Circuit [s]")
|
||||||
plt.title(f"Execution Time for Random Circuits")
|
plt.title(f"Execution Time for Random Circuits")
|
||||||
|
|
||||||
plt.savefig("scaling_circuits_linear.png", dpi=400)
|
plt.savefig("scaling_circuits_linear.png", dpi=400)
|
||||||
|
|
|
@ -21,8 +21,8 @@ h1 = plt.errorbar(results_graph1[:, 0], results_graph1[:, 2], results_graph1[:,
|
||||||
, color="black")
|
, color="black")
|
||||||
|
|
||||||
plt.legend(handles=[h0, h1])
|
plt.legend(handles=[h0, h1])
|
||||||
plt.xlabel("Number of gates in circuit")
|
plt.xlabel("Number of Gates in Circuit")
|
||||||
plt.ylabel("Execution time per circuit [s]")
|
plt.ylabel("Execution Time per Circuit [s]")
|
||||||
plt.title(f"Execution Time for Random Circuits with Random Measurements")
|
plt.title(f"Execution Time for Random Circuits with Random Measurements")
|
||||||
|
|
||||||
plt.savefig("scaling_circuits_measurements_linear.png", dpi=400)
|
plt.savefig("scaling_circuits_measurements_linear.png", dpi=400)
|
||||||
|
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 196 KiB |
Before Width: | Height: | Size: 227 KiB After Width: | Height: | Size: 227 KiB |
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 183 KiB |
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 173 KiB |
|
@ -96,7 +96,7 @@ integer states
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\label{eq:ci}
|
\label{eq:ci}
|
||||||
\ket{\psi} = \sum\limits_{i = 0}^{2^n - 1} c_i \ket{i} .
|
\ket{\psi} = \sum\limits_{i = 0}^{2^n - 1} c_i \ket{i}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
with the normation condition
|
with the normation condition
|
||||||
|
@ -176,13 +176,13 @@ The matrix representation of $CX$ and $CZ$ for two qbits is given by
|
||||||
|
|
||||||
\begin{postulate}
|
\begin{postulate}
|
||||||
Let
|
Let
|
||||||
$$\ket{\psi} = \alpha\ket{\phi_1} \otimes \ket{1}_j + \beta\ket{\phi_0} \otimes \ket{0}_j$$
|
\begin{equation}\ket{\psi} = \alpha\ket{\phi_1} \otimes \ket{1}_j + \beta\ket{\phi_0} \otimes \ket{0}_j\end{equation}
|
||||||
be a $n$-qbit state
|
be a $n$-qbit state
|
||||||
where $\ket{1}_j, \ket{0}_j$ denote the $j$-th qbit state and $|\alpha|^2 + |\beta|^2 = 1$.
|
where $\ket{1}_j, \ket{0}_j$ denote the $j$-th qbit state and $|\alpha|^2 + |\beta|^2 = 1$.
|
||||||
Then the measurement of the $j$-th qbit will yield
|
Then the measurement of the $j$-th qbit will yield
|
||||||
$$\ket{\phi_1} \otimes \ket{1}_j$$
|
\begin{equation}\ket{\phi_1} \otimes \ket{1}_j\end{equation}
|
||||||
with probability $|\alpha|^2$ and
|
with probability $|\alpha|^2$ and
|
||||||
$$\ket{\phi_0} \otimes \ket{0}_j$$
|
\begin{equation}\ket{\phi_0} \otimes \ket{0}_j\end{equation}
|
||||||
with probability $|\beta|^2$ \cite{nielsen_chuang_2010}. This is called collapse of the wave function.
|
with probability $|\beta|^2$ \cite{nielsen_chuang_2010}. This is called collapse of the wave function.
|
||||||
\end{postulate}
|
\end{postulate}
|
||||||
|
|
||||||
|
|
BIN
thesis/cover.png
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 183 KiB |
|
@ -39,7 +39,8 @@
|
||||||
\title{An Efficient Quantum Computing Simulator using a Graphical Description for Many-Qbit Systems \\
|
\title{An Efficient Quantum Computing Simulator using a Graphical Description for Many-Qbit Systems \\
|
||||||
\large Bachelor Thesis}
|
\large Bachelor Thesis}
|
||||||
\author[1]{Daniel Knüttel}
|
\author[1]{Daniel Knüttel}
|
||||||
\affil[1]{Institute I - Theoretical Physics, University of Regensburg}
|
\affil[1]{Institute I - Theoretical Physics, University of Regensburg\\
|
||||||
|
Supervised by Prof. Dr. Christoph Lehner}
|
||||||
\date{10.04.2020}
|
\date{10.04.2020}
|
||||||
\begin{document}
|
\begin{document}
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|