diff --git a/Exercises/Session 5 - Quantum Computing (with solutions).ipynb b/Exercises/Session 5 - Quantum Computing (with solutions).ipynb deleted file mode 100644 index 7a8ebad..0000000 --- a/Exercises/Session 5 - Quantum Computing (with solutions).ipynb +++ /dev/null @@ -1,805 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e4f44eb7", - "metadata": {}, - "source": [ - "$\\def\\tcoreleft{\\underset{\\tiny\\mid}{\\textcolor{MidnightBlue}{⦸}}}$\n", - "$\\def\\tcorecenter{\\underset{\\tiny\\mid}{\\textcolor{RedOrange}{⦿}}}$\n", - "$\\def\\tcoreright{\\underset{\\tiny\\mid}{\\textcolor{MidnightBlue}{\\oslash}}}$\n", - "

TMQS Workshop 2024 @ Zuse Institute Berlin

\n", - "

Summer School on Tensor Methods for Quantum Simulation

\n", - "

June 3 - 5, 2024

\n", - "

$\\tcoreleft - \\tcoreleft - \\tcoreleft - \\cdots - \\tcorecenter - \\cdots - \\tcoreright - \\tcoreright$

\n", - "
" - ] - }, - { - "cell_type": "markdown", - "id": "6f6cc702", - "metadata": {}, - "source": [ - "***" - ] - }, - { - "cell_type": "markdown", - "id": "74ce99d5-268a-4ad8-980b-de19d60b6be6", - "metadata": {}, - "source": [ - "## **Session 5 - Quantum Computing**" - ] - }, - { - "cell_type": "markdown", - "id": "e8441c54-ffd4-45b4-ab04-ff8cf85e6474", - "metadata": {}, - "source": [ - "***" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "8064c1e9-8abd-4164-b8d3-9580868e7489", - "metadata": {}, - "outputs": [], - "source": [ - "from qiskit.visualization import *\n", - "from qiskit.quantum_info import Statevector\n", - "from qiskit import QuantumCircuit, transpile\n", - "from qiskit_aer import AerSimulator" - ] - }, - { - "cell_type": "markdown", - "id": "58e53e61", - "metadata": {}, - "source": [ - "***" - ] - }, - { - "cell_type": "markdown", - "id": "a781c1c8", - "metadata": {}, - "source": [ - "## Exercise 4.1\n", - "\n", - "The qubit polar form is given by $|\\psi\\rangle = \\cos{\\frac{\\theta}{2}} |0\\rangle + e^{i \\varphi} \\sin{\\frac{\\theta}{2}} |1\\rangle$. \n", - "\n", - "The first two quantum logic gates, we consider in this exercise are the Hadamard gate $H$ and the phase shift gate $T$:\n", - "\n", - "$\\displaystyle H = \\frac{1}{\\sqrt{2}} \\begin{bmatrix} 1 & 1 \\\\ 1 & -1\\end{bmatrix} \\qquad $ and $ \\qquad \\displaystyle T = \\begin{bmatrix}1 & 0 \\\\ 0 & e^{i \\frac{\\pi}{4}}\\end{bmatrix}$\n", - "\n", - "When applied to a basis state $|0\\rangle$ or $|1\\rangle$, the Hadamard gate transforms the state as follows:\n", - "\n", - "$\\displaystyle H | 0 \\rangle = \\frac{1}{\\sqrt{2}} \\left( |0\\rangle + |1\\rangle\\right) \\qquad$ and $\\qquad \\displaystyle H | 1 \\rangle = \\frac{1}{\\sqrt{2}} \\left( |0\\rangle - |1\\rangle\\right)$\n", - "\n", - "The $T$ gate applies a phase factor to the state $|1\\rangle$, while leaving the state $|0\\rangle$ unchanged:\n", - "\n", - "$\\displaystyle T | 0 \\rangle = | 0 \\rangle \\qquad$ and $\\qquad \\displaystyle T | 1 \\rangle = e^{i \\frac{\\pi}{4}} | 1 \\rangle$" - ] - }, - { - "cell_type": "markdown", - "id": "ae96550c", - "metadata": {}, - "source": [ - "**a)** Create a quantum circuit consisting of one qubit by \n", - "\n", - "> qc = QuantumCircuit(1) \n", - "\n", - "and apply Hadamard gate and a T gate:\n", - "\n", - "> qc.h(0), qc.t(0)\n", - "\n", - "Draw the quantum circuit using \n", - "\n", - "> qc.draw(output='mpl') \n", - "\n", - "and plot the Bloch vector of the quantum state at each stage using\n", - "\n", - "> plot_bloch_multivector(Statevector(qc))\n", - "\n", - "Write down the polar form of the quantum state at each step of the circuit." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "39dbae6a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
   ┌───┐┌───┐\n",
-       "q: ┤ H ├┤ T ├\n",
-       "   └───┘└───┘
" - ], - "text/plain": [ - " ┌───┐┌───┐\n", - "q: ┤ H ├┤ T ├\n", - " └───┘└───┘" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "qc = QuantumCircuit(1)\n", - "state1 = Statevector(qc)\n", - "qc.h(0)\n", - "state2 = Statevector(qc)\n", - "qc.t(0)\n", - "state3 = Statevector(qc)\n", - "qc.draw() " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b0ca3bf3", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plot_bloch_multivector(state3,title='initial state')" - ] - }, - { - "cell_type": "markdown", - "id": "fc438d35", - "metadata": {}, - "source": [ - "$|\\psi_1\\rangle = | 0 \\rangle$, \n", - "$\\qquad |\\psi_2\\rangle = \\frac{1}{\\sqrt{2}}| 0 \\rangle + \\frac{1}{\\sqrt{2}}| 1 \\rangle$,\n", - "$\\qquad |\\psi_3\\rangle = \\frac{1}{\\sqrt{2}}| 0 \\rangle + \\frac{e^{i \\varphi}}{\\sqrt{2}}| 1 \\rangle$ with $\\varphi = \\frac{\\pi}{4}$\n" - ] - }, - { - "cell_type": "markdown", - "id": "47fc839a", - "metadata": {}, - "source": [ - "**b)** Now, we want to measure our qubit using\n", - "\n", - "> qc.measure_all()\n", - "\n", - "To do this, we choose a simulator backend, which is responsible for simulating the execution of the circuit. The simulator plays a crucial role in simulating the behavior of a quantum circuit. It allows you to run quantum circuits on a classical computer and obtain the expected outcomes of the circuit without requiring a physical quantum device. \n", - "\n", - "Here, we choose the qasm_simulator, which simulates the execution of the circuit using a classical computer and provides the measurement statistics:\n", - "\n", - "> simulator = Aer.get_backend('qasm_simulator')\n", - "\n", - "We then execute the circuit on the simulator by passing the circuit and the chosen backend to the execute function.\n", - "We also specify the number of shots to simulate, which determines the number of times the circuit is executed to obtain statistical results.\n", - "\n", - "> job = execute(qc, simulator, shots=10000)\n", - "\n", - "Finally, we get the results of the simulation using the result method, and extract the measurement statistics using the get_counts method:\n", - "\n", - "> result = job.result()\n", - "\n", - "> counts = result.get_counts(qc)\n", - "\n", - "The measurement statistics represent the probabilities of observing each possible measurement outcome, and are obtained by running the circuit multiple times and counting the number of times each outcome is observed.\n", - "The histogram of the counts data can be plotted by using\n", - "\n", - "> plot_histogram(counts)\n", - "\n", - "What happens if we measure the quantum state after the H gate, what if we measure after the T gate. Explain!" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "87b4920c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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hsrKytLnn3+ujz/+WKmpqZKkXr166bXXXlNUVFTNdhoAqsn58+d15MgRNW7cWF5eXjXdHVQDgiFuaC+++KLeeecdffDBB+rdu7ek4n8R//TTT3r99de1YsUKhYeH6/3331fHjh1rqssAUG1effVVrVy5Uvfdd586d+6sli1bqmHDhrJYLKWuk52dLX9/f7m5MVutNiIY4oZ2//33a9euXUpJSVHjxo1VUFAgNzc32e122Ww2py+/uXPn6qmnntLQoUO1ZMmSGuw1AFSP0NBQZWZmymKxyM/PT9HR0YqLi9Mdd9yhiIgIBQQEOLXPz8/X1KlTdfLkSS1cuFBmM/e41jbEedzQOnTooE8//VRnz56VJMdfuCaTyREKi84gPvnkk/r666+1ceNG/etf/1JERESN9RsAqtr+/fuVk5OjLl266OGHH9b69eu1bds2ffHFF2rcuLF69uyp2NhYdejQQTfffLP8/f31888/a8GCBerZsyehsJYiGOKGFhMTI0l65JFHNGfOHHXr1k0eHh7F2hUWFspisahly5Zau3atI0gCwJ/V/v37deHCBcXFxWns2LH6y1/+on379mnbtm3auHGjVq5cqffff1+33HKLevXqpbvuuksbNmxQbm6uRo4cWdPdRwVxKRk3tMLCQk2cOFF/+9vfFBkZqbFjx2rgwIFq2LBhsbanT5/W+PHjtXbtWv3+++810FsAqD4ff/yxEhIS9OGHHyohIcFRt1qtOnz4sHbv3q2vv/5aqamp+r//+z+5u7vLbrfL09NTp06dqsGe43oQDAFJ77zzjmbPnq1//etfCgkJ0YABA9S3b1+FhYXJYrHI399f8+bN0xtvvKExY8Zozpw5Nd1lAKhSdrtdv/zyi+rUqaOmTZuW+Kia/Px87d+/X/v27dOSJUu0fv16JSYm6n/+539qqNe4XgRDQJe/AA8cOKAFCxboww8/VEZGhiSpQYMGcnd31/Hjx2Wz2fTQQw9p1qxZCg0NreEeA0DNKSkkPvHEE5o/f76+//57dejQoYZ6hutFMASukJ+frx07dujzzz9XZmamfv/9d/n6+iohIUH333+/6tSpU9NdBACXYLPZZDabdejQId1zzz06ffq0jhw5UtPdwnXg5hPgCt7e3oqJiVFMTIysVqvc3d1ruksA4JKK7jw+duyYrFarxowZU8M9wvXijCEAALgudrtdGRkZql+/vry9vWu6O7gOBEMAAABIknj6JAAAACQRDAEAAGAgGAIAAEASwRAAAAAGgiEAAAAkEQwBAABgIBgCAABAEsEQAAAABoIhAAAAJEn/D6mLEt10AWbaAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create circuit\n", - "qc = QuantumCircuit(1)\n", - "qc.h(0)\n", - "#qc.t(0)\n", - "\n", - "# Measure the quantum state\n", - "qc.measure_all()\n", - "\n", - "# Choose a simulator backend\n", - "backend = AerSimulator()\n", - "\n", - "# Simulate the circuit\n", - "result = backend.run(transpile(qc, backend), shots=10000).result()\n", - "\n", - "# get results\n", - "counts = result.get_counts(qc)\n", - "plot_histogram(counts)\n" - ] - }, - { - "cell_type": "markdown", - "id": "255d1b1d", - "metadata": {}, - "source": [ - "**c)** How can we measure the relative phase $\\varphi$?\n", - "\n", - "*Hint:* We need just one additional gate." - ] - }, - { - "cell_type": "markdown", - "id": "3273c242", - "metadata": {}, - "source": [ - "If we apply another Hadamard gate, we obtain the state $|\\psi_4\\rangle = \\frac{1}{2} \\left( (1 + e^{i \\varphi}) |0\\rangle + (1 - e^{i \\varphi}) |0\\rangle \\right)$.\n", - "\n", - "The probabilities of measuring 0 and 1 are given by\n", - "\n", - "$\\displaystyle \\text{Pr}(0) = \\left|\\frac{1 + e^{i \\varphi}}{2}\\right|^2 = \\frac{(1+e^{-i \\varphi})(1+e^{i \\varphi})}{4} = \\frac{2+e^{i \\varphi} + e^{-i \\varphi}}{4} = \\frac{2+ 2\\text{Re} (e^{i \\varphi})}{4} = \\frac{1+ \\cos (\\varphi)}{2}$\n", - "\n", - "and\n", - "\n", - "$\\displaystyle \\text{Pr}(1) = \\frac{1 - \\cos (\\varphi)}{2}$.\n", - "\n", - "Let's measure the qubit:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "677cd914", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnMAAAHHCAYAAADUA97wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHQUlEQVR4nO3deVzVVf7H8fflgoAgYAZoKhouaC6Bmlu44AKJ2ea4l5mlTrtpm9a41KQtVjqljVmpU/kTzTZLxX0rLVPJqVwQQ1BAxQXEBVnu7w+HO17ZLpeL8B1fz8eDx6N7vuee7+c4Xubtud/z/ZosFotFAAAAMCSXyi4AAAAAjiPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMATCE7t27q3v37tbXiYmJMplMWrBgQaXVBABVAWEOgFMtWLBAJpPJ5icgIEARERFauXJlpdW1fPlydevWTQEBAapevbqCg4M1cOBArVq1ytonJSVFU6ZMUVxcnMPnWbFihaZMmVL+gg3mjz/+0JQpU5SYmFjZpQDXHcIcgArxyiuv6NNPP9W//vUvPf/88zpx4oSio6P13XffXfNaZsyYobvuuksmk0kTJkzQu+++q/79+ys+Pl6LFy+29ktJSdHUqVPLHeamTp3qhKqN5Y8//tDUqVMJc0AlcK3sAgD8b+rTp4/atWtnff3www8rMDBQ//d//6c777zzmtWRm5urV199Vb1799bq1asLHT9+/Pg1qwUAKgIrcwCuCT8/P3l6esrV1fbfkPn5+Zo5c6ZatGghDw8PBQYGasyYMTp9+rRTzpuenq7MzEzdfvvtRR4PCAiQJG3cuFG33XabJOmhhx6yfkVccE3eli1bNGDAAAUFBcnd3V3169fXM888owsXLljHGjFihGbPni1JNl8zO2uu+/bt08CBA+Xv7y9PT0+FhITopZdesumze/du9enTRz4+PvL29lbPnj21fft2mz5TpkyxqatAwVfkV66uNWzYUHfeeae2bt2q9u3by8PDQ8HBwfrXv/5l874BAwZIkiIiIqzz3rhxoyTpl19+UVRUlG688UZ5enrq5ptv1siRI+2aM4DSsTIHoEJkZGQoPT1dFotFx48f13vvvaesrCzdf//9Nv3GjBmjBQsW6KGHHtJTTz2lP//8U++//752796tH374QW5ubuWqIyAgQJ6enlq+fLmefPJJ3XDDDUX2a968uV555RVNmjRJo0ePVpcuXSRJnTt3liQtXbpU58+f16OPPqpatWrp559/1nvvvacjR45o6dKl1rmkpKRozZo1+vTTTwudozxz3bNnj7p06SI3NzeNHj1aDRs2VEJCgpYvX67XXntNkvT777+rS5cu8vHx0fPPPy83NzfNnTtX3bt316ZNm9ShQweH/gwPHjyov/zlL3r44Yf14IMP6pNPPtGIESPUtm1btWjRQl27dtVTTz2lf/zjH5o4caKaN29u/TM9fvy4IiMj5e/vrxdffFF+fn5KTEzUl19+6VAtAIpgAQAnmj9/vkVSoR93d3fLggULbPpu2bLFIsny+eef27SvWrWqUHu3bt0s3bp1s77+888/LZIs8+fPL7WmSZMmWSRZvLy8LH369LG89tprlp07dxbqt2PHjmLHPH/+fKG26dOnW0wmk+Xw4cPWtscff9xS1K/Wssy1KF27drXUqFHD5lwWi8WSn59v/e977rnHUq1aNUtCQoK1LSUlxVKjRg1L165drW2TJ08ussaC/+3+/PNPa1uDBg0skiybN2+2th0/ftzi7u5uGT9+vLVt6dKlFkmWDRs22Iz51VdfWSRZduzYUeL8ADiOr1kBVIjZs2drzZo1WrNmjT777DNFRETokUcesVmRWbp0qXx9fdW7d2+lp6dbf9q2bStvb29t2LDBKbVMnTpVixYtUlhYmGJjY/XSSy+pbdu2atOmjfbu3WvXGJ6entb/PnfunNLT09W5c2dZLBbt3r271PeXZ64nTpzQ5s2bNXLkSAUFBdkcK/i6NC8vT6tXr9Y999yj4OBg6/E6depo6NCh2rp1qzIzM+2a69VuueUW60qlJPn7+yskJESHDh0q9b1+fn6SpO+++045OTkOnR9AyfiaFUCFaN++vc0GiCFDhigsLExPPPGE7rzzTlWrVk3x8fHKyMiwXrd2tbJsTrhw4YIyMjJs2mrXrm1z/iFDhigzM1M//fSTFixYoEWLFqlfv3767bff5OHhUeL4SUlJmjRpkr799ttC17hdfd6ilGeuBaGpZcuWxfY5ceKEzp8/r5CQkELHmjdvrvz8fCUnJ6tFixal1nq1qwOkJNWsWdOua/26deum/v37a+rUqXr33XfVvXt33XPPPRo6dKjc3d3LXAuAwghzAK4JFxcXRUREaNasWYqPj1eLFi2Un5+vgIAAff7550W+x9/f3+7xY2Ji9NBDD9m0WSyWQv18fHzUu3dv9e7dW25ublq4cKF++ukndevWrdix8/Ly1Lt3b506dUovvPCCmjVrJi8vLx09elQjRoxQfn5+qfU5c67lVdTmB+nyPItiNpuLbC/qz7eoc33xxRfavn27li9frtjYWI0cOVJvv/22tm/fLm9vb/sLB1AkwhyAayY3N1eSlJWVJUlq1KiR1q5dq9tvv93ma0xHREVFac2aNWV6T7t27bRw4UKlpqZKKj7k/Pvf/9aBAwe0cOFCDR8+3Npe1PmKG6M8cy342vS3334rto+/v7+qV6+u/fv3Fzq2b98+ubi4qH79+pIur6pJ0pkzZ6xfg0rS4cOHy1TXlYqbd4GOHTuqY8eOeu2117Ro0SINGzZMixcv1iOPPOLwOQFcxjVzAK6JnJwcrV69WtWqVbPudhw4cKDy8vL06quvFuqfm5urM2fO2D1+nTp11KtXL5sfSTp//ry2bdtW5HsKnkhR8NWkl5eXJBU6b8HK1JUrURaLRbNmzSo0ZnFjlGeu/v7+6tq1qz755BMlJSXZHCuoyWw2KzIyUt98843NrUWOHTumRYsWKTw8XD4+PpIuB0tJ2rx5s7XfuXPntHDhwmJrKE1x8z59+nShFbzQ0FBJUnZ2tsPnA/BfrMwBqBArV67Uvn37JF2+HmzRokWKj4/Xiy++aA0V3bp105gxYzR9+nTFxcUpMjJSbm5uio+P19KlSzVr1iz95S9/KVcd58+fV+fOndWxY0fdcccdql+/vs6cOaOvv/5aW7Zs0T333KOwsDBJl0OOn5+f/vnPf6pGjRry8vJShw4d1KxZMzVq1EjPPvusjh49Kh8fHy1btqzIa8batm0rSXrqqacUFRUls9mswYMHl3uu//jHPxQeHq42bdpo9OjRuvnmm5WYmKjvv//e+sSKv//971qzZo3Cw8P12GOPydXVVXPnzlV2drbefPNN61iRkZEKCgrSww8/rOeee05ms1mffPKJ/P39C4VFe4WGhspsNuuNN95QRkaG3N3d1aNHDy1atEhz5szRvffeq0aNGuns2bOaN2+efHx8FB0d7dC5AFylEnfSAvgfVNStSTw8PCyhoaGWDz74wOZWGgU+/PBDS9u2bS2enp6WGjVqWFq1amV5/vnnLSkpKdY+jt6aJCcnxzJv3jzLPffcY2nQoIHF3d3dUr16dUtYWJjlrbfesmRnZ9v0/+abbyy33HKLxdXV1Wb8P/74w9KrVy+Lt7e35cYbb7SMGjXK8uuvvxaqITc31/Lkk09a/P39LSaTqdAtQOyZa3F+++03y7333mvx8/OzeHh4WEJCQix/+9vfbPrs2rXLEhUVZfH29rZUr17dEhERYfnxxx8LjbVz505Lhw4dLNWqVbMEBQVZ3nnnnWJvTdK3b99C77/6fw+LxWKZN2+eJTg42GI2m623Kdm1a5dlyJAhlqCgIIu7u7slICDAcuedd1p++eWXUucLwD4mi8WOK1gBAABQJXHNHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwLhpsJ3y8/OVkpKiGjVqlPrYGgAAgPKyWCw6e/asbrrpJrm4FL/+RpizU0pKivW5hgAAANdKcnKy6tWrV+xxwpydatSoIenyH2jBo4gAAAAqSmZmpurXr2/NIMUhzNmp4KtVHx8fwhwAALhmSru8iw0QAAAABkaYAwAAMDDCHKqc2bNnq2HDhvLw8FCHDh30888/l9h/5syZCgkJkaenp+rXr69nnnlGFy9etB6fMmWKTCaTzU+zZs1sxhgzZowaNWokT09P+fv76+6779a+ffsqZH4AADgTYQ5VSkxMjMaNG6fJkydr165duvXWWxUVFaXjx48X2X/RokV68cUXNXnyZO3du1cff/yxYmJiNHHiRJt+LVq0UGpqqvVn69atNsfbtm2r+fPna+/evYqNjZXFYlFkZKTy8vIqbK4AADiDyWKxWCq7CCPIzMyUr6+vMjIy2ABRgTp06KDbbrtN77//vqTL9/erX7++nnzySb344ouF+j/xxBPau3ev1q1bZ20bP368fvrpJ2tgmzJlir7++mvFxcXZXceePXt066236uDBg2rUqFH5JgUAgAPszR6szKHKuHTpknbu3KlevXpZ21xcXNSrVy9t27atyPd07txZO3futH4Ve+jQIa1YsULR0dE2/eLj43XTTTcpODhYw4YNU1JSUrF1nDt3TvPnz9fNN9/MvQUBAFUeYQ5VRnp6uvLy8hQYGGjTHhgYqLS0tCLfM3ToUL3yyisKDw+Xm5ubGjVqpO7du9t8zdqhQwctWLBAq1at0gcffKA///xTXbp00dmzZ23GmjNnjry9veXt7a2VK1dqzZo1qlatmvMnCgCAExHmYGgbN27UtGnTNGfOHO3atUtffvmlvv/+e7366qvWPn369NGAAQPUunVrRUVFacWKFTpz5oyWLFliM9awYcO0e/dubdq0SU2bNtXAgQNtNlIAAFAVcdNgVBk33nijzGazjh07ZtN+7Ngx1a5du8j3/O1vf9MDDzygRx55RJLUqlUrnTt3TqNHj9ZLL71U5LPs/Pz81LRpUx08eNCm3dfXV76+vmrSpIk6duyomjVr6quvvtKQIUOcNEMAAJyPlTlUGdWqVVPbtm1tNjPk5+dr3bp16tSpU5HvOX/+fKHAZjabJV1+QHFRsrKylJCQoDp16hRbi8VikcViUXZ2dlmnAQDANcXKHKqUcePG6cEHH1S7du3Uvn17zZw5U+fOndNDDz0kSRo+fLjq1q2r6dOnS5L69eund955R2FhYerQoYMOHjyov/3tb+rXr5811D377LPq16+fGjRooJSUFE2ePFlms9m64nbo0CHFxMQoMjJS/v7+OnLkiF5//XV5enoW2kgBAEBVQ5hDlTJo0CCdOHFCkyZNUlpamkJDQ7Vq1SrrpoikpCSblbiXX35ZJpNJL7/8so4ePSp/f3/169dPr732mrXPkSNHNGTIEJ08eVL+/v4KDw/X9u3b5e/vL0ny8PDQli1bNHPmTJ0+fVqBgYHq2rWrfvzxRwUEBFzbPwAAAMqI+8zZifvMAQCAa4n7zAEAAFwHCHMAAAAGRpgDAAAwMMIcAACAgRHmAAAADIwwBwAAYGCEOQAAAAMjzAEAABgYYQ4AAMDACHMAAAAGRpgDAAAwMMIcAACAgRHmAAAADIwwBwAAYGCEOQAAAAMjzAEAABgYYQ4AAMDACHMAAAAGRpgDAAAwMNfKLgC2Rs2s7AqA/5o3trIrAACUhpU5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMrMqGuR07dig6Olp+fn7y8vJSx44dtWTJkjKNkZKSoqefflq33HKLvLy8FBgYqPDwcH366afKy8uroMoBAACuHdfKLqAoGzZsUFRUlDw8PDR48GDVqFFDy5Yt06BBg5ScnKzx48eXOsahQ4fUoUMHnTx5UlFRUerXr58yMzP19ddfa/jw4Vq/fr3mz59/DWYDAABQcUwWi8VS2UVcKTc3V82aNdORI0e0fft2hYaGSpIyMjLUvn17JSYm6sCBA2rQoEGJ4zz22GP64IMPNHPmTD399NPW9jNnzujWW29VUlKSEhMTSx2nQGZmpnx9fZWRkSEfHx+H51eaUTMrbGigzOaNrewKAOD6ZW/2qHJfs65fv14JCQkaOnSoNchJkq+vryZOnKhLly5p4cKFpY5z6NAhSVJ0dLRNu5+fn8LDwyVJ6enpziscAACgElS5MLdx40ZJUmRkZKFjUVFRkqRNmzaVOk7Lli0lSStWrLBpP3PmjH744QfVrl1bt9xySzmrBQAAqFxV7pq5+Ph4SVKTJk0KHatdu7a8vb2tfUry3HPPafny5XrmmWe0atUqtW7d2nrNXPXq1fXVV1/J09Oz2PdnZ2crOzvb+jozM1OSlJOTo5ycHEmSi4uLzGaz8vLylJ+fb+1b0J6bm6srv8U2m81ycXEptv3yuG6lzg24Vgr+rhdwdb38KyM3N9em3c3NTfn5+TYbi0wmk1xdXYttL+5z49zPU+m1MyfmxJyYU1Wekz2qXJjLyMiQdPlr1aL4+PhY+5QkMDBQ27Zt0/3336+VK1dq1apVkiRPT0/99a9/1a233lri+6dPn66pU6cWal+9erWqV68uSQoKClJYWJj27NmjpKQka5+QkBA1a9ZMP//8s06cOGFtDw0NVYMGDbR582adPXvW2t6pUycFBARo9erVkvqWOjfgWrl6ZTs6OloXLlzQhg0brG2urq7q27ev0tPTtW3bNmt7jRo11KNHDyUnJysuLs7a7u/vr86dOys+Pl779++3tlfE5+nKX4QRERHy9PRkTsyJOTEnw8xp586dskeV2wARGRmpNWvWKD4+Xo0bNy50vG7dusrKyio10B08eFD9+vWTt7e33n33XYWGhurMmTP67LPP9PLLL6t9+/basmWLzGZzke8vamWufv36Sk9Pt16EWBH/SnhsNitzqDrmPM7KHHNiTsyJOVXWnE6dOqVatWqVugGiyq3MFazIFRfWMjMzVbNmzVLHGTFihA4fPqxDhw6pdu3akiRvb2+9+OKLOnbsmGbOnKnFixdr2LBhRb7f3d1d7u7uhdrd3Nzk5mYbuMxmc5GhsOAvgL3tV48LVLbi/k4W1e7i4iIXl8KX4RbXXtznpqI/T8yJOTEn5lRcjWVtr6w5FTqfXb2uoYJr5Yq6Li4tLU1ZWVlFXk93pbNnz+qHH35Q8+bNrUHuShEREZKk3bt3O6FiAACAylPlwly3bt0k6T/Xj9mKjY216VOcS5cuSSr+1iMF36kXtfIGAABgJFUuzPXs2VPBwcFatGiRzcWDGRkZmjZtmqpVq6bhw4db21NTU7Vv3z6br2Vr1aqlkJAQJSUl6aOPPrIZ/8yZM5oxY4ak/67QAQAAGFWVC3Ourq766KOPlJ+fr65du2r06NEaP368br31Vh04cEDTpk1Tw4YNrf0nTJig5s2b66uvvrIZ591335Wrq6tGjRqlXr166bnnntMjjzyipk2bat++ferfv7969ep1jWcHAADgXFVuA4R0ecVs69atmjx5smJiYpSTk6NWrVrpjTfe0KBBg+wao0+fPvrxxx/11ltvaevWrdq0aZM8PDzUvHlzTZo0SY8++mgFzwIAAKDiVblbk1RVPJsV1yOezQoAlcewz2YFAACA/QhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADczjM3XLLLXr33Xd18uRJZ9YDAACAMnA4zCUlJenZZ59VvXr1NGTIEK1fv96ZdQEAAMAODoe5tLQ0zZkzRy1btlRMTIx69+6txo0b6/XXX1daWpozawQAAEAxHA5z3t7eGjNmjHbs2KFff/1Vjz32mE6fPq2JEycqKChI9913n1auXCmLxeLMegEAAHAFp2yAaNWqld577z2lpKTo008/VXh4uL755hvdeeedatCggaZOnaqjR48641QAAAC4glN3s7q7uysqKkrR0dGqXbu2LBaLjhw5oqlTpyo4OFiPP/64zp8/78xTAgAAXNecFuZWr16tgQMHql69enrhhRdkMpn0t7/9TQcPHtSSJUvUpk0b/fOf/9Tjjz/urFMCAABc91zL8+ajR4/qk08+0fz583X48GFJUmRkpMaMGaN+/frJbDZLkoKDg/WXv/xF/fr10zfffFP+qgEAACCpHGHuzjvvVGxsrPLy8hQYGKgXXnhBo0ePVsOGDYt9T+fOnbVixQpHTwkAAICrOBzmVqxYoR49emjMmDG699575epa+lD9+vXTTTfd5OgpAQAAcBWHw9yBAwfUuHHjMr2nZcuWatmypaOnBAAAwFUc3gAxbdo0ffvttyX2+e677zRy5EhHTwEAAIBSOBzmFixYoLi4uBL7/Prrr1q4cKGjpwAAAEApnHqfuatdvHjRrmvpAAAA4JhyJS2TyVRku8ViUXJyslauXMmGBwAAgApUppU5FxcXmc1m6/3jpkyZYn195Y+rq6tuvvlm7dq1S4MHD66QwgEAAFDGlbmuXbtaV+M2b96soKCgIu8rZzabdcMNN6hHjx4aNWqUUwoFAABAYWUKcxs3brT+t4uLix566CFNmjTJ2TUBAADATg5fM5efn+/MOgAAAOCACt3NCgAAgIpl98rcyJEjZTKZNG3aNAUGBtp9M2CTyaSPP/64zIXt2LFDkydP1o8//qicnBy1atVK48aN08CBA8s0zvHjxzV9+nR99913Sk5OlpeXl5o2barhw4fr0UcfLXNdAAAAVYnJYrFY7Ono4uIik8mkvXv3qmnTpnJxsW9Rz2QyKS8vr0xFbdiwQVFRUfLw8NDgwYNVo0YNLVu2TIcPH9aMGTM0fvx4u8aJi4tTZGSkTp8+rb59+6p58+bKysrS3r17Va1aNa1YscLumjIzM+Xr66uMjAz5+PiUaT5lMWpmhQ0NlNm8sZVdAQBcv+zNHnaHucOHD0uS6tatK1dXV+trezRo0MDuvrm5uWrWrJmOHDmi7du3KzQ0VJKUkZGh9u3bKzExUQcOHCh1zMzMTLVq1UoXLlzQ2rVr1bp160LnKcsNjQlzuB4R5gCg8tibPexOM1eHp7IEtLJYv369EhIS9NBDD1mDnCT5+vpq4sSJGjFihBYuXFjqLto5c+YoKSlJH3/8caEgJ4knUwAAgP8JVS7RFNz+JDIystCxqKgoSdKmTZtKHScmJkYmk0n9+/fX/v37tXr1al24cEHNmjXTHXfcoWrVqjm1bgAAgMpgd5hLSkpy+CRBQUF2942Pj5ckNWnSpNCx2rVry9vb29qnOJcuXdK///1v+fv767333tPkyZNtbqUSHBysr7/+Wq1atSp2jOzsbGVnZ1tfZ2ZmSpJycnKUk5Mj6b9PxMjLy7MZv6A9NzdXV36LbTab5eLiUmz75XHdSpwbcC0V/F0vULCinZuba9Pu5uam/Px8m+tjTSaTXF1di20v7nPj3M9T6bUzJ+bEnJhTVZ6TPewOcw0bNiz2WawlMZlMdhcjXb42Trr8tWpRfHx8rH2Kc+rUKeXl5enkyZN65ZVX9Oabb+qBBx5QTk6O5s6dq7///e/q16+f9u3bJw8PjyLHmD59uqZOnVqoffXq1apevbqkyyE1LCxMe/bssQm7ISEhatasmX7++WedOHHC2h4aGqoGDRpo8+bNOnv2rLW9U6dOCggI0OrVqyX1LXFuwLV09Sah6OhoXbhwQRs2bLC2ubq6qm/fvkpPT9e2bdus7TVq1FCPHj2UnJysuLg4a7u/v786d+6s+Ph47d+/39peEZ+nK3/3REREyNPTkzkxJ+bEnAwzp507d8oedm+AGDFihENhTpLmz59vd9/IyEitWbNG8fHxaty4caHjdevWVVZWVomBLiUlRXXr1pUkPf3005o5c6bN8UGDBmnJkiX69NNPdf/99xc5RlErc/Xr11d6err1IsSK+FfCY7NZmUPVMedxVuaYE3NiTsypsuZ06tQp1apVy3kbIBYsWGBv13IpWJErLqxlZmaqZs2ado0hSXfddVeh43fddZeWLFmiX375pdgw5+7uLnd390Ltbm5ucnOzDVxms1lms7lQ3+I2WRTXfvW4QGUr7u9kUe0uLi5F3rKouPbiPjcV/XliTsyJOTGn4mosa3tlzanQ+ezqdQ0VXCtX1HVxaWlpysrKKvJ6uit5eXlZV+b8/PwKHS9ou3DhQvmKBQAAqGRVLsx169ZNkv5z/Zit2NhYmz4l6dGjhyTpjz/+KHSsoK1hw4aOlgkAAFAl2H3N3LV6nFdubq5CQkJ09OjRYm8avH//fmsQS01NVUZGhurUqWPz9eqPP/6o22+/XS1atNDWrVutq3FpaWlq166dUlNTrU+zsAc3Dcb1iJsGA0DlcfoTIKrq47wKbiI8f/58jRgxwmac8ePH65133lH9+vXVr18/5eTk6JtvvtHx48c1bdo0TZgwwe6aCHO4HhHmAKDyOP0JEH/++ackWa9FK3hdESIiIrR161ZNnjxZMTExysnJUatWrfTGG29o0KBBdo/z9ttvq1WrVpo9e7YWLFggk8mksLAw/fOf/9S9995bYfUDAABcK3avzF3vWJnD9YiVOQCoPPZmjyq3AQIAAAD2K3eY++qrr3T33XcrKChIvr6+CgoK0j333KOvv/7aCeUBAACgJHZfM3e13NxcDR06VMuWLZPFYpGrq6tq1aqltLQ0ffvtt1q+fLn69++vRYsW2X3TOwAAAJSNwytz06dP1xdffKEuXbpoy5YtunjxolJTU3Xx4kVt3rxZ4eHhWrZsmV5//XVn1gsAAIArOLwBIjg4WB4eHtqzZ0+RK285OTlq3bq1srOzdejQoXIXWtnYAIHrERsgAKDyVPgGiNTUVPXr16/EZ57169dPqampjp4CAAAApXA4zNWvX19ZWVkl9jl37pyCgoIcPQUAAABK4XCYe+SRR7RkyZJiV96OHj2qmJgYPfLIIw4XBwAAgJLZvc00KSnJ5vXAgQP1ww8/KCwsTGPHjlV4eLgCAwN17NgxbdmyRbNmzVJ4eLgGDBjg9KIBAABwWZmfzXo1i8VSbHvB+3Jzc8tZZuVjAwSuR2yAAIDK4/Rnsw4fPrzI0AYAAIDKY3eYW7BgQQWWAQAAAEfwbFYAAAADI8wBAAAYWLkemnr27Fm9//77Wrt2rVJSUpSdnV2oj8lkUkJCQnlOAwAAgGI4HOZOnDihzp07KyEhQT4+PtYdF5cuXdKFCxckSTfddJPc3NycViwAAABsOfw165QpU5SQkKB//etfOn36tCTpmWee0blz5/TTTz+pffv2atiwoX7//XenFQsAAABbDoe5FStWqGfPnrr//vsL3bLktttu08qVK5WYmKipU6eWu0gAAAAUzeEwl5qaqrCwMOtrs9ls/XpVkmrWrKk+ffpoyZIl5asQAAAAxXI4zPn6+ionJ8f6umbNmjpy5IhNHx8fHx07dszx6gAAAFAih8NccHCwEhMTra/DwsK0Zs0anTx5UpJ04cIFLV++XEFBQeUuEgAAAEVzOMxFRkZq3bp1On/+vCRpzJgxOn78uG699VYNGDBALVu2VEJCgkaMGOGsWgEAAHAVh8PcX//6V82bN88a5u677z699dZbOnfunJYtW6a0tDSNGzdOzz33nNOKBQAAgC2TxWKxOHPAvLw8paenKyAgoNAuVyMruI9eRkaGfHx8Kuw8o2ZW2NBAmc0bW9kVAMD1y97sUa4nQBTFbDYrMDDQ2cMCAACgCOUOc6mpqVq8eLF2796tjIwM+fr6KiwsTIMHD1adOnWcUSMAAACKUa4wN3v2bD333HPKzs7Wld/WfvbZZ3rppZc0Y8YMPfbYY+UuEgAAAEVzOMwtXrxYTz75pG688Ua99NJL6tKliwIDA3Xs2DFt3rxZs2bNsh4fOHCgM2sGAADAfzi8AaJNmzY6cuSI4uLidNNNNxU6fuTIEYWFhSkoKEg7d+4sd6GVjQ0QuB6xAQIAKo+92cPhW5Ps3btXAwcOLDLISVK9evU0YMAA7d2719FTAAAAoBQOhzk/Pz95eXmV2Mfb21t+fn6OngIAAAClcDjM3XXXXVq+fLlyc3OLPJ6Tk6Ply5fr7rvvdrg4AAAAlMzhMPfmm2/Ky8tLkZGR2r59u82xbdu2KTIyUjVq1NDrr79e7iIBAABQNLt3swYHBxdqu3Tpknbt2qXbb79drq6uuvHGG5Wenm5dratTp47atGmjhIQE51UMAAAAK7vDXH5+fqHHc7m5uSkoKMim7eoNEfn5+eUoDwAAACWxO8wlJiZWYBkAAABwhMPXzAEAAKDylfvZrJKUm5ur/fv3KzMzUz4+PgoJCZGrq1OGBgAAQAnKtTJ36tQpjRo1Sr6+vmrdurXCw8PVunVr+fn5afTo0Tp58qSz6gQAAEARHF4+O3XqlDp27KiDBw/qhhtuUJcuXVSnTh2lpaXpl19+0UcffaRNmzZp27ZtuuGGG5xZMwAAAP7D4ZW5V199VQcPHtRzzz2nw4cPa9WqVZo/f75Wrlypw4cP64UXXlB8fLxee+01Z9YLAACAK5gsFovFkTcGBwerYcOGWr9+fbF9evToocTERB06dMjhAqsKex92W16jZlbY0ECZzRtb2RUAwPXL3uzh8MpcSkqKOnXqVGKfTp06KSUlxdFTAAAAoBQOhzlfX18dPny4xD6HDx+Wr6+vo6cAAABAKRwOc926ddPSpUu1du3aIo+vW7dOS5cuVffu3R09BQAAAErh8G7WyZMn6/vvv1dUVJSio6PVrVs3BQYG6tixY9q4caNWrlyp6tWra9KkSc6sFwAAAFdwOMy1aNFCsbGxGjFihL7//nt9//33MplMKthP0ahRIy1YsEAtWrRwWrEAAACwVa7HNISHhys+Pl4//PCDdu/ebX0CRFhYmG6//XaZTCZn1QkAAIAiOBzmRo4cqVatWumZZ55ReHi4wsPDnVkXAAAA7ODwBohFixbp+PHjzqwFAAAAZeRwmGvUqJFSU1OdWQsAAADKyOEwN3LkSH3//fc6evSoM+sBAABAGTh8zVz//v21YcMGde7cWc8//7xuu+02BQYGFrnpISgoqFxFAgAAoGgOh7ng4GDrrUieeuqpYvuZTCbl5uY6ehoAAACUwOEwN3z4cG49AgAAUMkcDnMLFixwYhkAAABwhMMbIAAAAFD5yvUECEnKzs7WihUrtHv3bmVkZMjX11dhYWGKjo6Wu7u7M2oEAABAMcoV5r799luNHj1aJ06csD6TVbq86SEgIEAffvih+vXrV+4iAQAAUDSHw9y6devUv39/mc1mjRw5Ul26dFFgYKCOHTumzZs367PPPtN9992n2NhY9ejRw5k1AwAA4D9MliuX1MogPDxce/bs0Y8//qiWLVsWOr5nzx7dfvvtCg0N1ZYtW8pdaGXLzMyUr6+vMjIy5OPjU2HnGTWzwoYGymze2MquAACuX/ZmD4c3QOzevVuDBg0qMshJUuvWrTVw4EDt2rXL0VMAAACgFA6HuerVq8vf37/EPgEBAapevbqjpwAAAEApHA5zvXr10tq1a0vss3btWvXu3dvRUwAAAKAUDoe5GTNm6Pjx4xo+fLiSk5NtjiUnJ+uBBx5Qenq6ZsyYUe4iAQAAUDSHd7M+8MADqlmzpj7//HMtXrxYQUFB1t2sSUlJysvLU+vWrXX//ffbvM9kMmndunXlLhwAAADlCHMbN260/ndubq4OHTqkQ4cO2fT59ddfC72P57kCAAA4j8Nfs+bn5zv0k5eXZ9f4O3bsUHR0tPz8/OTl5aWOHTtqyZIljpar06dPq27dujKZTLrjjjscHgcAAKAqKffjvCrChg0bFBUVJQ8PDw0ePFg1atTQsmXLNGjQICUnJ2v8+PFlHvOJJ55QRkZGBVQLAABQeRxembtaUlKSNm/eXO5xcnNzNWrUKLm4uGjz5s368MMP9fbbb+vXX39V06ZNNXHiRB0+fLhMYy5btkyLFi3SG2+8Ue76AAAAqhKnhbn58+crIiKi3OOsX79eCQkJGjp0qEJDQ63tvr6+mjhxoi5duqSFCxfaPd6JEyf06KOP6oEHHlDfvn3LXR8AAEBV4rQw5ywFGysiIyMLHYuKipIkbdq0ye7x/vrXv8psNmvWrFlOqQ8AAKAqqXLXzMXHx0uSmjRpUuhY7dq15e3tbe1Tms8++0xffvmlvv76a9WsWbNM18xlZ2crOzvb+jozM1OSlJOTo5ycHEmSi4uLzGaz8vLylJ+fb+1b0J6bm6srH31rNpvl4uJSbPvlcd3srhGoaAV/1wu4ul7+lZGbm2vT7ubmVmiDk8lkkqura7HtxX1unPt5Kr125sScmBNzqspzskeVC3MFgcvX17fI4z4+PnaFspSUFD311FMaMmSI7r777jLXMX36dE2dOrVQ++rVq62PKAsKClJYWJj27NmjpKQka5+QkBA1a9ZMP//8s06cOGFtDw0NVYMGDbR582adPXvW2t6pUycFBARo9erVkvgqGFXHihUrbF5HR0frwoUL2rBhg7XN1dVVffv2VXp6urZt22Ztr1Gjhnr06KHk5GTFxcVZ2/39/dW5c2fFx8dr//791vaK+Dxd+YswIiJCnp6ezIk5MSfmZJg57dy5U/YwWa6Mq+Uwc+ZMzZo1S3/++We5xomMjNSaNWsUHx+vxo0bFzpet25dZWVllRrooqOjtXPnTv3++++68cYbJUmJiYm6+eabFRUVpVWrVpX4/qJW5urXr6/09HT5+PhIqph/JTw2m5U5VB1zHmdljjkxJ+bEnCprTqdOnVKtWrWUkZFhzR5FcdrK3NixYzV27Nhyj1OwIldcWMvMzFTNmjVLHGPhwoVauXKlli5dag1yZeXu7i53d/dC7W5ubnJzsw1cZrNZZrO5UN+CvwD2tl89LlDZivs7WVS7i4uLXFwKX4ZbXHtxn5uK/jwxJ+bEnJhTcTWWtb2y5lTofHb1uoYKrpUr6rq4tLQ0ZWVlFXk93ZV2794tSRowYIBMJpP15+abb5YkxcbGymQy2eyWBQAAMCK7V+YK7iHXvn17eXh4lOmecl27drW7b7du3TR9+nStXr1agwcPtjkWGxtr7VOSTp06KSsrq1B7VlaWYmJiVK9ePUVFRSkoKMjuugAAAKoiu6+Zc3Fxkclk0t69e9W0aVPra3vY+wgv6fJ30iEhITp69Ki2b99uXT3LyMhQ+/btlZiYqP3796thw4aSpNTUVGVkZKhOnTrFbpooUJZr5q6WmZkpX1/fUr+3Lq9RMytsaKDM5o2t7AoA4Pplb/awe2Vu0qRJMplM1mvQCl47m6urqz766CNFRUWpa9euNo/zOnz4sGbMmGENcpI0YcIELVy4UPPnz9eIESOcXg8AAEBVZneYmzJlSomvnSkiIkJbt27V5MmTFRMTo5ycHLVq1UpvvPGGBg0aVGHnBQAAMBqn3Zrkfx1fs+J6xNesAFB57M0eDu9mPXv2rA4dOlToPi0xMTEaNmyYHn74Ye3atcvR4QEAAGAHh+8z9/zzz+uzzz7TsWPHrPde+eCDD/TEE09Yb863ePFi7dy5U82aNXNOtQAAALDh8Mrcpk2b1KtXL+ujrSTp9ddfV926dbV582YtWbJEFotFb731llMKBQAAQGEOr8ylpqbqjjvusL7eu3evkpOT9eabbyo8PFyS9MUXX5TpfnQAAAAoG4dX5rKzs1WtWjXr602bNslkMikyMtLaFhwcrKNHj5avQgAAABTL4TBXr1497dmzx/r6u+++0w033KDWrVtb206ePClvb+/yVQgAAIBiOfw1a58+fTR79mw9++yz8vDw0KpVqzR8+HCbPgcOHOCRWQAAABXI4TA3YcIELV++XO+8844kqU6dOnrllVesx48fP64ffvhBTzzxRPmrBAAAQJEcDnO1a9fW77//rnXr1kmSunbtanNDu/T0dL311luKiooqf5UAAAAoksNhTpI8PT115513Fnnslltu0S233FKe4QEAAFAKhzdAAAAAoPKVa2UuLy9PS5Ys0dq1a5WSkqLs7OxCfUwmk/WrWAAAADiXw2Hu3LlzioyM1Pbt22WxWGQymayP8ZJkfW0ymZxSKAAAAApz+GvWv//979q2bZumTp2q9PR0WSwWTZkyRampqYqJiVFwcLAGDBhQ5GodAAAAnMPhMPfll1+qY8eOevnll3XDDTdY2wMDAzVgwABt2LBBa9eu5dmsAAAAFcjhMJeUlKSOHTv+dyAXF5tVuHr16qlv375auHBh+SoEAABAsRwOc15eXnJx+e/bfX19lZqaatOndu3aSkpKcrw6AAAAlMjhMNegQQOboNayZUutX7/eujpnsVi0bt061alTp/xVAgAAoEgOh7mePXtqw4YNys3NlSQ9+OCDSkpKUqdOnfTcc88pPDxccXFx6t+/v9OKBQAAgC2Hb00yatQo1apVSydOnFCdOnU0cuRI7d69W3PmzFFcXJwkqX///poyZYqTSgUAAMDVTJYrbw7nBCdOnNChQ4fUoEED1a5d25lDV6rMzEz5+voqIyPD5hm0zjZqZoUNDZTZvLGVXQEAXL/szR7legJEUfz9/eXv7+/sYQEAAFAEns0KAABgYA6vzAUHB9vVz2QyKSEhwdHTAAAAoAQOh7n8/Pwin7uakZGhM2fOSJLq1KmjatWqOVwcAAAASuZwmEtMTCzx2Lhx43Ts2DGtWbPG0VMAAACgFBVyzVzDhg0VExOj06dP66WXXqqIUwAAAEAVuAHCzc1NvXv31pIlSyrqFAAAANe9Ct3Nev78eZ06daoiTwEAAHBdq7Awt2XLFv3f//2fQkJCKuoUAAAA1z2HN0D06NGjyPbc3FwdPXrUukFi0qRJjp4CAAAApXA4zG3cuLHIdpPJpJo1ayoyMlLjxo1T7969HT0FAAAASlGu+8wBAACgcpX72azHjx/X0aNHlZ+fr7p166p27drOqAsAAAB2cGgDRHZ2tt588001adJEderUUbt27dS+fXvVrVtXN954o5555pkSbyoMAAAA5yhzmEtOTtZtt92mCRMmKCEhQXXq1FH79u3Vvn171alTR6dOndKsWbPUrl07rV271vq+1NRU7jkHAADgZGUKczk5OYqOjtZvv/2mIUOGaO/evTpy5Ii2bdumbdu26ciRI9q7d6+GDRumU6dO6Z577lFiYqISEhIUHh6uffv2VdQ8AAAArktlumZu7ty5+v333zV58mRNnjy5yD4hISH69NNP1bRpU02ePFnDhg1TYmKi0tPT1bZtW6cUDQAAgMvKtDK3ZMkSNW7c2K57x7388stq0qSJtm3bposXLyo2NlZ9+/Z1uFAAAAAUVqYw98cffygyMlImk6nUviaTydr3p59+Uvfu3R2tEQAAAMUoU5jLysqSr6+v3f19fHzk6uqqxo0bl7kwAAAAlK5MYS4gIEAHDx60u39CQoICAgLKXBQAAADsU6Yw16lTJ61cuVJpaWml9k1LS9P333+v8PBwh4sDAABAycoU5v76178qKytL9957r9LT04vtd/LkSd177706f/68xowZU+4iAQAAULQy3ZokIiJCo0aN0rx589S8eXONGTNGPXr0UP369SVdvqHwunXrNG/ePKWnp2v06NFsfAAAAKhAZX4265w5c+Tj46N3331X06dP1/Tp022OWywWubi46Nlnny10DAAAAM5V5jBnNpv11ltvafTo0VqwYIG2bdtmvYaudu3a6ty5sx588EE1adLE6cUCAADAVpnDXIEmTZrotddec2YtAAAAKKMybYAAAABA1UKYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIFV2TC3Y8cORUdHy8/PT15eXurYsaOWLFli13stFotWrlypRx99VK1bt5avr6+qV6+uW2+9VdOmTdPFixcruHoAAIBrw7WyCyjKhg0bFBUVJQ8PDw0ePFg1atTQsmXLNGjQICUnJ2v8+PElvj87O1vR0dFyd3dX9+7dFRUVpYsXLyo2NlYvvfSSvv76a23cuFHVq1e/RjMCAACoGCaLxWKp7CKulJubq2bNmunIkSPavn27QkNDJUkZGRlq3769EhMTdeDAATVo0KDYMXJycvTmm2/qscceU82aNW3a+/fvr+XLl+vNN9/Uc889Z3ddmZmZ8vX1VUZGhnx8fByeX2lGzaywoYEymze2sisAgOuXvdmjyn3Nun79eiUkJGjo0KHWICdJvr6+mjhxoi5duqSFCxeWOIabm5teeuklmyBX0D5hwgRJ0qZNm5xeOwAAwLVW5cLcxo0bJUmRkZGFjkVFRUkqXxBzc3OTJLm6VslvmAEAAMqkyiWa+Ph4SVKTJk0KHatdu7a8vb2tfRzxySefSCo6LF4pOztb2dnZ1teZmZmSLn9Vm5OTI0lycXGR2WxWXl6e8vPzrX0L2nNzc3Xlt9hms1kuLi7Ftl8e183huQHOVvB3vUDBP4Jyc3Nt2t3c3JSfn6+8vDxrm8lkkqura7HtxX1unPt5Kr125sScmBNzqspzskeVC3MZGRmSLn+tWhQfHx9rn7JauXKl5s6dq+bNm+vhhx8use/06dM1derUQu2rV6+2bpwICgpSWFiY9uzZo6SkJGufkJAQNWvWTD///LNOnDhhbQ8NDVWDBg20efNmnT171treqVMnBQQEaPXq1ZL6OjQ3oCKsWLHC5nV0dLQuXLigDRs2WNtcXV3Vt29fpaena9u2bdb2GjVqqEePHkpOTlZcXJy13d/fX507d1Z8fLz2799vba+Iz9OVvwgjIiLk6enJnJgTc2JOhpnTzp07ZY8qtwEiMjJSa9asUXx8vBo3blzoeN26dZWVlVXmQLdjxw717NlTrq6u2rJli1q0aFFi/6JW5urXr6/09HTrRYgV8a+Ex2azMoeqY87jrMwxJ+bEnJhTZc3p1KlTqlWrVqkbIKrcylzBilxxYS0zM7PQxobS/PLLL4qMjJSLi4tiY2NLDXKS5O7uLnd390Ltbm5u1uvuCpjNZpnN5kJ9i7sur7j2q8cFKltxfyeLandxcZGLS+HLcItrL+5zU9GfJ+bEnJgTcyquxrK2V9acCp3Prl7XUMG1ckVdF5eWlqasrKwir6crzi+//KLevXsrPz9fsbGxuu2225xWKwAAQGWrcmGuW7dukvSf68dsxcbG2vQpTUGQy8vL06pVq9ShQwfnFQoAAFAFVLkw17NnTwUHB2vRokU2Fw9mZGRo2rRpqlatmoYPH25tT01N1b59+wp9Lbtz50717t1bubm5WrlypTp16nStpgAAAHDNVLkw5+rqqo8++kj5+fnq2rWrRo8erfHjx+vWW2/VgQMHNG3aNDVs2NDaf8KECWrevLm++uora9upU6fUu3dvnTlzRuHh4VqzZo2mTJli8zNz5sxrPzkAAMpp9uzZatiwoTw8PNShQwf9/PPPxfb9/fff1b9/fzVs2FAmk6nU/+97/fXXZTKZNHbsWGtbYmKiTCZTkT9Lly510qxQHlVuA4R0eXvw1q1bNXnyZMXExCgnJ0etWrXSG2+8oUGDBpX6/szMTJ0+fVqStGrVKq1atapQnwYNGtj8ZQUAoKqLiYnRuHHj9M9//lMdOnTQzJkzFRUVpf379ysgIKBQ//Pnzys4OFgDBgzQM888U+LYO3bs0Ny5c9W6dWub9vr16ys1NdWm7cMPP9Rbb72lPn36lH9SKLcqd2uSqopns+J6xLNZgaqlQ4cOuu222/T+++9LkvLz81W/fn09+eSTevHFF0t8b8OGDTV27NgiFzKysrLUpk0bzZkzR3//+98VGhpa4ipeWFiY2rRpo48//rg800EpDPtsVgAAUNilS5e0c+dO9erVy9rm4uKiXr162dy41hGPP/64+vbtazN2cXbu3Km4uLhSb76Pa6dKfs0KAABspaenKy8vT4GBgTbtgYGB2rdvn8PjLl68WLt27dKOHTvs6v/xxx+refPm6ty5s8PnhHOxMgcAwHUqOTlZTz/9tD7//HN5eHiU2v/ChQtatGgRq3JVDCtzAAAYwI033iiz2axjx47ZtB87dky1a9d2aMydO3fq+PHjatOmjbUtLy9Pmzdv1vvvv6/s7GybJxN88cUXOn/+vM0twlD5WJkDAMAAqlWrprZt22rdunXWtvz8fK1bt87he6n27NlT//73vxUXF2f9adeunYYNG6a4uLhCj5j6+OOPddddd8nf379cc4FzsTIHAIBBjBs3Tg8++KDatWun9u3ba+bMmTp37pweeughSdLw4cNVt25dTZ8+XdLlTRN//PGH9b+PHj2quLg4eXt7q3HjxqpRo4Zatmxpcw4vLy/VqlWrUPvBgwe1efNmrVix4hrMFGVBmAMAwCAGDRqkEydOaNKkSUpLS1NoaKhWrVpl3RSRlJRk84D3lJQUhYWFWV/PmDFDM2bMULdu3bRx48YynfuTTz5RvXr1FBkZ6ZS5wHm4z5yduM8crkfcZw4AKg/3mQMAALgOEOYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBi3JgEAGAY7/lGVVJUd/6zMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBEeYAAAAMjDAHAABgYIQ5AAAAAyPMAQAAGBhhDgAAwMAIcwAAAAZGmAMAADAwwhwAAICBVdkwt2PHDkVHR8vPz09eXl7q2LGjlixZUqYxsrOz9corr6hJkyby8PDQTTfdpNGjR+v48eMVVDUAAMC15VrZBRRlw4YNioqKkoeHhwYPHqwaNWpo2bJlGjRokJKTkzV+/PhSx8jPz9fdd9+t2NhYdezYUf3791d8fLw++ugjrVu3Ttu3b5e/v/81mA0AAEDFqXIrc7m5uRo1apRcXFy0efNmffjhh3r77bf166+/qmnTppo4caIOHz5c6jgLFy5UbGyshgwZoh9//FGvv/66li1bpjlz5ujQoUN6+eWXr8FsAAAAKlaVC3Pr169XQkKChg4dqtDQUGu7r6+vJk6cqEuXLmnhwoWljjNv3jxJ0vTp02UymaztY8aMUXBwsD7//HNduHDB6fUDAABcS1UuzG3cuFGSFBkZWehYVFSUJGnTpk0ljnHx4kX99NNPCgkJUYMGDWyOmUwm9e7dW+fOndMvv/zinKIBAAAqSZW7Zi4+Pl6S1KRJk0LHateuLW9vb2uf4iQkJCg/P7/IMa4cOz4+Xl26dCmyT3Z2trKzs62vMzIyJEmnTp1STk6OJMnFxUVms1l5eXnKz8+39i1oz83NlcVisbabzWa5uLgU256Tk6NLF91KnBtwLZ08mWPz2tX18q+M3Nxcm3Y3Nzfl5+crLy/P2mYymeTq6lpse3GfG2d+nuypnTkZa06XLpoEVBVnzlTs5+nUqVOSZPPZKUqVC3MFocnX17fI4z4+PtY+5Rnjyn5FmT59uqZOnVqo/eabby7x3MD/kn9NqOwKAKDqula/I8+ePVtsppGqYJirKiZMmKBx48ZZX+fn5+vUqVOqVauWzTV4qHoyMzNVv359JScnW4M7AOAyfkcah8Vi0dmzZ3XTTTeV2K/KhbmC5FncqllmZqZq1qxZ7jGu7FcUd3d3ubu727T5+fmVeF5ULT4+PvyiAoBi8DvSGErKKgWq3AaIK69nu1paWpqysrKKvRauQHBwsFxcXIq9tq6k6/IAAACMpMqFuW7dukmSVq9eXehYbGysTZ/ieHp6qn379tq/f3+he9JZLBatWbNGXl5eateunZOqBgAAqBxVLsz17NlTwcHBWrRokeLi4qztGRkZmjZtmqpVq6bhw4db21NTU7Vv375CX6mOHj1a0uVr367cBTJ37lwdOnRIw4YNk6enZ8VOBpXC3d1dkydPLvQ1OQCA35H/i0yW0va7VoLiHud1+PBhzZgxw+ZxXiNGjNDChQs1f/58jRgxwtqen5+v6Oho6+O8unXrpoMHD+rLL79Uw4YN9dNPP/E4LwAAYHhVbmVOkiIiIrR161bdfvvtiomJ0QcffKDAwEAtXrzYrueySpfv0fLNN99oypQpOnHihN5991398MMPevjhh7Vt2zaCHAAA+J9QJVfmAAAAYJ8quTIHAAAA+xDmAAAADIwwBwAAYGCEOQAAAAMjzMGwCvbusIcHAHA9I8zBsEwmkywWi0wmk9LS0pSfn1/ZJQEAcM25VnYBgCNyc3P1ww8/6JNPPtGBAwfk4uIiT09PhYaG6r777lPnzp0ru0QAAK4J7jMHQ5oxY4ZeffVVnT17Vo0aNZKrq6v2799vPd6sWTONHj1agwcPVu3atSuxUgCofAXfYuB/E2EOhvPnn3+qVatWatOmjRYuXKhq1aopMDBQaWlp+vbbb/XFF19o48aNkqQePXrozTffVJs2bSq3aAC4hi5cuKCkpCQFBQXxHPLrAGEOhjNp0iTNnTtXixYtUs+ePSUV/lfnv//9b82YMUNLlixRgwYN9Pnnn6tt27aVVTIAXFOvv/66li1bpvvuu08dO3ZUSEiIAgMDZTabi31Penq6/Pz85OrKFVhGQ5iD4fTv319xcXHasGGDgoKClJubK1dXV1ksFuXn59v8spo1a5aeeeYZPfjgg5o/f34lVg0A1069evWUkpIis9ksX19fde7cWZGRkerQoYOCg4NVq1Ytm/7nzp3TlClTdPLkSX300UdycWF/pJEQv2E4YWFh+uqrr5SVlSVJ1n9Fmkwma5ArWKl7+umntWXLFq1fv16HDh1ScHBwpdUNANfCgQMHlJGRoU6dOmno0KFas2aNtm3bpu+++05BQUHq3r27evXqpbCwMNWtW1d+fn767bffNG/ePHXv3p0gZ0CEORhORESEJGnYsGF6++23FR4ermrVqhXql5eXJ7PZrJCQEK1cudIa/gDgf9mBAwd08eJFRUZG6vHHH9edd96p/fv3a9u2bVq/fr2WLVumzz//XLfccot69OihO+64Q+vWrVNmZqZGjRpV2eXDAXzNCsPJy8vTCy+8oHfeeUfNmjXT448/rr/85S8KDAws1Pf06dMaO3asVq5cqePHj1dCtQBwbX3xxRcaOHCgFi9erIEDB1rbc3JydPjwYf3666/asmWLNm7cqL1798rNzU0Wi0Xu7u46depUJVYORxHmYFhz587VW2+9pUOHDummm27Svffeqz59+qh+/foym83y8/PTe++9p5kzZ+qxxx7T22+/XdklA0CFs1gs2rdvnzw8PHTzzTcXeVuSc+fO6cCBA9q/f7/mz5+vNWvW6IknntA//vGPSqoa5UGYg2FZLBYdPHhQ8+bN0+LFi3XkyBFJUkBAgNzc3JSamqr8/HwNGTJEb7zxhurVq1fJFQNA5Soq2D311FN6//33tXPnToWFhVVSZSgPwhz+J5w7d04///yzvv32W6WkpOj48ePy8fHRwIED1b9/f3l4eFR2iQBQZeTn58vFxUWJiYm6++67dfr0aSUlJVV2WXAQGyDwP8HLy0sRERGKiIhQTk6O3NzcKrskAKiyCnasHj16VDk5OXrssccquSKUBytzAABcpywWi44cOaIbbrhBXl5elV0OHESYAwAAMDDuDAgAAGBghDkAAAADI8wBAAAYGGEOAADAwAhzAAAABkaYAwAAMDDCHAAAgIER5gAAAAyMMAcAAGBg/w8sJaRkNe5oZgAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create circuit\n", - "qc = QuantumCircuit(1)\n", - "qc.h(0)\n", - "qc.t(0)\n", - "qc.h(0)\n", - "\n", - "# Measure the quantum state\n", - "qc.measure_all()\n", - "\n", - "# Choose a simulator backend\n", - "backend = AerSimulator()\n", - "\n", - "# Simulate the circuit\n", - "result = backend.run(transpile(qc, backend), shots=1000000).result()\n", - "\n", - "# get results\n", - "counts = result.get_counts(qc)\n", - "plot_distribution(counts, title='Bell-State counts')" - ] - }, - { - "cell_type": "markdown", - "id": "094b8722", - "metadata": {}, - "source": [ - "We get $\\varphi = \\cos^{-1} \\left( 2 \\cdot \\text{Pr}(0) -1 \\right) \\approx 0.784 \\approx \\frac{\\pi}{4}$." - ] - }, - { - "cell_type": "markdown", - "id": "91c3ffaa", - "metadata": {}, - "source": [ - "**d)** *extra task:* Show that any state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1 \\rangle$ with $|\\alpha|^2 + |\\beta|^2 = 1$ can be written in the polar form (up to a global phase)." - ] - }, - { - "cell_type": "markdown", - "id": "d95e7a6a", - "metadata": {}, - "source": [ - "The coefficients $\\alpha$ and $\\beta$ can be expressed as $\\alpha = r_1 e^{i \\gamma_1}$ and $\\beta = r_2 e^{i \\gamma_2}$, respectively, with $r_1, r_2 \\in \\mathbb{R}$ and $\\gamma_1, \\gamma_2 \\in [0, 2\\pi)$. \n", - "\n", - "Thus, we have $|\\psi \\rangle = e^{i \\gamma_1} \\left( r_1 |0\\rangle + r_2 e^{i(\\gamma_2 - \\gamma_1)} |1\\rangle\\right)$, where $e^{i \\gamma_1}$ is a global phase and we define $\\varphi = \\gamma_2 - \\gamma_1$. \n", - "\n", - "Since $r_1^2 + r_2^2 = 1$ and $0\\leq r_1, r_2 \\leq 1$, we find $\\theta \\in [0, \\pi]$ such that $r_1 = \\cos \\frac{\\theta}{2}$ and $r_2 = \\sin \\frac{\\theta}{2}$. " - ] - }, - { - "cell_type": "markdown", - "id": "a29f78a0", - "metadata": {}, - "source": [ - "***" - ] - }, - { - "cell_type": "markdown", - "id": "ddf38779", - "metadata": {}, - "source": [ - "### Exercise 2\n", - "\n", - "Now, we want to construct some specific states. The quantum logic gates which come now into play are the Pauli-$Z$ gate, the Pauli-$X$ (NOT) gate, and the CNOT gate:\n", - "\n", - "$\\displaystyle Z = \\begin{bmatrix} 1 & 0 \\\\ 0 & -1\\end{bmatrix}$, $\\qquad \\displaystyle \\text{NOT} = \\begin{bmatrix} 0& 1\\\\ 1 & 0 \\end{bmatrix}$, $\\qquad \\displaystyle \\text{CNOT} = \\begin{bmatrix}1 & 0 & 0 & 0\\\\ 0 & 1 & 0 & 0 \\\\ 0 & 0 & 0& 1\\\\ 0 & 0 & 1 & 0 \\end{bmatrix}$\n", - "\n", - "The $Z$ gate flips the phase of the basis state $|1\\rangle$ while the NOT gate (sometimes called bit-flip) maps \n", - "$|0\\rangle$ to $|1\\rangle$ and $|1\\rangle$ to $|0\\rangle$.\n", - "\n", - "The CNOT (controlled NOT) gate acts on 2 qubits and performs the NOT operation on the second qubit only when the first qubit is $|1\\rangle$.\n", - "\n", - "
\n", - "\n", - "**a)** Construct the Bell state $\\displaystyle |\\Phi^+\\rangle = \\frac{|00\\rangle + |11\\rangle}{\\sqrt{2}} $. To do so, create a quantum circuit with two qubits and and use one Hadamard gate and one CNOT gate. Draw the circuit, measure the final state, and plot the histogram" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "c79482f8", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create circuit\n", - "qc = QuantumCircuit(2)\n", - "qc.h(0)\n", - "qc.cx(0,1)\n", - "qc.draw(output='mpl') " - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "e5ac8fae", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Measure the quantum state\n", - "qc.measure_all()\n", - "\n", - "# simulator\n", - "simulator = Aer.get_backend('aer_simulator')\n", - "\n", - "# Execute the circuit on the simulator\n", - "job = execute(qc, simulator, shots=10000)\n", - "\n", - "# Get the results\n", - "result = job.result()\n", - "\n", - "# Run and get counts\n", - "result = simulator.run(qc, shots=100000).result()\n", - "counts = result.get_counts(qc)\n", - "plot_histogram(counts)" - ] - }, - { - "cell_type": "markdown", - "id": "bccbf330", - "metadata": {}, - "source": [ - "**b)** How can we construct the other Bell states?\n", - "\n", - "$\\displaystyle|\\Phi^-\\rangle = \\frac{|00\\rangle - |11\\rangle}{\\sqrt{2}} $, $\\qquad \\displaystyle|\\Psi^+\\rangle = \\frac{|01\\rangle + |10\\rangle}{\\sqrt{2}} $, $\\qquad \\displaystyle|\\Psi^-\\rangle = \\frac{|01\\rangle - |10\\rangle}{\\sqrt{2}} $" - ] - }, - { - "cell_type": "markdown", - "id": "b0f0a1b3", - "metadata": {}, - "source": [ - "For $|\\Phi^-\\rangle$, we have to apply the Z gate to the second qubit.\n", - "\n", - "For $|\\Psi^+\\rangle$, we have to apply the NOT gate to the second qubit.\n", - "\n", - "For $|\\Psi^-\\rangle$, we have to apply the Z gate and the NOT gate to the second qubit." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "a0cd70ac", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create circuit\n", - "qc = QuantumCircuit(2)\n", - "qc.h(0)\n", - "qc.cx(0,1)\n", - "qc.z(1)\n", - "qc.x(1)\n", - "qc.draw(output='mpl') " - ] - }, - { - "cell_type": "markdown", - "id": "30541e9c", - "metadata": {}, - "source": [ - "**c)** In quantum computing, oracles play a crucial role in many quantum algorithms. An oracle is a black box subroutine used to perform a specific computation on a quantum state. Find an oracle $U$, i.e., a unitary operation, acting on three qubits corresponding to the following truth table:\n", - "\n", - "| | Input | Output |\n", - "| -- | ----- | ------ |\n", - "| 0 | 000 | 000 |\n", - "| 1 | 001 | 001 |\n", - "| 2 | 010 | 011 |\n", - "| 3 | 011 | 010 |\n", - "| 4 | 100 | 111 |\n", - "| 5 | 101 | 110 |\n", - "| 6 | 110 | 100 |\n", - "| 7 | 111 | 101 |\n", - "\n", - "\n", - "Write down the matrix representation! What does the circuit look like?" - ] - }, - { - "cell_type": "markdown", - "id": "f8d76496", - "metadata": {}, - "source": [ - "The matrix representation is \n", - "$U = \\begin{bmatrix} \n", - "1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", - "0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", - "0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\\n", - "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", - "0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\\\\n", - "0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\\\\n", - "0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\\\\n", - "0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\end{bmatrix}$" - ] - }, - { - "cell_type": "markdown", - "id": "6890762a", - "metadata": {}, - "source": [ - "Looking at the second half of the truth table, we can see that the the second qubit is always flipped if the first qubit is $|1\\rangle$. And if the result is then the state $|1\\rangle$ on the second qubit, we also flip the last qubit. This can be done by the following circuit:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "5b21d0df", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create circuit\n", - "qc = QuantumCircuit(3)\n", - "qc.cx(0,1)\n", - "qc.cx(1,2)\n", - "qc.draw(output='mpl') " - ] - }, - { - "cell_type": "markdown", - "id": "33913f3d", - "metadata": {}, - "source": [ - "This actually implements the above oracle since the last qubit is also flipped if the first qubit is $|0\\rangle$ and the second qubit is $|1\\rangle$.\n", - "\n", - "In tensor notation this would look like\n", - "\n", - "$\\displaystyle U = (\\text{CNOT} \\otimes id) \\cdot (id \\otimes \\text{CNOT}) = \n", - "\\begin{bmatrix}\n", - "1 & 0 & 0 & 0 & & & & \\\\\n", - "0 & 1 & 0 & 0 & & & & \\\\\n", - "0 & 0 & 0 & 1 & & & & \\\\\n", - "0 & 0 & 1 & 0 & & & & \\\\\n", - " & & & & 1 & 0 & 0 & 0 \\\\\n", - " & & & & 0 & 1 & 0 & 0 \\\\\n", - " & & & & 0 & 0 & 0 & 1 \\\\\n", - " & & & & 0 & 0 & 1 & 0 \\\\\n", - "\\end{bmatrix} \\cdot\n", - "\\begin{bmatrix}\n", - "1 & 0 & & & & & & \\\\\n", - "0 & 1 & & & & & & \\\\\n", - " & & 1 & 0 & & & & \\\\\n", - " & & 0 & 1 & & & & \\\\\n", - " & & & & & & 1 & 0 \\\\\n", - " & & & & & & 0 & 1 \\\\\n", - " & & & & 1 & 0 & & \\\\\n", - " & & & & 0 & 1 & & \\\\\n", - "\\end{bmatrix}$\n", - "\n", - "where $id \\in \\mathbb{R}^{2 \\times 2}$." - ] - }, - { - "cell_type": "markdown", - "id": "9ab351ae", - "metadata": {}, - "source": [ - "**d)** *extra task:* What kind of gate is expressed by the following circuit? Here, 'tdg' denotes the adjoint of the T gate." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "808b265b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circuit = QuantumCircuit(3)\n", - "circuit.h(2)\n", - "circuit.cx(1,2)\n", - "circuit.tdg(2)\n", - "circuit.cx(0,2)\n", - "circuit.t(2)\n", - "circuit.cx(1,2)\n", - "circuit.tdg(2)\n", - "circuit.cx(0,2)\n", - "circuit.barrier()\n", - "circuit.t(1)\n", - "circuit.t(2)\n", - "circuit.barrier()\n", - "circuit.h(2)\n", - "circuit.cx(0,1)\n", - "circuit.barrier()\n", - "circuit.t(0)\n", - "circuit.tdg(1)\n", - "circuit.barrier()\n", - "circuit.cx(0,1)\n", - "circuit.draw(plot_barriers = False, output='mpl') " - ] - }, - { - "cell_type": "markdown", - "id": "e31cc29f", - "metadata": {}, - "source": [ - "*Hint:* For states of the form $|11x\\rangle$, we have $|110\\rangle \\mapsto |111\\rangle$ and $|111\\rangle \\mapsto |110\\rangle$. What happens with quantum states of different form?" - ] - }, - { - "cell_type": "markdown", - "id": "137981a0", - "metadata": {}, - "source": [ - "For states of the form $|01x\\rangle$, we can ignore all controlled gates with control on the first qubit. Furthermore, $T^\\dagger$ and $T$ cancel each other out. Thus, we get the following reduced circuit:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "eafeb1ea", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circuit = QuantumCircuit(3)\n", - "circuit.h(2)\n", - "circuit.cx(1,2)\n", - "circuit.cx(1,2)\n", - "circuit.barrier()\n", - "circuit.barrier()\n", - "circuit.h(2)\n", - "circuit.barrier()\n", - "circuit.t(0)\n", - "circuit.draw(plot_barriers = False, output='mpl') " - ] - }, - { - "cell_type": "markdown", - "id": "25756fa5", - "metadata": {}, - "source": [ - "Now, the CNOT as well as the Hadamard gates cancel each other out and only one $T$ gate remains. As our first qubit is in state 0, this can also be neglected and we have $|01x\\rangle \\mapsto |01x\\rangle$. For states of the form $|00x\\rangle$, the same arguments can be used." - ] - }, - { - "cell_type": "markdown", - "id": "089f5df0", - "metadata": {}, - "source": [ - "Now consider states of the form $|10x\\rangle$. In this case, we can ignore all controlled NOT gates with control qubit 2. Here, the $T$ and $T^\\dagger$ gates cancel each other out and, therefore, also the first two CNOT gates with control qubit 1. Finally, we get" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "b7787ae0", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circuit = QuantumCircuit(3)\n", - "circuit.barrier()\n", - "circuit.t(1)\n", - "circuit.barrier()\n", - "circuit.cx(0,1)\n", - "circuit.barrier()\n", - "circuit.t(0)\n", - "circuit.tdg(1)\n", - "circuit.barrier()\n", - "circuit.cx(0,1)\n", - "circuit.draw(plot_barriers = False, output='mpl') " - ] - }, - { - "cell_type": "markdown", - "id": "546b0915", - "metadata": {}, - "source": [ - "If we apply this to a state $|10x\\rangle$, the first $T$ gate has no effect. By applying the CNOT gate, we get $|11x\\rangle$. If we now apply the $T$ and $T^\\dagger$ gate to the first and second qubit, respectively, the phases cancel each other out. Finally, we obtain $|10x\\rangle$ again when we apply the last CNOT gate. Overall: $|10x\\rangle \\mapsto |10x\\rangle$.\n", - "\n", - "That is, the above circuit is an expression for the CCNOT (aka Toffoli) gate given by,\n", - "\n", - "$\\displaystyle \\text{CCNOT} = \\begin{bmatrix} \n", - "1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", - "0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n", - "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n", - "0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n", - "0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\\\\n", - "0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\\\\n", - "0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\\\\n", - "0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \n", - "\\end{bmatrix}$\n", - "\n", - "which performs a conditional NOT operation on the third qubit if and only if both control qubits (here, the first and second qubit) are in the state $|1\\rangle$." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "ea61378a", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH0AAACoCAYAAADNc+G5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAJS0lEQVR4nO2dXUxU6RnHfzMKKlKLyAYV0RV0/JgIKttqaOpHaommXJitoqSl1ZJIxBtjeqlGgvGCeuGlpk1j2gvcSEmatUCiUfGD1i0quNo1I8uXuGqF4AcIgzKnF1NQZIQZODPnsM/zS+Zi3nPmPQ/8eN7zMpD/OAzDMFBE4bS6ACXyqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBqHSBTLa6gO8jhg86muH5I8CAGXMgIRWcNmkxm5QRGJ/Px/Hjx1m8eDFTp04lPT2d6upqlixZwp49e6wuLyAvn8D1P0FdOTTfgOav4M7f4dop6HxodXV+bC09Pz+f4uJiCgoKqKysJCcnh9zcXBobG8nIyLC6vGF0d8DNL6D31fBjfa/hdpn/h8JqbLu8l5aWcvr0aS5fvsz69esB2LhxI7du3aK8vJzVq1dbXOFwmm5A/1sgUDKfAT4fNNbAys8jXdlQbNvpx44dY/PmzYPCB1i0aBFRUVGkpaUB0NzczPr163G5XKxYsYKrV69aUS5v++DpfQILH8CA9kbwdkWqqsDYUnpbWxt3795l+/btw461trbidruZMmUKAAUFBezYsQOPx8OpU6fYuXMnfX19o17D4XCY+kiek4LhC+7rS1v2menXDwXbSgeYPXv2kPGenh6qq6sHl/b29nauXbtGfn4+AJmZmcydO5dLly5FtmDgde/LoM/t7n0RxkpGx5bSExISAPB4PEPGS0pKePz48eAmrrW1lcTExMGuB1i4cCEtLS2jXsMwDFMfL7rbmZkMjNR0Doj9BB7+94Hp1w8FW27kUlJSSEtL49ixY8THx5OUlERZWRkVFRUAtty5A3y6ZpRfywxYuAZCXI1Nx5ad7nQ6OXv2LG63m71797J7924SEhLYt28fkyZNGtzEzZ8/n6dPn+L1egdf29TUxIIFCyype9ansPTnfLTbF62DxKWRrCgwjokU/Z2Xl0d9fT137twZHMvKymLr1q0UFhZSU1PDtm3baG5uJjo62rI6Xz+HR3XQUut/nrwK5q2E6bMsK2kItuz0j1FbWztsaT958iRnzpzB5XKxZ88eSktLLRUOEBMHize8e77kZ/YRDja9pweiq6sLj8dDYWHhkPGUlBSuXLliUVUTkwkjPTY2lv7+fqvL+F4woZZ3xRxUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUukBUeph4P9TFbgEvtpY+EQOBDR88vA3//PO7set/hJZ/g88mmQq2TqLIz8+nvLycQ4cOkZGRQU1NDbm5uTx79owDBw5YXd4wfD74+kt49mDoeO9LeFAN7U2w6nNwWvxdt630iRgI/PDWcOHv09nqDw1O/UnkagqEbZf3YAOBDx8+jMvlwul0UlZWZkWpgP++/fDW6Oe11Vm/zNtSeiiBwJs3b6aqqop169aFdA2zA3kTZyYTTDzsmx5YlJxmaSCwLZf30QKBt2zZMjiWmZkZ0do+htM5KfhzHcGfGw5s2enBBgKPB7MDeb971kzUtNGv64yC+023NRD4QyZiILBzEsxLh6Z/jXzeXDdMtjbQ0p6dHmwgsN1Y8GP4QeLHj8fEW79zB5t2OoDL5RoW1p+Xl8fy5cuZNi2IddQCJkdDxg749io8ugu+N/5x5ySY44bUnxLULSDsGBOIpUuXGrt27RoydvDgQSMpKcmIjo424uPjjaSkJKOhocGiCt/xxmsY5//gf/T1WF3NUGy5vAdiIBD4wzdliouLaWtrw+v10tHRQVtbG6mpqRZV+Y7379tRU62rIxC2Xd4/RAOBzWPCdLpiHipdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdICpdIA7DsFvK2cTFMOD5I3+g0Mun0P6tf3zWQpiRCDOTYeZ8CDEtxHRUugkYBjz5BppvQHfHyOdOi4MFP4KkNOvkq/Rx4u2G/1RBR1Nor5uZDO4tMHVGeOoaCZU+Dnpfwc0voOf52F4/JdYfYhAz09SyRkU3cmOk/y3c/tvYhQN4u+B2Gbz1mlZWUKj0MdJ4HbrbRz5n0+/9j5HoeQGey6aVFRS2lm7XQODXz6Gl1rz5vvvav9uPFLaWnp+fT3FxMQUFBVRWVpKTk0Nubi6NjY2Wxoo9qgdM3gk9qjd3vpGwbfyInQOBn9wPw5zfwNJN4IhAG9q204MJBO7s7CQ7OxuXy0V6ejpZWVk0NDSEtS5vN3hfmT9v/xt43Wn+vIGwpfRgA4EdDgf79+/H4/FQX19PdnY2u3fvDmtto23exkNXGOd+H1su78EGAsfFxbFp06bB45mZmZSUlAR1jVCTkwdYuyyb4t99OWRstB36x45fOD70+a9/9Rsu3PzrmOoK5e0WW3b6WAOBT5w4wdatW8NaW9/b3vDN/aYnbHO/jy07fSyBwEVFRTQ0NHDx4sWgrjHWNyJ7X8G1U0PHPuzYAQY6/GPHP+QfF84S+8mYygoJW3Z6qIHAR48e5dy5c1RVVRETExPW2qbEQvR08+d1ToaYWebPGwhbdjoEHwhcVFRERUUF58+fJy4uLux1ORyQuCS4j+4IhUQXOCPUgraVHoja2lrWrl07+PzevXscOXKE1NRUNmzYMDheV1cX1jrmrTRf+rxV5s43EhNG+kAgcGFh4eCY2+0e8715PEyP94tvqzNnvtnL4IdzzJkrGPRPq2PkbR/c+Mv4/soG/j3Cmt9CdARz4G25kZsITI6GVdv80sZK1DRY9cvICgft9HHT+xLuVsDzttBeNyMR3L/w3yoijUo3AcPw399bvvL/Hj8S0dNhwWeQnBG53fqHqHQTMXz+z1Md+G/Yvm7/D0T09P//N+w8SEj1f6aLlah0gehGTiAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSAqXSD/A767tljqeP2lAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "circuit = QuantumCircuit(3)\n", - "circuit.ccx(0,1,2)\n", - "circuit.draw(plot_barriers = False, output='mpl') " - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.10" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}