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]
|
||||
, 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"
|
||||
, color="black")
|
||||
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="^"
|
||||
, color="black")
|
||||
|
||||
plt.legend(handles=[h0, h1])
|
||||
plt.xlabel("Number of Qbits $N_q$")
|
||||
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.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.savefig("scaling_qbits_linear.png", dpi=400)
|
||||
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]
|
||||
, 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"
|
||||
, color="black")
|
||||
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="^"
|
||||
, color="black")
|
||||
|
||||
plt.yscale("log")
|
||||
plt.legend(handles=[h0, h1])
|
||||
plt.xlabel("Number of Qbits $N_q$")
|
||||
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.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.savefig("scaling_qbits_log.png", dpi=400)
|
||||
plt.show()
|
||||
|
|
|
@ -16,8 +16,8 @@ h0 = plt.errorbar(results_graph0[:, 0], results_graph0[:, 2], results_graph0[:,
|
|||
, color="black")
|
||||
|
||||
plt.legend(handles=[h0])
|
||||
plt.xlabel("Number of gates in circuit")
|
||||
plt.ylabel("Execution time per circuit [s]")
|
||||
plt.xlabel("Number of Gates in Circuit")
|
||||
plt.ylabel("Execution Time per Circuit [s]")
|
||||
plt.title(f"Execution Time for Random Circuits")
|
||||
|
||||
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")
|
||||
|
||||
plt.legend(handles=[h0, h1])
|
||||
plt.xlabel("Number of gates in circuit")
|
||||
plt.ylabel("Execution time per circuit [s]")
|
||||
plt.xlabel("Number of Gates in Circuit")
|
||||
plt.ylabel("Execution Time per Circuit [s]")
|
||||
plt.title(f"Execution Time for Random Circuits")
|
||||
|
||||
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")
|
||||
|
||||
plt.legend(handles=[h0, h1])
|
||||
plt.xlabel("Number of gates in circuit")
|
||||
plt.ylabel("Execution time per circuit [s]")
|
||||
plt.xlabel("Number of Gates in Circuit")
|
||||
plt.ylabel("Execution Time per Circuit [s]")
|
||||
plt.title(f"Execution Time for Random Circuits with Random Measurements")
|
||||
|
||||
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}
|
||||
\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}
|
||||
|
||||
with the normation condition
|
||||
|
@ -176,13 +176,13 @@ The matrix representation of $CX$ and $CZ$ for two qbits is given by
|
|||
|
||||
\begin{postulate}
|
||||
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
|
||||
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
|
||||
$$\ket{\phi_1} \otimes \ket{1}_j$$
|
||||
\begin{equation}\ket{\phi_1} \otimes \ket{1}_j\end{equation}
|
||||
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.
|
||||
\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 \\
|
||||
\large Bachelor Thesis}
|
||||
\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}
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
|