{ "cells": [ { "cell_type": "markdown", "id": "55900f6c-2fb6-4d2c-8745-29bad8b66d9f", "metadata": {}, "source": [ "# Benchmark Pauli operator projection" ] }, { "cell_type": "markdown", "id": "b5caa5b4", "metadata": {}, "source": [ "### Pauli string action on a computational basis state\n", "\n", "The action of a Pauli string on a computational basis state is rather trivial, and just a single computational basis state itself. This is a direct consequence of the structure of Pauli matrices, which only have a single nonzero element on each of their rows. Consequently, their action on a qubit is:\n", "\n", "-------------------------------------------\n", "\n", "$$\n", "\\sigma_x |0 \\rangle = |1 \\rangle\n", "$$\n", "\n", "$$\n", "\\sigma_x |1 \\rangle = |0 \\rangle\n", "$$\n", "\n", "-------------------------------------------\n", "\n", "$$\n", "\\sigma_y |0 \\rangle = i|1 \\rangle\n", "$$\n", "\n", "$$\n", "\\sigma_y |1 \\rangle = -i|0 \\rangle\n", "$$\n", "\n", "-------------------------------------------\n", "\n", "$$\n", "\\sigma_z |0 \\rangle = |0 \\rangle\n", "$$\n", "\n", "$$\n", "\\sigma_z |1 \\rangle = -|1 \\rangle\n", "$$\n", "\n", "-------------------------------------------\n", "\n", "$$\n", "I |0 \\rangle = |0 \\rangle\n", "$$\n", "\n", "$$\n", "I |1 \\rangle = |1 \\rangle\n", "$$\n", "\n", "-------------------------------------------\n", "\n", "Each bit on the bitstring labeling the computational basis will be labeled by $x \\in \\{0, 1 \\}$. In order to keep the implementation at light as possible, we will\n", "represent the bitstrings with `bool` variables: $0\\rightarrow \\textrm{False}$ and\n", "$1\\rightarrow \\textrm{True}$.\n", "\n", "To represent the action of each Pauli operator in a computational basis state\n", "we will assign three variables to it: `diag`, `sign`, `imag`.\n", "\n", "- `diag` labels whether the operator is diagonal:\n", "\n", " - $\\textrm{diag}(I) = \\textrm{True}$\n", " - $\\textrm{diag}(\\sigma_x) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_y) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_z) = \\textrm{True}$\n", "\n", "- `sign` Identifies if there is a sign change in the matrix element connected \n", "to either 0 or 1:\n", "\n", " - $\\textrm{diag}(I) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_x) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_y) = \\textrm{True}$\n", " - $\\textrm{diag}(\\sigma_z) = \\textrm{True}$\n", "\n", "- `imag` Identifies if there is a complex component to the matrix element:\n", "\n", " - $\\textrm{diag}(I) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_x) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_y) = \\textrm{False}$\n", " - $\\textrm{diag}(\\sigma_z) = \\textrm{True}$\n", "\n", "Let's label an arbitrary Pauli operator as $\\sigma \\in \\{ I, \\sigma_x, \\sigma_y\n", "\\sigma_z\\}$. The action of the Pauli operator on a computational basis state \n", "can then be represented by the logic operation:\n", "$$\n", "\\sigma |x \\rangle = |x == \\textrm{diag}(\\sigma) \\rangle (-1)^{x\\textrm{ and sign}(\\sigma)}\n", "(i)^{\\textrm{imag}(\\sigma)}.\n", "$$\n", "The same is straightforwardly generalized to arbitrary number of qubits." ] }, { "cell_type": "markdown", "id": "a8fd7e11", "metadata": {}, "source": [ "Let's check that this works:" ] }, { "cell_type": "code", "execution_count": 1, "id": "dcb15308", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-------------------\n", "I\n", "|False> --> |False> ME:(1+0j)\n", "|True> --> |True> ME:(1+0j)\n", "-------------------\n", "SX\n", "|False> --> |True> ME:(1+0j)\n", "|True> --> |False> ME:(1+0j)\n", "-------------------\n", "SZ\n", "|False> --> |False> ME:(1+0j)\n", "|True> --> |True> ME:(-1+0j)\n", "-------------------\n", "SY\n", "|False> --> |True> ME:1j\n", "|True> --> |False> ME:(-0-1j)\n" ] } ], "source": [ "def connected_element_and_amplitude_bool(\n", " x: bool, diag: bool, sign: bool, imag: bool\n", ") -> tuple[bool, complex]:\n", " \"\"\"\n", " Finds the connected element to computational basis state |x> under\n", " the action of the Pauli operator represented by (diag, sign, imag).\n", "\n", " Args:\n", " x: Value of the bit, either True or False.\n", " diag: Whether the Pauli operator is diagonal (I, Z)\n", " sigma: Whether the Pauli operator's rows differ in sign (Y, Z)\n", " imag: Whether the Pauli operator is purely imaginary (Y)\n", "\n", " Returns:\n", " A length-2 tuple:\n", " - The connected element to x, either False or True\n", " - The matrix element\n", " \"\"\"\n", " return x == diag, (-1) ** (x and sign) * (1j) ** (imag)\n", "\n", "\n", "sigma_indices = [0, 1, 2, 3]\n", "sigma_string = [\"I\", \"SX\", \"SZ\", \"SY\"]\n", "sigma_diag = [True, False, True, False]\n", "sigma_sign = [False, False, True, True]\n", "sigma_imag = [False, False, False, True]\n", "qubit_values = [False, True]\n", "\n", "for xi in sigma_indices:\n", " print(\"-------------------\")\n", " print(sigma_string[xi])\n", " for x in qubit_values:\n", " x_p, matrix_element = connected_element_and_amplitude_bool(\n", " x, sigma_diag[xi], sigma_sign[xi], sigma_imag[xi]\n", " )\n", " print(\"|\" + str(x) + \"> --> |\" + str(x_p) + \"> ME:\" + str(matrix_element))" ] }, { "cell_type": "markdown", "id": "f40a3463", "metadata": {}, "source": [ "Let's generate some large number of bitstrings (50 M) for a 40-qubit system" ] }, { "cell_type": "code", "execution_count": 2, "id": "74c16c91-cc5c-46ce-aff8-17d0e71ac50f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total number of unique bitstrings: 49998839\n" ] } ], "source": [ "import numpy as np\n", "from qiskit_addon_sqd.qubit import sort_and_remove_duplicates\n", "\n", "rand_seed = 22\n", "np.random.seed(rand_seed)\n", "\n", "# Generate some random bitstrings for testing\n", "\n", "\n", "def random_bitstrings(n_samples, n_qubits):\n", " return np.round(np.random.rand(n_samples, n_qubits)).astype(\"int\").astype(\"bool\")\n", "\n", "\n", "n_qubits = 40\n", "bts_matrix = random_bitstrings(50_000_000, n_qubits)\n", "\n", "# We need to sort the bitstrings and just keep the unique ones\n", "# NOTE: It is essential for the projection code to have the bitstrings sorted!\n", "bts_matrix = sort_and_remove_duplicates(bts_matrix).astype(\"bool\")\n", "\n", "# Final subspace dimension after getting rid of duplicated bitstrings\n", "d = bts_matrix.shape[0]\n", "\n", "print(\"Total number of unique bitstrings: \" + str(d))" ] }, { "cell_type": "markdown", "id": "184bf287", "metadata": {}, "source": [ "### Let's time the projection time for a Pauli String\n", "\n", "The Pauli string under consideration is $\\sigma_z \\otimes ... \\otimes \\sigma_z$.\n", "\n", "Different subspace dimensions are considered by just slicing the matrix of bitstrings. We time the subspace projection for the different subspace sizes." ] }, { "cell_type": "code", "execution_count": 3, "id": "8fe182bc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 0 took 0.201246s\n", "Iteration 1 took 0.348222s\n", "Iteration 2 took 0.576333s\n", "Iteration 3 took 0.78356s\n", "Iteration 4 took 1.016162s\n", "Iteration 5 took 1.305325s\n", "Iteration 6 took 1.392751s\n", "Iteration 7 took 1.632433s\n", "Iteration 8 took 1.826521s\n", "Iteration 9 took 2.02903s\n", "Iteration 10 took 2.297458s\n", "Iteration 11 took 2.588042s\n", "Iteration 12 took 2.738746s\n", "Iteration 13 took 2.906144s\n", "Iteration 14 took 3.148833s\n", "Iteration 15 took 3.323253s\n", "Iteration 16 took 3.664171s\n", "Iteration 17 took 3.680663s\n", "Iteration 18 took 4.008313s\n", "Iteration 19 took 4.173532s\n" ] } ], "source": [ "import time\n", "\n", "from qiskit.quantum_info import Pauli\n", "from qiskit_addon_sqd.qubit import matrix_elements_from_pauli\n", "\n", "pauli = Pauli(\"Z\" * n_qubits)\n", "\n", "# Different subspace sizes to test\n", "d_list = np.linspace(d / 1000, d, 20).astype(\"int\")\n", "\n", "# To store the walltime\n", "time_array = np.zeros(20)\n", "\n", "for i in range(20):\n", " int_bts_matrix = bts_matrix[: d_list[i], :]\n", " time_1 = time.time()\n", " _ = matrix_elements_from_pauli(int_bts_matrix, pauli)\n", " time_array[i] = time.time() - time_1\n", " print(f\"Iteration {i} took {round(time_array[i], 6)}s\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "9abb110f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# Data for energies plot\n", "x1 = d_list\n", "y1 = time_array\n", "\n", "# Plot energies\n", "plt.title(\"Runtime vs subspace dimension 40 qubits\")\n", "plt.xlabel(\"Subspace dimension (millions)\")\n", "plt.ylabel(\"Wall time [s]\")\n", "plt.xticks([1e7, 2e7, 3e7, 4e7, 5e7], [str(i) for i in [10, 20, 30, 40, 50]])\n", "plt.plot(x1, y1, marker=\".\", markersize=20)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "8c486bc7", "metadata": {}, "source": [ "Let's do the same for 60 qubits" ] }, { "cell_type": "code", "execution_count": 5, "id": "359ed3f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total number of unique bitstrings: 50000000\n" ] } ], "source": [ "n_qubits = 60\n", "bts_matrix = random_bitstrings(50_000_000, n_qubits)\n", "\n", "# We need to sort the bitstrings and just keep the unique ones\n", "bts_matrix = sort_and_remove_duplicates(bts_matrix).astype(\"bool\")\n", "\n", "# Final subspace dimension after getting rid of duplicated bitstrings\n", "d = bts_matrix.shape[0]\n", "\n", "print(\"Total number of unique bitstrings: \" + str(d))" ] }, { "cell_type": "code", "execution_count": 6, "id": "7bb0d8d8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 0 took 0.236567s\n", "Iteration 1 took 0.424116s\n", "Iteration 2 took 0.673399s\n", "Iteration 3 took 0.905164s\n", "Iteration 4 took 1.168936s\n", "Iteration 5 took 1.454204s\n", "Iteration 6 took 1.74778s\n", "Iteration 7 took 1.920795s\n", "Iteration 8 took 2.259994s\n", "Iteration 9 took 2.550674s\n", "Iteration 10 took 2.681287s\n", "Iteration 11 took 3.04411s\n", "Iteration 12 took 3.293262s\n", "Iteration 13 took 3.471247s\n", "Iteration 14 took 3.726639s\n", "Iteration 15 took 4.072854s\n", "Iteration 16 took 4.221037s\n", "Iteration 17 took 4.498535s\n", "Iteration 18 took 4.741108s\n", "Iteration 19 took 5.159038s\n" ] } ], "source": [ "pauli = Pauli(\"Z\" * n_qubits)\n", "\n", "# Different subspace sizes to test\n", "d_list = np.linspace(d / 1000, d, 20).astype(\"int\")\n", "\n", "# It is better to do this once\n", "row_array = np.arange(d)\n", "\n", "# To store the walltime\n", "time_array = np.zeros(20)\n", "\n", "for i in range(20):\n", " int_bts_matrix = bts_matrix[: d_list[i], :]\n", " int_row_array = row_array[: d_list[i]]\n", " time_1 = time.time()\n", " _ = matrix_elements_from_pauli(int_bts_matrix, pauli)\n", " time_array[i] = time.time() - time_1\n", " print(f\"Iteration {i} took {round(time_array[i], 6)}s\")" ] }, { "cell_type": "code", "execution_count": 7, "id": "6b961c81", "metadata": {}, "outputs": [ { "data": { "image/png": "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IiKqiSThxlNf27Kasa2EEMjUGJCrK4Cv0hMBKjkHghMREVVDtuQJ9jiVQpIkBPooEOijcHYpRERE5CI4xomIiIjISgxORERERFZicCIiIiKyEoMTERERkZUYnIiIiIisxOBEREREZCUGJyIiIiIruURwWrx4MSIiIuDl5YWuXbti3759zi6JiIiIqBinB6c1a9bgueeew+zZs3Hw4EG0b98egwcPxo0bN5xdGhEREZEFpwen9957D0888QRiY2PRqlUrLFmyBCqVCl9//bWzSyMiIiKy4NTgpNfrkZiYiIEDB5q3eXh4YODAgdi9e7cTKyMiIiIqzqlr1d28eRNGoxF169a12F63bl2cPn262PE6nQ46nc58Ozs72+41EhERERVxq0V+58+fj7lz5xbbzgBFREREFVWUI4QQ5R7r1OBUu3ZtyGQyXL9+3WL79evXUa9evWLHz5o1C88995z59j///INWrVohNDTU7rUSERFR9ZaTkwN/f/8yj3FqcFIoFIiMjMSWLVswYsQIAIDJZMKWLVswffr0YscrlUoolUrzbV9fX1y+fBl+fn6QJMlRZZMDZWdnIzQ0FJcvX4ZarXZ2OTUOX3/n43vgfHwPnM/e74EQAjk5OWjQoEG5xzr9VN1zzz2H6OhodOrUCV26dMEHH3yAvLw8xMbGltvWw8MDISEhDqiSnE2tVvMHlhPx9Xc+vgfOx/fA+ez5HpTX01TE6cFp7NixSEtLwxtvvIFr166hQ4cO2LhxY7EB40RERETO5vTgBADTp08v8dQcERERkStx+gSYRGVRKpWYPXu2xdg2chy+/s7H98D5+B44nyu9B5Kw5to7IiIiImKPExEREZG1GJyIiIiIrMTgRERERGQlBidyuu3bt2PYsGFo0KABJEnCTz/9ZLFfCIE33ngD9evXh7e3NwYOHIizZ886p9hqav78+ejcuTP8/PxQp04djBgxAmfOnLE4Jj8/H9OmTUOtWrXg6+uLUaNGFZv1nyrus88+Q7t27czz1HTv3h1//PGHeT9ff8dasGABJEnCM888Y97G98C+5syZA0mSLL7uuusu835Xef0ZnMjp8vLy0L59eyxevLjE/QsXLsRHH32EJUuWYO/evfDx8cHgwYORn5/v4Eqrr/j4eEybNg179uzB5s2bYTAYcM899yAvL898zLPPPotff/0VP/zwA+Lj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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Data for energies plot\n", "x1 = d_list\n", "y1 = time_array\n", "\n", "fig, axs = plt.subplots(1, 1, figsize=(6, 6))\n", "\n", "# Plot energies\n", "axs.plot(x1, y1, marker=\".\", markersize=20)\n", "axs.set_title(\"Runtime vs subspace dimension 60 qubits\")\n", "axs.set_xlabel(\"Subspace dimension (millions)\")\n", "plt.xticks([1e7, 2e7, 3e7, 4e7, 5e7], [str(i) for i in [10, 20, 30, 40, 50]])\n", "axs.set_ylabel(\"Wall time [s]\")\n", "\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.4" } }, "nbformat": 4, "nbformat_minor": 5 }