{ "cells": [ { "cell_type": "markdown", "id": "c2dd198c", "metadata": {}, "source": [ "# SQCL Quickstart Notebook\n", "## Introduction\n", "This jupyter notebook explains the fundamentals of using this quantum circuit library step by step. \n", "\n", "## Prerequisites\n", "This library uses numpy version earlier than 2 and pytorch. If numpy or pytorch is not installed on your system you can easily install them by using the following command:\n", "\n", "`pip install numpy<=2.0 torch torchvision torchaudio`\n", "\n", "If you are using google colab, click in the runtime tab on \"change runtime type\" and choose a gpu. The project will default to a gpu to run faster computations. \n", "\n", "Project initializiton script:" ] }, { "cell_type": "code", "execution_count": 1, "id": "ec4ee268", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running setup for local machine...\n", "Python path: /Users/dan/Documents/Studies/Research Groups/Nadav Katz/Quantum Circuit Library/src\n" ] } ], "source": [ "try:\n", " import google.colab\n", " if 'colab_cell_executed' not in globals():\n", " print(\"Running setup for Google Colab...\")\n", " %cd ~\n", " %cd ./../content/\n", " !git clone https://github.com/Dan7nm/Simple-Quantum-Circuits-Library.git\n", " %cd Simple-Quantum-Circuits-Library/src\n", " \n", " # Set the flag to indicate this cell has been executed\n", " colab_cell_executed = True\n", " else:\n", " print(\"Colab setup has already been executed.\")\n", "except ImportError:\n", " if 'local_cell_executed' not in globals():\n", " print(\"Running setup for local machine...\")\n", " # run this line\n", " import os \n", " os.chdir(\"../../../src/\")\n", " print(\"Python path:\",os.getcwd())\n", " local_cell_executed = True\n", " else:\n", " print(\"Python directory was already initialized.\")" ] }, { "cell_type": "markdown", "id": "79091119", "metadata": {}, "source": [ "## Qubit class\n", "This class constructs a single qubit. The constructer of this class is given two complex numbers, alpha and beta, which are the amplitudes of the zero state and one state respectively. \n", "Let's construct a zero state ,a one state qubits and a qubit with equal amplitudes:" ] }, { "cell_type": "code", "execution_count": 2, "id": "14264549", "metadata": {}, "outputs": [], "source": [ "from qubit import Qubit\n", "import numpy as np\n", "\n", "q0 = Qubit(alpha=1,beta=0)\n", "q1 = Qubit(alpha=0,beta=1)\n", "q2 = Qubit(alpha= 1/np.sqrt(2),beta= 1/np.sqrt(2))" ] }, { "cell_type": "markdown", "id": "e7acdde0", "metadata": {}, "source": [ "Note that the amplitudes have to respect the normalization of the quantum state otherwise the class will throw an error.\n", "\n", "Now let's print the qubit in different forms to show the quantum state of the qubit:" ] }, { "cell_type": "code", "execution_count": 3, "id": "346baa50", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Qubit state is 1.00|0⟩\n", "Qubit state is 1.00|1⟩\n", "Qubit state is 0.71|0⟩ + 0.71|1⟩\n", "[1 0]\n", "[0 1]\n", "[0.70710678 0.70710678]\n" ] } ], "source": [ "# Tensor form more readable:\n", "q0.print_qubit()\n", "q1.print_qubit()\n", "q2.print_qubit()\n", "# Vector form for debugging and backend of the library.\n", "q0.print_vector_form()\n", "q1.print_vector_form()\n", "q2.print_vector_form()" ] }, { "cell_type": "markdown", "id": "1859af5e", "metadata": {}, "source": [ "We can change the amplitudes using the set amplitudes method. Remember to respect the normalization condition.\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "81641743", "metadata": {}, "outputs": [], "source": [ "q2.set_amplitudes(alpha=1,beta=0)" ] }, { "cell_type": "markdown", "id": "58acb0c9", "metadata": {}, "source": [ "There are also getter function for the amplitudes and for the qubit vector." ] }, { "cell_type": "code", "execution_count": 5, "id": "a210bc87", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "0\n", "[1 0]\n" ] } ], "source": [ "print(q2.get_alpha())\n", "print(q2.get_beta())\n", "print(q2.get_vector())" ] }, { "cell_type": "markdown", "id": "0e76c9bd", "metadata": {}, "source": [ "We can measure a qubit using the measure method. By measuring we collapse to one of the two qubit states. The state to which the qubit collapsed is then returned by the method. Let's se an example:" ] }, { "cell_type": "code", "execution_count": 6, "id": "938d44ac", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Qubit state is 0.50|0⟩ + 0.87|1⟩\n" ] }, { "data": { "text/plain": [ "1" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Initialize a qubit with 1/4 to collapse to the zero state and 3/4 to collpase to one state:\n", "q2 = Qubit(alpha = 1/2,beta = np.sqrt(3)/2)\n", "\n", "# Print the qubit:\n", "q2.print_qubit()\n", "\n", "# Perform a measurment:\n", "q2.measure()" ] }, { "cell_type": "markdown", "id": "990e7595", "metadata": {}, "source": [ "If we rerun the cell above mutliple times we will get zero state with probability 1/4 and one state with probability 3/4." ] }, { "cell_type": "markdown", "id": "759c1809", "metadata": {}, "source": [ "## MultiQubit Class\n", "This class let's you construct a tensor product of multiple qubits, used later as an input to the quantum circuit.\n", "Let's construct a MultiQubit object:" ] }, { "cell_type": "code", "execution_count": 7, "id": "58a22ab2", "metadata": {}, "outputs": [], "source": [ "from multi_qubit import MultiQubit\n", "mt = MultiQubit()" ] }, { "cell_type": "markdown", "id": "fa40ea54", "metadata": {}, "source": [ "Now let's add a few qubits to this tensor product:" ] }, { "cell_type": "code", "execution_count": 8, "id": "d7f96623", "metadata": {}, "outputs": [], "source": [ "mt.add_qubit(q0)\n", "mt.add_qubit(q1)\n", "mt.add_qubit(q1)" ] }, { "cell_type": "markdown", "id": "e640d317", "metadata": {}, "source": [ "As before in a single qubit case, we can print the tensor product of multiple qubits in tensor form and in vector form:\n", "\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "72873398", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: |011⟩\n", "The vector of the tensor product is: [0 0 0 1 0 0 0 0]\n" ] } ], "source": [ "mt.print_tensor_form()\n", "mt.print_vector_form()" ] }, { "cell_type": "markdown", "id": "918f4052", "metadata": {}, "source": [ "This class also has getters for the tensor product vector and the number of qubits in the tensor product:" ] }, { "cell_type": "code", "execution_count": 10, "id": "e4b0a2ab", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n", "[0 0 0 1 0 0 0 0]\n" ] } ], "source": [ "print(mt.get_number_of_qubits())\n", "print(mt.get_tensor_vector())" ] }, { "cell_type": "markdown", "id": "57e50038", "metadata": {}, "source": [ "We can perform a measurment on the tensor product of qubits and collapse to one of the states. The measurement is simulated using a randomized number in a uniform distributation between 0 and 1. Each state has it's own interval between 0 and 1. The randomized number determines the interval and the state we collapsed to. Let's show an example: " ] }, { "cell_type": "code", "execution_count": 11, "id": "a15afd43", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: 0.5|00⟩ + 0.5|01⟩ + 0.5|10⟩ + 0.5|11⟩\n" ] }, { "data": { "text/plain": [ "'11'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Initialize a two qubit tensor with equal probability for each state:\n", "vector = np.full(4,1/2)\n", "mt = MultiQubit(vector)\n", "\n", "# Let's print the state:\n", "mt.print_tensor_form()\n", "\n", "# Perform a mesurement:\n", "mt.measure()" ] }, { "cell_type": "markdown", "id": "c769f20e", "metadata": {}, "source": [ "We can plot the probabilites and amplitudes for each states directly from the state amplitudes:" ] }, { "cell_type": "code", "execution_count": 12, "id": "3e41652e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: 0.5|00⟩ + 0.866|10⟩\n" ] }, { "data": { "image/png": "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/vvvbt9KS9KxY8fUoUMHhYaG6m9/+5sOHz6s+fPnq0ePHvrPf/6jfv36We7pscce0+zZs7Vp0yY9+uijCgkJkaRLusbht99+U4cOHXT8+HENGDBAV1xxhdavX68OHTro6quv9rrMmDFj9OKLL6p27doaMGCAgoODtXr1av3zn//UTz/9pE8//dRt3pdeekn169fXnXfeqcqVK+vgwYNas2aNvvvuuyK51qBChQoaPXq0hg8frvnz5+uOO+7Ic15jjLp3766ffvpJHTp0UI8ePWS327V37159+eWXuueeexQVFaV7771XkrRq1SrFxsa63uOc9zxHZmamunTpouPHj6tPnz4qV66cwsLCLlrzunXrNGnSJPXo0UMPP/yw4uPj9cUXX2j16tVat26d6tWrV6j3orDbyOnTp9WlSxetX79e11xzjR577DElJydr/vz5Wrp0qT766CPdfvvtHsu9+eabWrJkifr27asuXbpoyZIlev3113XkyBHNmzevQDV/+umnGjx4sPz9/TVw4EDVqFFD33zzjSZOnKilS5dq5cqVCggIUHR0tOLi4rRgwQKP/i78vVxo+vTpWrRokTp16qSePXvq5MmTWrlypcaMGaOff/5Zn332WYFqnTVrliRp7Nixec4TFham++67T5MnT9bs2bPznfdixowZIz8/P1133XWqWbOmDh8+rC+//FK33XabXn/9dT388MMeyyQmJqpdu3Zq2rSphg0bpl27dmnhwoW64YYb9PvvvyssLEwhISGKi4vT1KlTJcntZh2X+pk8duyYrrvuOoWHhys2NlY7duzQV199pW3btmnhwoXq2LGjWrZsqWHDhmnDhg367LPPdPToUS1fvvyi665WrZokaefOnQWqpSCf48mTJyshIUHt2rVT//79lZqaqiVLluiBBx7Q9u3b9a9//UuSXNvfhAkT3PYRktS8eXPX/7eyfwRKpZJOcgAu3ahRo4wk89FHHxljjMnIyDAVK1Y0kZGRJjs722P+nG/yb7/9dnPmzBnX+OTJk40kExISYh5//HHjdDpd0/7+978bSeazzz5zW5f+/7eUd955p9v8mzZtMn5+fiY0NNTtG/uCHpEyxvtRjhyFOSKV843tBx984DY+ZswYr9/2f/PNN0aS6d69uzl+/Lhr3Ol0mgcffNBIcvu2vGrVqqZWrVpuRxZy/Pnnn17rvNDFjkgZY8yuXbuMJBMREeE2fmHPmzdvNpJMv379PNZx+vRpk5GR4fo5r99L7rpy3gtvR2DyOyIlyUybNs1t/mnTphlJ5pZbbsm3hwtruPDoUn7bSF7LTJgwwXWkJfc2u3HjRuPn52dCQkJMenq6azznvQkODjbbtm1zjZ88edI0bNjQ2O12c/DgQa+vn1taWpoJDg42/v7+ZtOmTa7x7OxsM3DgQCPJTJw40VJ/3uzdu9fjaIDT6TTDhg0zkrwedbtQYmKikWRq16590Xlzf05yFOYIT85RnNwyMjJMTEyMCQ4Odvtc5T7K9OKLL7ot8+yzzxpJZtKkSW7jeR2dLGy9Oa//+OOPu43n7CtDQkLM1KlTXeNOp9P07NnTSHId+c9PRkaGiYyMNJJMr169zNy5c8327dvdttkLXexzvHv3bo+xM2fOmBtvvNE4HA6zd+9ejx7z+jxa3T8CpRFXhgKXuTNnzmju3LkKCgpyHfmpVKmS+vfvr3379um7777Lc9lXXnlF5cqdPzA9ePBgSeducPD888/LZrN5TNu0aZPHehwOh1544QW3+Zs1a6Z77rlHhw8f1tdff31JPRaFffv2adWqVWrWrJnuuusut2lPP/2012/533zzTUnSe++9p4oVK7rGbTabXnzxRdlsNn300Uduy/j5+XkcsZOkqlWrFkEX5+RcK3HkyJECzV+hQgWPMX9/f1WqVMnya7/00kte15efhg0b6r777nMbu++++3TFFVdo8eLFOnz4sOU6LsX777+v8uXLu36HOVq0aKHY2FilpqZqwYIFHss9+uijatSokevnChUqaPDgwXI6ndqwYcNFX3fhwoVKS0vTsGHD1KxZM9e43W7XSy+9pHLlymn27NmX1JskRUZGemyDNptNI0aMkKR89wk5kpKSJEkREREXnTdnnoMHD1ot1Y23I5OVKlXSvffeq7S0NP38888e0+vWrat//vOfbmPDhw+XJK/zF7VKlSrp+eefdxvL2VdWq1ZNjzzyiGvcZrNp0KBBkrzvR72te8GCBWratKkWL16se+65R40aNVKVKlXUu3dvffHFF5brrVu3rsdYuXLl9OCDDyo7O1srVqwo8LoKs38EShtO7QMucwsXLtThw4c1fPhwBQQEuMaHDBmiDz74QDNmzNBNN93ksVyVKlUUGRnpNpZzs4ArrrjC4+5vOdNyLn7PLTIyUlFRUR7jHTt21IwZM/TLL7/o1ltvtd5cEcr5w+W6667zmFapUiU1b97c45bB69atU8WKFTVz5kyv66xQoYK2bdvm+nnQoEF6++23ddVVV2nQoEG64YYb1L59e8vBo6g0adJEzZo100cffaQDBw6oX79+uv7669W8efNC3WEtICBAMTExlpfr0KGDx+vZ7XZ16NBBO3fu1KZNm9StWzfL6y2M9PR07d69W02aNFGdOnU8pt9www2aPn26fv31V91zzz1u01q2bOkxf846UlNTL/rav/zyiyTvp5NFRkaqXr162rFjhzIyMlS5cuUCdONdVlaW3nzzTX388cfatm2bjh8/LmOMa7q3z3BRcDqdl7R8SkqKXnzxRf33v//V3r17derUKbfp3ur2ti1b+Z1cqvz2lc2aNXML6rmnFfR30KJFC23ZskVr167VihUrtGHDBq1Zs0ZfffWVvvrqK911112aO3eux+vkJSMjQ6+88ooWLFigXbt26cSJE27TrWwbVvePQGlEkAIuczNmzJB0Ljjl1rVrV9WuXVsLFy7U0aNHPY6IBAUFeawr5+hUftPOnDnjMS2v62RyxtPS0i7Wxl8up4YaNWp4ne6th6NHj+rs2bOaMGFCnuvN/YfIa6+9prp162rWrFl6/vnn9fzzzysgIEB33HGH/vWvf6l69eqX2MU5OX/shIaG5jtfuXLltHz5co0fP16fffaZ/vGPf7iWGzlypJ555hmvR8/yUqNGjQL/wZabL20f6enp+daU84duzny55fe5yM7OLpLX3rFjh9LT0y8pSN12221atGiRGjZs6LoOq3z58kpNTdVrr71WoGfMhYeHS5L2799/0Xlz5rmUW98fPXpUrVu31r59+9ShQwd169ZNISEhcjgc+vXXX7Vw4UKvdV/q7+RSFeV+NC82m03XXnut6/b3xhgtXLhQQ4YM0bx583Trrbeqf//+F11PVlaWrr/+em3cuFEtWrTQPffco2rVqqlcuXJKTEzU+++/b+n5g1b3j0BpRJACLmP79+/XN998I0nq3LlznvN98MEHbqeYFLXk5OR8x4ODg4v8NXO+hT579qzHNG9/mOfUkJKS4nV93noICgqSzWYr8Cl05cqV0+jRozV69GgdOnRIq1at0qxZszRnzhwlJSVp6dKlBVrPxeQcOWvduvVF561WrZreeOMNvf7669q2bZuWL1+uN954Q3FxcSpfvrzGjBlT4NctTIiSrG0fNpvN6+9UOvd7vdRtKeeP27xqyjmlzdsfwZeqOF77559/1qJFi9S9e3ctXrzYLSivW7dOr732WoHWExUVpVq1aungwYPavn272ymNF8p5VteVV17pGrP6+ZwxY4b27dun5557zvUMtRwvvviix4Nni5rVekuSzWZTv3799Pjjj2vixIlavnx5gYLUwoULtXHjRg0fPlz//ve/3aZ9/PHHev/99y3VYXX/CJRGXCMFXMZmz54tp9Op6667TsOHD/f4FxsbK+n8Uau/yr59+7R3716P8dWrV0s6d3pKYeT8Eejtm+Wca5q8XZeRcwpVbjl35VuzZo3HtOPHj+vXX3/1GG/btq3+/PPPAt81K7datWpp8ODBWrJkiRo0aKDvvvvO41Slwjh16pTrzlo512IUhM1mU5MmTTRixAh9++23kqQvv/zSNT2/9/pS/fDDDx6nfTmdTv3444+y2Wxud0ysUqWK199pYmKi11O1rNYdFBSkevXqKSEhwevr5ITU3HcmKyo5n4MLTyGVzn0psmvXLtWrV++Sjkbt2rVLktSrVy+Po405n8eCGjZsmCTp//7v//KcJyUlxfVHee6j4jkPiy7o5zOnbm8Pl7Vad14cDkee24nVen2Bt2sc8/s8FOY9ttvteb5nl7J/BEoLghRwmTLGaNasWbLZbHr//ff173//2+Pf7Nmz1b59e23evFn/+9///rJasrOz9fTTT7tdh7F582bNnTtXoaGh6tmzZ6HWm3M6orfTi4KCgtSoUSOtWbNGCQkJrvGMjAyvR1kiIyPVqVMnbd682eNW1S+88ILXP9JzjuINGzZMf/75p8f0pKQk/f7775LO3Rr8xx9/9JjnxIkTOn78uMqXL1+o65Jy27dvn3r37q2tW7fqhhtu0IABA/KdPzExUYmJiR7jOUdEcl9Tl997fal27Nih6dOnu41Nnz5dO3bsUK9evdxOUWzdurUSExO1atUq11hWVpZGjRrldd2FqTs2NlZnzpzRmDFjPLbZ2bNnKzg4uFC37L+Yvn37Kjg4WLNmzVJ8fLxr3BijJ598UmfPnnW7zXRh5FyreOEXBvHx8Zo0aZKldf3zn/9U/fr1NXfuXE2cONHjD+qkpCT17dtXf/75p/r06aNrrrnGNa1ly5ay2Wz6+OOPdfr0adf4zp07vR4Vy6vuDz/8sMhuVlO1alUdOXLErZ7C1lsc1q9frzlz5nit9/Dhw64Am/u6z/w+D3m9x6tWrfL4fOZe34EDB7xOs7J/BEorTu0DLlPLly/Xnj171Llz53yfwzN06FCtXbtWM2bMUKtWrf6SWpo1a6Y1a9aodevW6tatm+s5UmfPntV7771X6JstdOnSRa+88oruv/9+3XrrrapYsaKioqJcNwH4xz/+ofvvv1/t27fX7bffLqfTqf/+9795nvL21ltvqUOHDhoyZIgWLFjgeo7Uzz//rI4dO3p8K9ujRw+NHTtWzz33nBo0aKAePXooKipKf/75pxISErR69Wo9//zzatKkiU6dOqUOHTqoYcOGatmypSIjI3X8+HF99dVXSkpK0ujRo+Xv71+gvs+ePet6/ld2drZSU1O1efNm/fDDD8rOzlbfvn01e/bsi55q9+uvv2rAgAFq06aNrrzySoWHh+vgwYNasGCB7Ha7Hn/8cde8N9xwg2w2m55++mnFx8crODhYISEhGjlyZIFqzk/37t31yCOP6Ouvv1bTpk0VHx+vRYsWqXr16h5/pI4aNUrffPONevbsqcGDByswMFDffvutQkJCXNcv5XaxbcSbJ554QosXL9bcuXP1+++/q2vXrkpJSXFts9OnT7+ko0J5CQoK0vTp0zV48GC1bdtWAwcOVGhoqL777jtt2LBBbdq08bgDnVVt2rRRmzZt9Mknn+iPP/5Qu3bttG/fPn355Zfq1auX/vOf/1iqd8mSJerZs6fi4uI0Z84cde/eXcHBwdq9e7cWL16s48eP6+qrr9bcuXPdls05Ivvhhx+qZcuW6tGjh1JSUvTFF1+oR48eHs+yuueeezR58mQ9/PDDWrFihaKiorRp0yYtW7ZMAwYM0Oeff35J74t0blv53//+p5tvvlkdO3aUn5+fOnXqpE6dOlmutzgcOnRIsbGxGjlypDp16qTGjRurXLly2rt3r7766isdP35cvXr1cnvmWX6f4969eys6OlovvfSSfvvtN1111VXavn27vvrqK/Xv39/rttGlSxd98skn6tevn1q0aCGHw6E+ffqoWbNmlvaPQKlVkvdeB1B4gwcPzvO5J7mlpaWZChUqmODgYNfzf/J7noryeG5IXs9typl///79ZuDAgaZq1aomICDAtG/f3nzzzTce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1v33368NGzZ4vWXu9OnTuf05Lmts4ygLatasqbffflt9+/b1Ov3XX39Vy5Yti7kqoOiwjZc9BCn4vBEjRqh69ep69dVX9fbbb7vOLXY4HGrZsqVmz56tO+64o4SrBAqPbRxlQcuWLbVhw4Y8/8i82Df5gK9jGy97uNkELitnzpzRkSNHJEnVq1dX+fLlS7gioGixjaO0Wr16tU6cOKEePXp4nX7ixAn973//U+fOnYu5MqBosI2XPQQpAAAAALDIXtIFAAAAAMDlhiAFAAAAABYRpAAAAADAIoIUAAAAAFhEkAIASJLi4+N19913q3bt2vL391etWrV09913a+vWrSVdmputW7dq/PjxSkxMLOlSPDidTs2ZM0dt27ZV1apVVblyZTVs2FBDhgzRunXrXPMVRQ8ffvihpk6deulFAwAKhSAFANDnn3+ua665RsuWLdPQoUP19ttva/jw4Vq+fLmuueYaLVy4sKRLdNm6dasmTJjgk0HqkUceUWxsrGrWrKnx48dr8uTJuvnmm7Vu3TotWbLENV9R9ECQAoCSxQN5AaCM27Vrl+655x7Vq1dP33//vUJDQ13THn30UXXs2FF33323Nm/erLp165Zgpb4tOTlZb7/9tu677z699957btOmTp2qw4cPl1BlAIC/AkekAKCMe/nll3Xy5Em99957biFKOvdQ4HfffVfHjx/Xyy+/7Bq/9957FR0d7bGu8ePHy2azuY3NmjVLXbp0UY0aNeTv768rr7xS77zzjsey0dHRuuWWW7RmzRq1adNGAQEBqlevnubMmeOaZ/bs2br99tslSTfccINsNptsNptWrlwpSbLZbBo/frzXdd97771u67HZbFqzZo0eeeQRhYaGKiQkRA888ICysrKUmpqqIUOGqEqVKqpSpYqeeOIJXeyxi3v27JExRh06dPCYZrPZVKNGjQL1sHDhQvXq1Uu1atWSv7+/6tevr+eee07Z2dmu9V1//fVavHix9u7d61o+9+8jMzNTcXFxatCggfz9/RUREaEnnnhCmZmZbnV9++23uu666xQSEqJKlSqpUaNGevrpp/PtEwBwDkekAKCMW7RokaKjo9WxY0ev0zt16qTo6GgtWrRIb7/9tuX1v/POO2ratKn69OmjcuXKadGiRXrooYfkdDo1YsQIt3kTEhJ02223afjw4YqNjdXMmTN17733qmXLlmratKk6deqkRx55RK+//rqefvppNWnSRJJc/2vVww8/rPDwcE2YMEHr1q3Te++9p5CQEP3444+KjIzUCy+8oK+//lovv/yyrrrqKg0ZMiTPdUVFRUmSPv30U91+++0KDAz0Ot/Fepg9e7YqVaqkUaNGqVKlSlq+fLnGjRun9PR0V5h95plnlJaWpgMHDujVV1+VJFWqVEnSueu0+vTpozVr1uj+++9XkyZNtGXLFr366qvasWOHFixYIOncNXG33HKLmjVrpokTJ8rf318JCQn64YcfCvVeAkCZYwAAZVZqaqqRZPr27ZvvfH369DGSTHp6ujHGmNjYWBMVFeUxX1xcnLnwPy0nT570mK979+6mXr16bmNRUVFGkvn+++9dYykpKcbf39/84x//cI19+umnRpJZsWKFx3olmbi4OI/xqKgoExsb6/p51qxZRpLp3r27cTqdrvH27dsbm81mHnzwQdfY2bNnTZ06dUznzp091nuhIUOGGEmmSpUqpn///uaVV14xv//+u8d8+fXg7f164IEHTGBgoDl9+rRrrFevXl5/B3PnzjV2u92sXr3abXzatGlGkvnhhx+MMca8+uqrRpI5fPjwRfsCAHji1D4AKMMyMjIkSZUrV853vpzpOfNbUaFCBdf/T0tL05EjR9S5c2ft3r1baWlpbvNeeeWVbkfGQkND1ahRI+3evdvy6xbE8OHD3U5FbNu2rYwxGj58uGvM4XCoVatWBaph1qxZevPNN1W3bl198cUXGj16tJo0aaKuXbvq4MGDBaop9/uVkZGhI0eOqGPHjjp58qS2bdt20eU//fRTNWnSRI0bN9aRI0dc/7p06SJJWrFihSQpJCRE0rlTCZ1OZ4FqAwCcR5ACgDKsoAEpIyNDNptN1atXt/waP/zwg7p166aKFSsqJCREoaGhrutwLgxSkZGRHstXqVJFx44ds/y6BXHh6wUHB0uSIiIiPMYLUoPdbteIESO0YcMGHTlyRAsXLtTNN9+s5cuXa9CgQQWqKT4+Xv3791dwcLCCgoIUGhqqu+++W5Ln++XNzp07FR8fr9DQULd/DRs2lCSlpKRIkgYOHKgOHTrob3/7m8LCwjRo0CB98sknhCoAKCCukQKAMiw4OFi1atXS5s2b851v8+bNqlOnjvz8/CTJ44YSOXLfEEE6d0fArl27qnHjxpoyZYoiIiLk5+enr7/+Wq+++qrHH+0Oh8Pres1FbvRwMRfWdbHX8zZutYZq1aqpT58+6tOnj66//nqtWrVKe/fudV1L5U1qaqo6d+6soKAgTZw4UfXr11dAQIA2btyoJ598skAhx+l0KiYmRlOmTPE6PSckVqhQQd9//71WrFihxYsXa8mSJZo/f766dOmib775Js/3BgBwDkEKAMq43r17691339WaNWt03XXXeUxfvXq1EhMTNWrUKNdYlSpVlJqa6jHv3r173X5etGiRMjMz9eWXX7od/ck5vaww8gpxedWVlZWlP/74o9CvVxRatWqlVatW6Y8//lBUVFSePaxcuVJ//vmnPv/8c3Xq1Mk1vmfPHo9581pH/fr1tWnTJnXt2jXf90o6dwSta9eu6tq1q6ZMmaIXXnhBzzzzjFasWKFu3bpZ6BAAyh5O7QOAMm706NEKDAzUAw88oD///NNt2tGjR/Xggw8qKChII0eOdI3Xr19faWlpbkey/vjjD33xxRduy+cc1ch9NCctLU2zZs0qdL0VK1aUJK9Brn79+vr+++/dxt577708j0gVpaSkJG3dutVjPCsrS8uWLZPdbleDBg0k5d2Dt/crKyvL690SK1as6PVUvzvuuEMHDx7U9OnTPaadOnVKJ06ckHTud3uh5s2bS5LHbdIBAJ44IgUAZVyDBg00Z84cDR48WDExMRo+fLjq1q2rxMREzZgxQ8eOHdPHH3/s9jDeQYMG6cknn1T//v31yCOP6OTJk3rnnXfUsGFDbdy40TXfTTfdJD8/P/Xu3VsPPPCAjh8/runTp6tGjRqFPkrUvHlzORwOTZ48WWlpafL393c9p+pvf/ubHnzwQd1666268cYbtWnTJi1durRQ13ZZdeDAAbVp00ZdunRR165dFR4erpSUFH300UfatGmTHnvsMVcdefVw7bXXqkqVKoqNjdUjjzwim82muXPnej2tsGXLlpo/f75GjRql1q1bq1KlSurdu7fuueceffLJJ3rwwQe1YsUKdejQQdnZ2dq2bZs++eQTLV26VK1atdLEiRP1/fffq1evXoqKilJKSorefvtt1alTx+uRSQDABUryloEAAN+xZcsWc+edd5rw8HBjt9uNJBMQEGDi4+O9zv/NN9+Yq666yvj5+ZlGjRqZDz74wOvtz7/88kvTrFkzExAQYKKjo83kyZPNzJkzjSSzZ88e13xRUVGmV69eHq/TuXNnj1uPT58+3dSrV884HA6324hnZ2ebJ5980lSvXt0EBgaa7t27m4SEhDxvf/7zzz+7rTen/gtvCR4bG2sqVqyY7/uXnp5uXnvtNdO9e3dTp04dU758eVO5cmXTvn17M336dLfbrOfXww8//GDatWtnKlSoYGrVqmWeeOIJs3TpUo/bpR8/ftzceeedJiQkxEhyuxV6VlaWmTx5smnatKnx9/c3VapUMS1btjQTJkwwaWlpxhhjli1bZvr27Wtq1apl/Pz8TK1atczgwYPNjh078u0TAHCOzZhLvIIXAFAqzZkzR/fee6/uvvtuzZkzp6TLAQDAp3BqHwDAqyFDhuiPP/7QU089pTp16uiFF14o6ZIAAPAZHJECAAAAAIu4ax8AAAAAWESQAgAAAACLCFIAAAAAYBFBCgAAAAAsIkgBAAAAgEUEKQAAAACwiCAFAAAAABYRpAAAAADAIoIUAAAAAFhEkAIAAAAAiwhSAAAAAGDR/wO8SuEAl+wuugAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAJCCAYAAADKh/YoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAACWLUlEQVR4nOzdd1zVZf/H8dcBBByA4kIRNc2VI8vU3Lly5S5Hbmzc3d0t75blSBu21113dZt7kppaWubMNE3NcuY23IqGCmqIwvf3x/VjCSgHge85h/fz8eDh5fes98WBw/mc7zUclmVZiIiIiIiISJZ52R1ARERERETE3aiQEhERERERcZIKKRERERERESepkBIREREREXGSCikREREREREnqZASERERERFxkgopERERERERJ6mQEhERERERcZIKKRERERERESepkBKRPPXKK6/gcDj48ccf0xx3OBzcc889tmQCGDx4MA6Hg8jISNsy3Cw7v4cZff9+/PFHHA4Hr7zyii2ZACpWrEjFihVte/ycMGvWLO68804CAgJwOBw8/fTTdkcSERFUSIl4lPDwcBwOB8WLF+fy5ct2x7lpnlDcOKtixYo4HI7kLz8/P0qWLEmDBg14/PHHWbt2ba48bmYFrqvz9J+R9evX069fP2JiYnjssccYPXo07du3z9MMcXFxfPTRRzRr1ozixYvj5+dHWFgYffr04aeffsrTLDfDXYvqxYsX06lTJ0qVKkWBAgUoUaIEtWrVIjw8nIULF6a5bk7/Htv9AZeIq/OxO4CI5IzY2Fi++uorHA4H0dHRLFiwgN69e9sdK8t27dpFoUKF7I7hEry9vRkxYgQAV69e5ezZs2zfvp0vvviC//73v3Tu3JkpU6ZQrFixNLez83s4btw4XnzxRUJDQ215/MysWLHC7gg3ZfHixViWxdSpU2ncuHGeP/7+/fvp1KkTe/fupVKlSvTq1YuiRYty8OBBFi1aREREBE899RTvv/8+Xl76bDanjRkzhldeeYVChQpx3333UbFiRa5evcrOnTuJiIhg7969dO3a1e6YIvmWCikRDxEREcHFixcZNmwYH374IRMmTHCrQqp69ep2R3AZPj4+GQ6HO3ToEEOHDuXbb7+le/furFy5Ms2bVzu/h2XKlKFMmTK2PX5mKleubHeEm3L8+HEAypYtm+ePff78edq3b8+BAwcYOXIko0ePxtvbO022bt268dFHHxEcHMyoUaPyPKMni4yMZOzYsYSFhfHLL7+k+xn4+++/2bBhg03pRAQAS0Q8wt133235+PhYJ0+etFq3bm15eXlZkZGRGV63QoUKVoUKFaxz585Z//jHP6yQkBCrUKFCVrNmzazNmzdblmVZx44ds/r162eVLFnS8vf3t9q2bWvt3bs33X0BVosWLawjR45Yffr0sYoXL24VLFjQaty4sbVs2bJ01x89erQFWKtWrcrwflJnBNJ9JV3nzz//tABr0KBBGfbx2vtLsmPHDqtTp05WkSJFrMDAQKtDhw7W9u3brUGDBlmA9eeff6a7zYIFC6xWrVpZRYsWtfz8/KyaNWta77zzjnX16tU010tISLDGjx9v1a9f3ypWrJjl7+9vhYaGWvfdd1+6/mamQoUKlp+fX6aXX7p0yapRo4YFWBERETfs87lz56yRI0daNWrUsAoXLmwFBARYlStXtgYOHJj889GiRYsMv9cVKlRIk6tChQrW2bNnrccff9wqV66c5e3tbU2aNMmyLCvD79+qVasswBo9erS1Zs0aq0WLFlaRIkWsoKAgq0ePHta+ffvS9S+z5y11htT/v97PSEa3SXLhwgVr1KhRVrVq1Sw/Pz+rWLFiVseOHa21a9emu27qn9kZM2ZYt99+u+Xv72+FhIRYTz75pHXp0qUM82Zm7dq1VseOHa1ixYpZfn5+VrVq1axRo0ZZFy9eTL5O0vcuo6+MfkZT+/XXX63HH3/cqlmzphUYGGj5+/tbtWrVssaNG2fFx8dnOefLL79sAVa/fv0yvc7Jkyet4OBgy8fHxzp8+HDy8UmTJllA8s9Haql/LlL7+uuvrT59+liVK1e2ChYsaAUGBlpNmza15s6dm+4+Uv/+79u3z+rWrZtVtGhRq1ChQlbr1q2tLVu2pLtuRl9JGbKTN+ln7ejRo1bfvn2t4sWLW0WKFLE6duxoHThwwLIsy/rjjz+srl27WsWKFbOKFCli9ezZ0zp58mSm38/UIiIiLMB66qmnsnT9rPwer1y50hoyZIhVtWpVq3DhwlbhwoWtevXqWV988UWGfc7o69rvUVZfH0U8kc5IiXiAP/74g19++YWOHTtSunRpBg4cyIoVK5g0aVKmE/3j4+Np27YtcXFx9O7dm1OnTvHVV1/Rpk0b1q1bR7t27ShTpgz9+/dn//79fPvtt3Tq1Ildu3al+VQa4OzZszRp0oSSJUvy0EMPcfr0aSIiImjfvj1z586lW7duTvfp6aefZvLkyWzdupWnnnqKokWLAtzUHIcdO3bQpEkTLly4QI8ePahSpQobN26kSZMm3H777RneZvjw4bz55puEhobSo0cPgoKCWLNmDc899xwbNmxgzpw5aa779ttvU7lyZR588EECAgI4duwYa9euZfny5Tky16BgwYI8++yzDB06lIiICHr16pXpdS3Lol27dmzYsIEmTZrQvn17vLy8OHToEN988w0DBgygQoUKDB48GIDVq1czaNCg5O9x0vc8yeXLl2nVqhUXLlygS5cu+Pj4ULp06Rtm/uWXXxg3bhzt27fniSeeYOfOncyfP581a9bwyy+/UKlSpWx9L7L7MxIXF0erVq3YuHEjd955J08//TSnTp0iIiKCH374gVmzZvHAAw+ku90nn3zCkiVL6Nq1K61atWLJkiV8/PHHnDlzhhkzZmQp85w5c+jbty9+fn707t2bUqVKsXTpUsaOHcsPP/zAjz/+iL+/PxUrVmT06NEsWLAgXf+ufV6uNX78eL799luaN29Ox44duXTpEj/++CPDhw9n06ZNzJs3L0tZJ02aBMDIkSMzvU7p0qV5+OGHeeutt5g8efJ1r3sjw4cPx9fXl6ZNm1KmTBlOnz7NN998w/3338/HH3/ME088ke42kZGR3H333dSsWZPw8HAOHDjAwoULadmyJbt27aJ06dIULVqU0aNH8+GHHwKkWazjZn8nz549S9OmTQkJCWHQoEHs3buXRYsWsXv3bhYuXEizZs2oV68e4eHhbN68mXnz5hEdHc3KlStveN/FixcHYN++fVnKkpXf47feeov9+/dz99130717d86dO8eSJUt49NFH2bNnD++99x5A8s/fmDFj0rxGANStWze57czro4hHsruSE5GbN2zYMAuwZs2aZVmWZcXGxlqFCxe2ypcvbyUkJKS7ftIn+Q888IB15cqV5ONvvfWWBVhFixa1nnnmGSsxMTH5sscee8wCrHnz5qW5L/7/U8oHH3wwzfW3bt1q+fr6WiVLlkzziX1Wz0hZVsZnOZJk54xU0ie206dPT3N8+PDhGX7av3TpUguw2rVrZ124cCH5eGJiovWPf/zDAtJ8Wh4cHGyVLVs2zZmFJH/99VeG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3759GZ4Vyyz3zJkzc2yxmuDgYM6cOZMmT3bz5oWNGzcyderUDPOePn06uYBNPe/zer8PmX2PV69ene73M/X9HT16NMPLnHl9FPFUGton4qZWrlzJn3/+SYsWLa67D8+QIUNYv349EyZM4K677sqVLHXq1GHt2rXUr1+fNm3aJO8jdfXqVf73v/9le7GFVq1a8e677/LII4/Qs2dPChcuTIUKFZIXAfj3v//NI488QqNGjXjggQdITEzk+++/z3TI26effkqTJk0YOHAgCxYsSN5HatOmTTRr1izdp7Lt27dn5MiRvPrqq9x66620b9+eChUq8Ndff7F//37WrFnDa6+9Ro0aNfj7779p0qQJVatWpV69epQvX54LFy6waNEiTp48ybPPPoufn1+W+n316tXk/b8SEhI4d+4c27Zt4+effyYhIYGuXbsyefLkGw6127JlCz169KBBgwbcdttthISEcOzYMRYsWICXlxfPPPNM8nVbtmyJw+HgpZdeYufOnQQFBVG0aFH+9a9/ZSnz9bRr144nn3yS7777jpo1a7Jz506+/fZbSpQoke5N6rBhw1i6dCkdO3akb9++FCpUiGXLllG0aNHk+Uup3ehnJCPPP/88ixcvZtq0aezatYvWrVsTFRWV/DM7fvz4mzorlJnAwEDGjx9P3759adiwIb1796ZkyZIsX76czZs306BBg3Qr0DmrQYMGNGjQgK+++ooTJ05w9913c/jwYb755hs6derE3Llzncq7ZMkSOnbsyOjRo5k6dSrt2rUjKCiIgwcPsnjxYi5cuMDtt9/OtGnT0tw26YzszJkzqVevHu3btycqKor58+fTvn37dHtZDRgwgLfeeosnnniCVatWUaFCBbZu3cqKFSvo0aMHX3/99U19X8D8rPz666906NCBZs2a4evrS/PmzWnevLnTefPC8ePHGTRoEP/6179o3rw51atXx8fHh0OHDrFo0SIuXLhAp06d0ux5dr3f486dO1OxYkXefvttduzYQa1atdizZw+LFi2ie/fuGf5stGrViq+++opu3bpxxx134O3tTZcuXahTp45Tr48iHsvOtddFJPv69u2b6b4nqZ0/f94qWLCgFRQUlLz/z/X2UyGTfUMy27cp6fpHjhyxevfubQUHB1v+/v5Wo0aNrKVLl6a7H2f2kbIsy3r77betKlWqWAUKFMjwOp9++mny5eXLl7dGjRplxcfHZ3p/27dvtzp27GgVKVLECggIsDp06GBt3779uvv1LFu2zOrcubNVsmRJq0CBAlZISIjVqFEj69VXX7UOHz5sWZZlxcfHW2+99ZZ17733WuXKlbN8fX2t0qVLW82bN7dmzpx53b1fUkvarynpy9fX1ypRooRVv35965///Od19wC6ts9HjhyxXnzxRevuu++2SpUqZfn6+lrly5e3evToYa1fvz7d7SdPnmzVrl3b8vPzs4A0PyPX+5mxrOvvIzV69GhrzZo1VosWLazChQtbgYGBVvfu3a19+/ZleF9z5syxateubfn6+lohISHWE088YcXGxmaa4Xo/I5nd5sKFC9bIkSOtqlWrJu8d1aFDB2vNmjXprnu9vXmut/9QZn766SerQ4cOVtGiRS1fX1+ratWq1siRI9PsxZMkO/tIRUVFWeHh4VbZsmUtf39/q3bt2tann35qHTx48Lp7r2Xm0qVL1gcffGA1adLEKlq0aJqfz5dfftm6fPlyprd78sknrdKlS1t+fn5WnTp1rBkzZmS6L9OWLVuse++91ypWrJgVEBBgtWjRwlq+fHmG3+Ps7CMXGxtrPfzww1aZMmUsb2/vdBmczevsa6VlZb4nVUZiYmKs6dOnWwMGDLBq1qxpFS1a1PLx8bFKlixptW7d2powYUK6/cIs6/q/xwcPHrR69uxplSxZ0ipUqJBVv359a/bs2ZnmOnHihNWrVy+rRIkSlpeXV4Y/61l5fRTxVA7LSjWuQUTESQ6HgxYtWmQ470NEPNO7777Lc889R69evZg1a9ZND1sVEXFHGtonIiIiTnn22WfZvXs3EyZMSB6yKCKS36iQEhEREad99tlnVKlShb///pvdu3dTvXp1uyOJiOQpFVIiIiLitAIFCvDCCy/YHUNExDYqpETkpmiapYiIiORHmh0qIiIiIiLiJBVSIiIiIiIiTlIhJSIiIiIi4iQVUiIiIiIiIk5SISUiIiIiIuIkFVIiIiIiIiJOUiElIiIiIiLiJBVSIiIiIiIiTlIhJSIiIiIi4iQVUiIiIiIiIk5SISUiIiIiIuIkFVIiIiIiIiJOUiElIiIiIiLiJBVSIiIiIiIiTlIhJSIiIiIi4iQVUiIiIiIiIk5SISUiIiIiIuIkFVIiIiIiIiJOUiElIiIiIiLiJBVSIiIiIiIiTlIhJSIiIiIi4iQVUiIiIiIiIk5SISUiIiIiIuIkFVIiIiIiIiJO8rE7gN0SExM5fvw4AQEBOBwOu+OIiIiIiIhNLMsiNjaWsmXL4uV1/XNO+b6QOn78OGFhYXbHEBERERERF3HkyBHKlSt33evk+0IqICAAMN+swMBAm9OIiIiIiIhdYmJiCAsLS64RriffF1JJw/kCAwNVSImIiIiISJam/GixCRERERERESepkBIREREREXGSCikREREREREnqZASERERERFxkgopERERERERJ6mQEhERERERcZIKKRERERERESepkBIREREREXGSCikREREREREnqZASERERERFxkgopERERERERJ6mQEhERERERcZIKKRERERERESepkBIREREREXGSj90BRERERHLa8eOwbBlERUGpUtC2LZQta3cqEfEkKqRERETEoyxfDmPHmiIqyYQJMHo0tG5tXy4R8SwqpERERMRjHD9uiqjoaKhcGby8IDERDh+GMWPgttugTBm7U4qIJ9AcKREREfEYScP5KlSAgwfht98gPh7KlzfHly61O6GIeAoVUiIiIuIxkobzxcSYs1JXr8KRI+bMlMORdrifiMjNUCElIiIiHqNUKbAsM5QvydmzcP68OV6qlH3ZRMSzqJASERERj9G2LRQoYIonb28oUcIUUDt3miLq3nvtTiginkKFlIiIiHiMokUhJMQUU97ecOUKxMWZy7p00UITIpJztGqfiIiIeIw5c6BgQejYEVq2hL/+MsP8du+GHTvg8mXw87M7pYh4AhVSIiIi4hGiomDhQtP+17+gYUPTjo+Hxx4zly9YAL172xZRRDyIhvaJiIiIR5g61Qzlq10bGjRIOe7rC4MGmfbcuWb+lIjIzVIhJSIiIm5v715YvdoscT50qPk3tWbNoFo1M19qxgx7MoqIZ1EhJSIiIm7NsmDCBNNu2RIqV05/naQCC8ymvIcO5V0+EfFMKqRERETEra1fD3/8YYbwDRiQ+fVq1ICmTU3hNXFi3uUTEc+kQkpERETc1tWrMHmyaffoYfaNup5Bg8DHB377DTZvzvV4IuLBVEiJiIiI21q8GE6cgGLFoGfPG18/JAQ6dzbtiRMhISF384mI51IhJSIiIm4pNhZmzzbt/v3B3z9rt+vVCwICzP5Sy5blXj4R8WwqpERERMQtRUTAhQtQsSK0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WLYKqcmTJ2d62datW2nXrh39+vXLbia5SQ6HWXziyhUzvO/9900x1bix3clERNxLbCzMnm3aAwaYFcVEJHf17g3Ll8ORI7BsGbRvb3cikYzl+Byp22+/nUcffZQXXnghp+9anOBwwGOPmUnRiYlmSdGNG+1OJSLiXmbPhosXzaT31q3tTiOSPxQunDLne/p0SLVlqYhLyZXFJkqXLs0ff/yRG3ctTnA44MknoXlzSEiAcePg99/tTiUi4h6OHzfD+sAsd+6l5ZlE8kyHDhAaCufPa1sXcV05/mfhr7/+YsKECZQrVy6n71qywcsLhg0zw/quXjUbSG7fbncqERHXN3my+RDqrrvMPA0RyTs+PjBkiGkvXAinT9ubRyQj2Zoj1apVqwyPnzt3jt27dxMfH8+0adNuKpjkHG9veO45eOMN2LQJxo41XzVq2J1MRMQ17dhhljz38oLwcLvTiORPDRpArVrm93HqVPj3v+1OJJJWts5IJSYmYllWmi8wy6L/61//YseOHfRNGtwqLsHHB158Ee64w+waPno07N1rdyoREdeTtIcNQLt2EBZmbx6R/MrhMMNqAX78EfbtszWOSDoOy8rf2505s3uxJ7h8GcaMMcP7Chc2Z6kqVbI7lYiI61i1yqx2WrCg2dw8KMjuRCL52wcfwMqVULOmme99g61MRW6KM7VBts5IjR07lh07dmR6+c6dOxk7dmx27lpymZ8fjBplhvVdvAgjRsChQ3anEhFxDfHxZggRwAMPqIgScQUDBoCvL+zcaYbciriKbBVSr7zyCtu2bcv08h07djBmzJhsh5Lc5e9vhvZVqWL2SBkxAo4dszuViIj9FiyAM2egZEno2tXuNCICUKIEdO9u2pMnm8WzRFxBrizmGh0dja+vb27cteSQwoXNEL9bboFz5+Cll+DECbtTiYjY59w5mDPHtAcNMp+Ai4hr6NkTihY171WStiUQsVuWV+376aef+PHHH5P///XXX7N///501zt37hwRERHUrl07RwJK7gkIgFdfheHDze7hL78Mb74JpUrZnUxEJO/NmGEW46lSxey/JyKuo2BB6N8fPvnEbJTdqpV5HyNipywvNjFmzJjk4XoOh4Pr3ey2225jwoQJNGzYMGdS5qL8tthERs6eNcXUsWNQpoyZyFm8uN2pRETyzuHD8K9/mRX73noLbrvN7kQi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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAJCCAYAAADKh/YoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjYUlEQVR4nO3deVyU9fr/8fc9g4CoiLiAywi5L5GWe5ZaWlZq2jHTzEQyW806ti/Hpc1ji9o5WZalHutb2q6WaUXmkltpi+HRNMUlA/TIpibkzOf3hz9GRwbkFoQRXs/Hw8c5XPc9M9c13DPxnnvu+7aMMUYAAAAAgCJzlHUDAAAAAHCuIUgBAAAAgE0EKQAAAACwiSAFAAAAADYRpAAAAADAJoIUAAAAANhEkAIAAAAAmwhSAAAAAGATQQoAAAAAbCJIASi2b775RpZlacKECWftMSzLUo8ePYq8/oQJE2RZlr755pvT3k9B6wa6Hj16yLKsMnnsOXPmyLIszZkzx6du9/dU0kaMGCHLspScnFxmPRTX999/ryuuuEK1a9eWZVlq27ZtWbcEAPCDIAWUE8nJybIsy+dfcHCwXC6Xhg4dqp9//rmsWzyn5D2fI0aMOKuPk/eHf96/oKAg1ahRQ61atdJNN92kDz74QLm5uSX+uKURfs+GggJceZGVlaU+ffpo/fr1Gjx4sMaPH6877rij1Pv4+OOPde2116pu3boKDg5WnTp1dOWVV2ru3LnyeDyl3s+ZOFdD9S+//KL4+HjFxsYqJCRE1atXV5MmTfS3v/1NL730kowx3nVL+nVclh/OAOeioLJuAEDJaty4sYYNGyZJOnTokNauXat3331XH330kRITE9W1a9cy7rB0jB49WkOGDFHDhg1LdN2zZeTIkWrQoIGMMcrKytK2bdu0aNEivfPOO2rZsqXmzZunCy64wOc2c+fO1ZEjR8qk3+uuu06dO3dW3bp1y+TxCzJp0iQ98sgjql+/flm3ckbWr1+vtLQ0PfPMM3rsscdK/fEPHz6soUOHauHChapRo4b69Okjl8ul/fv3a/HixYqPj9ebb76pTz75RDVq1Cj1/sq7L7/8Un379tWxY8fUq1cvXXfddQoNDdVvv/2m5cuX6+OPP9bdd9+toCD+fAMCAa9EoJxp0qRJvk8nn3jiCT3zzDN6/PHHz7mvr52pWrVqqVatWiW+7tly6623qnPnzj617OxsjR8/XlOnTtWVV16pjRs3ql69et7lZRn8qlevrurVq5fZ4xekbt26ARfu7Ni3b58k+fyeS9OIESO0cOFC9enTR2+//bYiIiK8y44ePap77rlHb7zxhgYNGqQvvvhCDgdfbClJd955p9xut7766itddtllPsuMMfriiy/kdDrLqDsA+RgA5cLOnTuNJNO7d+98y1JSUowkExYW5q1JMt27dzd79+41N998s4mKijKWZZlly5Z515k1a5bp2LGjqVKliqlSpYrp2LGjmT17dr77X7ZsmZFkxo8fb1auXGm6d+9uqlataqpXr27+9re/mW3btuW7zddff20SEhJMs2bNvPffrl0789prr/mdL6/fPXv2mCFDhpiaNWuaypUrm4svvth8+eWX+dYfP368keQzz8n3U9i6s2fPNpL8/lu2bJl5/PHHjSQzf/58v72++eabRpJ59tln/S4/WXx8vJFk1qxZU+A6I0aMMJLMnXfe6VPv3r27OfVt3O12m5kzZ5oOHTqYGjVqmNDQUFO/fn3Tt29f73x58/r7t3PnTp++fvvtN/PCCy+Yli1bmuDgYBMfH+/zHJ26Pdj9Pfmb4dTn5tSe/P0r6DYnO5Pt+bvvvjO9evUyVatWNeHh4WbAgAF+77swycnJ5pZbbjH16tUzlSpVMvXr1ze33HKL2bVrl896Bc3mr8eT/f7772bcuHGmU6dOpnbt2iY4ONjExMSYO++806Smpha5zy+//NJIMk2bNjVHjhzxu47H4zGXXHKJkWTeffddbz3v/Sdv+ziVv9fd999/b+6++27TunVrEx4ebkJDQ835559vJk2aZHJzc/PdR0xMjImJiTHZ2dlmzJgxpm7duiY4ONjExcWZ999/P9+6/p7LvB7OpN+8bfXo0aPm0UcfNS6Xy4SGhpqLLrrIu21nZGSYu+66y9StW9eEhISYzp07m3Xr1vl9jFOlpqYaSaZNmzZFWr8or+OtW7eaBx980Fx44YUmMjLShISEmKZNm5qHH37YZGdn55vZ379Tn6OffvrJDB482ERHR5tKlSqZhg0bmtGjR5sDBw4UqW+gPGGPFFCBnPrd9//973/q0qWLIiMjNWTIEB09elTh4eGSpDFjxujf//636tevr5EjR0qSPvzwQyUkJOiHH37QSy+9lO/+165dq0mTJumqq67SPffco6SkJH388cdauXKl1q5dq0aNGnnXnTx5srZv367OnTvruuuuU0ZGhpYsWaLbb79dW7du1Ysvvpjv/tPT09W1a1fVrl1bt956q/bv36/58+frqquu0gcffKABAwaUyPPUtm1b3XvvvXrppZfUpk0bn/uNjY3VqFGjNGnSJL3xxhu64YYb8t1+5syZCgoKUkJCQon0849//ENz5szRe++9p+nTpxd6DMOjjz6q5557To0bN9bQoUNVrVo1/f7771q1apW++uor9ejRQz169FBycrL+85//qHv37j4nhzh5D4Qk3XPPPVq7dq369Omjfv36qU6dOqft92z9ngYMGKCMjAwtWLBA/fv3t3UShjPZnr/77js999xzuuyyy3T77bfrhx9+0CeffKJNmzbpl19+UWho6Gkf99dff9Ull1yi/fv3q1+/fmrdurV++eUXzZo1S4sWLdKqVavUrFkzSdL48eP1448/5pvvdHOuWLFCL774onr27KlOnTqpUqVK+uGHH/Tqq69q6dKl2rhxY5H2Hs6ePVuSdP/996ty5cp+17EsS48//riuvvpqzZw5U0OGDDnt/RZk5syZWrRokbp166ZrrrlGR44c0TfffKNHH31U3333nT788MN8t/nrr7905ZVXKj09XQMHDtSRI0c0b9483XDDDVqyZImuvPJKSdJ9992nOXPm6KefftK9997r3a5jY2PPuN88gwcP1qZNm3Tttdfqzz//1P/93/+pb9+++vbbb3XbbbcpNzdXgwYN8tnud+7cedrfQfXq1RUUFKQ//vhDhw8fVpUqVQpdvyiv448++khvvvmmLrvsMvXo0UMej0dr167V5MmTtXz5cq1YsUKVKlWSdHz7mzNnjnbt2qXx48d77+vk7W/hwoW64YYb5HA41L9/f7lcLm3evFkvv/yyli5dqnXr1vGVT1QsZZ3kAJSMwvZIjRs3zkgyl112mbem//9pY0JCgjl27JjP+suXLzeSTMuWLU1GRoa3fvDgQdOsWTMjyaxYscJbz/sEX5KZMWOGz33NmDHDSDJ9+/b1qe/YsSNfn3/99Ze54oorjNPpLPDT+qFDhxqPx+Ot//TTTyY4ONjUrl3b51P04uyRMub0n1hfffXVxrKsfHsnfvnlFyPJDBgwwO/tTlWUPVLGGONyubx7iPL425sTGRlp6tWrZw4fPpzvPv73v/95///Je10K66tBgwb5fhfGFL5Hys7vyc4eqcIet7DbFGd7njdvns/933zzzfn2xhTmsssuM5Ly7WmdPn26kWQuv/xyn/rp5vMnNTU1394FY4z5z3/+YySZp59+ukj3ExsbayT53YN8siNHjpigoCBTuXJl43a7jTFntodn165d+d57PB6PueWWW4wks2rVKp9leXuZ+vfvb3Jycrz1r776yu97X2F7J4uzR+qSSy4xhw4d8tbnz59vJJmIiAgzaNAg89dff3mXTZ482UgyL774ot/HOdXf/vY3I8nExcWZf/3rX+b777/3mfVUp3sd79271+/tJ06caCSZt99+2++M/hw4cMCEh4eb+vXrm+TkZJ9l7777rpFkRo8efZoJgfKFLzcD5cz27ds1YcIETZgwQQ8++KC6deumJ598UqGhoXrmmWd81g0ODtZzzz2X7zv3//nPfyQdPy34yZ+i1qhRw/tJpb+zpjVr1kyjRo3yqY0aNUpNmzbVZ599pv3793vr5513Xr7bBwUF6Y477pDb7dayZcvyLXc6nXr22Wd99shccMEFuvnmm70Hw5eWO+64Q8YYvfnmmz71N954Q5LyPQ/FlXfMzIEDB067bnBwsN/jKCIjI20/7oMPPmj7WKxA+j1JZ749d+vWTYMHD/ap3XLLLZKO7606nd27d2vZsmVq1apVvu3hjjvuUIsWLfT1119rz549tuY5VZ06dVS1atV89Ztvvlnh4eH66quvinQ/KSkpkiSXy1XoepUrV1bNmjX1559/Kj093X7D/1/Dhg3zbaeWZenuu++WpAL7njp1qoKDg70/9+zZUzExMUX6nZSEZ555xmdv0fXXX69KlSopIyNDL7zwgs+JIG688UZJ0k8//VSk+3799dfVr18/bdq0SWPGjFH79u1VrVo1de3aVf/617/0559/2uq1fv36Ps9VntGjR0sq+Dn2Z+7cucrKytKkSZMUExPjs2zIkCG66KKLNG/ePFv9Aec6ghRQzvz222+aOHGiJk6cqJdeekk7d+7U0KFDtX79enXp0sVn3fPOO8/vSRZ++OEHSfJ7PaC8A6B//PHHfMu6du2a7+Bzh8Ohrl27yhjj88dE3okU2rRpo6pVq3pP/z1w4EBJJw66P1nDhg3z/Qdcki699FKfvktDnz59VL9+fc2ePVtut1uSlJubq7feeksul0tXXXVVqfVysiFDhig5OVnnn3++/vGPf+jrr7+2/cfXyTp27Gj7NoH0ezr58exuz+3atctXa9CggSQpIyPjtI+bd5/du3fP93VMh8Ohbt26FfjYdn300Ufq3bu3ateuraCgIFmWJYfDoaysLL+vpZJSnFOh5+bmasqUKerYsaPCw8PlcDhkWZb3effXd0REhN8PYRo0aFCk30lJOPWrlg6HQ3Xq1FGNGjXyfeiQd+KTov4OatasqYULF+rXX3/Vv/71Lw0bNkwNGzbU6tWrde+996pjx446ePBgkXs1xmjWrFnq1q2bIiMj5XQ6ZVmWatasaasv6fhXtyVp3bp13g/rTv539OhRHThwoEgf9gDlBcdIAeVM7969tWTJkiKtGxUV5beelZUlh8Oh2rVr+72NZVnKysoq8v3l1TMzMyUd/wOqR48e2rhxoy688ELdfPPNqlmzpoKCgrzf+c/JyTnj+y8NTqdTt956qyZOnKjPP/9cffv21ccff6z//e9/Gj16dImfzSzvDx5/v5OTvfTSSzrvvPM0e/ZsPf3003r66acVGhqqG264QS+++KLtsxMW9JyfyW3K4vcknfn2nHe84Mny9jbkhefTPW7eY/iT90e2v8e248UXX9QDDzyg2rVr68orr1SDBg28xzhNmzbN72vJn+joaCUnJ2vPnj1q0qRJgev9+eef+t///qeQkJBine3y+uuv16JFi9SsWTMNHjxYderU8e7Zeemll/z2XdBxRkFBQaV2fauCtovCtpe//vrL1mM0bdpUTZs29f78448/atiwYfrll1+8H5IVxZgxY/Tyyy/L5XJ5rwsWEhIiSZo4cWKRtw1J3gA3ffr0Qtc7fPhwmZ8FFSgtBCmgAivopAXh4eHyeDzav39/vpMLpKWlyRjj94+G1NRUv/eXV8/7I2jBggXauHGjRo4c6f0qXJ558+Z5v4p1pvdfWm699VY9/fTTmjlzpvr27as33nhDDofD+/WvkrJjxw7t2bNHtWvXPu3B8kFBQXrggQf0wAMPaN++fVq+fLlmz56tuXPnKiUlRUuXLrX12GdycU47v6e8wHns2LF818YpqcB1pttzSTyuVPDzkfdVuuI89rFjx/TUU0+pbt26+vHHH33mM8boueeeK/J9XXzxxUpOTlZiYmKhQWr58uU6duyYWrdu7d0+Tv49nsrf7/G7777TokWL1Lt3b3322Wc+X/Fbu3ZtkYPCmbLbb1lr27at/v3vf+vyyy/X119/XaTbpKWlafr06brgggu0Zs0ahYWFeZelpKRo4sSJtnrI2043bdqk888/39ZtgfKKr/YByOfCCy+UJL/XnMqr+TuT2LfffpvvU2GPx6PVq1fLsiy1adNG0vGvH0pS//79893HypUrC+xr9+7d2rVrV4G3yeu7JOT9YVfYnocGDRqoT58+Wrx4sVavXq3ExET17t27xK/v9NRTT0k6frYwO8GmXr16uvHGG7VkyRI1adJEX331lfdrfkWZ70zZ+T3lneHr999/91nX4/H4Pa7kTPo+0+25uPLuc8WKFTLG+CwzxmjFihXFfuwDBw4oMzNTXbp0yRcSv//+e1tf68z7AGDKlCk6evSo33WMMZo0aZIkafjw4d563lniTv09Sv6/ypn3HtCnT598x0kV9h5gR2Hbit1+A4G/4+AKm3HHjh0yxqhXr14+IUoq+Dku7P46deokSVqzZo29xoFyjCAFIJ/4+HhJx7/6cfLXjjIzM72fYuatc7Jff/1VM2fO9KnNnDlTv/76q/r06eP9alXe8TOrVq3yWXf58uX5bn8yt9utxx57zOeP0p9//llvvfWWateurWuuucbOmIWqUaOGLMs67YkAbr/9dh07dkyDBg2SMaZETzJx6NAh3X///ZozZ47q1q2rxx57rND1c3JytHr16nz1w4cP69ChQ6pUqZL3k/i8E08U90QH/tj5PXXo0EFS/pM9TJkyRTt37sx332fS95luz8XVsGFDXXbZZUpKStKsWbN8lr3++uv673//q8svv/y0J3coTJ06dVS5cmVt3LhRR44c8dbT09N1zz332Lqvnj176vrrr9evv/6qG264Id+emZycHN15551asWKFYmJifE7vHx4erubNm2vVqlXavn27t56dna1HH30032MV9B6QlJTkDWrFVdi2Yrff0nD48GE988wzfo8xOnbsmJ5//nlJ0iWXXOKtFzZj3nO8evVqnw+49u7dW+CMhd1fQkKCqlWrpscff1xJSUn5lh85csR7HBVQUfDVPgD5dOvWTffcc4/+/e9/6/zzz9fAgQNljNGHH36ovXv3asyYMd4D5U/Wu3dvjRkzRosXL1br1q2VlJSkRYsWqVatWj5f1enXr59iY2P13HPP6ZdfftH555+vrVu36tNPP9V1112nDz74wG9fF1xwgVatWqUOHTqoV69e3uu0HDt2TK+//nqB1745E1WrVlWHDh20YsUK3XzzzWratKkcDoduvvlmnxMpXHXVVYqJidGuXbsUHR2tfv36ndHjvfHGG1qyZImMMcrOzta2bdu0fPlyZWdnq3Xr1po3b573mJqC/Pnnn+ratauaNWumdu3aqWHDhjp06JA+/fRTpaSk6IEHHvAeH9GiRQvVq1dP8+bNU0hIiBo0aCDLsnTPPfcU+yuSdn5PCQkJeu655zRhwgT9+OOPaty4sb7//nv98ssv6t69u5YvX+5z3126dFHlypU1bdo0paene8P5E088UWA/Z7o9l4RXX31Vl1xyiUaNGqVFixapVatWSkpK0sKFC1W7dm29+uqrxbp/h8Ohu+66Sy+++KLatGmjfv36KSsrS59//rliYmK8Z3ssqjlz5ujo0aNatGiRGjVqpD59+sjlcnnPtvj7778rIiJCCxYsyHe9oPvvv1+33XabunTpokGDBsnj8ejzzz/3huWTdezYUR07dtR7772nP/74Q507d9bu3bu1cOFC9enTp8D3ADsuv/xyvfDCC7rttts0cOBAValSRTExMbr55ptt91sa/vrrLz3xxBOaMGGCunTpojZt2ig8PFypqalaunSp9u7dq/POO8/nGk+FvY7r1q2rgQMH6sMPP1T79u3Vs2dPpaam6tNPP1XPnj29ewVPdvnll+uDDz7QwIEDdfXVVys0NNS7XdWuXVvvvvuuBg0apDZt2uiqq65SixYtlJOTo+TkZC1fvlwXX3xxkY/RBcqF0j/jOoCzobDrSPkjP9dJOdWsWbNMhw4dTFhYmAkLCzMdOnQws2bNyrfeydcyWblypenevbupUqWKCQ8PN9ddd53f69Ls2LHDDBw40NSuXdt73/PmzSvwuih5/e7Zs8cMHjzYREZGmtDQUNOlSxfzxRdf5Lv/4l5Hyhhjtm7daq655hoTERFhLMvyu44xxjzxxBNGknnkkUf8Po+FybvWTd4/p9NpIiIiTKtWrcxNN91k3n//fZObm+v3tqde8yU3N9dMnjzZXHnllaZBgwYmODjYREVFmW7dupl33nnH57pOxhizdu1a0717d1OtWjXv4+ddc6ewa/AYU/h1pOz8nowx5scffzQ9e/Y0YWFhJjw83PTv399s27atwB4+++wz06FD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Initialize a qunatum state using two qubits with different amplitudes:\n", "q0 = Qubit(alpha = 1/2,beta = np.sqrt(3)/2)\n", "q1 = Qubit(alpha = 1,beta = 0)\n", "mt = MultiQubit()\n", "mt.add_qubit(q0)\n", "mt.add_qubit(q1)\n", "\n", "# Print the state:\n", "mt.print_tensor_form()\n", "\n", "# Plot the quantum state amplitudes using a bar:\n", "mt.plot_amplitudes(plot_type=\"bar\")\n", "\n", "# Plot the quantum state amplitudes using a line (Use full for large quantum states):\n", "mt.plot_amplitudes(plot_type=\"line\")\n", "\n", "# Plot the quantum state probabilities:\n", "mt.plot_probabilities()" ] }, { "cell_type": "markdown", "id": "17734726", "metadata": {}, "source": [ "We can simulate multiple measurements as discussed before. We plot the measurements in a graph. We can set the number of measurements, the higher the number the closer we will get the actual probability distribution:" ] }, { "cell_type": "code", "execution_count": 13, "id": "ebfc7729", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAJCCAYAAADKh/YoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCCklEQVR4nOzde3zO9f/H8ed1Xexkm5nD5jCEnOfQnJVD1CoUpUhlpHN00OFLByN900HSQSlF6URSpMS3FiJGodJExBjaRrMDsmXX+/eH3y4u17XZx2Ybe9xvt91qr8/78/m8X9f1+Vz2ut6fz/tjM8YYAQAAAAAKzV7aHQAAAACAcw2FFAAAAABYRCEFAAAAABZRSAEAAACARRRSAAAAAGARhRQAAAAAWEQhBQAAAAAWUUgBAAAAgEUUUgAAAABgEYUUUIYsX75cNptN48ePP2v7sNls6tGjR6Hbjx8/XjabTcuXLz/tdvJrW9b16NFDNputVPb97rvvymaz6d1333WLW32fituwYcNks9mUmJhYan0oqp9++kmXXXaZqlevLpvNpjZt2pR2l6Dz49gCAIlCCvCQmJgom83m9uPj46OIiAgNGTJEv/76a2l38ZyS93oOGzbsrO4n74+zvJ8KFSqoSpUqat68uW666SZ9+umnysnJKfb9lkTxezbkV8CdLzIzM9WnTx+tW7dOgwYNUmxsrO66664C18l7TWw2mwYOHJhvuzfeeMPV7mwf1zhh48aNGj58uBo0aCB/f3+FhISoffv2+u9//6usrKzS7l6hnKvn3d9//60xY8aoRYsWCggIUEBAgOrVq6devXppwoQJSklJcWtfnF8Enatf0KF8qFDaHQDKqoYNG+rmm2+WJB06dEjx8fH6+OOP9dlnnykuLk5du3Yt5R6WjJEjR2rw4MGqW7dusbY9W0aMGKE6derIGKPMzExt27ZNixYt0kcffaRmzZppzpw5atWqlds6s2fP1pEjR0qlvwMGDFCnTp1Us2bNUtl/fiZNmqQxY8aodu3apd2VM7Ju3Tqlpqbqv//9rx577DFL61aoUEGLFi3SgQMHVK1aNY/l77zzjipUqKBjx44VV3dxGk899ZTGjx+vChUqKDo6WjfccIP++ecfLV++XE888YSmT5+ur776yuPcRtHt2bNHXbp0UVJSktq0aaPhw4crJCREf/31l1avXq3x48era9euCgsLK+2uAiWOQgrIR6NGjTxGGZ544gn997//1eOPP15uvh2rVq2a1z8mi9r2bLntttvUqVMnt1hWVpZiY2P10ksv6fLLL9eGDRtUq1Yt1/LSLPwqV66sypUrl9r+81OzZs0yV9xZsW/fPklye58L68orr9SiRYv0wQcf6IEHHnBb9uuvv2r9+vW6+uqr9cUXXxRHV3Ea06ZNU2xsrBo0aKCvvvpKTZs2dVv+5ptv6t5771V0dLR++eUX1ahRo5R6en6KjY1VUlKSnnrqKT355JMeyzdt2qSQkJCS7xhQFhgAbnbu3GkkmejoaI9lycnJRpIJCAhwxSSZ7t27mz179phbbrnFhIWFGZvNZpYtW+ZqM3PmTNOhQwdTqVIlU6lSJdOhQwcza9Ysj+0vW7bMSDKxsbFm5cqVpnv37iYwMNBUrlzZXHvttWbbtm0e63z33Xdm+PDhpnHjxq7tR0VFmTfffNNrfnn9TUpKMoMHDzZVq1Y1/v7+pkuXLuabb77xaB8bG2skueVz8nYKajtr1iwjyevPsmXLzOOPP24kmblz53rt6zvvvGMkmWeeecbr8pPFxMQYSWbNmjX5thk2bJiRZO6++263ePfu3c2pH4e5ublmxowZpn379qZKlSrGz8/P1K5d2/Tt29eVX16+3n527tzp1q8///zTTJ482TRr1sz4+PiYmJgYt9fo1OPB6vvkLYdTX5tT++TtJ791TnYmx/OPP/5oevfubQIDA01wcLDp37+/120XJDEx0dx6662mVq1apmLFiqZ27drm1ltvNbt27XJrl19u3vp4srz3YtKkSaZp06amVatWHm3uv/9+43A4zPz5840k1/t4sszMTDNu3DjTvHlz4+fnZypXrmwuv/xys3LlSo+2P/30k7n33ntNixYtTHBwsPHz8zMtW7Y0kyZNMjk5OR7t//jjDzNs2DBTv3594+PjY6pUqWJatWpl7r//fuN0Ol3t6tWrZ+rVq+c1T2/Hysnn7qxZs0zbtm2Nv7+/2zluJS9jjPntt99Mnz59XO/5lVdeaTZt2lTgsXWqtLQ0ExQUZHx8fExCQkK+7R577DEjydx5551ucauvw969e824ceNMx44dTfXq1Y2Pj4+pV6+eufvuu01KSorHNvJy2bFjh3n55ZdNkyZNjI+Pj6lbt64ZP368yc3N9Whb0HlXlPdt5syZpmXLlsbPz8/Ur1/fvPzyy8YYY5xOp5k8ebJp3Lix8fX1NY0aNTLvvfdevq/lqZo1a2YkmYMHD562bd45X9D5l56ebp599lnTrVs3U7NmTVOxYkVTs2ZNc8stt5jt27d7zfnUn1Nfo5SUFPPAAw+Yhg0bGh8fH1O1alVz7bXXmk2bNnn0sbDnEFAYjEgBZ+DUiQn+/vtvde7cWaGhoRo8eLCOHj2q4OBgSdJ9992nV199VbVr19aIESMkSfPnz9fw4cO1ceNGvfzyyx7bj4+P16RJk3TFFVdo1KhRSkhI0Oeff66VK1cqPj5eDRo0cLV97rnntH37dnXq1EkDBgxQenq6lixZojvvvFNbt27Viy++6LH9gwcPqmvXrqpevbpuu+027d+/X3PnztUVV1yhTz/9VP379y+W16lNmza6//779fLLL6t169Zu261fv75uv/12TZo0SW+//bZuuOEGj/VnzJihChUqaPjw4cXSnyeffFLvvvuuPvnkE02bNq3ACSbGjh2r559/Xg0bNtSQIUMUFBSkvXv3atWqVfr222/Vo0cP9ejRQ4mJiXrvvffUvXt3t3sCTv2GdtSoUYqPj1efPn3Ur1+/Qn1rfrbep/79+ys9PV0LFy7UNddcY2kShjM5nn/88Uc9//zz6tmzp+68805t3LhRCxYs0KZNm/Tbb7/Jz8/vtPv9448/dPHFF2v//v3q16+fWrRood9++00zZ87UokWLtGrVKjVu3FjS8W/Qf/75Z4/8rOQ5fPhw/ec//9H69esVFRUlScrJydGHH36o6OjofEe60tLS1K1bNyUkJKhr16666667lJmZqYULF6pnz56aN2+e2/s2Y8YMLVq0SN26ddNVV12lI0eOaPny5Ro7dqx+/PFHzZ8/39V237596tChgw4fPqw+ffpo0KBBOnz4sLZt26bXX39dkydPVoUKRftn/YUXXtCyZct0zTXX6PLLL5fD4TijvH777Td17dpVhw4d0rXXXqsLL7xQ69atU9euXdW6detC9+fTTz9VVlaWBg8erObNm+fb7pFHHtGUKVM0e/ZsvfLKK/Lx8Tmj/L///nu9+OKL6tWrlzp27KiKFStq48aNeuONN7R06VJt2LDB6wjyI488ohUrVqhv376Kjo7WggULNH78eOXk5Oi///2vpKKdd6czdepULV++XNdcc40uvfRSzZ8/X/fff78CAgK0ceNGzZ8/X3379lWvXr00Z84cxcTEqH79+urWrdtpt121alVJx8/BDh06FNi2fv36io2N1YQJE1SvXj23ewjz8v399981btw49ezZUwMGDFClSpW0ZcsWffTRR/rqq6+0YcMG1atXT5Jc669YscLVZ8n98/XPP/9Ujx49tGfPHl1++eXq37+/UlNTNX/+fC1dulRxcXHq2LGjpJI5h1DOlHYlB5Q1BY1IjRs3zkgyPXv2dMX0/9+QDR8+3Bw7dsyt/YoVK4wk06xZM5Oenu6Kp6WlmcaNGxtJ5vvvv3fFT/42b/r06W7bmj59upFk+vbt6xbfsWOHRz///fdfc9lllxmHw5Hvt/VDhgxx+/btl19+MT4+PqZ69ermyJEjrnhRRqSMOfF6evvm3hhjrrzySmOz2Ty+nf7tt9+MJNO/f3+v652qMCNSxhgTERHhGiHK4+2b3tDQUFOrVi1z+PBhj238/fffrv8/edSloH7VqVPH470wpuARKSvvk5URqYL2W9A6RTme58yZ47b9W265xUgyH3/8sdf9n6pnz55GksdI67Rp04wkc+mll7rFT5efNyePSP3111+mQoUK5p577nEt/+STT4wkM3/+fLNmzRqvx/WQIUOMJDNjxgy3eEpKiomIiDDVq1c3//zzjyu+a9cuj88Np9Npbr31ViPJrFq1yhV/5ZVXjCQzdepUj76ffEwac+YjG5UqVTK//vqrxzpW88rbxwcffODWfuzYsR6jtgXJG0U+db/edOnSxeMzwOrrkJKSYrKysjzavvfee0aSefrpp93ieefJBRdcYPbt2+eK79+/34SEhJigoCCTnZ3tip/uuDzT9y00NNTtM2337t3Gx8fHVK5c2TRu3Nikpqa6lsXHxxtJpl+/fl73c6q8465GjRpm3LhxZtmyZSYjI6PAdbz9+5AnPT3d43g15vjVFXa73dx2221eczz136A8Xbp0MQ6HwyxZssQtvnXrVhMUFGQiIyM9cinMOQQUBrP2AfnYvn27xo8fr/Hjx+uRRx5Rt27d9NRTT8nPz8/1DWMeHx8fPf/8865vb/O89957ko7POnTyt5hVqlRRbGysJHmdvalx48a6/fbb3WK33367LrzwQn311Vfav3+/K37BBRd4rF+hQgXdddddys3N1bJlyzyWOxwOPfPMM24jMq1atdItt9yi/fv3a/Hixfm9LMXurrvukjFG77zzjlv87bffliSP16Go8kYSDhw4cNq2Pj4+Hu+pJIWGhlre7yOPPGL5Xqyy9D5JZ348d+vWTYMGDXKL3XrrrZKOj1adzu7du7Vs2TI1b97c43i466671LRpU3333XdKSkqylE9BwsPDddVVV+njjz/W0aNHJUkzZ85U9erV1a9fP6/rHDhwQHPnztWll16q2267zW1ZjRo19Mgjj2j//v369ttvXfG6det6HGM2m0333nuvJLm1zePv7+8RO5Nj0ps77rhDkZGRbjGree3evVsrVqxQq1atdNNNN7m1f+yxxyzdT5OcnCxJioiIOG3bvDZ79+4t9PZPVaNGDQUGBnrEb7nlFgUHB3t9P6Tjo90n31NYrVo1XXPNNcrKytLWrVvPuD+Fdf/997tdqRAREaGLL75YGRkZevzxx1W9enXXso4dO6pBgwb65ZdfCrXtkSNH6pFHHlF6erqeeuop9ezZUyEhIWrRooXGjBmjv/76y1JfK1eu7PV47dmzp1q0aJHva+zNxo0btXr1asXExCg6OtptWd6/o3kj3yc7m+cQyhfGL4F8/Pnnn5owYYIkqWLFigoLC9OQIUM0ZswYjz80LrjgAq+TLGzcuFGSvE4D27NnT0nSzz//7LGsa9eustvdv+ew2+3q2rWrtm3bpl9++UW9e/eWdHwihcmTJ2vBggX6888/dfjwYbf18m66P1ndunVdl06c7JJLLtE777yjjRs36rrrrvNYfjb06dNHtWvX1qxZszR+/Hg5HA7l5OTo/fffV0REhK644ooS6cepBg8erNdff10tW7bU4MGD1bNnT3Xu3NnrP8CFcbpLYrwpS++TdObHc96lcSerU6eOJCk9Pf20+83bZvfu3T0ux7Tb7erWrZu2bNmin3/+uVB/cBfWrbfeqi+++EKff/65unXrpv/973+6//77VbFiRa/tf/zxR+Xm5io7O9vrdPjbtm2TJG3ZskV9+/aVdPxywddee01z5szRli1bdOjQIRljXOucfP7269dPY8eO1b333qu4uDhdccUV6t69u9sf0EXl7Ti1mlfeH+gXX3yxR9vAwEC1adPmrE7W43Q6i7T+Z599pjfffFMbNmzQwYMHlZub61rm7fNUKvoxXlTeLhPMK+zyW7Z27dpCbdtms+n555/Xo48+qsWLFys+Pl4//fST1q9fr82bN+vNN9/UkiVLXJfPFcby5cs1depUrV27VgcOHHCbAdPKZZnx8fGSpJSUFK/H5pYtW1z/bdmyZYmcQyhfKKSAfERHR2vJkiWFapvftK+ZmZmy2+1u3waevI7NZlNmZmaht5cXz8jIkHT8j7AePXpow4YNatu2rW655RZVrVpVFSpUcN27k52dfcbbLwkOh0O33XabJkyYoK+//lp9+/bV559/rr///lsjR470KCiLKu8PIW/vyclefvllXXDBBZo1a5aefvppPf300/Lz89MNN9ygF1980fLshGcyNXBZep+kMz+e8+4XPFnefQgn/5Fa0H7z9uFN3h+M3vZdFH369FFYWJhmzpypHTt2yOl0ukbSvElLS5Mk/fDDD/rhhx/ybXfylx0DBw7UokWL1LhxYw0aNEg1atRQxYoVlZ6erpdfftnt/K1fv77i4+M1fvx4LV68WJ988okkqWnTpnrqqad0/fXXFzVlr6+x1bzyjsv87gO0ci6Eh4dLUqFGG/PaFGXK/hdffFEPP/ywqlevrssvv1x16tRxfXkydepUr5+nUtGP8aIqaP/5LbM6fX+1atU0dOhQDR06VNLx0cKRI0dq/vz5uuOOOwo9wjVv3jwNGjRIgYGBio6OVv369RUQEOB6vtauXbsK3ae8Y/Orr77SV199lW+7vGOzJM4hlC8UUkAxyG/SguDgYDmdTu3fv9/jj4rU1FQZY7z+I3fqww1PjeddVrVw4UJt2LBBI0aMcF0Kl2fOnDmuS7HOdPsl5bbbbtPTTz+tGTNmqG/fvnr77bdlt9sL/KP1TOzYsUNJSUmqXr2666bl/FSoUEEPP/ywHn74Ye3bt08rVqzQrFmzNHv2bCUnJ2vp0qWW9l3QxBb5sfI+5RWcx44d87hZurgKrjM9notjv1L+r0fe5V/Fve8KFSpo6NChevHFF5WQkKAOHTqoZcuWp+3nQw89pMmTJ592+z/++KMWLVqk6OhoffXVV26X+MXHx3uduKNly5b69NNP9e+//2r9+vX6+uuv9corr2jQoEGqVauW6/l2drs93wdQF3Q8eDtOreaVd1ympqZ6XZ7f++hNly5d9O677youLs7jssKTpaena8OGDXI4HK5JRyRrr8OxY8c0ceJE1axZUz///LPbMW6M0fPPP1/ofp+pM33fSkN4eLjef/99ffnll/r111/1999/uyamKMj48ePl5+en9evX68ILL3RbNmfOHEt9yDs2X331VY0cObJQ6xT2HAIKg3ukgLOobdu2kuT1Mpa8mLfLLn744QePy1OcTqdWr14tm83mmvXqzz//lCRdc801HttYuXJlvv3avXu312/98tbJ63dxyPvjsKBvZevUqaM+ffpo8eLFWr16teLi4hQdHV3sz3eaOHGiJGnQoEGWCptatWrpxhtv1JIlS9SoUSN9++23+ueffyQVLr8zZeV9qlKliiTP+0OcTqfXb4rPpN9nejwXVd42v//+e7fL3qTjf+B+//33Z23ft956q5xOp/7666/TFvbt27eXzWbTmjVrCrXtvPO3T58+HvdJFXT+SscvN+7UqZMmTJigV155RcYYffnll67lVapUUWpqqseoQ94MZVZYzSvv82nVqlUeyw4dOuT18s/8XH/99QoKCtJnn33mukzLmxdffFFHjx7VVVdd5TZabOV1OHDggDIyMtS5c2ePLwp++ukn1zlfFKc774rzfSsJvr6+Xi91tdvt+eb4559/qlmzZh5F1F9//aUdO3Z4tC/oNcu7nLCwx+bJTncOAYVBIQWcRTExMZKkCRMmuF12lJGR4br/Kq/Nyf744w/NmDHDLTZjxgz98ccf6tOnj+vSqrz7Z079g2XFihUe658sNzdXjz32mNsfpb/++qvef/99Va9eXVdddZWVNAtUpUoV2Wy2016ac+edd+rYsWO6/vrrZYwp1kkmDh06pIceekjvvvuuatasqccee6zA9tnZ2Vq9erVH/PDhwzp06JAqVqzoGgHKu0G5OCc6yGPlfWrfvr0kz8kepkyZop07d3ps+0z6fabHc1HVrVtXPXv2VEJCgmbOnOm27K233tLvv/+uSy+9tFjvj8rTtGlTff311/r88889Jk44VXh4uG644QatXr1aL7zwgkfRJ0lr167VkSNHJOV//iYkJGjSpEke665fv97r5Yt5IzwnTyPfvn17/fvvv/rwww9dMWOMxo4d63Ef5elYzatu3brq1q2bfv31V7f9S9Izzzxj6Z6hkJAQTZo0STk5OerXr5/++OMPjzbvvPOOJk2aJB8fHz3++ONuy6y8DjVq1JC/v782bNjgykU6/hiCUaNGFbrPBTndeVec71txefHFF/MtYl977TUdOnRITZs2dRuNCg0N1Z49e7yuU69ePW3fvt1tZPLo0aO6++679e+//3q0L+g169Chgzp27KiPP/5Yc+fO9VjudDq1YsUK1+9WziGgMLi0DziLunXrplGjRunVV19Vy5Ytdd1118kYo/nz52vPnj267777vD7HIzo6Wvfdd58WL16sFi1aKCEhQYsWLVK1atXcLvfp16+f6tevr+eff16//fabWrZsqa1bt+rLL7/UgAED9Omnn3rtV6tWrbRq1Sq1b99evXv3dj2f6NixY3rrrbfOeEIFbwIDA9W+fXt9//33uuWWW3ThhRfKbrfrlltucZtI4YorrlC9evW0a9cuhYeH5zsz2um8/fbbWrJkiYwxysrK0rZt27RixQplZWWpRYsWmjNnjtvsWt78888/6tq1qxo3bqyoqCjVrVtXhw4d0pdffqnk5GQ9/PDD8vX1lXT8D+1atWppzpw58vX1VZ06dWSz2TRq1KgiXyJp5X0aPny4nn/+eY0fP14///yzGjZsqJ9++km//fabunfv7vbHhCTXxBlTp07VwYMHXcX5E088kW9/zvR4Lg5vvPGGLr74Yt1+++1atGiRmjdvroSEBH3xxReqXr263njjjbOyX0mWJjx5/fXXtXXrVj366KN6//331blzZ4WEhCgpKUk//fSTtm3bpr/++ksBAQHq0KGDOnTooE8++UR//fWXOnXqpN27d+uLL75Qnz59PM7f999/X2+++aa6deumhg0bKjg4WJs3b9bixYsVGhrq9ry1kSNHatasWbrtttv0zTffqHr16lq5cqXS09PVunXrQt/PciZ5SdK0adPUtWtXDR06VAsWLHA9R+rHH3/UJZdcctoRt5Pde++9OnDggCZMmKDIyEhdccUVatasmY4eParly5frl19+kcPh0BtvvOEx4YGV18Fut+uee+7Riy++qNatW6tfv37KzMzU119/rXr16uX77DArTnfeFff7Vhzef/99Pfzww4qMjFTHjh1Vo0YNpaenKz4+Xhs2bJC/v7/H+XfppZfqk08+Uf/+/dW2bVs5HA5dffXVatWqlUaNGqVRo0apbdu2GjhwoI4dO6ZvvvlGxhivOfbs2VM2m02PPfaYEhISVLlyZYWEhLgu5fv444/Vs2dPDR48WFOnTtVFF10kf39/7d69W2vWrNH+/ftdM29aOYeAQinRydaBc0BBz5HyRgU8LyPPzJkzTfv27U1A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GT58uH7++Wdt2LDBLf7LL79o48aNp33O2MKFC9WrVy9VqVJFfn5+atmypSZPnqzc3Fy3dhkZGXruuefUvXt31apVSz4+PqpVq5aGDh2qP//802O7R48e1YsvvqjWrVurcuXKqlSpkurXr68bbrhBv/zyi6vd+PHjZbPZtHz5co9teDvGTr4/7vfff9eAAQNUtWpV16WnJ6+zaNEidezYUQEBAapdu7aefPJJ17H93nvvud6funXr6oUXXvD6+hhjNHPmTHXt2lXBwcEKCAhQu3btNHPmTI+2J+fy0UcfqU2bNvL391fNmjV1//33659//nFr27NnT0nShAkTXO/9yZfQZmRkaNy4cWrevLkCAwMVHBysRo0aKSYmRrt27fL+hhaSn5+f13jesbB9+3a3+Lx585Senq5Ro0apTp06rnidOnU0cuRIHThwQJ9//rkr/scff+j7779Xz549deWVV7riPj4+mjhxoiRpxowZHvu//vrrJcnr5wqAcx+FFIBzijFGy5YtU5MmTVSlSpV821144YW6/fbb9dtvv+m99947a/05ePCgLr74Yu3cuVMxMTHq0aOHFi9erMsuu0y//fabunTpokOHDunWW29Vu3btNH/+fN14441et7Vjxw517dpV//zzj+6++25dffXVWrZsmbp166a1a9e6tU1LS1Pnzp311FNPqUqVKrrrrrt03XXXaf369erZs6cWLFjgdR/XXXed3n33XfXs2dM1IURBjDEaOHCgHnroIR09elT33nuvhgwZol9++UVXX321XnrpJVfb/v37KzY2VpJUr149xcbGKjY21tIkGjExMXI4HJo1a5Zb/J133pHD4dDQoUPzXXfs2LHq37+/tm7dqmuvvVb33HOP/P399cgjj2jw4MFubX///XeNGzdO/v7+GjBggB544AG1a9dOH330kTp06ODxh31MTIwefvhhSXJdOtalSxetXLlSP/74Y6Hzy8/27dvVqVMn7d+/33WZmY+Pj2v5559/rhtuuEENGjTQXXfdpcDAQD399NMaN26cXnjhBd13331q3bq17rjjDjmdTj366KOaPXu22z6MMbrppps0YsQI7d+/X0OGDNFtt92mw4cPa8SIEa78TvXaa6/pjjvuUIsWLXT33XerSpUqeuWVV3Tbbbe52vTo0UMxMTGSpO7du7ve+9jYWIWEhMgYo+joaE2cOFGhoaG64447dMcdd6ht27b64osvtG3bNrd9Ftd9cGvWrNHBgwfVsmVLt3heoettspro6GhJ0ooVKwrV/uKLL1alSpXc2uepU6eOIiIiCrzvCsA5rDSHwwDAqoSEBCPJ3HTTTV6X513at2bNGpOcnGwCAwNNnTp13C798XZp36xZs4wkM2vWLI9t5nfJkiQjyTz44INu8bvvvttIMiEhIWbq1KmuuNPpNFdddZWRZNavX++K513aJ8mMGTPGbVtLliwxkkxkZKRbfMiQIV4vb0xJSTERERGmevXqbjl3797dSDJt2rQxf//9t9fXzpv33nvPSDLdu3c32dnZrviuXbtMtWrVTIUKFcyff/7p8bqc6aV9xhjTt29fExoaao4ePWqMMebo0aMmNDTU9OvXzxhjvF7a97///c9IMtHR0ebQoUOuuNPpNHfddZeRZD799FNXPD093evr8N133xm73W5uu+02t7Y2m81ERUWZY8eOubU/duyYOXjwoOv32NhYI8ksW7bMY9vejrGT3/tx48blu07FihXNunXrXPHMzExTo0YNExAQYMLDw93eg927dxsfHx+PY+att94ykszw4cNNTk6OK56dnW369etnJJmffvrJI5fKlSubLVu2uOJHjhwxjRs3Nna73ezdu9cVL+jSvl9//dVIMv379/dYdvToUZOVleUWy3tNrFq6dKmJjY01Y8aMMdddd53x9fU11apVMz/++KNbu3bt2hlJ5sCBAx7bOHDggJFkLrnkElfs4Ycf9jiGTtayZUtjt9vNv//+67FswIABRpLZsWOH5XwAlG2MSAE4p+zZs0eSFBYWdtq2YWFhGj16tPbs2aNXXnnlrPQnb2TgZHkjTlWrVnW7Cd1ms7lGRk6+HCxPSEiIHn/8cbdYdHS0evXqpU2bNrku8Ttw4IDmzp2rSy+91G1UQJJq1KihRx55RPv379e3337rsY8JEyYoNDS00PnljeY9//zzbiMkdevW1YMPPqhjx47lOznEmbr11luVlpbmGlVbsGCB0tLSdOutt+a7zmuvvSZJeuutt1SpUiVX3Gaz6dlnn5XNZtPHH3/sileuXNnr69CzZ0+1aNHC7bXLu1zRz89Pdrv7P5sOh0MhISFnkqab8PBwj/f+ZDfffLPat2/v+j0oKEh9+/bVkSNHdPfdd6tBgwauZREREbr44ou1efNmHTt2zBV/7bXXVKlSJU2bNk0VK1Z0xX18fPTf//5Xktxeozz333+/mjRp4vrd399fN954o5xOZ76XnebH39/fI+br66vAwEC32O+//67ff//d0rYl6X//+58mTJigZ599VvPnz1dERISWLFmidu3aubXLyMiQdPw4OFVwcLBbm9O1z1vH6XQqKyvLY1neZ1XeZxeA8wdTHwE4p+RNjV3YP14ffvhhvfHGG3r22Wd1++23F3g54Jm48MILFRAQ4BarWbOmJKlVq1YelyflLdu3b5/Httq2bevxB6V0/Hk0cXFx2rhxo6KiovTjjz8qNzdX2dnZXu9xyrtMasuWLerbt6/bsg4dOhQ+OUkbN25UQECA1/Xy7okp7mdE9e3bVzVq1NDMmTM1aNAgzZw5UzVq1PDI5WTx8fGqVKmS13t9pON/wG/ZssUttnz5ck2dOlVr167VgQMH3IqOk4vG4OBgXXXVVVq8eLEuuugiXX/99erRo4fat2/vVpAURevWrd32eao2bdp4xPKOpfyW5ebmKiUlRbVr19aRI0e0adMm1apVS88995xH+3///VeSPF4jSYqKivKI5d1XlJ6enm+fT9asWTO1atVKH3/8sfbs2aP+/furR48eatOmjUdxKklNmzYt1HZPNXnyZE2ePFmHDh3S5s2b9dRTT6lr166aOXOmhgwZckbbLKq8gv3AgQOlsn8AZw+FFIBzSt432kePHi1U+6CgID355JO67777NGnSJD3//PPF2p+8b69Pljc9d0HL8v5wPVl+o2x58bxvxdPS0iRJP/zwg3744Yd8+3b48OFC7yM/mZmZioiI8Los7w/5zMxMS9s8nYoVK+rmm2/W1KlTtXr1an377bd68MEHC5z2PC0tTceOHdOECRPybXPy6zFv3jwNGjRIgYGBio6OVv369RUQEOCa2OHUe6TmzZunZ555Rh999JFr5Cg4OFjDhw/XM88841FMW3W696Wox9nBgwdljNHevXsL/RoVZt+nTuKRnwoVKui7777T+PHjNX/+fD300EOSpOrVq2vkyJF6/PHH5XA4CrWtwggMDFSHDh20YMECtWvXTnfccYcuu+wyVa9eXdKJkaWMjAxVrVrVbd284/nk0aeT23uTmZkpm82moKAgj2V5k3IU9RgBUPZwaR+Ac0reH0J5xURh3HXXXWrYsKFeffVVJSUleW2T9634yaMSefL746m45TebX14874+5vD9sH3roIRlj8v3Jm/jhZFZv4A8ODlZqaqrXZcnJyW79KU4jRoyQ0+nUDTfcIKfTqREjRpy2n1WrVi3w9di5c6er/fjx4+Xn56f169dr3rx5euGFFzRhwgRX/FQBAQF6+umntWPHDu3YsUPvvPOOmjRpopdfflkPPvigq92ZHkdn+wHDee9RVFRUga/RsmXLzlofqlatqldffVV79+7V5s2b9dprryk0NFSxsbHF/gVHngoVKqhnz546fPiwfvrpJ1f8wgsvlCSPSS5OjuW1OV373Nxc7dy5UxdccIHXYj/vsyrvswvA+YNCCsA5pUWLFrLb7dq6dWuh16lYsaKefvppHT16VOPGjfPaJu+Sv71793os27hx45l11qKNGzfq0KFDHvGVK1dKOn7pnyS1b99eNptNa9asOet9atu2rY4cOaJ169Z5LMubyczbpWVF1bx5c3Xs2FF79+5Vp06d1KxZswLbd+zYUX///bfXP3S9+fPPP9WsWTO3P5Yl6a+//nJNXZ+fCy64QLfeeqtWrFihwMBAffHFF65lZeE48iYoKEjNmjXT77//XujL8azKG1E63SiVzWZTs2bNdO+99+qbb76RJLfXsLjlXUZ78mWY3bt3l3T8nqpTLV261K3N6dqvWrVKhw8fdmt/sq1bt6pixYpnfLkigLKLQgrAOSUkJEStWrXSTz/9VKjnQ+UZNGiQoqKiNHv2bP3xxx8ey6OiomSz2TRnzhy3ywa3bduml19+uVj6fjrp6emum/7zLF26VHFxcWrZsqXrXpXw8HDdcMMNWr16tV544QUZYzy2tXbtWh05cqTIfcqb0nrs2LFulyMmJSVpypQpqlChgm666aYi78ebmTNn6vPPP9c777xz2rZ5k3rceuutrvvoTpacnOw2eUG9evW0fft2t1HAo0eP6u677/a47HL//v367bffPLZ58OBBZWdnu41g5U0IMXv2bLfjc82aNcU+KYdV9913n44cOaLbb7/d6yV8O3fudD3z6Uzk3QvkbdQ3MTHR67bzXv9TRwG3bNni9X6t/Jw82nSypUuX6vPPP1dISIg6d+7sit9www2qXLmyXn31VbdJIPbs2aPXXntN1apV04ABA1zxJk2aqFu3blq2bJm+/vprVzwnJ0dPPvmkJHlM/JK3fOPGjWrXrh2X9gHnIe6RAnDOGTBggGJjYxUfH68uXboUap282dsuu+wyt0u88tSqVUs33nijPvroI0VFRemKK65QamqqPv/8c11xxRWaP39+cafh4ZJLLtEbb7yhtWvXqlOnTkpMTNS8efPk7++vt99+263t66+/rq1bt+rRRx/V+++/r86dOyskJERJSUn66aeftG3bNv31119F/uPtlltu0WeffaaFCxeqVatW6tu3rw4fPqy5c+cqLS1NL774otuMccWpefPmat68eaHaXnHFFXryySc1ceJENWrUSFdccYXq1aunv//+W9u3b9fKlSv19NNPu0a2Ro0apVGjRqlt27YaOHCgjh07pm+++UbGGLVu3dptVsW9e/eqbdu2at26tVq1aqXatWvr77//1sKFC/Xvv/+6PX+pU6dO6tq1q7777jt17txZ3bp1065du7Rw4UL169fP7SGvJe3OO+9UfHy83nvvPf3www/q3bu3atWqpZSUFG3ZskVr167VRx99pPr165/R9ps2bapatWppzpw58vX1VZ06dWSz2TRq1Cj9/PPPuvbaa9WhQwc1b95c4eHh2rt3rxYsWCC73e52eaQk1/vk7UsCb9q3b6+WLVuqVatWqlOnjg4fPqxff/1VK1euVMWKFTVz5ky32RyrVKmi1157TbfccosuuugiDRo0SJI0d+5c/f3335o7d67H/U6vv/66unbtqv79+2vQoEGqWbOmvvrqKyUkJLieK3aqlStXKjs7W/3797fyUgI4V5TUPOsAUFz27t1rKlSoYO6++26PZSc/R8qbyy+/3PWMmpOfI2XM8efj3HfffSYsLMz4+vqaVq1amQ8//LDA50h5e15S3rOBYmJiPJZ529bJ7X/77Tdz1VVXmeDgYFOpUiXTu3dvt2f7nNrf559/3kRFRZlKlSoZf39/c8EFF5j+/fub2bNnuz3TJu85Umfi33//NZMnTzaRkZHG19fXBAUFme7du5uFCxd6bZ/f61IQnfQcqdPx9hypPN98843p16+fqV69uqlYsaIJDw83nTt3NhMnTjS7d+92tXM6nWb69OmmRYsWxs/Pz4SHh5sRI0aY1NRUj9fq4MGDZvz48aZbt26mZs2axsfHx9SqVctcccUV5uuvv/bow4EDB8zQoUNNaGio8ff3N506dTJLly4t8DlS3o4VYwp+vllBz6zKOw9OPcaN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4HQ6NXv2bHXs2FGhoaEKCgpS48aNNXToUMXHx7vaFUcOH330kaZOnVr0TgMAzgiFFABAn332mS666CLFxcVp+PDhev311zVixAh99913uuiii7Rw4cLS7qLL5s2bNWHChDJZSN13332KiYlRzZo1NX78eD333HO68sorFR8fryVLlrjaFUcOFFIAULp4IC8AlHN//vmnbrnlFjVo0EDff/+9qlev7lp2//3365JLLtHNN9+sX3/9VRdccEEp9rRsS0lJ0euvv67bb79db731ltuyqVOnav/+/aXUMwDA2cCIFACUcy+88IKOHDmit956y62Iko4/FPjNN9/UoUOH9MILL7jiw4YNU/369T22NX78eNlsNrfYrFmzdOmll6pGjRry9fVV8+bN9cYbb3isW79+ffXt21erVq1Shw4d5OfnpwYNGmj27NmuNu+++66uv/56SVLPnj1ls9lks9m0fPlySZLNZtP48eO9bnvYsGFu27HZbFq1apXuu+8+Va9eXSEhIbrzzjuVk5Oj9PR0DR06VFWqVFGVKlX06KOP6nSPXdy5c6eMMeratavHMpvNpho1ahQqh4ULF6pPnz6qVauWfH191bBhQ02cOFG5ubmu7fXo0UNfffWVdu3a5Vr/5PcjOztbsbGxatSokXx9fRUREaFHH31U2dnZbv365ptvdPHFFyskJESBgYFq0qSJHnvssQLzBAAcx4gUAJRzixYtUv369XXJJZd4Xd6tWzfVr19fixYt0uuvv255+2+88YZatGihq6++WhUqVNCiRYt0zz33yOl06t5773Vru337dg0cOFAjRoxQTEyMZs6cqWHDhikqKkotWrRQt27ddN999+mVV17RY489pmbNmkmS679WjRo1SuHh4ZowYYLi4+P11ltvKSQkRKtXr1bdunX1zDPPaPHixXrhhRfUsmVLDR06NN9t1atXT5I0b948XX/99QoICPDa7nQ5vPvuuwoMDNTo0aMVGBio7777TuPGjVNmZqarmH388ceVkZGhPXv26KWXXpIkBQYGSjp+n9bVV1+tVatW6Y477lCzZs20adMmvfTSS/rjjz+0YMECScfvievbt69atWqlp556Sr6+vtq+fbt++OGHM3otAaDcMQCAcis9Pd1IMtdcc02B7a6++mojyWRmZhpjjImJiTH16tXzaBcbG2tO/aflyJEjHu2io6NNgwYN3GL16tUzksz333/viqWmphpfX1/z0EMPuWLz5s0zksyyZcs8tivJxMbGesTr1atnYmJiXL/PmjXLSDLR0dHG6XS64p07dzY2m83cddddrtixY8dMnTp1TPfu3T22e6qhQ4caSaZKlSpmwIABZvLkyeb333/3aFdQDt5erzvvvNMEBASYo0ePumJ9+vTx+h68//77xm63m5UrV7rFp0+fbiSZH374wRhjzEsvvWQkmf379582LwCAJy7tA4ByLCsrS5IUFBRUYLu85XntrfD393f9f0ZGhg4cOKDu3btrx44dysjIcGvbvHlzt5Gx6tWrq0mTJtqxY4fl/RbGiBEj3C5F7Nixo4wxGjFihCvmcDjUrl27QvVh1qxZeu2113TBBRfo888/18MPP6xmzZqpV69e2rt3b6H6dPLrlZWVpQMHDuiSSy7RkSNHtGXLltOuP2/ePDVr1kxNmzbVgQMHXD+XXnqpJGnZsmWSpJCQEEnHLyV0Op2F6hsA4AQKKQAoxwpbIGVlZclms6latWqW9/HDDz+od+/eqlSpkkJCQlS9enXXfTinFlJ169b1WL9KlSo6ePCg5f0Wxqn7q1y5siQpIiLCI16YPtjtdt17771av369Dhw4oIULF+rKK6/Ud999p8GDBxeqTwkJCRowYIAqV66s4OBgVa9eXTfffLMkz9fLm23btikhIUHVq1d3+2ncuLEkKTU1VZI0aNAgde3aVbfddpvCwsI0ePBgffLJJxRVAFBI3CMFAOVY5cqVVatWLf36668Ftvv1119Vp04d+fj4SJLHhBJ5Tp4QQTo+I2CvXr3UtGlTTZkyRREREfLx8dHixYv10ksvefzR7nA4vG7XnGaih9M5tV+n25+3uNU+VK1aVVdffbWuvvpq9ejRQytWrNCuXbtc91J5k56eru7duys4OFhPPfWUGjZsKD8/P23YsEH/+c9/ClXkOJ1ORUZGasqUKV6X5xWJ/v7++v7777Vs2TJ99dVXWrJkiebOnatLL71U//vf//J9bQAAx1FIAUA5169fP7355ptatWqVLr74Yo/lK1euVGJiokaPHu2KValSRenp6R5td+3a5fb7okWLlJ2drS+++MJt9Cfv8rIzkV8Rl1+/cnJy9Ndff53x/opDu3bttGLFCv3111+qV69evjksX75cf//9tz777DN169bNFd+5c6dH2/y20bBhQ/3yyy/q1atXga+VdHwErVevXurVq5emTJmiZ555Ro8//riWLVum3r17W8gQAMofLu0DgHLu4YcfVkBAgO688079/fffbsvS0tJ01113KTg4WCNHjnTFGzZsqIyMDLeRrL/++kuff/652/p5oxonj+ZkZGRo1qxZZ9zfSpUqSZLXQq5hw4b6/vvv3WJvvfVWviNSxSk5OVmbN2/2iOfk5CguLk52u12NGjWSlH8O3l6vnJwcr7MlVqpUyeulfjfccIP27t2rGTNmeCz7559/dPjwYUnH39tTtWnTRpI8pkkHAHhiRAoAyrlGjRpp9uzZuvHGGxUZGakRI0boggsuUGJiot555x0dPHhQc+bMcXsY7+DBg/Wf//xHAwYM0H333acjR47ojTfeUOPGjbVhwwZXu8svv1w+Pj7q16+f7rzzTh06dEgzZsxQjRo1zniUqE2bNnI4HHruueeUkZEhX19f13OqbrvtNt1111267rrrdNlll+mXX37R0qVLz+jeLqv27NmjDh066NJLL1WvXr0UHh6u1NRUffzxx/rll1/0wAMPuPqRXw5dunRRlSpVFBMTo/vuu082m03vv/++18sKo6KiNHfuXI0ePVrt27dXYGCg+vXrp1tuuUWffPKJ7rrrLi1btkxdu3ZVbm6utmzZok8++URLly5Vu3bt9NRTT+n7779Xnz59VK9ePaWmpur1119XnTp1vI5MAgBOUZpTBgIAyo5NmzaZIUOGmPDwcGO3240k4+fnZxISEry2/9///mdatmxpfHx8TJMmTcwHH3zgdfrzL774wrRq1cr4+fmZ+vXrm+eee87MnDnTSDI7d+50tatXr57p06ePx366d+/uMfX4jBkzTIMGDYzD4XCbRjw3N9f85z//MdWqVTMBAQEmOjrabN++Pd/pz3/88Ue37eb1/9QpwWNiYkylSpUKfP0yMzPNyy+/bKKjo02dOnVMxYoVTVBQkOncubOZMWOG2zTrBeXwww8/mE6dOhl/f39Tq1Yt8+ijj5qlS5d6TJd+6NAhM2TIEBMSEmIkuU2FnpOTY5577jnTokUL4+vra6pUqWKioqLMhAkTTEZGhjHGmLi4OHPNNdeYWrVqGR8fH1OrVi1z4403mj/++KPAPAEAx9mMKeIdvACA89Ls2bM1bNgw3XzzzZo9e3ZpdwcAgDKFS/sAAF4NHTpUf/31l8aMGaM6deromWeeKe0uAQBQZjAiBQAAAAAWMWsfAAAAAFhEIQUAAAAAFv1f+3UsAAAAADDI33oM+8sikQIAAJhECgAAYBIpAACASaQAAAAmkQIAAJhECgAAYBIpAACASaQAAAAmkQIAAJgCD9in8tRAjEwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the measurements:\n", "mt.plot_measurements(num_of_measurements=300)" ] }, { "cell_type": "markdown", "id": "55520072", "metadata": {}, "source": [ "Another useful feature of this class is tracing out a qubit. Using the get_qubit method we can give the method the desired qubit index and the method will return a Qubit object with it's amplitudes. This is usefull in quantum dynamical circuits where we want to measure a single qubit in a multi qubit quantum state. Let's show an example:" ] }, { "cell_type": "code", "execution_count": 14, "id": "b5825a01", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Qubit state is 0.50|0⟩ + 0.87|1⟩\n", "Qubit state is 1.00|0⟩\n" ] } ], "source": [ "# Trace out the first qubit:\n", "first_qubit = mt.get_qubit(qubit_index=0)\n", "\n", "# Print the qubit state:\n", "first_qubit.print_qubit()\n", "\n", "# Trace out the second qubit:\n", "second_qubit = mt.get_qubit(qubit_index=1)\n", "\n", "# Print the qubit state:\n", "second_qubit.print_qubit()" ] }, { "cell_type": "markdown", "id": "1818d8cf", "metadata": {}, "source": [ "We can see the traced out qubits have the same amplitudes as we initialized them before without saving the original qubit amplitudes.\n", "Note that the traced out qubits will only have the same probability and any phases will be lost due to this implementation. This is not a worry cause we only need the probabilities.\n", "\n", "The following method measures the multi qubit quantum state on a specific qubit and returns the collapsed state. Lets show two examples:" ] }, { "cell_type": "code", "execution_count": 16, "id": "a9e6c2e9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: 0.5|00⟩ + 0.5|01⟩ + 0.5|10⟩ + 0.5|11⟩\n", "Tensor product in computational basis state form: 0.7071|00⟩ + 0.7071|01⟩\n" ] } ], "source": [ "# Initialize a quantum state of two qubits with equal amplitudes:\n", "vector = np.full(4,1/2)\n", "mt = MultiQubit(vector)\n", "mt.print_tensor_form()\n", "\n", "# Perform a measurement on the first qubit:\n", "result, bit = mt.measure_qubit(qubit_index=0)\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "b0b11d09", "metadata": {}, "source": [ "If we run the cell a couple of times we will get the first qubit in 0 state with 1/2 probabilty and 1 state with the same probability as expected.\n", "Let's show another example of 4 qubits where each qubit is measured consecutively. " ] }, { "cell_type": "code", "execution_count": 18, "id": "ef43efd9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: 0.25|0000⟩ + 0.25|0001⟩ + 0.25|0010⟩ + 0.25|0011⟩ + 0.25|0100⟩ + 0.25|0101⟩ + 0.25|0110⟩ + 0.25|0111⟩ + 0.25|1000⟩ + 0.25|1001⟩ + 0.25|1010⟩ + 0.25|1011⟩ + 0.25|1100⟩ + 0.25|1101⟩ + 0.25|1110⟩ + 0.25|1111⟩\n", "Tensor product in computational basis state form: 0.3536|1000⟩ + 0.3536|1001⟩ + 0.3536|1010⟩ + 0.3536|1011⟩ + 0.3536|1100⟩ + 0.3536|1101⟩ + 0.3536|1110⟩ + 0.3536|1111⟩\n", "Tensor product in computational basis state form: 0.5|1100⟩ + 0.5|1101⟩ + 0.5|1110⟩ + 0.5|1111⟩\n", "Tensor product in computational basis state form: 0.7071|1110⟩ + 0.7071|1111⟩\n", "Tensor product in computational basis state form: |1111⟩\n" ] } ], "source": [ "# Initialize 4 qubits with equal amplitudes:\n", "vector = np.full(16,1/4)\n", "mt = MultiQubit(vector)\n", "mt.print_tensor_form()\n", "# Measure each qubit in order and print the collapsed state:\n", "for i in range(4):\n", " mt,bit = mt.measure_qubit(i)\n", " mt.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "ac97f7b8", "metadata": {}, "source": [ "## Quantum Circuit Class\n", "The QuantumCircuit class allows for building a quantum circuit. By adding and removing a quantum gates on every qubit at each vertical and horizontal axis. Every iteration from left to right is described by layers. Each layer is compromised of a tensor product of single qubit gates or controlled gates or swap gates.\n", "\n", "Let's construct a quantum circuit object with 3 qubits and add a NOT gate to the first qubit. \n", "The constructer recieves the number of qubits in the circuit. Then we use add_single_qubit_gate method which recieves target_qubit, layer_index, gate type and phase as arguments. Gate types are: I - identity gate, X - X Gate, Y - Y gate, Z - Z gate, H - Hadamard gate.\n", "\n", "Note that the target index and layer index are counted from 0." ] }, { "cell_type": "code", "execution_count": 19, "id": "66cddea7", "metadata": {}, "outputs": [], "source": [ "from circuit import QuantumCircuit\n", "circuit = QuantumCircuit(number_of_qubits=3)\n", "circuit.add_single_qubit_gate(0,0,\"X\")" ] }, { "cell_type": "markdown", "id": "0b6f839a", "metadata": {}, "source": [ "Now let's visualize the circuit to see the construction. You can specify true for visualizing in matplotlib or false for CLI. Matplotlib is reccomended and will be used by default." ] }, { "cell_type": "code", "execution_count": 20, "id": "fcfc83e3", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit.draw_circuit(matplotlib=True)" ] }, { "cell_type": "markdown", "id": "68cdd564", "metadata": {}, "source": [ "The quantum circuit class initializes a two dimensional array. Every row of the array corresponds to each layer and every column to every gates in that layer. When we apply the circuit on an input or want to print the total unitary operation on the input state, the class computes all of the gate matrices into one unitary matrix.\n", "\n", "Let's print this circuit's final matrix:" ] }, { "cell_type": "code", "execution_count": 21, "id": "b535a98a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 1.+0.j]\n", " [1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 1.+0.j 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]\n" ] } ], "source": [ "circuit.print_operator_matrix()" ] }, { "cell_type": "markdown", "id": "f9632064", "metadata": {}, "source": [ "Now let's introduce how we can apply the circuit on an input state. Note that the input state which is a tensor product must have the same number of qubits as the circuit otherwise a ValueError will be raised. Here's an example:" ] }, { "cell_type": "code", "execution_count": 22, "id": "24475c19", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The input state:\n", "Tensor product in computational basis state form: |011⟩\n", "The output state:\n", "Tensor product in computational basis state form: |111⟩\n" ] } ], "source": [ "# Initialize a quantum state of 011:\n", "vector = np.array([0,0,0,1,0,0,0,0])\n", "mt = MultiQubit(vector=vector)\n", "# Print the input quantum state:\n", "print(\"The input state:\")\n", "mt.print_tensor_form()\n", "\n", "result = circuit.run_circuit(mt)\n", "print(\"The output state:\")\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "3ad82f89", "metadata": {}, "source": [ "We took the 011 state and got the 111 state which is what we expect to see with a NOT gate acting on a qubit.\n", "\n", "If we want to reset the circuit to the intial state we can use the following method:" ] }, { "cell_type": "code", "execution_count": 23, "id": "2f696f12", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIwAAADmCAYAAAAHr20CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAASDklEQVR4nO3deUxUV/sH8O8dCoOMgAJlEYGZYlVQlBYsrdVAkGgVBW2JhcjiUgWslWoFTWzRVvMa1KQuNZq0WFRs3UIUbaUiglpi0QpWBVFsWRLLoiDbyKLM+f1hvL93XlDmDAMzwPNJ5o+598zhGfP13HNn5t4jMMYYCNGQRN8FkP6FAkO4UGAIFwoM4UKBIVwoMIQLBYZwocAQLhQYwoUCQ7hQYAgXCgzhQoEhXCgwhAsFhnChwBAuFBjChQJDuFBgCBcKDOFCgSFcKDCECwWGcKHAEC4UGMKFAkO4UGAIFwoM4UKBIVwoMIQLBYZwocAQLv0qMIwxJCYmwsHBAUOGDEFAQABKSkr0Xdag0q8Cs3XrVuzatQv79u1DXl4eZDIZZsyYgdbWVn2XNngwA9Lc3MwiIiKYTCZj9vb2bPv27czX15fFxcUxlUrF7O3t2bZt28T29fX1TCqVsp9//lmPVQ8uBjXCxMfH4+LFizh16hTOnTuHnJwc5OfnAwBKS0tRVVWFgIAAsb2lpSV8fHxw5coVcZufnx8WLlzY16UPGq/pu4AXmpubkZycjNTUVEybNg0AcODAAYwcORIAUFVVBQCws7NTe52dnZ24DwCcnZ3h4ODQR1Vr78mTJyguLtZ3GaK3335bo3YGE5i///4b7e3t8PHxEbdZWVlhzJgxXP0cPHhQ16X1iuLiYnh5eem7DBHT8GaqBhOY7tjb2wMAqqur1UaQ6upqeHp66qkq7Y0dOxbXr1/XdxncDCYwrq6uMDY2Rl5eHpydnQEAjx8/xr179+Dr6wuFQgF7e3tkZWWJAWlsbEReXh5iY2P1WLl2zMzMND4MGBKDCczQoUOxZMkSxMfHw9raGra2tli/fj0kkufzckEQ8Pnnn2Pz5s148803oVAo8NVXX2HEiBGYO3eu2E9kZCQcHR2xZcsWPb2Tgc1gAgMA27ZtQ3NzM+bMmQNzc3N88cUXaGhoEPcnJCRAqVRi2bJlqK+vx5QpU5CRkQFTU1OxTUVFhRgyonsC03S2oyd+fn7w9PTEjh079F0KQT/7pJfoHwWGcDH4QxIxLDTCEC4UGMKFAkO4UGAIFwoM4UKBIVwoMIQLBYZwocAQLhQYwoUCQ7hQYAgXCgzhQoEhXCgwhAsFhnChwBAuFBjChQJDuFBgCBcKDOFCgSFcKDCEi9aBycrKwrZt29S27d+/H87OzrCzs8OqVavQ0dHR4wKJYdE6MBs3bsRff/0lPr916xaio6Px+uuvw8/PD7t27cL27dt1UiQxHFoH5s6dO/D29hafHzp0CBYWFrh8+TKOHj2KpUuX9pu7QRHNaR0YpVIJCwsL8XlGRgY++OADmJmZAQAmTZqE8vLynldIDIrWgXFycsK1a9cAAPfv38ft27cxffp0cX9dXR2kUmnPKyQGResbCi1YsADffPMNHjx4gMLCQgwfPhzBwcHi/uvXr2P06NE6KZIYDq0Ds379erS3t+PXX3+Fs7MzUlJSMGzYMADPR5ecnBzExcXpqk5iIOh2H4SL1nMYf39/ZGVlvXR/dnY2/P39te2eGCitA5OTk4Pq6uqX7q+pqcHFixe17Z4YqB59NSAIwkv33b9/H+bm5j3pnhggrjnMgQMHcODAAQDPRxg3N7dO9/4HgPr6ety8eROzZs1Cenq67qolesd1lvTkyRM8fPhQfN7U1NTpnriCIEAmkyEmJgaJiYm6qZIYDK3PkhQKBXbu3ImgoCBd10QMGJ1WEy4aH5IqKioAQFw44sXz7rxoTwYGjUcYiUQCQRDQ0tICExMT8Xl36DcxA4vGI8z+/fshCAKMjY3VnpPBheYwhItOftPLGENNTQ1qamo0XgpOG2lpaZg+fTqsra0hCAJu3LjRa3+LdK1HgSkqKkJISAgsLCzg4OAABwcHWFhYICQkBLdv39ZVjSKlUokpU6YgKSlJ530TzWh9SLp8+TJmzpwJlUqF4OBg8bcvd+/eRXp6OgRBQEZGBqZOnapxn0qlErGxsUhLS4O5uTnWrFmD06dPd1ovqaysDAqFAgUFBf1yvcd+TdsFr728vJhCoWAVFRWd9lVUVDC5XM68vb25+oyNjWXOzs7s/Pnz7ObNm2z27NnM3NycxcXFqbUrLS1lAFhBQUGnPqKiopivry/X3yWa0/oHVIWFhdi0aROcnJw67XNyckJsbCw2btyocX/drVutKQcHB6hUKq7X6MOgW7faxcUFbW1tL93f3t7eZZheRlfrVveXxUEH3brViYmJWLVqFQIDAzvNIwoKCrB7925ap/EVBvy61StXruy0zc7ODl5eXpg8eTJGjRoFACgpKcGVK1cwfvx4/PHHHwgLC9Oo/+7WrR5o+uu61RpPegVB4H5IJBKuCVVMTAxzcXFhWVlZ7NatWywoKIgNHTpUnPTW1taygoIC9ssvvzAA7MiRI6ygoIBVVlaKfaxbt45FRERw/V2iOY1HmL6YSHa3bnV6ejoWLVokPg8NDQUAbNiwQZxgV1ZWavzFKOFn8F8N0LrVhoVu90G4aH2WRD9vGJx6dFr9v4Hp6OhAWVkZTp48iTFjxmD27Nk9LjAnJ6fHfRDd0Towr/oUt7KyEu+++y5dWz0A9cocxsHBATExMdi0aVNvdE/0qNcmvTKZDKWlpb3VPdGTXjmtvn37NubOnQuZTKZ2WzPS/2k9h1EoFF2eJdXX16OhoQFmZmY4efJkT2ojBkjrwPj6+nYKjCAIGD58OFxdXREaGgorK6seF0gMS48PSUqlEk1NTbCxscFrr2mdP9JPaDXpLS8vx4oVK+Di4gILCws4OjrC1NQUcrkcCQkJdDPEAYx7hDl9+jTCw8PR1NQEuVyOCRMmwNzcHE1NTbh58ybKyspgaWmJ1NRUBAYGAgC+/PJLbN68uVfeAOljPF9tFxUVMVNTU+bm5sYuXbrUZZtLly4xd3d3JpPJ2J07d1hkZCT3zxyI4eIKTHh4OHN0dGS1tbWvbFdbW8scHR2ZmZkZMzIyYklJST0qkhgOrjnMhQsXsGTJkm7PfqysrLB48WK0tLQgJSUFCQkJPRoFieHgCkxtbS3kcrlGbRUKBYyMjBAeHq5NXcRAcQXGxsZG44/7S0tLYWtrq1VRxHBxBcbPzw/Jycmoq6t7Zbu6ujokJyfTbVcHIp4JT2FhIZNKpWzcuHEsNze3yza5ubls/PjxTCqVssLCQp1MtIjh4P4cJi0tDZGRkWhpaYFcLsfEiRPVPocpLS3FkCFDcPDgQXz44Ye9lXOiJ1p9NfDPP/9g69atOHPmDP79919x+4gRIzBnzhysWbMGrq6uOi2UGIYef5fU2NiIpqYmmJubq62fRAYmg7/MhBgWusyEcKHAEC4UGMKFAkO4UGAIFwoM4UKBIVwoMIQLBYZwocAQLhQYwoUCQ7hQYAgXCgzhQoEhXCgwhAsFhnChwBAuFBjChQJDuFBgCBcKDOHSbwLz9OlTrF27Fh4eHpDJZBgxYgQiIyPVLqQjva/fXJfU0NCAkJAQLF26FBMnTsTjx48RFxeHjo4O/Pnnn/oub/DQ10XdXWlubmYRERFMJpMxe3t7tn37dubr69tpGeIXrl69ygCw8vLyvi10EDOoQ1J8fDwuXryIU6dO4dy5c8jJyUF+fv5L2zc0NEAQBAwbNkzc5ufnh4ULF/Z+sYOUwdxYl3fd6tbWVqxduxZhYWFq13Q7OzvDwcGhT2ruiUG3brWu8axb/fTpU8yfPx+MMezdu1dt38GDB3u9Vl0YdOtW68uLsJSXl+PChQv99o4RA37d6t6mybrVL8JSUlKC7OxsWFtb67PkHumv61YbTGCGDh2KJUuWID4+HtbW1rC1tcX69eshkTyflz99+hQhISHIz8/HmTNn0NHRgaqqKgDPD10mJiYAgMjISDg6OmLLli16ey8DmcEEBnj1utUPHjxAeno6AMDT01PtddnZ2fDz8wMAVFRUiCEjumfwH9zRutWGhf4rEi4UGMLF4A9JxLDQCEO4UGAIFwoM4UKBIVwoMIQLBYZwocAQLhQYwoUCQ7hQYAgXCgzhQoEhXCgwhAsFhnChwBAuFBjChQJDuFBgCBcKDOFCgSFcKDCECwWGcKHAEC4UGMKFAqMne/bsgVwuh6mpKXx8fHD16lV9l6QRCoweHD16FKtXr8aGDRuQn5+PiRMnYsaMGaipqdF3ad2iS2X1wMfHB5MmTcJ3330HAFCpVHBycsJnn32GdevW6bm6V6MRpo+1t7fj+vXrCAgIELdJJBIEBATgypUreqxMMxSYPvbo0SN0dHTAzs5ObbudnZ14Ry1DRoEhXCgwfczGxgZGRkaorq5W215dXQ17e3s9VaU5CkwfMzExgZeXF7KyssRtKpUKWVlZeO+99/RYmWYM6qaIg8Xq1asRFRUFb29vvPPOO9ixYweUSiUWLVqk79K6RYHRg48//hgPHz5EYmIiqqqq4OnpiYyMjE4TYUNEn8MQLjSHIVwoMIQLBYZwocAQLhQYwoUCQ7hQYAgXCgzhQoEhXCgwXUhJSYEgCLSAehcoMIQLBaafU6lUaG1t7bO/R4HRQnt7OxITE+Hl5QVLS0vIZDJMnToV2dnZYhvGGORyOYKDgzu9vrW1FZaWloiOjha3tbW1YcOGDRg1ahSkUimcnJyQkJCAtrY2tdcKgoAVK1bg8OHDGDduHKRSKTIyMgAAR44cgZeXF8zNzWFhYQEPDw/s3LlTp++dft6ghcbGRvzwww8ICwvD0qVL0dTUhOTkZMyYMQNXr16Fp6cnBEFAeHg4tm7dirq6OlhZWYmvP336NBobGxEeHg7g+SgRFBSE33//HcuWLYObmxtu3bqFb7/9Fvfu3cPJkyfV/v6FCxdw7NgxrFixAjY2NpDL5cjMzERYWBimTZuGpKQkAMCdO3eQm5uLuLg43b15Rjr58ccfGQB27dq1Lvc/e/aMtbW1qW17/Pgxs7OzY4sXLxa33b17lwFge/fuVWsbFBTE5HI5U6lUjDHGDh06xCQSCbt8+bJau3379jEALDc3V9wGgEkkElZYWKjWNi4ujllYWLBnz57xv2EOdEjSgpGRkbhOtkqlQl1dHZ49ewZvb2/k5+eL7UaPHg0fHx8cPnxY3FZXV4ezZ89iwYIFEAQBAHD8+HG4ublh7NixePTokfjw9/cHALVDHQD4+vrC3d1dbduwYcOgVCqRmZnZK+9Z1Ktx7Ke6G2EYYywlJYV5eHgwY2NjBkB8KBQKtXZ79uxhgiCwsrIyxtj/jxrFxcViGzc3N7U+/vexcuVKsS0AtVHsherqarEfR0dHtmjRInb27Nme/lN0QiOMFlJTU7Fw4UK4uroiOTkZGRkZyMzMhL+/P1QqlVrb0NBQGBsbi6NMamoqvL29MWbMGLGNSqWCh4cHMjMzu3wsX75crc8hQ4Z0qsnW1hY3btxAeno6goKCkJ2djZkzZyIqKkq3b17nERwAuhthgoOD2RtvvCHOQV6YPHkyc3Fx6dR+3rx5zN3dnZWVlTFBENjOnTvV9s+aNYs5Ojp26q8rANinn37abbuOjg4WHR3NALCSkpJu22uKRhgtGBkZAXh+6vxCXl7eSy91jYiIQFFREeLj42FkZITQ0FC1/fPnz8eDBw/w/fffd3ptS0sLlEpltzXV1taqPZdIJJgwYQIAdDo17wk6rX6F/fv3i59x/Dc/Pz+kpaVh3rx5CAwMRGlpKfbt2wd3d3c0Nzd3ah8YGAhra2scP34cM2fOhK2trdr+iIgIHDt2DDExMcjOzsb777+Pjo4OFBcX49ixY/jtt9/g7e39ylo/+eQT1NXVwd/fHyNHjkR5eTl2794NT09PuLm59ewf4r/pbKwaQF4ckl72qKioYP/5z3+Yi4sLk0ql7K233mJnzpxhUVFRXR6SGGNs+fLlDAD76aefutzf3t7OkpKS2Lhx45hUKmXDhw9nXl5e7Ouvv2YNDQ1iO7zkkHTixAk2ffp0Zmtry0xMTJizszOLjo5mlZWVOvk3eYEuM+kjq1atQnJyMqqqqmBmZqbvcrRGc5g+0NraitTUVHz00Uf9OiwAzWF6VU1NDc6fP48TJ06gtrZWtx/R6wkFphcVFRVhwYIFsLW1xa5du+Dp6anvknqM5jCEC81hCBcKDOFCgSFcKDCECwWGcKHAEC4UGMKFAkO4UGAIl/8DLNRa3gBDUdIAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit.reset_circuit()\n", "circuit.draw_circuit()" ] }, { "cell_type": "markdown", "id": "7640cc02", "metadata": {}, "source": [ "The circuit is now reset as expected.\n", "\n", "Now let's introduce controlled gates. To add a controlled gate, use the add_controlled_qubit_gate method and we apply on the input state:" ] }, { "cell_type": "code", "execution_count": 24, "id": "64019f9f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: |011⟩\n", "Tensor product in computational basis state form: |111⟩\n" ] } ], "source": [ "circuit.add_controlled_qubit_gate(0, 0, 1, 'X') # Add a controlled-X gate with control on qubit 1 and target qubit 0 in layer 0\n", "circuit.draw_circuit()\n", "\n", "# The input state:\n", "mt.print_tensor_form()\n", "result = circuit.run_circuit(mt)\n", "# Output state\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "69256f01", "metadata": {}, "source": [ "The number after the circle shows the qubit index to which it's connected. This is used for situations where many control qubits are in the same layer for easier readability.\n", "\n", "Now let's introduce the swap gates which are constructed in a similar fashion such as the controlled qubit gate." ] }, { "cell_type": "code", "execution_count": 25, "id": "027c51a0", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: |011⟩\n", "Tensor product in computational basis state form: |110⟩\n" ] } ], "source": [ "circuit.reset_circuit()\n", "circuit.add_swap_gate(0,2,0)\n", "circuit.draw_circuit()\n", "\n", "# The input state:\n", "mt.print_tensor_form()\n", "result = circuit.run_circuit(mt)\n", "# Output state\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "3fe12b4a", "metadata": {}, "source": [ "Note that when given indexes with an already gate assigned to that index, a ValueError will be raised.\n", "\n", "We can add layers to this quantum circuit and similarly also remove layers using these methods:" ] }, { "cell_type": "code", "execution_count": 26, "id": "291b4d87", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Input state:\n", "Tensor product in computational basis state form: |011⟩\n", "Output state:\n", "Tensor product in computational basis state form: 1j|111⟩\n" ] } ], "source": [ "circuit.add_layer()\n", "circuit.add_single_qubit_gate(0,1,\"Y\")\n", "circuit.draw_circuit()\n", "\n", "# The input state:\n", "print(\"Input state:\")\n", "mt.print_tensor_form()\n", "\n", "result = circuit.run_circuit(mt)\n", "# The output state:\n", "print(\"Output state:\")\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "a49e0b20", "metadata": {}, "source": [ "We also can define to which layer we want to apply the state (By default we apply the input state on the whole circuit):" ] }, { "cell_type": "code", "execution_count": 27, "id": "3ca33643", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Input state:\n", "Tensor product in computational basis state form: |011⟩\n", "Output state:\n", "Tensor product in computational basis state form: 1j|111⟩\n" ] } ], "source": [ "circuit.draw_circuit()\n", "\n", "# The input state:\n", "print(\"Input state:\")\n", "mt.print_tensor_form()\n", "\n", "result = circuit.run_circuit(mt)\n", "# The output state:\n", "print(\"Output state:\")\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "db10f989", "metadata": {}, "source": [ "Removing layers is done this way (you can specify which layer to remove, if no layer is specified then the last layer will be removed):\n" ] }, { "cell_type": "code", "execution_count": 28, "id": "1cf5939c", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit.remove_layer()\n", "circuit.draw_circuit()" ] }, { "cell_type": "markdown", "id": "48911264", "metadata": {}, "source": [ "To remove specific two qubit gate we can use the following method:" ] }, { "cell_type": "code", "execution_count": 29, "id": "05e2d1a5", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit.remove_two_qubit_gate(0,2,0)\n", "circuit.draw_circuit()" ] }, { "cell_type": "markdown", "id": "38c4d3f1", "metadata": {}, "source": [ "Now let's add a single qubit gate with a phase and show how to remove it:" ] }, { "cell_type": "code", "execution_count": 30, "id": "6bf0caa5", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit.add_single_qubit_gate(0,0,\"P\", np.pi)\n", "circuit.draw_circuit()\n", "\n", "circuit.remove_single_qubit_gate(0,0)\n", "circuit.draw_circuit()" ] }, { "cell_type": "markdown", "id": "514053d1", "metadata": {}, "source": [ "Now for the crown jewel of this library the Quantum Fourier Transform. The library has built in preset of qft circuit by the number of qubits:" ] }, { "cell_type": "code", "execution_count": 31, "id": "9f336bd8", "metadata": {}, "outputs": [ { "data": { "image/png": "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SEiQJE2cOFHBwcH685//rHXr1mnMmDEGpwOApqXGly244nA4VFhYqMLCQjkcjvrY5XWtXr1agwcPVnBwsCwWi/bv399gfxYA6dy5c4qKitKcOXMqLS8tLdWuXbsUFxenmTNnGpQOANDUJCUlSWLibgC14+XlJW9vb3l7e8vLq16+CjcpdfqJHT58WA888IACAwPVoUMHdejQQYGBgXrggQd08ODB+sroVFJSon79+ukPf/hDve8bQFXx8fHKy8urdr3D4VB6erreeuutm5gKgKcrLi6W3W6v8rhy5YrR0WByx44dkyQFBwcbnASAJ7Jarbp69aquXr0qq9VqdByPU+tbNe7YsUNDhgxRRUWF7rvvPkVHR0uSvv76a61fv16ffPKJNm7cqP79+9d4nyUlJZo0aZJWr16tgIAAPfXUU/roo48UGxur+fPn66GHHpIkHT9+vLaxAdTQzJkzXRYHP5Wamqrx48fT4AKokUGDBlW77rbbbruJSWB214qma2e8zZo1S35+fho2bJjR0QCgyal1efD444/LZrNp+/btuvXWWyut+8c//qG7775bTzzxhL744osa73PatGnavn271q1bJ5vNpueee045OTluXVOdkpKi48ePKysrq8bvAVDVokWLarxtWVmZXn75ZT3zzDMNmAhAY7Fo0SLnLx1+6sknn1R5ebkBiWBWPy+aOnXqpFWrVumWW24xKBEANF21Lg8OHTqk2bNnVykOJOnWW2/VpEmTlJ6eXuP9Xbx4UcuXL1dmZqYGDhwoSVqxYoVCQ0PdytWhQwdVVFS49Z6m7tKlS/rqq6+MjgGTOXPmjFvb/+Uvf9HgwYMbKA08RVFRkfP53r17+YDfCOXm5tZ5H7169XJOgvdTbdu2ld1ur9U+6yMX6l9d5ya4VjT5+PgoJCREXbp0qdNZbvn5+crJyalTJpjTDz/8oOPHjys8PFx+fn5Gx4FJFRcX695771VFRYXWrl2rkJAQoyOZRlxc3A23qXV50KlTJ12+fLna9WVlZdctFqpz7NgxlZWVqXfv3s5lQUFB6tKli1u55s6d69b2kL766ivFx8cbHQMeLjs7m3GESkaMGGF0BDQhycnJRkdAA6iuaKqtGTNmaMaMGfW2PwCe69577zU6gqnU5MYHtS4PXnjhBT3++OMaOnRolcsK/u///k8LFizQ/Pnza7t73ERd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3W43OoaT1WpVWFiY0TEA06E8AAAAAAAALjFhIgAAAAAAcInyAAAAAAAAuER5AAAAAAAAXKI8AAAAAAAALlEeAAAAAAAAlygPAAAAAACAS5QHAAAAAADAJcoDAAAAAADgEuUBAAAAAABwifIAAAAAAAC4RHkALVq0SOHh4WrRooV69+6tzz//3OhIMJn//d//1fDhw9WxY0dZLBatXbvW6Egwoblz5+rOO+9UQECAbDab7r//fn399ddGx4LJLFmyRD169FBgYKACAwPVp08fffLJJ0bHgsn9/ve/l8Vi0WOPPWZ0FJhMenq6LBZLpUfXrl2NjgUTOnnypJKTkxUcHCw/Pz/dfvvtys7ONjqWR6E8aOL+53/+R0888YTS0tKUk5OjO+64Q/fcc48KCwuNjgYTKSkp0R133KFFixYZHQUmtn37dj366KP67LPPtHnzZl25ckWDBw9WSUmJ0dFgIqGhofr973+vffv2KTs7W0lJSbrvvvt06NAho6PBpL744gstW7ZMPXr0MDoKTOq2227Td99953zs3LnT6Egwme+//159+/aVr6+vPvnkEx0+fFh/+tOf1LZtW6OjeRSLw+FwGB0Cxundu7fuvPNOLVy4UJJUUVGhW2+9Vf/v//0/PfPMMwangxlZLBatWbNG999/v9FRYHJnzpyRzWbT9u3bdffddxsdByYWFBSkefPmacKECUZHgclcvHhRcXFxWrx4sebMmaPY2FjNnz/f6FgwkfT0dK1du1b79+83OgpM7JlnntGuXbu0Y8cOo6N4NM48aMLKysq0b98+DRo0yLnMy8tLgwYN0p49ewxMBqAxKC4ulvTjF0PgesrLy/Xee++ppKREffr0MToOTOjRRx/V0KFDK31WAX7u6NGj6tixoyIjIzV27FgVFBQYHQkms379eiUkJOg//uM/ZLPZ1LNnT73xxhtGx/I4lAdNmN1uV3l5uUJCQiotDwkJ0alTpwxKBaAxqKio0GOPPaa+ffuqe/fuRseByRw4cECtWrVS8+bNlZqaqjVr1qhbt25Gx4LJvPfee8rJydHcuXONjgIT6927tzIyMrRx40YtWbJE+fn56t+/vy5cuGB0NJhIXl6elixZol/84hfatGmTJk2apN/+9rdasWKF0dE8io/RAQAAjc+jjz6qgwcPct0prqtLly7av3+/iouL9eGHH2r8+PHa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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Tensor product in computational basis state form: |011⟩\n", "Tensor product in computational basis state form: 0.3536|000⟩ - (0.25-0.25j)|001⟩ - 0.3536j|010⟩ + (0.25+0.25j)|011⟩ - 0.3536|100⟩ + (0.25-0.25j)|101⟩ + 0.3536j|110⟩ - (0.25+0.25j)|111⟩\n" ] } ], "source": [ "circuit.load_qft_preset()\n", "circuit.draw_circuit()\n", "\n", "# The input state:\n", "mt.print_tensor_form()\n", "result = circuit.run_circuit(mt)\n", "# Output state\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "e1eea5d3", "metadata": {}, "source": [ "The qft matrix we see is:" ] }, { "cell_type": "code", "execution_count": 32, "id": "bb8b009d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 3.53553391e-01+0.j 3.53553391e-01+0.j\n", " 3.53553391e-01+0.j 3.53553391e-01+0.j\n", " 3.53553391e-01+0.j 3.53553391e-01+0.j\n", " 3.53553391e-01+0.j 3.53553391e-01+0.j ]\n", " [ 3.53553391e-01+0.j 2.50000000e-01+0.25j\n", " 2.16489014e-17+0.35355339j -2.50000000e-01+0.25j\n", " -3.53553391e-01+0.j -2.50000000e-01-0.25j\n", " -2.16489014e-17-0.35355339j 2.50000000e-01-0.25j ]\n", " [ 3.53553391e-01+0.j 2.16489014e-17+0.35355339j\n", " -3.53553391e-01+0.j -2.16489014e-17-0.35355339j\n", " 3.53553391e-01+0.j 2.16489014e-17+0.35355339j\n", " -3.53553391e-01+0.j -2.16489014e-17-0.35355339j]\n", " [ 3.53553391e-01+0.j -2.50000000e-01+0.25j\n", " -2.16489014e-17-0.35355339j 2.50000000e-01+0.25j\n", " -3.53553391e-01+0.j 2.50000000e-01-0.25j\n", " 2.16489014e-17+0.35355339j -2.50000000e-01-0.25j ]\n", " [ 3.53553391e-01+0.j -3.53553391e-01+0.j\n", " 3.53553391e-01+0.j -3.53553391e-01+0.j\n", " 3.53553391e-01+0.j -3.53553391e-01+0.j\n", " 3.53553391e-01+0.j -3.53553391e-01+0.j ]\n", " [ 3.53553391e-01+0.j -2.50000000e-01-0.25j\n", " 2.16489014e-17+0.35355339j 2.50000000e-01-0.25j\n", " -3.53553391e-01+0.j 2.50000000e-01+0.25j\n", " -2.16489014e-17-0.35355339j -2.50000000e-01+0.25j ]\n", " [ 3.53553391e-01+0.j -2.16489014e-17-0.35355339j\n", " -3.53553391e-01+0.j 2.16489014e-17+0.35355339j\n", " 3.53553391e-01+0.j -2.16489014e-17-0.35355339j\n", " -3.53553391e-01+0.j 2.16489014e-17+0.35355339j]\n", " [ 3.53553391e-01+0.j 2.50000000e-01-0.25j\n", " -2.16489014e-17-0.35355339j -2.50000000e-01-0.25j\n", " -3.53553391e-01+0.j -2.50000000e-01+0.25j\n", " 2.16489014e-17+0.35355339j 2.50000000e-01+0.25j ]]\n" ] } ], "source": [ "circuit.print_operator_matrix()" ] }, { "cell_type": "markdown", "id": "2bec4427", "metadata": {}, "source": [ "This is unreadable because of floating inaccuracies and large matrix.\n", "In the next section we implement circuit tests to see if the resulting matrix corresponds to the expected qunatum fourier transform matrix.\n", "\n", "Here's another example of a qft circuit on a 5 qubit system, showing that the qft circuit can be loaded on any number of qubits:" ] }, { "cell_type": "code", "execution_count": 33, "id": "2254e53c", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACVYAAAGGCAYAAACaUkjpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAABY70lEQVR4nO3deXhVhZ0//k8WtrAIJIRFDOuAUaQUUEqVkUHGlrrO2FodERm1HbRO1Sq22qGAS231W6WKWtthBMU63dy1WqrCFxVRoLaicWNtaQEjAgKymNzfH/1yfxJAklzIuTe8Xs9zn+fknHNv3sDHe44375yTl0qlUgEAAAAAAAAAAEBaftIBAAAAAAAAAAAAso1iFQAAAAAAAAAAQA2KVQAAAAAAAAAAADUoVgEAAAAAAAAAANSgWAUAAAAAAAAAAFCDYhUAAAAAAAAAAEANilUAAAAAAAAAAAA1KFYBAAAAAAAAAADUoFgFAAAAAAAAAABQg2IVAAAAAAAAAABADYpVAAAAAAAAAAAANShWAQAAAAAAAAAA1KBYBQAAAAAAAAAAUINiFQAAAAAAAAAAQA2KVQAAAAAAAAAAADUoVgEAAAAAAAAAANSgWAUAAAAAAAAAAFCDYhUAAAAAAAAAAEANilUAAAAAAAAAAAA1KFYBAAAAAAAAAADUUJh0APaflStXRmVlZdIx0kpKSqKsrCzpGNTRvHnzYunSpUnHiJ49e8bQoUOTjkE9mCEyZYbIlBkCAAAAAABgf1CsaiRWrlwZ5eXlsWXLlqSjpBUVFUVFRYVyVQ6ZN29eDBs2LKqqqpKOEgUFBTF37lw/kM4xZohMmSEyZYYAAAAAAADYXxSrGonKysrYsmVLzJw5M8rLy5OOExUVFTF69OiorKxUrMohS5cujaqqqsTnaOf8LF261A+jc4wZIlNmiEyZIQAAAAAAAPYXxapGpry8PAYOHJh0DHKcOSJTZohMmSEyZYYAAAAAAADIVH7SAQAAAAAAAAAAALKNYhUAAAAAAAAAAEANilUAAAAAAAAAAAA1KFYBAAAAAAAAAADUoFgFAAAAAAAAAABQg2IVAAAAAAAAAABADYpVAAAAAAAAAAAANShWAQAAAAAAAAAA1KBYBQAAAAAAAAAAUINiFQAAAAAAAAAAQA2KVcT06dMjLy8vFixYsMftw4cPj379+jVwKnLNzjna+WjevHn06dMnLrnkklizZk3S8cgBZohMmSEyZYYAAAAAAIBcNXr06Ljqqqt2Wz927Ni4+OKLE0jUOBQmHQBoXK699tro0aNHbN26NZ5//vm466674sknn4zFixdHUVFR0vHIAWaITJkhMmWGAAAAAACAXDJ27Ni4//77IyKiWbNmcd1110VExLhx42LGjBnp9bfeemtiGXOVYhWwX40aNSoGDx4cEREXXnhhFBcXxy233BKPPPJInH322QmnIxeYITJlhsiUGQIAAAAAAHLFpEmT0uWpiIjrr78+mjRpEpWVlXH33Xen10+ZMiV69eoVl1xySRIxc1ZO3QowlUrF9773vejcuXO0aNEiRo4cGe+8807SsYBPMWLEiIiIWLZsWcJJyFVmiEyZITJlhgAAAAAAgGw1bty4aN269S7rJk6cGLfffvsu64qLi2PMmDENGa1RyKli1U033RS33XZb/OQnP4n58+dHy5Yt4wtf+EJs3bo16WiNwoYNG6KysnK3x44dO5KORg5bsmRJRPz9TRrqwwyRKTNEpswQAAAAAACQrTp16hRvvPFGtGzZcq/7tGvXLt59991o06ZNAyZrHLLqVoCbN2+Oiy66KB588MFo3bp1XHnllfHYY4/FgAED4tZbb40pU6bEf/3Xf8Vpp50WERH33ntvdOzYMR5++OE466yzEk6f+0aOHLnXbUceeWQDJiGX7Szobd26NV544YW49tpro0WLFnHyyScnHY0cYYbIlBkiU2YIAAAAAADIJV27do3XX389+vTpE9u3b99lW8uWLePtt9+Otm3bJhMux2VVsWr8+PExZ86ceOSRR6K0tDSuueaaWLRoUQwYMCCWLVsWq1ev3qX8c8ghh8SQIUNi3rx56WLV8OHDo3v37jF9+vSE/hS564477og+ffrstv6KK66IqqqqBBKRi2oW9Lp16xb3339/HHrooQklIteYITJlhsiUGQIAAAAAAHLNAw88sFupKuLvFzl65JFH4oILLkggVe7LmmLVpk2bYtq0aTFz5sw44YQTIiJixowZ0bVr14iIWL16dUREdOzYcZfndezYMb0tIqKsrCw6d+7cQKkbl2OOOSYGDx682/p27dpFZWVlvV6zoqIi01g0oGXLlmX8GjsLeoWFhdGxY8fo27dv5OfX766jy5Yti0WLFmWciYZjhsiUGSJTZohs8NFH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OPfccyMiYvny5ckGBdLuuOOOWu+7ffv2uOmmm+I73/nOAUwEAJCMO+64I/r06bPb+iuuuCKqqqoSSESuqlnS69atW9x///1x6KGHJpSIXGJ+yJQZAgAAgNzTtWvXeP3116NPnz6xffv2Xba1bNky3n777Wjbtm0y4XJcVhWrxo8fH3PmzIlHHnkkSktL45prrolFixbFgAEDav0aY8eOjeXLl8fs2bMPWM7GbMuWLfHmm28mHYMc8t5779Vp/9/85jdx4oknHqA05Lp169all+fPn++De+rMDJEpM3Rwq6ioyOj5xxxzTAwePHi39e3atYvKysp6v26muWhYy5Yty/g1dpb0CgsLo2PHjtG3b996X/V12bJlsWjRoowz0XAynaH9OT8785ih3GKGyAYfffRRLF++PLp37x4tWrRIOg45yAyRKTNEpswQmTJDZMoMUR/33HPPbqWqiL9f5Oi2226L008/veFDZbGBAwfWar+sKVZt2rQppk2bFjNnzowTTjghIiJmzJgRXbt2rdPrdO7cOaqrqw9ExIPCm2++GYMGDUo6Bo3YggULzBi1cuqppyYdgRxnhsiUGSJbjB49OukINLC9lfTqY8KECTFhwoT98lrkhv05PxFm6GBkhgAAAKDxue666+K6665LOkZWSaVStdova4pVS5Ysie3bt8eQIUPS69q3bx99+/at0+vceOON+zvaQeXwww+PhQsXJh2DHFLXktTgwYPj7rvvPkBpyHXr1q2Lf/7nf46IiEcffdSVYqgzM0SmzNDBraKiIitLTDNnzozy8vKkY1BLTz75ZFYVCK677rr40pe+lHQM6sAMkSkzRDbw2/VkygyRKTNEpswQmTJDZMoMURe/+c1v4vvf/36t9v3BD36Q/jkItZM1xSqyQ1FRUa0vdwYRER06dKjT7QDPOOMMM8ZerV27Nr08ZMiQKC0tTTANucgMkSkzRDYqLy93/pRDsu3WjT169DA/OcYMkSkzRLY49thjk45AjjNDZMoMkSkzRKbMEJkyQ9TWjh074qabboqPP/44IiKaNWsW27Zti4iIwsLCXdafeuqpfpG3jvKTDrBTr169okmTJjF//vz0ug8++CDefvvtBFMB+3LxxRfXet8mTZrEVVdddQDTAAAAAAAAAMDBY8iQIfHcc89FQUFBNGvWLH7961+nt913331RWFgYTZo0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AABkg3oXq7773e/G9u3b48knn4yysrKYPn16tG3bNiL+frWq2bNnx6WXXrq/cgIAAAAAAAAAADSYeherCgsL44Ybbogbbrhht23t27eP1atXZxQMAAAAAAAAAAAgKfn1feKIESPimWee2ev25557LkaMGFHflwcAAAAAAAAAAEhMvYtVs2fPjjVr1ux1+9q1a2POnDn1fXkAAAAAAAAAAKAO8vPz97hM/WT0N5iXl7fXbe+++260bt06k5cHAAAAAAAAAABqqbi4eI/L1E9hXXaeMWNGzJgxI/319ddfHz/72c9222/9+vXxpz/9Kb70pS9lnhAAAAAAAAAAANin9u3bx9y5c9PLZKZOxaotW7bEe++9l/76ww8/3O2yYXl5edGyZcsYN25cfO9739s/KQEAAAAAAAAAgE9VWFgYxx13XNIxGo06FasuuuiiuOiiiyIiokePHvHjH/84Tj311AMSDAAAAAAAAAAAqL1169bFYYcdFhERf/7zn121KkN1KlZ90rJly/ZnDgAAAAAAAAAAIAPr16+PLVu2pJcVqzJT62LVypUrIyKirKxsl6/3Zef+AAAAAAAAAADAgfPRRx/tcZn6ya/tjt27d48ePXrE9u3bd/l6Xw8AAAAAABqv6dOnR15eXixYsGCP24cPHx79+vVr4FTkmp1ztPPRvHnz6NOnT1xyySWxZs2apOORA8wQAAAHQq2vWPU///M/kZeXF02aNNnlawAAAAAAgP3h2muvjR49esTWrVvj+eefj7vuuiuefPLJWLx4cRQVFSUdjxxghgAA2J9qXawaO3bsp34NAJm6/fbb08sdO3aM5s2bx6BBg2Lq1KkxYMCA5IIBADQQ50MAwMFu1KhRMXjw4IiIuPDCC6O4uDhuueWWeOSRR+Lss89OOB25wAwBALA/1fpWgJ8mlUrF2rVrY+3atZFKpfbHS+5mx44d8e1vfzuOOuqoaNmyZXTp0iXGjBkTf/3rXw/I9wOg4axfvz569eoV119//S7rt27dGi+88EIMHDgwJk+enFA6AIADz/kQAMCejRgxIiIili1blnAScpUZAgAgExkVq95444348pe/HG3atInOnTtH586do02bNvHlL385Fi9evL8yRkTEli1bYtGiRTFhwoRYtGhRPPjgg/HWW2/Fqaeeul+/DwANb9CgQbF06dK9bk+lUjFp0qS45557GjAVAEDDcT4EQGOwYcOGqKys3O2xY8eOpKORw5YsWRIREcXFxQknIVeZIQAAMlHrWwHWNHfu3Bg1alRUV1fHaaedFn369ImIiLfeeiseffTR+O1vfxtPPfVUDBs2rNavuXnz5rjoooviwQcfjNatW8eVV14Zjz32WAwYMCCmTJkSs2bN2mX/qVOnxjHHHBMrV66MsrKy+v5RAEjQ5MmTP/WHiJ80bty4OO+88yI/f79ccBEAICs4HwKgsRg5cuRetx155JENmIRctrOgt/PKnddee220aNEiTj755KSjkSPMEABwsOvQocMel6mfeherLr/88igtLY05c+bEYYcdtsu2P//5z/GP//iP8a1vfSteeeWVWr/m+PHjY86cOfHII49EaWlpXHPNNbFo0aIYMGDAHvffsGFD5OXlRdu2bdPrhg8fHt27d4/p06fX408FQEO74447ar3v9u3b46abborvfOc7BzARAEDDcj4EQGNxxx13pH8B95OuuOKKqKqqSiARuahmQa9bt25x//33x6GHHppQInKNGQIADnbt27ePhx9+OL1MZupdrHr99dfjuuuu261UFRFx2GGHxUUXXRSTJk2q9ett2rQppk2bFjNnzowTTjghIiJmzJgRXbt23eP+W7dujW9/+9tx9tlnR5s2bdLry8rKonPnznX7w5C2ZcuWePPNN5OOQQ776KOPYvny5dG9e/do0aJF0nHIAe+9916d9v/Nb34TJ5544gFKQ65bt25denn+/Pk+MKPOzBD7g/Mh6sr5EPuTYxmZMkMHt4qKioyef8wxx8TgwYN3W9+uXbuorKys9+tmmouGtWzZsoyev7OgV1hYGB07doy+fftmdLXOZcuWxaJFizLKRMPKphkyPwcv/29PpswQmTJDZKqkpCSWL18e8+fPN0N7MXDgwFrtV+9iVbdu3WLbtm173b59+/Y9lq72ZsmSJbF9+/YYMmRIel379u2jb9++u+27Y8eOOPPMMyOVSsVdd921y7Z777231t+T3b355psxaNCgpGMA7NWCBQu8T1Erp556atIRyHFmCMhWzoeoLccyMmWGyBajR49OOgINaG8FvfqaMGFCTJgwYb+9Htlvf86Q+QEAaLxSqVSt9qt3sep73/teXH755XHSSSftdqu+P/zhD3H77bfHlClT6vvye7WzVLVixYp49tlnd7laFZk7/PDDY+HChUnHIIdpT1NXdf2h4ODBg+Puu+8+QGnIdevWrYt//ud/joiIRx991G/XU2dmiP3B+RB15XyI/cmxjEyZoYNbRUVFVpaYZs6cGeXl5UnHoJaefPLJrCqiXHfddfGlL30p6RjUQTbNkPk5ePl/ezJlhsiUGSITf/nLX+K0006LiIhf/OIX0bt374QT5bZaF6u++c1v7rauY8eOMWjQoPj85z+f/od45513Yt68edGvX7946aWX4uyzz67V6/fq1SuaNGkS8+fPj7KysoiI+OCDD+Ltt9+O448/PiL+/1LVO++8E88991wUFxfXNj61VFRUVOvLncHeHHvssUlHIId06NChTre/OeOMM7xPsVdr165NLw8ZMiRKS0sTTEMuMkPsL86HqAvnQ+xPjmVkygyRjcrLyx37cki23bqxR48e5ifHZNMMmZ+Dm/+3J1NmiEyZIeqrWbNm6eUjjzwyjjzyyATT5L5aF6umTp26120vvPBCvPDCC7use+2112Lx4sXx4x//uFav36pVq7jgggti/PjxUVxcHKWlpfHd7343fd/rHTt2xJe//OVYtGhRPP7441FVVRWrV6+OiL/fMrBp06YRETFmzJg49NBD48Ybb6ztHw2ABF188cUxefLkWu3bpEmTuOqqqw5wIgCAhuV8CAAAAAAgO+XXdsfq6uo6P6qqquoU5uabb45hw4bFKaecEiNHjozjjjsufUuEVatWxaOPPhp/+ctfYsCAAdG5c+f048UXX0y/xsqVK+Nvf/tbnb4vAMmZNGlSdOvWrVb7Tp06NV24BQBoLJwPAQAAAABkp6z6NLZVq1Zx3333xebNm2P16tUxfvz49Lbu3btHKpXa42P48OHp/WbPnh3Tp09v+PAA1NuiRYv2+cPEa665Jr7+9a83UCIAgIblfAiAXDZ27NhIpVIxePDgPW6fPXt2LF68uIFTkWv2NUewL2YIAIADIauKVQAcnNq3bx/Lly+PSZMmRWlpafoqDE2bNo1jjjkmXn755bjhhhsSTgkAcOA4HwIAAAAAyD6F9X1ifn5+5OXl7XO/ut4OEICD18SJE2PixIlJxwAASIzzIQAAAACA7FHvYtX3vve93YpVVVVVsXz58nj44Yejb9++cfLJJ2cccPbs2Rm/BgAAAAAAAAAANHYdOnTY4zL1U+9i1aRJk/a67W9/+1t87nOfiz59+tT35QEAAAAAAAAAgDpo27ZtTJ8+Pb1MZupdrPo0nTt3jnHjxsV1110XZ5999oH4FgAAAAAAAAAAwCc0bdo0zjvvvKRjNBr5B+qFW7ZsGcuWLTtQLw8AAAAAAAAAAHzC+vXro7S0NEpLS2P9+vVJx8l5B+SKVYsXL47bbrvNrQABAAAAAAAAAKCBrFu3Lt577730stsBZqbexaoePXpEXl7ebuvXr18fGzZsiKKionj44YczyQYAAAAAAAAAANTSRx99tMdl6qfexarjjz9+t2JVXl5etGvXLnr16hVnnXVWtG/fPuOAAAAAAAAAAAAADa3exarp06dHRMTmzZvjww8/jJKSkigsPCB3FgQAAAAAAAAAAGhQ+fV50ooVK+KSSy6Jbt26RZs2beLQQw+N5s2bR/fu3eOqq66KFStW7O+cAAAAAAAAAAAADabOxarHHnss+vfvH3feeWcUFBTEKaecEv/2b/8WJ598cuTn58f/+T//JwYMGBBPPPFE+jn/9V//tV9DAwAAAAAAAAAAHEh1undfRUVFnHnmmdGjR4+4++67Y9iwYbvtM3fu3Bg3blx89atfjQULFsSNN94YM2fOjOuvv36/hQYAAAAAAAAAADiQ6lSs+v73vx/FxcXx/PPPR/v27fe4z7Bhw2Lu3LnRv3//GDRoUGzbti1uvPHG/RIWAAAAAIADq6KiIukIEZE9OaifpP/9kv7+ZC7Jf0PzAwDksg4dOuxxmfqpU7Hq2WefjQsvvHCvpaqd2rdvH+eff35cf/31ce+998bo0aMzCgkAAAAAwIFVUlISRUVFWfV5blFRUZSUlCQdgzro2bNnFBQUZMUcFRQURM+ePZOOQR1lywyZHwAgV7Vt2zZuvfXW9DKZqVOx6v3334/u3bvXat8ePXpkxYkvAAAAAAD7VlZWFhUVFVFZWZl0lLSSkpIoKytLOgZ1MHTo0Jg7d24sXbq0Xs/fuHFjXHzxxRERceedd0abNm3qnaVnz54xdOjQej+fZGTLDJkfACBXNW3aNC677LKkYzQadSpWlZSUxLJly2q177Jly6K0tLReoQAAAAAAaHhlZWWKTGRs6NCh9S6krF27Nl2KOeOMM/yc4SBlhgAA6m/9+vXRr1+/iIhYvHixq1ZlKL8uOw8fPjymTZsW69at+9T91q1bF9OmTYsRI0ZkFA4AAAAAAAAAAKid9evXx6pVq2LVqlWxfv36pOPkvDoVq6655pp4//334x//8R/jxRdf3OM+L774Yhx//PHx/vvvx9VXX71fQgIAAAAAAAAAAJ9u8+bNe1ymfup0K8Ajjjgifv7zn8eYMWNi2LBh0b179/jMZz4TrVu3jg8//DD+9Kc/xbJly6JFixbx85//PI444ogDlRsAAAAAAAAAAOCAqVOxKiLiX//1X2PAgAFx0003xeOPPx4PP/xweluXLl3i61//elx55ZXRq1ev/ZkTAAAAAAAAAACgwdS5WBUR0bNnz/jJT34SEREbN26MDz/8MFq3bh1t2rTZr+EAAAAAAAAAAACSUK9i1Se1adNGoQoAAAAAAAAAAGhU8pMOAAAAAAAAAAAAkG0UqwAAAAAAAAAAoBEoLi7e4zL1k/GtAAEAAAAAAAAAgOS1bds2Jk6cmF4mM4pVAAAAAAAAAADQCDRv3jwmTZqUdIxGw60AAQAAAAAAAACgEdi4cWP07t07evfuHRs3bkw6Ts5zxSoAAAAAAAAAAGgE1q1bF0uWLEkvt2nTJuFEuc0VqwAAAAAAAAAAoBHYvHnzHpepH8UqAAAAAAAAAACAGhSrAAAAAAAAAAAAalCsAgAAAAAAAAAAqEGxCgAAAAAAAAAAoAbFKgAAAAAAAAAAgBoUqwAAAAAAAAAAoBEoLi7e4zL1U5h0AAAAAAAAAAAAIHNt27aNyy+/PL1MZhSrAAAAAAAAAACgEWjevHnccsstScdoNBSrAAAAAAAAgEZh5cqVUVlZmXSMtJKSkigrK0s6BnU0b968WLp0aaIZevbsGUOHDk00A5CbNm7cGMcee2xERLzwwgvRpk2bhBPlNsUqAAAAAAAAIOetXLkyysvLY8uWLUlHSSsqKoqKigrlqhwyb968GDZsWFRVVSWao6CgIObOnatcBdTZ+vXrY/HixellxarMKFYBAAAAAAAAOa+ysjK2bNkSM2fOjPLy8qTjREVFRYwePToqKysVq3LI0qVLo6qqKtE52jk7S5cuVawC6uzDDz/c4zL1o1gFAAAAAAAANBrl5eUxcODApGOQ48wRABER+UkHAAAAAAAAAAAAyDaKVQAAAAAAAAAAADUoVgEAAAAAAAAAANSgWAUAAAAAAAAAAFCDYhUAAAAAAAAAADQC7dq12+My9VOYdAAAAAAAAAAAACBzbdu2jQsuuCC9TGYUqwAAAAAAAAAAoBEoKiqK//7v/046RqPhVoAAAAAAAAAAANAIbNq0KY4++ug4+uijY9OmTUnHyXmuWAUAAAAAAAAAAI3AunXrYsGCBenlVq1aJZwot7liFQAAAAAAAHDQmj59euTl5aV/CF3T8OHDo1+/fg2cilyzc452Ppo3bx59+vSJSy65JNasWZN0POAg8uGHH+5xmfpxxSoAAAAAAAAA2A+uvfba6NGjR2zdujWef/75uOuuu+LJJ5+MxYsXR1FRUdLxgEZs9OjR0aVLlzjvvPN2WT927NgoKiqKO++8M6FkuU2xCgBoNG6//fb0cseOHaN58+YxaNCgmDp1agwYMCC5YAAADcT5EAC57Ac/+EFMmTIl/XVZWVkMHjzYcQyAnDJq1KgYPHhwRERceOGFUVxcHLfccks88sgjcfbZZyecDmisxo4dG/fff39ERGzcuDG9fvLkyfGrX/0qIiKaNWsWt956ayL5cplbAQIAOW/9+vXRq1evuP7663dZv3Xr1njhhRdi4MCBMXny5ITSAQAceM6HAMhlO49jV1999S63Stq2bZvjGAA5b8SIERERsWzZsoSTAI3VpEmTYsaMGemv77777vTyzlJVRMSUKVNi6tSpDZqtMcipYtWkSZPi8MMPj5YtW0a7du1i5MiRMX/+/KRjAQAJGzRoUCxdunSv21OpVEyaNCnuueeeBkwFANBwnA8BkMscx4BssWHDhqisrNztsWPHjqSjkcOWLFkSERHFxcUJJwEaq3HjxkXr1q33uV9xcXGMGTOmARI1LjlVrOrTp09MnTo1XnvttXj++eeje/fuceKJJ8Z7772XdDQAICGTJ0/+1A9fP2ncuHFRXV19gBMBADQs50MA5DLHMSCbjBw5Mjp06LDb48UXX0w6GjlkZ0HvL3/5S/ziF7+Ia6+9Nlq0aBEnn3xy0tGARqpTp07xxhtvRMuWLfe6T7t27eLdd9+NNm3aNGCyxiGrilWbN2+OMWPGRKtWraJz587xox/9KIYPHx6XXXZZRET827/9W4wcOTJ69uwZRx55ZNxyyy2xcePG+NOf/pRscAAgMXfccUet992+fXvcdNNNBzANAEDDcz4EQC5zHAOyyR133BGzZs3a7dG/f/+ko5FDdhb0DjvssDjrrLOiVatW8dBDD8Whhx6adDSgEevatWu8/vrr0bRp0922tWzZMt5+++1o27ZtwwdrBAqTDvBJ48ePjzlz5sQjjzwSpaWlcc0118SiRYtiwIABu+27ffv2+OlPfxqHHHJIfOYzn0mvHz58eHTv3j2mT5/ecMEbkS1btsSbb76ZdAxy2EcffRTLly+P7t27R4sWLZKOQw4yQ9RVXa9c+Zvf/CZOPPHEA5SGXLdu3br08vz5833YQb04lpEpM0RdOR9if3I+xP7gWEZdOI6xvzmWHdwqKioyev4xxxwTgwcP3m19u3btorKyst6vm2kuGtayZcsyev4dd9wRffr0icLCwujYsWP07ds38vPrd72TZcuWxaJFizLKQ25yTk193HPPPbF9+/bd1m/evDluu+22OP300xs+VBYbOHBgrfbLmmLVpk2bYtq0aTFz5sw44YQTIiJixowZ0bVr1132e/zxx+Oss86KLVu2ROfOnWPWrFlRUlKS3l5WVhadO3du0OyNyZtvvhmDBg1KOgYAHDALFixwrKNWTj311KQjAMAB4XyI2nI+BGQjxzHqwrGMbDF69OikI9CA9lbQq48JEybEhAkT9strAQe36667Lq677rqkY2SVVCpVq/2ypli1ZMmS2L59ewwZMiS9rn379tG3b99d9vunf/qnePXVV6OysjJ+9rOfxZlnnhnz58+P0tLSiIi49957GzR3Y3P44YfHwoULk45BDtOeJlNmiLqq64epgwcPjrvvvvsApSHXrVu3Lv75n/85IiIeffRRv9VKvTiWkSkzRF05H2J/cj7E/uBYRl04jrG/OZYd3CoqKrKyxDRz5swoLy9POga19OSTT2ZNmem6666LL33pS0nHIAHOqamL3/zmN/H9739/l3XNmjWLqqqq+Pjjj3dZ/4Mf/CB9rkTtZE2xqrZatmwZvXv3jt69e8fnPve5+Id/+IeYNm1aXH311UlHaxSKiopqfbkz2Jtjjz026QjkODNEXXTo0KFOtw0444wzHOvYq7Vr16aXhwwZki7vQ105lpEpM0RdOB9if3I+xP7iWEZtOY6xvzmWkY3Ky8u9d+WQbLp1Y48ePczOQcw5NbW1Y8eOuOmmm9IlqubNm8e3vvWt2LZtW9x2222xY8eOiPh72erUU09V9q2j+t3M9QDo1atXNGnSJObPn59e98EHH8Tbb7/9qc+rrq6Obdu2Heh4AECWuvjii2u9b5MmTeKqq646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xKxZs1ytijpr2bJl9O7dOz73uc/FtGnTorCwMKZNm5Z0LHLA3LlzY+3atVFWVpb+zHrFihVxxRVXRPfu3ZOOR47q2bNnlJSU+My6jhSriIi//yB60KBB8cwzz6TXVVdXxzPPPBNDhw5NMBlwsEilUnHJJZfEQw89FM8++2z06NEj6Ug0AtXV1bFt27akY5ADTjjhhHjttdfi1VdfTT8GDx4c55xzTrz66qsuiUu9bNq0KZYsWRKdO3dOOgo54thjj4233nprl3Vvv/12dOvWLaFE5Kp77rknSktL46STTko6Cjlky5YtkZ+/60eFBQUFUV1dnVAiclnLli2jc+fO8cEHH8TTTz8dp512WtKRyEE9evSITp067fKZ9caNG2P+/Pk+swYaxM5S1TvvvBO///3vo7i4OOlINAI+s6a2zj333PjTn/60y2fWXbp0ifHjx8fTTz+ddDxy1F/+8pd4//33fWZdR24FSNq3vvWtOO+882Lw4MFxzDHHxJQpU2Lz5s3x7//+70lHIwds2rRpl2brsmXL4tVXX4327dtHWVlZgsnIFd/4xjfi5z//eTzyyCPRunXrWL16dUREHHLIIdGiRYuE05ELrr766hg1alSUlZXFhx9+GD//+c9j9uzZ/geDWmndunX069dvl3UtW7aM4uLi3dbD3lx55ZVxyimnRLdu3eKvf/1rTJw4MQoKCuLss89OOho54vLLL4/Pf/7z8f3vfz/OPPPMePnll+OnP/1p/PSnP006Gjmkuro67rnnnjjvvPOisNDHPtTeKaecEjfccEOUlZXFkUceGX/4wx/illtuifPPPz/paOSQp59+OlKpVPTt2zfefffdGD9+fBx++OE+X2Sv9vWZ4mWXXRbXX399/MM//EP06NEjJkyYEF26dInTTz89udBkjX3Nz7p162LlypXx17/+NSIi/UsMnTp1ctUzIuLTZ6hz587x5S9/ORYtWhSPP/54VFVVpT+zbt++fTRt2jSp2GSRT5uh4uLiuOGGG+LUU0+Nzp07R2VlZdxxxx2xatWq+MpXvpJgarLJvo5lNQudTZo0iU6dOkXfvn0bOipZ6tNmqH379jF58uQ444wzolOnTrFkyZK46qqronfv3vGFL3whwdQ5KAWfcPvtt6fKyspSTZs2TR1zzDGpl156KelI5IjnnnsuFRG7Pc4777yko5Ej9jQ/EZG65557ko5Gjjj//PNT3bp1SzVt2jTVoUOH1AknnJD63e9+l3Qsctjxxx+fuvTSS5OOQQ756le/murcuXOqadOmqUMPPTT11a9+NfXuu+8mHYsc89hjj6X69euXatasWerwww9P/fSnP006Ejnm6aefTkVE6q233ko6Cjlm48aNqUsvvTRVVlaWat68eapnz56p7373u6lt27YlHY0c8otf/CLVs2fPVNOmTVOdOnVKfeMb30itX78+6VhksX19plhdXZ2aMGFCqmPHjqlmzZqlTjjhBMc40vY1P/fcc88et0+cODHR3GSPT5uhZcuW7fUz6+eeey7p6GSJT5uhjz76KPUv//IvqS5duqSaNm2a6ty5c+rUU09Nvfzyy0nHJovU9eer3bp1S916660NmpHs9mkztGXLltSJJ56Y6tChQ6pJkyapbt26pb72ta+lVq9enXTsnJOXSqVS+7WpBQAAAAAAAAAAkOPykw4AAAAAAAAAAACQbRSrAAAAAAAAAAAAalCsAgAAAAAAAAAAqEGxCgAAAAAAAAAAoAbFKgAAAAAAAAAAgBoUqwAAAAAAAAAAAGpQrAIAAAAAAAAAAKhBsQoAAAAAAAAAAKAGxSoAAAAAAAAAAIAaFKsAAAAAyArTp0+PvLy8WLBgQdJRAAAAAECxCgAAAAAAAAAAoCbFKgAAAACoo+rq6ti6dWvSMQAAAAA4gBSrAAAAAMgJ27dvj+9973sxaNCgOOSQQ6Jly5YxbNiweO6559L7pFKp6N69e5x22mm7PX/r1q1xyCGHxH/8x3+k123bti0mTpwYvXv3jmbNmsVhhx0WV111VWzbtm2X5+bl5cUll1wS999/fxx55JHRrFmzeOqppyIi4n//939j0KBB0bp162jTpk0cddRR8eMf//gA/S0AAAAA0FAKkw4AAAAAALWxcePG+O///u84++yz42tf+1p8+OGHMW3atPjCF74QL7/8cgwYMCDy8vJi9OjRcdNNN8W6deuiffv26ec/9thjsXHjxhg9enRE/P2qU6eeemo8//zz8fWvfz3Ky8vjtddei1tvvTXefvvtePjhh3f5/s8++2z88pe/jEsuuSRKSkqie/fuMWvWrDj77LPjhBNOiB/+8IcREVFRUREvvPBCXHrppQ32dwMAAADA/qdYBQAAAEBOaNeuXSxfvjyaNm2aXve1r30tDj/88Lj99ttj2rRpERExZsyYuOGGG+KXv/xljBs3Lr3vzJkzo3v37nHcccdFRMTPf/7z+P3vfx9z5sxJr4uI6NevX4wbNy5efPHF+PznP59e/9Zbb8Vrr70WRxxxRHrdZZddFm3atImnn346CgoKDtifHQAAAICG51aAAAAAAOSEgoKCdKmquro61q1bFx9//HEMHjw4Fi1alN6vT58+MWTIkLj//vvT69atWxe//e1v45xzzom8vLyIiPjVr34V5eXlcfjhh0dlZWX6MWLEiIiIXW4xGBFx/PHH71Kqioho27ZtbN68OWbNmnVA/swAAAAAJEexCgAAAICcMWPGjOjfv380b948iouLo0OHDvHEE0/Ehg0bdtlvzJgx8cILL8SKFSsi4u8lqh07dsS5556b3uedd96J119/PTp06LDLo0+fPhERsXbt2l1es0ePHrvlufjii6NPnz4xatSo6Nq1a5x//vnx1FNP7e8/NgAAAAAJUKwCAAAAICfMnDkzxo4dG7169Ypp06bFU089FbNmzYoRI0ZEdXX1LvueddZZ0aRJk/RVq2bOnBmDBw+Ovn37pveprq6Oo446KmbNmrXHx8UXX7zLa7Zo0WK3TKWlpfHqq6/Go48+Gqeeemo899xzMWrUqDjvvPMOwN8AAAAAAA2pMOkAAAAAAFAbv/71r6Nnz57x4IMPpm/nFxExceLE3fZt3759nHTSSXH//ffHOeecEy+88EJMmTJll3169eoVf/zjH+OEE07Y5fXqqmnTpnHKKafEKaecEtXV1XHxxRfH3XffHRMmTIjevXvX+3UBAAAASJYrVgEAAACQEwoKCiIiIpVKpdfNnz8/5s2bt8f9zz333HjjjTdi/PjxUVBQEGedddYu288888xYtWpV/OxnP9vtuR999FFs3rx5n5nef//9Xb7Oz8+P/v37R0TEtm3b9vl8AAAAALKXK1YBAAAAkFX+53/+J5566qnd1g8fPjwefPDB+Jd/+Zc46aSTYtmyZfGTn/wkjjjiiNi0adNu+5900klRXFwcv/rVr2LUqFFRWlq6y/Zzzz03fvnLX8a4cePiueeei2OPPTaqqqrizTffjF/+8pfx9NNPx+DBgz8164UXXhjr1q2LESNGRNeuXWPFihVx++23x4ABA6K8vDyzvwgAAAAAEqVYBQAAAEBWueuuu/a4fuXKlbFp06a4++674+mnn44jjjgiZs6cGb/61a9i9uzZu+3ftGnT+OpXvxp33nlnnHvuubttz8/Pj4cffjhuvfXWuPfee+Ohhx6KoqKi6NmzZ1x66aXRp0+ffWYdPXp0/PSnP40777wz1q9fH506dYqvfvWrMWnSpMjPd7F4AAAAgFyWl/rktdMBAAAAoBG5/PLLY9q0abF69eooKipKOg4AAAAAOcSvzQEAAADQKG3dujVmzpwZZ5xxhlIVAAAAAHXmVoAAAAAANCpr166N3//+9/HrX/863n///bj00kuTjgQAAABADlKsAgAAAKBReeONN+Kcc86J0tLSuO2222LAgAFJRwIAAAAgB+WlUqlU0iEAAAAAAAAAAACySX7SAQAAAAAAAAAAALKNYhUAAAAAAAAAAEANilUAAAAAAAAAAAA1KFYBAAAAAAAAAADUoFgFAAAAAAAAAABQg2IVAAAAAAAAAABADYpVAAAAAAAAAAAANShWAQAAAAAAAAAA1KBYBQAAAAAAAAAAUMP/B2kLbo31z+HQAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Input State:\n", "Tensor product in computational basis state form: |10011⟩\n", "Output State:\n", "Tensor product in computational basis state form: 0.1768|00000⟩ - (0.147+0.09821j)|00001⟩ + (0.06765+0.1633j)|00010⟩ + (0.03449-0.1734j)|00011⟩ - (0.125-0.125j)|00100⟩ + (0.1734-0.03449j)|00101⟩ - (0.1633+0.06765j)|00110⟩ + (0.09821+0.147j)|00111⟩ - 0.1768j|01000⟩ - (0.09821-0.147j)|01001⟩ + (0.1633-0.06765j)|01010⟩ - (0.1734+0.03449j)|01011⟩ + (0.125+0.125j)|01100⟩ - (0.03449+0.1734j)|01101⟩ - (0.06765-0.1633j)|01110⟩ + (0.147-0.09821j)|01111⟩ - 0.1768|10000⟩ + (0.147+0.09821j)|10001⟩ - (0.06765+0.1633j)|10010⟩ - (0.03449-0.1734j)|10011⟩ + (0.125-0.125j)|10100⟩ - (0.1734-0.03449j)|10101⟩ + (0.1633+0.06765j)|10110⟩ - (0.09821+0.147j)|10111⟩ + 0.1768j|11000⟩ + (0.09821-0.147j)|11001⟩ - (0.1633-0.06765j)|11010⟩ + (0.1734+0.03449j)|11011⟩ - (0.125+0.125j)|11100⟩ + (0.03449+0.1734j)|11101⟩ + (0.06765-0.1633j)|11110⟩ - (0.147-0.09821j)|11111⟩\n" ] } ], "source": [ "q0 = Qubit(1,0)\n", "q1 = Qubit(0,1)\n", "mt = MultiQubit()\n", "mt.add_qubit(q1)\n", "mt.add_qubit(q0)\n", "mt.add_qubit(q0)\n", "mt.add_qubit(q1)\n", "mt.add_qubit(q1)\n", "\n", "circuit = QuantumCircuit(number_of_qubits=5)\n", "circuit.load_qft_preset()\n", "circuit.draw_circuit()\n", "print(\"Input State:\")\n", "mt.print_tensor_form()\n", "result = circuit.run_circuit(mt)\n", "print(\"Output State:\")\n", "result.print_tensor_form()" ] }, { "cell_type": "markdown", "id": "a86f24fe", "metadata": {}, "source": [ "## Quantum Circuits Tests\n", "We saw before that large matrices are unreadable for us. In such case we implement tests which compare the computed matrix with the expected matrix from theory.\n", "\n", "First let's check if the computed QFT matrix is as expected. From theory the expected value of each cell i,j in the QFT matrix is as follows:\n", "\n", "$$\n", "\\begin{equation}\n", "QFT_{m,n} = \\frac{1}{\\sqrt{N}} e^{\\frac{i 2\\pi}{N} \\cdot mn} ; N = 2^{\\text{number of qubits}}\n", "\\end{equation}\n", "$$\n", "\n", "This function compares between the ouput matrices of this library and theory on 2 to a specified number of qubits as input and outputs the runtime:" ] }, { "cell_type": "code", "execution_count": 34, "id": "88a76810", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "===== QFT test with 2 qubits runtime: 0.00 ======\n", "===== QFT test with 3 qubits runtime: 0.00 ======\n", "===== QFT test with 4 qubits runtime: 0.01 ======\n", "===== QFT test with 5 qubits runtime: 0.01 ======\n", "===== QFT test with 6 qubits runtime: 0.01 ======\n", "===== QFT test with 7 qubits runtime: 0.07 ======\n", "===== QFT test with 8 qubits runtime: 0.56 ======\n", "==== Total QFT Test runtime: 1.08 seconds =======\n", "=============== QFT tests passed! ===============\n" ] } ], "source": [ "# Import the test functions:\n", "from circuit_test import *\n", "\n", "test_qft_matrix_output(qubits_to_test=8)" ] }, { "cell_type": "markdown", "id": "487d22ea", "metadata": {}, "source": [ "Another example is the sine function. We know that the classical Fourier Transform of a sine function gives us two delta of dirac functions. The qft_on_sine function plots a normalized sine function ampitudes, then plots measurements of the resulting state and lastly compares to the expected fourier transform result. Let's show this in use: " ] }, { "cell_type": "code", "execution_count": 35, "id": "843ecf35", "metadata": {}, "outputs": [ { "data": { "image/png": "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1MLCwsrjZrNZ/fOf/6wCqHE139/fXw0PD68x86G5dOmSxTivdq0ZM1VV1dTUVBWAGhERUeP41WPev3+/CkCdOHFire9RUlKiFhQUVH5e1+tSPS7t/8LSDFF9M2YA1HfffbfG8999910VgPq73/2u3jFcHcPVs1/1/YzU9TXJycmVM0HVf2Z3796turq6qr6+vmp+fn7lce3/xsfHRz169Gjl8eLiYrVLly6qwWBQz549a/Hfry4vL0/18fFR3dzc1H379lUer6ioUO+44w4VgDp//vxGjc+SU6dO1ZqtMJvN6j333KMCsDgreLX09HQVgNq+fftrPrf674mmKTNQ2ixTdQUFBWp8fLzq4+NT4/eq+izYSy+9VONrnnnmGRWAumDBghrH65o9bWq82r//6KOP1jiuvVf6+vqqr7/+euVxs9msTpgwQQVQuTKhPgUFBWpkZKQKQL3pppvUTz/9VD127FiNn9mrXev3OC0trdaxK1euqGPGjFGNRqN66tSpWmOs6/exse+PRI6IO2uJqIYrV67g008/hbe3d+XMlKenJyZNmoSMjAysWbOmzq9duHAhXFyqJuKnTZsGQApOvPDCC1AUpdZj+/btq/V9jEYjXnzxxRrP79WrF+68805cuHABP/74Y7PGaA0ZGRnYuHEjevXqhenTp9d47Omnn7Y4C/H2228DAN5//320a9eu8riiKHjppZegKAq++OKLGl/j6upaa0YRAPz9/a0wCqHtNbl48WKDnt+2bdtax9zc3ODp6dnof/uVV16x+P3q06VLF9x77701jt17773o3LkzfvjhB1y4cKHRcTTHkiVL0KZNm8rXUNOnTx/MmDEDubm5WL58ea2ve+SRR9C1a9fKz9u2bYtp06bBbDZj165d1/x3V6xYgby8PNxzzz3o1atX5XGDwYBXXnkFLi4uWLx4cbPGBgCRkZG1fgYVRcEDDzwAAPW+J2gyMzMBABEREdd8rvacs2fPNjbUGizNnHp6euLuu+9GXl4edu7cWevxjh074vHHH69xbNasWQBg8fnW5unpiRdeeKHGMe29MiAgAA8//HDlcUVRMHXqVACW30ctfe/ly5ejR48e+OGHH3DnnXeia9eu8PPzw80334xvvvmm0fF27Nix1jEXFxf8+c9/RkVFBdavX9/g79WU90ciR8OljERUw4oVK3DhwgXMmjUL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DdOef/r0afWOO+5Q/f39VXd3d3XIkCHqqlWran2fxvQxU1VVfeWVV9TOnTurbdq0sficd955p/LxyMhI9dlnn1XLysrq/H4HDhxQJ0yYoHp6eqpeXl7qjTfeqB44cKDeflGrV69Wb775ZjUoKEht06aNGhoaqg4ZMkR9/vnn1YyMDFVVVbWsrEx9+eWX1bFjx6odOnRQXV1d1ZCQEHX48OHq559/Xm/voeq0fmHah6urqxoYGKgOGDBA/b//+796e1BdPebTp0+rTz31lDp48GA1ODhYdXV1VSMjI9XJkyerW7durfX1ixcvVuPj41U3NzcVQI2fkfp+ZlS1/j5mSUlJ6qZNm9QRI0ao7dq1U729vdVJkyapJ06csPi9vvrqKzU+Pl51dXVVQ0ND1YceekgtKCioM4b6fkbq+prCwkJ13rx5apcuXSp7l914443qpk2baj23vt5Q9fW/qsvPP/+s3njjjaqvr6/q6uqqdunSRZ03b16NXlCapvQxy8rKUu+55x41PDxcdXd3V+Pj49V33nlHTUtLq7f3X12Ki4vVf/zjH+rQoUNVX1/fGj+ff/3rX9XS0tI6v+7hhx9WQ0JCVDc3N7VXr17q0qVL6+wLtnfvXnXs2LGqn5+f6uXlpY4YMUJds2aNxf/jpvQxLCgoUO+99141LCxMNRqNtWJobLyNfa9U1bp7olmSn5+vfvbZZ+qdd96p9ujRQ/X19VVdXFzUoKAgNTExUV20aFGtfnWqWv/vcVpamjplyhQ1KChI9fDwUAcMGKB++eWXdcZ17tw59fbbb1cDAwNVg8Fg8We9Ie+PRI5KUdVq6y6IiHSmKApGjBhhcd8METmmhQsX4vHHH8ftt9+OL774otnLdImI7BGXMhIREZGuHnvsMRw9ehSLFi2qXKJJRORsmJgRERGR7v71r3+hc+fOuHz5Mo4ePYq4uDi9QyIialVMzIiIiEh3bdq0wZNPPql3GEREumFiRkQ2hdteiYiIyBlxdy0REREREZHOmJgRERERERHpjIkZERERERGRzpiYERERERER6YyJGRERERERkc6YmBEREREREemMiRkREREREZHOmJgRERERERHpjIkZERERERGRzpiYERERERER6YyJGRERERERkc6YmBEREREREemMiRkREREREZHOmJgRERERERHpjIkZERERERGRzpiYERER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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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UFCQiY6ONm+99ZYxxhiHw2HGjh1rKlasaAIDA81NN91kPvzww0z35eWqVKliJJkTJ05cMTbjPZ/V++/kyZNm1KhRpnnz5iYiIsIUKFDAREREmO7du5vff//d45gv/7l8HyUlJZknn3zSVKhQwQQEBJjixYube++912zevNktx+y+h4DsYEYKuAqX35jgzz//VOPGjRUWFqYuXbro3LlzCgkJkSQNGDBA77zzjsqWLauHHnpIkvT555+rd+/eWr9+vd566y23/letWqWRI0eqTZs26t+/v7Zs2aIvv/xSy5cv16pVq1S+fHln7OjRo/X777+rUaNGuueee3Ty5EktXLhQjz76qHbs2KFx48a59X/ixAk1bdpUJUuWVJ8+fXT06FHNnj1bbdq00WeffaYOHTrkyn6qXbu2Bg4cqLfeeku1atVy6Tc6OloPP/ywRo4cqQ8++ED33Xef2+MnT54sf39/9e7dO1fyeemllzR9+nR98sknmjhxYpY3mHjuuec0ZswYVahQQd26dVORIkX0xx9/6Mcff9T333+vFi1aqEWLFkpMTNSHH36o2NhYl+8EXH6Gtn///lq1apXuvPNOtW/fPltnzfPqderQoYNOnjypuXPn6u6777Z0E4arOZ5//vlnjRkzRi1bttSjjz6q9evXa86cOdq8ebN+/fVXBQUFXfF5f/vtNzVr1kxHjx5V+/btVa1aNf3666+aOnWq5s2bpx9//FEVK1aUdPEM+oYNG9zGZ2WcvXv31r///W+tXbtW9erVkySlpaXp448/VlxcXKYzXcePH1fz5s21ZcsWNW3aVI899phSUlI0d+5ctWzZUp9++qnL6zZ58mTNmzdPzZs3V9u2bXX27FktXbpUzz33nH7++Wd9/vnnztiDBw+qYcOGOnPmjO6880517txZZ86c0c6dO/Xuu+9q7Nix8vfP2T/rr7/+upYsWaK7775brVu3lp+f31WN69dff1XTpk11+vRp3Xvvvbr55pu1Zs0aNW3aVLVq1cp2Pp999plOnTqlLl26qGrVqpnGDR48WG+88YZmzJiht99+WwEBAVc1/h9++EHjxo3TbbfdppiYGBUoUEDr16/Xe++9p0WLFmndunUeZ5AHDx6sZcuWqV27doqLi9OcOXM0bNgwpaWl6dVXX5WUs/fdlYwfP15Lly7V3XffrVtvvVWff/65Bg4c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6ffff3eZmTx37pz69u2r8+fPu8Vntc8aNmyomJgY/e9//9Ps2bPdtjscDi1btsz5u5X3EJAdXNoH5KHmzZurf//+euedd1S9enV17NhRxhh9/vnnOnDggAYMGOBxHY+4uDgNGDBACxYsULVq1bRlyxbNmzdPJUqUcLncp3379oqOjtaYMWP066+/qnr16tqxY4e+/vpr3XPPPfrss8885lWzZk39+OOPatCggVq1auVcn+jChQv6z3/+c9U3VPCkcOHCatCggX744Qd1795dN998s+x2u7p37+5yI4U2bdooKipKe/fuVXh4eKZ3RruSDz74QAsXLpQxRqdOndLOnTu1bNkynTp1StWqVdOsWbNc7q7lyV9//aWmTZuqYsWKqlevnsqVK6fTp0/r66+/1uHDh/XMM88oMDBQ0sUP2mXKlNGsWbMUGBioG264QTabTf3798/xJZJWXqfevXtrzJgxGjZsmDZs2KAKFSrol19+0a+//qrY2FiXDxOSnDfOGD9+vE6cOOEszl988cVM87na4zk3vPfee2rWrJkefvhhzZs3T1WrVtWWLVv01VdfqWTJknrvvffy5HklWbrhybvvvqsdO3ZoyJAh+uijj9S4cWOFhoZq//79+uWXX7Rz504dOnRIBQsWVMOGDdWwYUN98sknOnTokBo1aqR9+/bpq6++0p133un2/v3oo4/0/vvvq3nz5qpQoYJCQkK0detWLViwQGFhYS7rrfXr10/Tpk1Tnz599N1336lkyZJavny5Tp48qVq1amX7+yxXMy5Jmjhxopo2baoePXpozpw5znWkfv75Z91yyy1XnHG71BNPPKFjx45p+PDhqlGjhtq0aaMqVaro3LlzWrp0qTZu3Cg/Pz+99957bjc8sLIf7Ha7Hn/8cY0bN061atVS+/btlZKSom+++UZRUVGZrh1mxZXed7n9uuWGjz76SM8884xq1KihmJgYlSpVSidPntSqVau0bt06BQcHu73/br31Vn3yySfq0KGD6tSpIz8/P911112qWbOm+vfvr/79+6tOnTrq1KmTLly4oO+++07GGI9jbNmypWw2m55//nlt2bJFRYsWVWhoqPNSvv/9739q2bKlunTpovHjx6tu3boKDg7Wvn37tHLlSh09etR5500r7yEgW67pzdYBH5DVOlKeKIv1MjJMnTrVNGjQwBQsWNAULFjQNGjQwEydOtUt7tI1iZYvX25iY2NNoUKFTEhIiLnnnnvMzp073R6ze/du07FjR1OyZEln37Nmzcp0faOMfPfv3286d+5swsLCTFBQkGncuLH59ttv3frP6TpSxlxcz6Nt27YmNDTU2Gy2TNcEefHFF40k8+yzz3rcj1nJWM8l48fPz8+EhoaaqlWrmvvvv998+umnJi0tzeNjL1+fJS0tzYwePdq0bt3a3HDDDSYgIMCULl3aNG/e3MycOdNlXSdjLq7LEhsba4oUKeK2Ro6n9ZguldU6UlZeJ2OM2bBhg7nttttMwYIFTUhIiLn77rvNzp07M81h/vz5pkGDBiY4ONiZ9+X701PeV3M8X+5K64t5kpiYaHr37m0iIiKMv7+/iYiIML179zaJiYlusTldR+pKMltHyhhjzp49a8aMGWPq1atnChUqZIKDg82NN95oOnToYGbMmGHOnz/vjD1y5Ih58MEHTZkyZUxQUJCpUaOGmThxotm9e7db/6tWrTKPPvqoqV69ugkNDTXBwcHm5ptvNv369fO4RtnixYtNTEyMCQwMNMWLFzfdu3c3SUlJWa5HlNlaPVbHZYwxmzdvNm3btjWFCxc2RYoUMXfccYfZvHnzFd8TmVm7dq3p2bOniYqKMoGBgc5jtmLFimbt2rWZPs7KfkhLSzOvvvqqufnmm01gYKApV66cefrpp82pU6c8rvGU1Vgy26dZve+s5pvV65ZVblmtO3e5devWmeHDh5vY2FgTGRlpAgICTHBwsKlcubLp27ev+e2339wec+jQIXPfffeZEiVKGLvd7vJedDgcZtKkSaZatWomKCjIhIeHm4ceesgcOXIk07ymT59uatSo4XzdL38djh8/bl588UVTvXp1ExwcbAoXLmxuvvlm061bN/PFF18446y+h4ArsRnjYY4eAPJBu3bttGDBAv3222+66aab8jsdAF7s6NGjiomJca5hZeX22wCQG/iOFACvkHF5xe23304RBeCKSpYsqXnz5slut+uOO+7Q5s2b8zslAP8wzEgByFczZ87Ujh07NGPGDO3du1c//vijmjRpkt9pAfARy5cvV0JCgiIiIvToo4/mdzoA/kEopADkqxYtWmj58uWKiorSSy+9xJd9AQCAT6CQAgAAAACL+I4UAAAAAFhEIQUAAAAAFlFIAfAKxhjVq1dPrVu3zu9UciwxMVE2m029evXK71RyRUpKigYOHKgbb7xRBQoUkM1m04YNG/I7LeC68v3338tms2nBggX5nQqAbKKQAuAVZsyYoXXr1unll192ae/Vq5dsNptsNptWrlzp8bFt2rSRzWZTYmLiNcj0n2fIkCF6++23Vb16dT377LOKj49XeHh4lo/JeM0CAwP1559/eow5ceKEgoODnbHwLkuXLpXNZtOwYcOu+XPv2rVLw4YN01133aWyZcvKZrMpOjr6io9btGiRYmNjVaRIEYWEhKhly5ZKSEjINP63337TfffdpxIlSig4OFi1atXSe++9p8y+Pp6SkqJBgwYpKipKgYGBio6O1uDBg3X69GmP8Q6HQ++8845q1Kih4OBglSxZUl27dtXu3bvdYlu1aqVmzZppyJAhSk9Pv+JYAeQ/CikA+c7hcGjYsGG65ZZb1KhRo0zj/v3vf1/DrJDh66+/VsWKFTVv3jyNGDFCw4YNu2IhJUn+/v5KS0vTxx9/7HH7xx9/rHPnzsnf3z+3U4aPW758uYYPH64FCxYoLCxMdvuVP67897//VZs2bbRt2zb16tVLPXv21JYtW3T77bfrs88+c4vfunWrGjZsqLlz5+qOO+7QgAEDlJ6erscff1wDBgxwiz9z5oxiY2P15ptvqnLlynrqqadUqVIljR07VrfeeqvOnTvn9phHH31UAwYMkDFGAwYMUJs2bfTFF1+oQYMG2rlzp1v8kCFDtGXLFs2aNSubewpAvjIAkM++/vprI8lMnjzZbVvPnj2NJFOhQgUjyXz11VduMXFxcUaS2bNnzzXI9sr27NljJJmePXvmdyq5wmazmdjYWEuPkWQqVapkKlasaGrXru0xpk6dOqZSpUqmUqVKhn+OvM+SJUuMJBMfH3/Nn3vXrl1m5cqV5uzZs8YYYwIDA01UVFSm8cePHzehoaGmRIkSZv/+/c72/fv3mxIlSpgSJUqYlJQUl8c0b97cSDILFixwtqWmpppbbrnFSDIrVqxwiR86dKiRZP7973+7tP/73/82ksxrr73m0r548WIjyTRv3tykpqY62xcsWGAkmdatW7uNIy0tzZQoUcI0a9Ys07EC8B78ywUg33Xs2NHYbDZz/Phxt20ZhdSMGTOMv7+/qV69uklPT3eJ8VRITZs2zUgy06ZNc+szsw+IkkxsbKw5cOCA6dq1qylevLgpXLiwadu2rdm1a5cxxpitW7eau+++2xQrVswULlzYdOzY0Rw+fNiln0sLqV9//dW0bdvWFC1a1BQqVMjcfvvt5pdffvG4H1JSUszQoUNN1apVTVBQkClatKhp3bq1Wb58uVtsbGyskWT++usv88ILL5jy5csbf3//bH3oPX/+vBk3bpypWbOmCQoKMiEhIaZFixZuRWrGvr/8JztFVUYhNXLkSCPJrF271mX7hg0bjCQzatSoLAupOXPmmFtvvdWEhoaawMBAU61aNfP666+bCxcuuMSdPHnSjBo1yjRv3txERESYAgUKmIiICNO9e3fz+++/u/X7119/mbFjx5qaNWuakJAQU7BgQRMVFWX+9a9/mQ0bNjjj4uPjjSSzZMkStz48HWOXvvZbt241HTp0MGFhYc7j89LHfPXVV6Zhw4YmODjYlClTxrz44ovOY3v69OnO1ycyMtKMGTPG4/5xOBxmypQppkmTJqZIkSImODjY1KtXz0yZMsUt9tKxfPzxx6ZWrVomKCjIhIeHmwEDBjiLlktjPf1kvM9OnjxpXnrpJVOlShVTqFAhU6RIEVOhQgXTo0cPk5iY6DHfq3WlQur99983kszw4cPdtg0bNsxIMh9++KGzbceOHUaSadmypVv80qVLjSTTu3dvZ5vD4TBlypQxhQsXNqdPn3aJP336tClcuLApX768S3vXrl2NJLNs2TK352jRooWRZPbu3eu2rU+fPkaS2blzZ6bjBeAduLQPQL4yxmjJkiWqVKmSihUrlmnczTffrIcffli//vqrPvzwwzzL58SJE2rWrJn27Nmjnj17qkWLFlqwYIFuv/12/frrr2rSpIlOnz6tBx98UPXr19fnn3+url27euxr9+7datq0qf766y/17dtXd911l5YsWaLmzZtr9erVLrHHjx9X48aN9fLLL6tYsWJ67LHH1LFjR61du1YtW7bUnDlzPD5Hx44dNX36dLVs2dJ5Q4isGGPUqVMnPf300zp37pyeeOIJdevWTRs3btRdd92lN9980xnboUMHxcfHS5KioqIUHx+v+Ph4SzfR6Nmzp/z8/DRt2jSX9ilTpsjPz089evTI9LHPPfecOnTooB07dujee+/V448/ruDgYA0ePFhdunRxid22bZuGDh2q4OBg3XPPPXryySdVv359zZw5Uw0bNtTevXvd8nrmmWckSb17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mOFyfK5cuTLXb8ph1YABA3T27Fk9/PDDHi/h27NnjxITE6+6/4zv6nia9U1MTPTYd8b+v3wWcPv27R6/r5Vb7rvvPhUtWlTvvPOOy00aDhw4oAkTJqhEiRK65557nO2VKlVS8+bNtWTJEn3zzTfO9rS0NL300kuS5HLjF5vNpj59+uj06dMaMWKEy3OPGDFCp0+f1sMPP+zS/sgjj0iSXnrpJaWlpTnbv/nmGy1dulStW7dWVFSU21gylka4tJAD4J34jhSAfHfPPfcoPj5eq1atUpMmTbL1mIy7t91+++0ul3hlKFOmjLp27aqZM2eqXr16atOmjY4cOaIvv/xSbdq00eeff57bw3Bzyy236L333tPq1avVqFEjJSYm6tNPP1VwcLA++OADl9h3331XO3bs0JAhQ/TRRx+pcePGCg0N1f79+/XLL79o586dOnToUI6/N9G9e3d98cUXmjt3rmrWrKl27drpzJkzmj17to4fP65x48a53DEuN1WtWlVVq1bNVmybNm300ksvacSIEbrpppvUpk0bRUVF6c8//9Tvv/+u5cuX65VXXnHObPXv31/9+/dXnTp11KlTJ124cEHfffedjDGqVauWy10V//jjD9WpU0e1atVSzZo1VbZsWf3555+aO3euzp8/77L+UqNGjdS0aVMtXrxYjRs3VvPmzbV3717NnTtX7du315dffpm7O8mCRx99VKtWrdKHH36on376Sa1atVKZMmWUlJSk7du3a/Xq1Zo5c6aio6Ovqv/KlSurTJkymjVrlgIDA3XDDTfIZrOpf//+2rBhg+699141bNhQVatWVXh4uP744w/NmTNHdrvd5fJISc7XydNJAk+OHTvm8jqcP39ex44dc1nDbOzYsSpRooSkizOHEyZMUPfu3VW3bl117txZkjR79mz9+eefmj17tvP7ThneffddNW3aVB06dFDnzp0VERGh+fPna8uWLc51xS41ZMgQzZ07V6NHj9b69etVt25drVu3Tt9++60aNGigJ5980iW+ZcuW6tOnjz744APVrVtXd955pw4dOqTZs2crLCxM77zzjsexf/fddypWrJjH2SoAXuZa3WcdADLzxx9/GH9/f9O3b1+3bZeuI+VJ69atnWvUXLqOlDEX18cZMGCAKV26tAkMDDQ1a9Y0H3/8cZbrSHlaLyljbaCePXu6bfPU16Xx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y5bVyJEjJUkvv/yyGjVqpJtuukknT57U66+/rr1796pPnz75OQwAAAAA1zGvK6Q6d+6so0ePaujQoTp8+LBq166thQsXOm9AsW/fPpepvRMnTujhhx/W4cOHVaxYMdWrV08rVqxQ1apV82sIAAAAAK5zXnWzifyQkpKiokWLZusLZQAAAACk9u2vHDNvXt7nkdus1AZe9R0pAAAAAPAFFFIAAAAAYJHXfUcKeedKU7C+OP0KAAAA5AdmpAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIq8spCZOnKjo6GgFBQUpJiZGa9asydbjZs2aJZvNpg4dOuRtggAAAAD+0byukJo9e7YGDRqk+Ph4rVu3TrVq1VJcXJyOHDmS5eMSExP1zDPP6JZbbrlGmQIAAAD4p/LP7wQu98Ybb+jhhx9W7969JUmTJk3S/PnzNXXqVD377LMeH5Oenq77779fw4cP1/Lly3Xy5MlM+09NTVVqaqrz95SUFGcf6enpkiSbzSa73S6HwyFjjDM2oz0j7krtdrtdNpvNY7skORyObLX7+fnJGOOx/fIcM2u32WyS7LLZHLLb/253OGwyxi67PV2XpukrY7oeXyfGxJgYE2NiTIyJMTEmbx+Tn9/f7enp9v/PyTV3ybfGdHEsrtuz4lWFVFpamtauXavnnnvO2Wa329WqVSutXLky08e9/PLLKlWqlB566CEtX748y+cYOXKkhg8f7ta+ZcsWFS5cWJIUFhamcuXK6cCBAzp+/LgzJjw8XOHh4UpMTNSpU6ec7ZGRkSpevLh27typc+fOOdvLly+vkJAQbd261eVFqVSpkgICArR582aXHGrUqKG0tDTt2LHD2ebn56caNWro1KlT2r17t7M9KChIlStX1okTJ7R//35ne5EiRVShQgUdOXJEhw8fdraHhYVJKqcKFQ6odOm/x7R/f7j27QtXlSqJ2rzZ98Z0Pb5OjIkxMSbGxJgYE2NiTN4+pkaN/h7TqlU1FBiYpjp1/h5TerqfJN8akySdPn1a2WUzl5eC+ejgwYMqW7asVqxYocaNGzvbhwwZomXLlmn16tVuj/nxxx/VpUsXbdiwQSVKlFCvXr108uRJzZkzx+NzeJqRioyM1PHjxxUSEiLp+j1DcffdWc9IffGF743penydGBNjYkyMiTExJsbEmLx9TB07/t2e2YzUnDm+NSbpYm0QFham5ORkZ22QGa+akbLq1KlT6t69uyZPnqwSJUpk6zGBgYEKDAx0a/fz85PfpXOU+nvHeoq91u02m81je2Y5ZtZujF2XHT+SJIfDT57S8YUxXY+vE2NiTFbbGRNjyq0crbYzJsaUWzlabWdM+TsmT58nL85CufKlMWW13ROvKqRKlCghPz8/JSUlubQnJSUpPDzcLX7Xrl1KTExU+/btnW0Z1aS/v7927NihChUq5G3SAAAAAP5xvOqufQEBAapXr54SEhKcbQ6HQwkJCS6X+mWoXLmyNm/erA0bNjh/7rrrLrVs2VIbNmxQZGTktUwfAAAAwD+EV81ISdKgQYPUs2dP1a9fXw0bNtT48eN15swZ5138evToobJly2rkyJEKCgpS9erVXR4fGhoqSW7tAAAAAJBbvK6Q6ty5s44ePaqhQ4fq8OHDql27thYuXKjSpUtLkvbt25fpNZIAAAAAcC141V378kNKSoqKFi2arTtz+LpLvkrm0bx51yYPAAAA+LYrfa6UfPOzpZXagKkdAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAiyikAAAAAMAiCikAAAAAsIhCCgAAAAAsopACAAAAAIsopAAAAADAIgopAAAAALCIQgoAAAAALKKQAgAAAACLKKQAAAAAwCIKKQAAAACwiEIKAAAAACyikAIAAAAAi3JUSK1evTq38gAAAAAAn5GjQqpx48aqWLGiRowYod27d+dWTgAAAADg1XJUSP33v//VzTffrBEjRujmm29W06ZNNWnSJB0/fjy38gMAAAAAr5OjQqpbt26aP3++Dh48qLfeekvGGD3++OMqU6aMOnTooM8++0xpaWm5lSsAAAAAeIVcudlEiRIl1K9fP61YsUI7d+7UCy+8oO3bt6tz584KDw/XI488oh9//DE3ngoAAAAA8l2u37UvODhYBQsWVFBQkIwxstlsmjt3rmJjY9WgQQNt3bo1t58SAAAAAK6pXCmkTp06pWnTpqlVq1aKiorS888/r+joaH322Wc6fPiwDh48qNmzZ+vIkSPq3bt3bjwlAAAAAOQb/5w8eO7cufr444/19ddf69y5c2rQoIHGjx+vLl26qHjx4i6xnTp10okTJ/TEE0/kKGEAAAAAyG85mpG6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7t3ZigfyQsaJAF9fnNSb+do+zqt886Lf5ORkl7/vRYsWzbW+vZ6B10hKSjLNmjUzNpvNREVFmYYNG5qGDRuaqKgoY7PZTLNmzUxSUlK2+tqwYYOx2+3GGGN27txpypcvb4KCgkxsbKy57777zH333WdiY2NNUFCQuemmm8zOnTu9pt81a9aYYsWKmbJly5qePXuaIUOGmCFDhpiePXuaG264wYSFhZmff/75us83r/pdsGCBCQgIMI0aNTLx8fHm3XffNe+++66Jj483TZo0MYGBgWbhwoWW+83N/Xut9oWv7WNfyzev+p0+fbrx9/c3Xbp0MdOmTTMLFiwwCxYsMNOmTTNdu3Y1BQoUMDNmzLDcb4bU1FQze/Zs8+STT5ouXbqYLl26mCeffNJ88sknJjU1NVv9GmPM4cOHzfDhw52/Hz161IwePdp06NDBNGrUyDRq1Mh06NDBjBkzxhw5ciTb/e7bt8/07t07z/vdsmWL6du3r6ldu7YJDw834eHhpnbt2qZv375my5Yt2e73999/Ny1btvTZfPOq32+//dbccccdJjQ01NjtdmO3201oaKi54447zHfffZftfo0xZuvWrebGG290/s4+vii39vHl+9fX8s2rfidPnmyqVKni7DPjp0qVKuaDDz7Idr+e/g77Chbk9SKdOnXSwYMHNW3aNFWqVMll244dO/Tggw+qTJky+vTTT51nYDOzadMmxcbGKj09XbfffrsKFSqkGTNmKCQkxCUuJSVFPXr00F9//aVFixZp06ZNWfa7fft2de3aNU/7bdSokWrVqqVJkybJZrO5xBlj9Nhjj2nTpk1auXKlvvrqqyz73b17t55++mmfzDev+q1Vq5buvvtuvfzyyx5jhw0bpi+++EKbNm3S22+/nWW/f/zxh8aOHWt5/0piH1/FPva1fPOq34oVK2rgwIF64oknPMa+++67evPNN7Vz504NGjQoy36PHj2qmTNnKj09XZL0+++/Ky4uTgcPHlRMTIxKly4t6eIM6erVq3XDDTfom2++0U033ZRlv5K0ceNG1a1bV+np6fr5558VFxenggULqlWrVi79JiQk6OzZs1q0aJHq16/vFf1+88036tChg+rWrau4uDiXfr/77jutXbtWc+fOVVxc3HWdb171++GHH6pPnz7q1KmTW7/ffvutPvvsM02ZMkXdu3e/Yr+X980+zv197Mv55lW/r7/+uoYNG6YBAwZ47Pftt9/WsGHD9Mwzz2Sr3zp16sjhcFwx1ttQSHmRIkWK6IcfflCdOnU8bl+7dq1atGihU6dOyW63u32QupQxRjabTenp6SpYsKDWrFmj6tWre4zdvHmzYmJidPbsWWe/ng6LjPa87jc4OFjr169X5cqVPfa7fft21alTR3/99VeW/V7avy/mm5f9btiwwa1Yz7Bjxw7Vrl3b2W9ERESml+SlpaXp8OHDlvevJPbxVexjX8w3L/oNCgrSxo0bs9Wvn5+fateu7VbcZzh9+rTWrVvnLKQ44cLJAG87GSDJ0gkB9nHennDxtXzzqt+oqCi9/vrruu+++zzGzp49W4MHD9a+fft07733ZtlvcnKyli5d6vw77FOuybwXsqV48eJm6dKlmW5fsmSJKV68uDHGmJCQEDN69GizdOlSjz+TJ092TpNGRESYefPmZdrvV199ZSIiIpw5TJkyxSQmJnr8mT9/fp73Gx0dbT788MNM+/3www9NVFSUMcaYMmXKmDlz5mQau379ep/NN6/6rVy5shk3blymsePGjTOVKlVy5jB79uxs9Wtl/xrDPr6afexr+eZVv3Xr1jWDBw/ONHbIkCGmbt26xhhjKlasaD766KNs9WuMMcHBwWbz5s2Zxm/atMkEBwcbY4yx2WzGbrcbm83m9pPRntF3UFCQ2bZtW6b9btu2zQQFBV2x30v7z+t+t2/fnmm/27dvd+m3TJkyJjo62uNPmTJlfDrfvOg3MDAw2/0aY4zdbjd169Y1LVq08PhTv3599nEO9rHV/etL+eblfti6dWum/W7ZssX5t9Lf39/ccccdplevXh5/7rrrLp+9tI+bTXiRzp07q2fPnnrzzTd12223Oc+GpqSkKCEhQYMGDVLXrl0lSXXr1pUkxcbGeuwrNDTUeSa6T58+6tGjh1566SXddtttbtP8r7zyivr37y9Jqlevng4ePKioqCiP/Z48eTLP+33mmWf0yCOPaO3atR77nTx5ssaOHevsd+3atbr77rs99nvpGXlfyzev+n355ZfVrVs3LV261ONlHwsXLtTMmTNd+s3sjNPV7l/28dXtY1/LN6/6HTdunNq1a6eFCxd67Hf37t2aP3++JKl+/fpau3atHnjggSv2K13825mYmJjpzGpiYqJCQ0MlSWFhYRozZoxuu+02j7FbtmxR+/btJV38AvaaNWsynU1cs2aNcxwRERF69913M33tNmzYoHr16uVpv9HR0Zo/f36ms37z5893vnejoqI0evToTF87X843r/qtVq2apkyZojFjxniMnTp1qsuNWG666SY99dRTmR7H7GP3fq3sYyv719fyzat+GzRooFGjRmnKlCny93ctJ9LT0zV69Gg1aNBAklSlShV17NhRDz30UKb9fv311x63eb1rX7shM+fOnTOPPfaYCQgIMHa73QQFBZmgoCBjt9tNQECA6du3rzl37pwxxpj//Oc/5q233sq0r8OHD5thw4Y5fx81apSJiIhwnl3KOAMVERFhRo8e7Yz74osvsjx7e/z4cTN9+vQ873fWrFkmJibG+Pv7O8+K+fv7m5iYGJez1j/88IP55ptvMu339OnTLrN8vpZvXvX7008/mc6dO5ty5cqZgIAAExAQYMqVK2c6d+5sVqxY4YzbsmVLljcvSEtLM4mJic7fs7t/jWEfZ7C6j30t37zqd8+ePWbIkCGmefPmpmLFiqZixYqmefPm5t///rfZs2ePM+7QoUMuj7uSl156yRQrVsy88cYbZuPGjebw4cPm8OHDZuPGjeaNN94wYWFhJj4+3hhjTOvWrc2IESMy7WvDhg3GZrMZY4yZMGGCCQwMNAMGDDBz5841q1atMqtWrTJz5841AwYMMMHBwWbixInGGGPat29vXnrppXzt95NPPjH+/v6mffv25q233jKzZs0ys2bNMm+99Za56667TEBAgPnss8+MMcZ07NjRDBky5LrMN6/6XbJkiSlUqJCpUaOGeeqpp8yoUaPMqFGjzFNPPWVq1qxpChcubJYtW+Z8bLdu3cyTTz7JPs6jfWxl//pavnnV78aNG014eLgpXry4ueeee8xjjz1mHnvsMXPPPfeY4sWLm4iICOfsfq9evczjjz+eab9bt2410dHRmW73ZhRSXig5OdkkJCSYmTNnmpkzZ5rFixeb5OTkXOl79+7dZsWKFWbFihVm9+7dudKnMcbs2rUrT/pNS0szBw8eNAcPHjRpaWm51q+v5ZtX/eaVvNq/xrCPM/havr6EEy4XcTIgb/vN7skAY6yfEGAfX5RXJ1x8Ld+86jclJcW8++67pkePHqZ169amdevWpkePHua9995z+dx67tw5c+bMmWz360u42QTgI6ys/eBr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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "=== QFT Test on a Sine function passed ===\n", "=== The runtime of QFT on a sine function is: 3.27 seconds ===\n", "\n" ] } ], "source": [ "qft_on_sine(number_of_qubits=6)" ] }, { "cell_type": "markdown", "id": "54c998c8", "metadata": {}, "source": [ "Another test checks the correctness of the traced out qubits from a multi qubit quantum state. The test initializes a specified number of qubits with normalized and random amplitudes and save the original amplitudes for each qubit. Then we initialize the tensor product of these qubits. Then we trace out each qubit and compare the traced out qubit's amplitudes to the corresponding original qubit. Let's see this in action:" ] }, { "cell_type": "code", "execution_count": 36, "id": "e1400968", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Original qubits amplitudes [(0.04635224294143664, 0.998925157143566), (0.7119551402681412, 0.7022249484643588)]\n", " Traced out qubits amplitudes [(0.04635224294143664, 0.998925157143566), (0.7119551402681412, 0.7022249484643588)]\n", "==== The traced out qubits real amplitudes are the same as their original real amplitudes. ==== \n" ] } ], "source": [ "test_tracing_out_qubit(qubits_to_test=2, print_amplitudes=True)" ] } ], "metadata": { "kernelspec": { "display_name": "qft_venv", "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.6" } }, "nbformat": 4, "nbformat_minor": 5 }