diff --git a/performance/plot_scaling_qbits_linear.py b/performance/plot_scaling_qbits_linear.py index 18161c9..f9f06f4 100644 --- a/performance/plot_scaling_qbits_linear.py +++ b/performance/plot_scaling_qbits_linear.py @@ -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() diff --git a/performance/plot_scaling_qbits_log.py b/performance/plot_scaling_qbits_log.py index e53fbee..26c1f5e 100644 --- a/performance/plot_scaling_qbits_log.py +++ b/performance/plot_scaling_qbits_log.py @@ -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() diff --git a/performance/regimes/plot_scaling_circuits_50qbit_linear.py b/performance/regimes/plot_scaling_circuits_50qbit_linear.py index c544155..f327f91 100644 --- a/performance/regimes/plot_scaling_circuits_50qbit_linear.py +++ b/performance/regimes/plot_scaling_circuits_50qbit_linear.py @@ -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) diff --git a/performance/regimes/plot_scaling_circuits_linear.py b/performance/regimes/plot_scaling_circuits_linear.py index ea1c97d..d111440 100644 --- a/performance/regimes/plot_scaling_circuits_linear.py +++ b/performance/regimes/plot_scaling_circuits_linear.py @@ -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) diff --git a/performance/regimes/plot_scaling_circuits_measurements_linear.py b/performance/regimes/plot_scaling_circuits_measurements_linear.py index d5a8a88..fbc62f7 100644 --- a/performance/regimes/plot_scaling_circuits_measurements_linear.py +++ b/performance/regimes/plot_scaling_circuits_measurements_linear.py @@ -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) diff --git a/performance/regimes/scaling_circuits_50qbit_linear.png b/performance/regimes/scaling_circuits_50qbit_linear.png index c2ac4a1..75c1344 100644 Binary files a/performance/regimes/scaling_circuits_50qbit_linear.png and b/performance/regimes/scaling_circuits_50qbit_linear.png differ diff --git a/performance/regimes/scaling_circuits_linear.png b/performance/regimes/scaling_circuits_linear.png index 0125a48..5c0e34e 100644 Binary files a/performance/regimes/scaling_circuits_linear.png and b/performance/regimes/scaling_circuits_linear.png differ diff --git a/performance/regimes/scaling_circuits_measurements_linear.png b/performance/regimes/scaling_circuits_measurements_linear.png index 011b0cf..f71fd27 100644 Binary files a/performance/regimes/scaling_circuits_measurements_linear.png and b/performance/regimes/scaling_circuits_measurements_linear.png differ diff --git a/performance/scaling_qbits_linear.png b/performance/scaling_qbits_linear.png index a617536..00dcbcf 100644 Binary files a/performance/scaling_qbits_linear.png and b/performance/scaling_qbits_linear.png differ diff --git a/performance/scaling_qbits_log.png b/performance/scaling_qbits_log.png index 4ed9092..9e6535e 100644 Binary files a/performance/scaling_qbits_log.png and b/performance/scaling_qbits_log.png differ diff --git a/thesis/chapters/quantum_computing.tex b/thesis/chapters/quantum_computing.tex index c9a1690..341f6f5 100644 --- a/thesis/chapters/quantum_computing.tex +++ b/thesis/chapters/quantum_computing.tex @@ -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} diff --git a/thesis/cover.png b/thesis/cover.png index a617536..00dcbcf 100644 Binary files a/thesis/cover.png and b/thesis/cover.png differ diff --git a/thesis/main.tex b/thesis/main.tex index d142f8a..60435e7 100644 --- a/thesis/main.tex +++ b/thesis/main.tex @@ -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