diff --git a/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.ipynb b/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.ipynb index a3f32595..71c45ac1 100644 --- a/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.ipynb +++ b/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.ipynb @@ -50,7 +50,7 @@ "\n", "The QLSP is converted into an equivalent eigenvalue problem to leverage quantum computation. This involves the following steps:\n", "\n", - "#### **2.1 Null Space of $H_0$**\n", + "#### **2.1 Constructing $H_0$**\n", "Define:\n", "\n", "$$\n", @@ -72,6 +72,15 @@ "|\\bar{b}\\rangle = |1, b\\rangle = \\begin{bmatrix} 0 \\\\ b \\end{bmatrix}.\n", "$$\n", "\n", + "\n", + ">*The **null space** of a matrix $A$ is the set of all vectors $ \\mathbf{x} $ such that:*\n", + ">\n", + "> $A\\mathbf{x} = 0.$\n", + ">\n", + ">*With regards to eigenstates and eigenvalues:*\n", + ">- *The null space corresponds to the eigenspace of $A$ associated with the eigenvalue $0$.*\n", + ">- *Any vector in the null space is an eigenvector of $A$ with eigenvalue $0$.*\n", + "\n", "#### **2.2 Constructing $H_1$**\n", "Define:\n", "\n", @@ -96,11 +105,7 @@ "\n", "\n", "\n", - "#### **2.3 Spectral Gap**\n", - "- $Q_b$ is a projection operator, and the spectral gap between $0$ and the rest of the eigenvalues of $H_0$ is $1$. VERIFY\n", - "- For $H_1$, the gap between $0$ and the rest of the eigenvalues is bounded below by $1/\\kappa$. [[1](#QLSP)]\n", - "\n", - "#### **2.4 Adiabatic Interpolation**\n", + "#### **2.3 Adiabatic Interpolation**\n", "Construct an interpolation Hamiltonian:\n", "\n", "$$\n", @@ -109,15 +114,27 @@ "\n", "where $f(s)$ is a monotonic function mapping $[0, 1] \\to [0, 1]$.\n", "\n", + "\n", + "\n", + "#### **2.4 Spectral Gap**\n", + "- $Q_b$ is a projection operator, and the spectral gap between $0$ and the rest of the eigenvalues of $H_0$ is $1$. \n", + "- For $H_1$, the gap between $0$ and the rest of the eigenvalues is bounded from below by $1/\\kappa$. [[1](#QLSP)]\n", + "\n", + "\n", + "\n", + "\n", "#### **2.5 Adiabatic Evolution and Null Space**\n", "\n", - "Note that for any $s$, $|\\bar{b}\\rangle$ is always in the null space of $H(f(s))$, i.e.,\n", + "Notice that there is a degeneracy in the number of Null states (unlike the regular adiabatic algorithm usage where we are typically looking at a single grounde state)\n", + "$$\\text{Null}(H_1) = \\text{span}(|\\tilde{x}\\rangle, |\\bar{b}\\rangle)$$\n", + "\n", + "We also note that for any $s$, $|\\bar{b}\\rangle$ is always in the null space of $H(f(s))$, i.e.,\n", "\n", "$$\n", "|\\bar{b}\\rangle \\in \\text{Null}(H(f(s))).\n", "$$\n", "\n", - "There exists a state $|\\tilde{x(s)}\\rangle = |0\\rangle \\otimes |x(s)\\rangle$, such that \n", + "Therefore, there exist an additional statestate $|\\tilde{x(s)}\\rangle = |0\\rangle \\otimes |x(s)\\rangle$, such that \n", "\n", "$$\n", "\\text{Null}(H(f(s))) = \\{|\\tilde{x(s)}\\rangle, |\\bar{b}\\rangle\\}.\n", @@ -127,7 +144,7 @@ "- At $s = 0$, $|\\tilde{x(0)}\\rangle = |\\tilde{b}\\rangle$, the initial state.\n", "- At $s = 1$, $|\\tilde{x(1)}\\rangle = |\\tilde{x}\\rangle$, the solution state.\n", "\n", - "Thus, $|\\tilde{x(s)}\\rangle$ represents the desired **adiabatic path** for the evolution.\n", + "Thus, $|\\tilde{x(s)}\\rangle$ state represents the desired **adiabatic path** for the evolution [[1](#QLSP)].\n", "\n", "\n", "---\n", @@ -183,7 +200,8 @@ "id": "e1d22ca6-9bce-4c59-9554-524a79b83ddd", "metadata": {}, "source": [ - "Calculating the condition number $k$ for $A$:" + "As a purely mathematical pre-processing step, we will calculate the condition number $k$ for $A$. \n", + "> In practical scenarios, the condition number is often approximated or known beforehand based on external factors or prior knowledge." ] }, { @@ -245,7 +263,7 @@ "id": "3168a534-2ce2-4150-95f9-c8e88b28a3b4", "metadata": {}, "source": [ - "**Derive $H_0$, $H_1$:**\n", + "#### **Construct $H_0$, $H_1$:**\n", "\n", "The `setup_QLSP` function prepares the necessary Hamiltonians and normalized components to solve the Quantum Linear Systems Problem (QLSP). \n", "\n", @@ -347,9 +365,9 @@ "id": "83e110a2-aa85-4fd0-af48-5750e8667577", "metadata": {}, "source": [ - "**Choose time of evolution with respect to the spectral gap evolution:**\n", + "#### **Spectral gap:**\n", "\n", - "From the quantum adiabatic theorem [[3](#ETA), Theorem 3] the formula for the adiabatic error bound at any point $s$ is:\n", + "From the quantum adiabatic theorem [[3](#ETA), Theorem 3] the formula for the adiabatic error bound $\\eta$ at any point $s$ is:\n", "\n", "$$\n", "\\eta(s) = C \\left\\{\n", @@ -363,49 +381,9 @@ "\\right\\}.\n", "$$\n", "\n", - "*Explanation of Components:*\n", - "\n", - "1. **$\\eta(s)$**:\n", - " - Represents the adiabatic error bound at a specific point $s \\in [0, 1]$.\n", - " - Quantifies the deviation of the quantum state from the ground state during evolution.\n", - "\n", - "2. **$C$**:\n", - " - A proportionality constant that depends on system-specific properties, such as the dimensionality and scaling of norms.\n", + "*See [Appendix A](#Appendix-A-Explanation-of-the-adiabatic-error-bound-components) for a detailed explanation of the components.*\n", "\n", "\n", - "3. **$\\|H^{(1)}(0)\\|$**:\n", - " - The operator norm of the **first derivative** of the Hamiltonian, $H(s)$, evaluated at $s = 0$.\n", - " - Indicates how quickly the Hamiltonian changes initially.\n", - "\n", - "\n", - "4. **$T$**:\n", - " - The total runtime of the adiabatic evolution.\n", - " - Larger $T$ values reduce the error, as slower evolution aids adiabaticity.\n", - "\n", - "\n", - "5. **$\\Delta(0)$**:\n", - " - The spectral gap at $s = 0$, defined as the energy difference between the ground state and the first excited state of $H(s)$.\n", - " - Larger gaps improve the adiabatic process.\n", - "\n", - "\n", - "6. **$\\|H^{(1)}(s)\\|$**:\n", - " - The operator norm of the first derivative of $H(s)$ at an intermediate point $s$.\n", - " - Reflects how fast the Hamiltonian is changing during evolution.\n", - "\n", - "7. **$\\Delta(f(s))$**:\n", - " - The spectral gap at the point $s$, mapped via the function $f(s)$.\n", - "\n", - "8. **$\\|H^{(2)}(s')\\|$**:\n", - " - The operator norm of the **second derivative** of the Hamiltonian, $H^{(2)}(s')$, at a point $s'$.\n", - " - Captures the curvature or acceleration of the Hamiltonian's evolution.\n", - "\n", - "9. **$\\int_0^s \\cdots ds'$**:\n", - " - An integral from $0$ to $s$, summing contributions of the Hamiltonian’s derivatives over the path.\n", - " - Accounts for cumulative effects of the Hamiltonian's changes during evolution.\n", - "\n", - "10. **$\\Delta^2(f(s'))$** and **$\\Delta^3(f(s'))$**:\n", - " - Higher powers of the spectral gap at $s'$.\n", - " - Larger gaps (in $\\Delta^2$ and $\\Delta^3$) significantly reduce the adiabatic error.\n", "\n", "***The formula shows that the adiabatic error is minimized when:***\n", "1. The total runtime $T$ is large (slow evolution).\n", @@ -418,7 +396,7 @@ "id": "3e6a1b97-427d-4067-819c-f99e79e1b82c", "metadata": {}, "source": [ - "The following function plots the eigenvalues evolution:" + "The following function plots the spectral gap $\\Delta$ evolution:" ] }, { @@ -430,7 +408,7 @@ "source": [ "import matplotlib.pyplot as plt\n", "\n", - "def plot_eigenvalues_evolution():\n", + "def plot_eigenvalues_evolution(ylim=None):\n", " time_steps = np.linspace(0, 1, 100) # Discrete time steps\n", "\n", " # Store eigenvalues at each time step\n", @@ -458,6 +436,10 @@ " unique_vals, counts = np.unique(eigenvalues[step_idx], return_counts=True)\n", " \n", " \n", + " # Apply y-axis limits if provided\n", + " if ylim:\n", + " plt.ylim(ylim)\n", + " \n", " # Customize the plot\n", " plt.xlabel(\"Time (t)\", fontsize=12)\n", " plt.ylabel(\"Eigenvalues\", fontsize=12)\n", @@ -495,15 +477,44 @@ }, { "cell_type": "markdown", - "id": "8e89b285-f0d1-4652-aebf-f0370bc4a338", + "id": "e850297f-4ff7-4da4-83cd-e3b0310e561b", "metadata": {}, "source": [ - "We cab visually observe from the above that the spectral gap is quite large throughout $s$, so we can choose $T$ accordingly. Without going into details we will choose a simple value for $T$ (represented as `TOTAL_EVOLUTION_TIME`). However, if we simply assume $ \\|H^{(1)}\\|^2 $, $ \\|H^{(2)}\\|^2 $ are bounded by constants, and use the worst-case bound that $ \\Delta \\geq \\kappa^{-1} $, it can be shown that in order to have $ \\eta(1) \\leq \\epsilon $, the runtime of vanilla AQC is $ T \\propto \\kappa^3 / \\epsilon $.\n" + "Should we want to focus on the spectral gap from the Null states, we can zoom-in on our plot:" ] }, { "cell_type": "code", "execution_count": 7, + "id": "18bd35f1-3f93-470d-864d-39e6b62126ba", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BxcuXKi3jp2dnTQt/u3HtvT/rFpDDNR6sD1QNbYFqontgWpie6BqLdkW2AbpQdFmZyO3tbVF3759cfDgQanMaDTi4MGDZj3dDTEYDPj555/NFmcnIiIiIqIHTxsd8Ev3WFPaSZvt2QaAhQsXYsaMGejXrx8GDBiAN998ExqNBrNmzQIAPPPMM/Dx8cFrr70GAFi+fDkGDRqEbt26obCwEKtXr8bly5cxe/bslrwNIiIiIiJqIdU97WVlZZwkjO6osrISABq1BnebTranTZuG69evSw/4BwUFISUlRZo0LTs722wtuJs3b2LOnDnIzc2Fi4sL+vbti+PHj6NXr14tdQtERERERNSCbGxs4OzsjLy8PACASqWCIAgtHBW1RkajEdevX4dKpYJcfudUuk0n2wDw5z//GX/+85/r3HfkyBGz7bVr12Lt2rX3ICoiIiIiImorqud8qk64ieojk8nQqVOnRn0h0+aTbSIiIiIiIksIggAvLy906NCB64BTg2xtbc1GTzeEyTYRERERERFMQ8ob8ywuUWO02dnIiYiIiIiIiForJttEREREREREVsZkm4iIiIiIiMjKmGwTERERERERWRmTbSIiIiIiIiIrY7JNREREREREZGVMtomIiIiIiIisjMk2ERERERERkZUx2SYiIiIiIiKyMibbRERERERERFbGZJuIiIiIiIjIyphsExEREREREVkZk20iIiIiIiIiK2OyTURERERERGRlTLaJiIiIiIiIrIzJNhEREREREZGVMdkmIiIiIiIisjIm20RERERERERWxmSbiIiIiIiIyMqYbBMRERERERFZGZNtIiIiIiIiIitjsk1ERERERERkZUy2iYiIiIiIiKyMyTYRERERERGRlTHZJiIiIiIiIrIyJttEREREREREVsZkm4iIiIiIiMjK5NY+YVlZGZKSkqDVajFhwgT4+flZ+xJERERERERErZpFyfazzz6L1NRUnD59GgBQWVmJQYMGSdvt2rXDoUOH0KdPH8sjJSIiIiIiImojLBpGfvjwYUyePFna3rZtG06fPo2tW7fi9OnT8PT0RHx8vMVBEhEREREREbUlFiXbubm56Ny5s7SdnJyMfv36Yfr06ejVqxfmzJmD1NRUS2MkIiIiIiIialMsSrbVajUKCwsBAHq9HkeOHEFoaKi039HREUVFRRYFSERERERERNTWWPTMdnBwMBISEjBy5Eh8/vnnKCkpQVhYmLQ/KysLHh4eFgdJRERERERE1JZYlGyvXLkSoaGh6NevH0RRxNSpUzFgwABp/86dOzF06FCLgyQiIiIiIiJqSyxKtvv164dffvkFx48fh7OzM0aMGCHtKywsxAsvvGBWRkRERERERPQgsHidbXd3dzz11FO1yp2dnfHiiy9aenoiIiIiIiKiNseiCdIAwGAwICkpCc899xwmTZqEn3/+GQBQVFSEzz77DNeuXbM4SCIiIiIiIqK2xKJku7CwEEOHDkVUVBQ++ugjfP7557h+/ToAwMHBAfPnz8dbb71llUCJiIiIiIiI2gqLku3FixfjzJkz2LdvH3799VeIoijts7GxwdSpU7F3716LgyQiIiIiIiJqSyxKtpOTk/GXv/wFY8aMgSAItfb36NEDly5dsuQSRERERERERG2ORcl2UVERunTpUu9+nU4HvV5vySWIiIiIiIiI2hyLku2uXbvi1KlT9e7fv38/evXqZckliIiIiIiIiNoci5Lt2bNnY+PGjdi+fbv0vLYgCNBqtVi6dClSUlLw3HPPWSVQIiIiIiIiorbConW2X3zxRZw5cwbTp0+Hs7MzACAqKgo3btyAXq/Hc889h2effdYacRIRERERERG1GRYl24IgICEhATNmzMCnn36K8+fPw2g0omvXroiMjMRjjz1mrTiJiIiIiIiI2gyLku1qw4YNw7Bhw6xxKiIiIiIiIqI2z6JntomIiIiIiIioNot6trt06VLn+to1CYKArKwsSy5DRERERERE1KZYlGyPGDGiVrJtMBhw+fJlHDt2DAEBAejTp49FARIRERERERG1NRYl24mJifXuS09PR2hoKKKjoy25BBEREREREVGbc9ee2X700Ufx3HPPYdGiRXfrEkRERERERESt0l2dIM3DwwMZGRl38xJERERERERErc5dS7Zv3LiBDz74AB07drxblyAiIiIiIiJqlSx6ZnvUqFF1lhcWFuKXX35BZWUl/vvf/1pyCSIiIiIiIqI2x6Jk22g01pqNXBAEdOnSBaNHj8Yf//hHPPTQQxYFSERERERERNTWWJRsHzlyxEphEBEREREREd0/7uoEaUREREREREQPoib1bG/evLlZF3nmmWeadRwRERERERFRW9SkZHvmzJlNvoAgCEy2iYiIiIiI6IHSpGT74sWLdysOIiIiIiIiovtGk5JtPz+/uxUHERERERER0X2DE6QRERERERERWZlFS38BQG5uLj744AOcOnUKRUVFMBqNZvsFQcDBgwctvQwRERERERFRm2FRsv3TTz8hJCQE5eXl6NmzJ37++Wf06tULhYWFyMnJQdeuXeHr62utWImIiIiIiIjaBIuGkS9evBgODg7IzMzEV199BVEU8dZbb+HKlSvYvn07bt68iddff91asRIRERERERG1CRYl28eOHcNzzz2HTp06QSYznap6GHlERASio6Pxt7/9zfIoiYiIiIiIiNoQi5Jto9EIDw8PAICzszNsbGxQUFAg7e/duzdOnjxpWYREREREREREbYxFyXaXLl2ktbdlMhm6dOmCr776Stp//PhxODs7WxQgERERERERUVtjUbI9duxYfPLJJ9L2n/70J2zYsAGjR4/G448/jg8//BBRUVEWB0lERERERETUllg0G/nSpUsxffp06HQ6KBQKLFiwABqNBjt27ICNjQ3+8Y9/YMmSJdaKlYiIiIiIiKhNsKhn28XFBX379oVCoQBgWlP75Zdfxo8//ogffvgBy5Ytg62trVUCrc///d//oXPnzlAqlRg4cCC+//77But/8skneOihh6BUKtG7d2/s3bv3rsZHREREREREDx6LerbfeecdREREwN3d3VrxNMn27duxcOFCvPvuuxg4cCDefPNNhIaGIjMzEx06dKhV//jx45g+fTpee+01TJw4Edu2bUN4eDhOnTqFgICAFriDphNFETqtAUY9oNMaAKNF35fQfUCnY3sgE7YFqontgWpie6Bq1W1BFMWWDoXovieIFvxLk8lkkMvlGDFiBJ5++mlMmjQJrq6u1oyvQQMHDkT//v2xbt06AKbZ0X19ffGXv/wFixcvrlV/2rRp0Gg02LNnj1Q2aNAgBAUF4d13323UNYuLi9GuXTsUFRXBycnJOjfSBDqtAe+/+PU9vy4RERER3T9mrRkClYOyRa7d0n9PE90rFvVs//LLL0hKSsLHH3+MOXPm4IUXXsDjjz+O6dOn46mnnrqr/3gqKytx8uRJ/P3vf5fKZDIZRo8eje+++67OY7777jssXLjQrCw0NBTJycn1Xker1UKr1UrbxcXFAACdTgedTmfBHTRPZaX+nl+TiIiIiO4vlZWVUOhsWuTaLfE3NFFLsCjZ7tGjB+Li4hAXF4czZ84gKSkJn3zyCWbMmAE7OzuEhobi6aefxtNPP22teCX5+fkwGAzSOt/VPDw88Msvv9R5TG5ubp31c3Nz673Oa6+9hvj4+Frl+/fvh0qlakbkFtJWYsQ3r9776xIRERHRfePrr14G7O7u3Er1KSsra5HrEt1rFiXbNT3yyCNYsWIFVqxYgfT0dCQlJeGdd97Bnj177kqyfa/8/e9/N+sNLy4uhq+vL8aOHdsiw16MZWX4NS7unl+XiIiIiO4fjz8+CnYtNIS7eqQo0f3Oasl2tZ9++gkff/wxPv30U5SUlMDe3t7alwAAtG/fHjY2Nrh27ZpZ+bVr1+Dp6VnnMZ6enk2qDwB2dnaws7OrVa5QKKRZ2O8l0ckJ/qn/w779+xE6dmyLxECti06nY3sgAGwLZI7tgWpie6Bq1W2hq6Nji7UFtkF6UFgl2c7IyMD27dvx8ccf49y5c1AoFAgNDUV8fDyefPJJa1yiFltbW/Tt2xcHDx5EeHg4ANMEaQcPHsSf//znOo8ZPHgwDh48iAULFkhlBw4cwODBg+9KjHeDIAiQqVQQbW0hU6kg43+sHngynY7tgQCwLZA5tgeqie2BqlW3BUEQWjoUovueRcn2ihUr8PHHHyMjIwM2NjZ4/PHHsXjxYoSHh6Ndu3bWirFeCxcuxIwZM9CvXz8MGDAAb775JjQaDWbNmgUAeOaZZ+Dj44PXXnsNAPDiiy9ixIgR+Ne//oUnnngCSUlJ+OGHH/D+++/f9ViJiIiIiIjowWFRsr18+XKMGDEC8+fPx+TJk+Hm5matuBpl2rRpuH79OuLi4pCbm4ugoCCkpKRIk6BlZ2dDJru1luSQIUOwbds2vPzyy1iyZAm6d++O5OTkNrPGNhEREREREbUNFiXbOTk56NChg7ViaZY///nP9Q4bP3LkSK2yiIgIRERE3OWoiIiIiIiI6EEmu3OV+rV0ok1ERERERETUGlk8Qdq+ffvwwQcf4Ndff8XNmzchiqLZfkEQkJWVZelliIiIiIiIiNoMi5Lt1atXY/HixfDw8MCAAQPQu3dva8VFRERERERE1GZZlGy/9dZbGDVqFPbu3cv18oiIiIiIiIiqWPTM9s2bNzF16lQm2kREREREREQ1WJRsDxgwAJmZmdaKhYiIiIiIiOi+YFGy/c477+Czzz7Dtm3brBUPERERERERUZtn0TPb06ZNg16vR0xMDP70pz+hY8eOsLGxMasjCALS09MtCpKIiIiIiIioLbEo2XZ1dYWbmxu6d+9urXiIiIiIiIiI2jyLku0jR45YKQwiIiIiIiKi+4dFz2wTERERERERUW0WJ9vFxcV4/fXXERoaij59+uD7778HABQUFODf//43Lly4YHGQRERERERERG2JRcPIf/vtN4wYMQJXrlxB9+7d8csvv6C0tBSA6Xnu9957D5cvX8Zbb71llWCJiIiIiIiI2gKLku2//e1vKCkpQVpaGjp06IAOHTqY7Q8PD8eePXssCpCIiIiIiIiorbFoGPn+/fsxf/589OrVC4Ig1Nrv7++PK1euWHIJIiIiIiIiojbHomS7vLwc7u7u9e4vKSmx5PREREREREREbZJFyXavXr3wzTff1Ls/OTkZffr0seQSRERERERERG2ORcn2ggULkJSUhDfeeANFRUUAAKPRiAsXLiAmJgbfffcdXnrpJasESkRERERERNRWWDRB2h/+8AdcvnwZL7/8MpYuXQoAGDduHERRhEwmw6pVqxAeHm6NOImIiIiIiIjaDIuSbQBYunQpYmJisGPHDly4cAFGoxFdu3bF5MmT4e/vb40YiYiIiIiIiNoUi5NtAOjUqROHixMRERERERFVseiZbSIiIiIiIiKqzaJkWyaTwcbGpsGXWq1Gz5498fzzzyMrK8tacRMRERERERG1WhYNI4+Li8OuXbtw5swZjB8/Ht26dQMAnD9/HikpKejduzdGjRqFCxcuYNOmTfjoo4/wzTff4NFHH7VK8EREREREREStkUXJtre3N/Lz8/HLL7/UmgztwoULCAkJQa9evbB69WqcP38egwcPxpIlS/DFF19YFDQRERERERFRa2bRMPLVq1dj3rx5dc463q1bN8ybNw+vvfYaAKB79+54/vnncfz4cUsuSURERERERNTqWZRs//bbb5DL6+8cl8vluHLlirTduXNnaLVaSy5JRERERERE1OpZlGw/8sgjWL9+Pa5du1ZrX25uLtavX49HHnlEKvv111/h6elpySWJiIiIiIiIWj2Lntles2aNNDFaeHi4NEHahQsXkJycDJ1Oh40bNwIAKioqkJiYiPHjx1seNREREREREVErZlGyHRISguPHj+OVV17BZ599hvLycgCAUqnE6NGjsWzZMgQHB0tlv//+u+URExEREREREbVyFiXbANCnTx98/vnnMBqNyMvLAwB06NABMplFI9SJiIiIiIiI2iyLk+1qMpmMz2MTERERERERoYnJ9vLlyyEIApYuXQqZTIbly5ff8RhBEPCPf/yj2QESERERERERtTVNSraXLVsGQRCwaNEi2NraYtmyZXc8hsk2ERERERERPWialGwbjcYGt4mIiIiIiIioGetsf//99ygoKGhU3UuXLmHz5s1NDoqIiIiIiIioLWtysj148GCkpKRI2wUFBVCpVPj6669r1T127BhmzZplWYREREREREREbUyTk21RFGttV1RUwGAwWC0oIiIiIiIioraMi2ETERERERERWRmTbSIiIiIiIiIrY7JNREREREREZGVNWvqr2qVLl3Dq1CkAQFFREQDg/PnzcHZ2Nqt38eJFy6IjIiIiIiIiaoOalWz/4x//wD/+8Q+zshdeeKFWPVEUIQhC8yIjIiIiIiIiaqOanGxv2rTpbsRBREREREREdN9ocrI9Y8aMuxEHERERERER0X2DE6QRERERERERWRmTbSIiIiIiIiIrY7JNREREREREZGVMtomIiIiIiIisjMk2ERERERERkZUx2SYiIiIiIiKyMibbRERERERERFbGZJuIiIiIiIjIyphsExEREREREVkZk20iIiIiIiIiK2OyTURERERERGRlTLaJiIiIiIiIrIzJNhEREREREZGVMdkmIiIiIiIisjIm20RERERERERWxmSbiIiIiIiIyMqYbBMRERERERFZGZNtIiIiIiIiIitjsk1ERERERERkZUy2iYiIiIiIiKyMyTYRERERERGRlTHZJiIiIiIiIrIyJttEREREREREVsZkm4iIiIiIiMjKmGwTERERERERWRmTbSIiIiIiIiIra7PJdkFBAaKjo+Hk5ARnZ2c8++yzKC0tbfCYkJAQCIJg9nr++efvUcRERERERET0oJC3dADNFR0djatXr+LAgQPQ6XSYNWsW5s6di23btjV43Jw5c7B8+XJpW6VS3e1QiYiIiIiI6AHTJpPts2fPIiUlBSdOnEC/fv0AAP/5z38wYcIErFmzBt7e3vUeq1Kp4Onpea9CJSIiIiIiogdQmxxG/t1338HZ2VlKtAFg9OjRkMlkSE1NbfDYrVu3on379ggICMDf//53lJWV3e1wiYiIiIiI6AHTJnu2c3Nz0aFDB7MyuVwOV1dX5Obm1ntcVFQU/Pz84O3tjZ9++gmLFi1CZmYmPvvss3qP+f/t3XmcjXX/x/H32WcfM4x9xFDGHQpFGHd3ZbupaNMq2rSgtLvv7juVSnX361ZIUXe0S4sUKUR3RApTKinbTco2+3rW6/fHcY4zDBmdOWeW17PO47qu73Vd5/pc9X2Meft+z3WcTqecTmdwu7CwUJLkdrvldrv/4J0cn8B1o3V91Cz0BwTQFxCK/oBQ9AcE1IS+QD9EfVGjwvb48eP1+OOPH/WYjRs3Hvf7jxo1KrjeqVMnNWvWTOecc462bNmitm3bVnrOpEmT9OCDDx7W/sknn0T9896LFy+O6vVRs9AfEEBfQCj6A0LRHxAQzb7AzFLUFybDMIxoFxGwb98+5eTkHPWYjIwMvfrqq7rzzjuVl5cXbPd4PIqJidHcuXN1wQUXHNP1SkpKlJCQoEWLFmnAgAGVHlPZyHZ6err279+vpKSkY7pOuLndbi1evFj9+vWTzWaLSg2oOegPCKAvIBT9AaHoDwioCX2hsLBQjRo1UkFBQdR+nwYioUaNbKelpSktLe13j+vZs6fy8/O1du1adevWTZL06aefyufzqUePHsd8vezsbElSs2bNjniMw+GQw+E4rN1ms0X9D6uaUANqDvoDAugLCEV/QCj6AwKi2Rfog6gvauUD0jp06KCBAwfqhhtu0Jo1a7Ry5UqNGTNGl112WfBJ5Lt27VJmZqbWrFkjSdqyZYsmTpyotWvXavv27Zo/f76uvvpq/fnPf1bnzp2jeTsAAAAAgDqmVoZtyf9U8czMTJ1zzjkaNGiQsrKyNGPGjOB+t9utTZs2BT8TYrfbtWTJEvXv31+ZmZm68847ddFFF+mDDz6I1i0AAAAAAOqoGjWNvCpSU1P1+uuvH3F/69atFfpx9PT0dH322WeRKA0AAAAAUM/V2pFtAAAAAABqKsI2AAAAAABhRtgGAAAAACDMCNsAAAAAAIQZYRsAAAAAgDAjbAMAAAAAEGaEbQAAAAAAwoywDQAAAABAmBG2AQAAAAAIM8I2AAAAAABhRtgGAAAAACDMCNsAAAAAAIQZYRsAAAAAgDAjbAMAAAAAEGaEbQAAAAAAwoywDQAAAABAmBG2AQAAAAAIM8I2AAAAAABhRtgGAAAAACDMCNsAAAAAAIQZYRsAAAAAgDAjbAMAAAAAEGaEbQAAAAAAwoywDQAAAABAmBG2AQAAAAAIM8I2AAAAAABhRtgGAAAAACDMCNsAAAAAAIQZYRsAAAAAgDAjbAMAAAAAEGaEbQAAAAAAwoywDQAAAABAmBG2AQAAAAAIM8I2AAAAAABhRtgGAAAAACDMCNsAAAAAAIQZYRsAAAAAgDAjbAMAAAAAEGaEbQAAAAAAwoywDQAAAABAmBG2AQAAAAAIM8I2AAAAAABhRtgGAAAAACDMCNsAAAAAAIQZYRsAAAAAgDAjbAMAAAAAEGaEbQAAAAAAwoywDQAAAABAmBG2AQAAAAAIM8I2AAAAAABhRtgGAAAAACDMrNEuAAAA1A6GYchjeOTxeeT1eeU1vP51wyuvzyuPcbA90OYzfPIYHvkMX4V9PsMXbPMZvopthleGDHl9B5aGV4ZhBPcHXoaMCuvBY+STDMknX7BNUvB4Q4b8//rPCfwTuMdwMJlMB9cD/5j8S/+/FdtCl2aZJZNklllmk9nfZjLLrJB1k1kmmWQxWSq0hb4C+ywmiwyvoR/dPyppV5LsNntwv9lkltVsDW5bzAfaTFZZzBZZTBZZzdbgPosppM1skdVkrXCvAICDCNsAAESJ1+eVy+eSy+uS2+eWy+tfd/lccnvdlS5dXpc8Po/cPrf/5XUfXA/Zdnqc2la6TV988YW88gbP8fg8FV6B8wLB+bDXgQAdCMyo3V797NWwv2cggFvM/hBuM9uCYd1qth58mQ7sMx9chq6HLm0W/3vYLDb/duBlqXzdbrFXWAbW7Ra77GZ7hf1WM7/+AogMftoAAOotwzDk8XlU7i2X0+tUuefA0lsup8cpp9cZ3HZ5XSr3+JeBdqfXWel2oC0QjkPbA20ur0tew1v9N7m9+i8RCFaBEVGz+cDIqMkis9lcIYwFRlMPXZpNZv97HBjNNZv9I7mho7OhI7yB/YE2k0zBUeBDR40rtB+yX1KF0ebgtlRx/zGobHQ8OGpeyUh64LjQkfnQ0fcK24ZRYTTfMIzgDIDgbADDqHTpM3zy+DzKzctVYnJicLZA6KyCQ2cdeHye4L7A7IUj/WVL4DzVkr+LMZvMwQAeGsbtFrscFkeFpd18cD3GGhPc57A4gvscVkewLfAKHBtjiQluB/YxEwCoPwjbAIAayevzqtxbrjJPWfBV7ilXuedAm/fgdrmnvOL2gfNCt4NB+pDtiATeY2CSKfjLvc1iO7geMlpnNVsrHcE7dPTParbKIou2/LxFHTt0lMPmCI4SVhhVNFkrjDyGjjYG9lnMFtnMtsOmDgeWgSCLms3tdmvhwoUaNHCQbDbbcb1HaPgOBPJAED9sJkTIvsNmVBgeub3u4EcSAuuhy8CMiyPN4gjM8HD5XBX2HWlmSOhfFPgMn/9ngLc8XP95qyQYyC0x/hBuPbh+2DJkPdYaG9wOrAeXltgKbYR6oGYgbAMA/hC3z61Sd6nKPGUqdZeq1FN62DKwr8xTFtwObQtuB/a5y+TyuSJ+L4FfUg8dmQodoQodyQod5TpsRMxil8N8cD2470CYDqzbLfbglNlw/nLsdru1cOdCDepw/OEKCBWYgWAz177+5PF5KnxcI3TmSWDb7XVXOiOlsmVgxovb6w7OjHF6nRVmxITOlgn9S73AvkIVVtv9mmQKBu/AK84aF/wZl1eSpyZ7muiMlmdUWw0ACNsAUO+4vW6VuEtU7C5WibtEpZ5SlbhLgq9S94Ftj389sH1oiA7sd/vc1Vpv6C+NgRGdw0Z1DuwLjAQFfqGsdKTI4h9JirXEBkNzjDVGdrOdkSCgjgrM2IiWQMgPzKxxepzBkF7mKQtuh87ACczWCRxT2WydQ2f+BP6S0pARbD+S30p/i9TtA/UWYRsAagHD8P/iVOwu9odkV4mK3EX+0Ozyh+bC8kJtKNugdWvWBY8NDdGBV3WNGNvMNsXZ4hRnPfCyxR0cTbEdHFUJtFe279BXIBwTggHUZoGPeMTb4qv1Oh6f52A4d/s/bhMM5G7/sthZrLUb1qpjw47VWgsAwjYAVDvDMFTqKVWRq0hFriIVu4sPrruKVeT2LwPtxe7i4HZgWeIuOfbPFm8+tsMcFofibfHBV5w1ruK2La5CezBI2+IUb624HWeNk81S+6aWAkBdEhjBj7fFS7GVH+N2u+X4yaHWSa0jWhtQHxG2AeB3GIahEneJilxFKnQVqtBVGAzLgVdoWyA0B9qK3cVh+8oks8mseFu8Em2JirfHK94arwR7ghJsCYq1xGrvL3vV6aROSnQkKtGeqDhbnBJsCRVCdCA418bPXQIAANQWhG0A9YLX51Wxu1iFzkIVuApU6CwMBudCV2Gl24HAHK6wbDVblWhLDIbjRLs/EAfWA+0JtgQl2BMOHntgPd4Wr1hr7BGnVLvdbi3MWahBnXggFgAAQLQRtgHUKuWechU4C1TgKlCB82BoDm0rcBYE20JHov8om9mmJHuSEu2Jhy0DYTnJnqQEW4KSHAfabQf38dljAACA+oOwDSAq3F638p35ynfmBwNyvjNfBa6CCm2Hhmin1/mHrhtrjVWSPUlJjiT/MvByHAzPSfYkJTuSg2E5cCzfWwoAAIBjRdgG8IcEnpKd78xXnjNPBeUFynPmBQNzXnleMEgH2vKd+Sr1lB73NS0mi5IdycFQnOxIVrI9OdgWCMeh28l2/zoP8QIAAEAkELYBVFDuKfcH5/I8f2guzw+G57xy/zK/PD8YrvPL84/7q6TMJrOS7Elq4GgQDM3BdfvB7SRH0sF99mTF2+IZYQYAAECNRtgG6jDDMFToKgwG59zy3GB4DqznOg+0HTimzFN2XNeymW1KcaSoQUyDYGBOcaQEQ3JoewOHfz3RniizyRzmuwYAAACij7AN1CKB8Jxbnqvc8lzlledpX8k+fVn+pb77+jvlu/yhOdfp35dfni+P4anydawmq1Ji/ME5xZGiBo4G/u0DITnYfiBApzhSjvqUbAAAAKC+IWwDUVbmKVNOWU4wQAdeoW155XnB5RHD809Hvka8LV4pjhSlxBx4OVKUGpMaDM2h7SkxKUqwJRCcAQAAgD+AsA2Emc/wqdBZqJzynGBozinPCYbnnPIc5ZblBvcfz7TtRFuiUmIOBGZHAxXtLdIpJ56iRnGN/O2O1IMBOiZFDoujGu4UAAAAwJEQtoFj4DN8yivPC4bm4PLQIH1gWdWp23azXQ1jGyo1xh+SG8Y0VGpsqn8Zkxp8BQK23WIPnut2u7Vw4UINOmWQbDaetA0AAADUBIRt1FuBzz/nlOVof9n+4Cun3L8dCNL7y/YrrzxPXsNbpfdPsicpNSZVDWMbBkNzw9iGwVDdMKZhMFTHWeOYtg0AAADUIYRt1DlOr7NCeN5ful/7y0PCdEi4dvvcVXrvFEfKwfB8YOQ5sB0I0oEQzfc5AwAAAPVXrQ3bjzzyiBYsWKDs7GzZ7Xbl5+f/7jmGYWjChAmaOXOm8vPz1bt3b02fPl0nnnhi9ReMP8QwDBW5i7S/dL/2le3TvrJ9yinL0b5S/3ogPO8r26ciV1GV3jvRnqhGsY3UKLaRGsY09C9jGx62nRKTIpuZAA0AAADg99XasO1yuXTJJZeoZ8+eevHFF4/pnCeeeELPPPOMZs+erTZt2uif//ynBgwYoB9++EExMTHVXDEqYxiGCpwF2lu2t0KQDg3Re0v3KqcsR+Xe8mN+38BnoNNi04JBOjREB9pTY1N5eBgAAACAsKu1YfvBBx+UJM2aNeuYjjcMQ5MnT9Y//vEPDRkyRJL08ssvq0mTJpo3b54uu+yy6iq1Xgp8Hnpv6d5gcN5Xtq/i9oFlVaZyJ9oS1SiuUYUQnRabdlhbkj2Jz0ADAAAAiJpaG7aratu2bdq9e7f69u0bbEtOTlaPHj20atUqwnYVlLpL/aG5bJ/2lO7RvlJ/iA60BQK1y+c65vdMcaQEA3NabJrS4tKCQTotLi0YpGOszEAAAAAAUPPVm7C9e/duSVKTJk0qtDdp0iS4rzJOp1NOpzO4XVhYKMn/dUtud9UerhUugeuG+/oen0c55Tn+4Fx2cAQ6GKLL9mp/2X4Vu4uP+T0bOBocDM2xaZWuN4ppdGwPEzPCf891QXX1B9Q+9AWEoj8gFP0BATWhL9APUV/UqLA9fvx4Pf7440c9ZuPGjcrMzIxQRdKkSZOCU9ZDffLJJ4qLi4tYHZVZvHjxMR/rNJwq9BX6X0bhwfWQ7WKjWIaMY3o/hxxKNCcqyZykRNOBpTlRSaaDywRzgmymAyG67MDrgHKV65cD/yA8qtIfULfRFxCK/oBQ9AcERLMvlJaWRu3aQCTVqLB95513auTIkUc9JiMj47jeu2nTppKkPXv2qFmzZsH2PXv26NRTTz3ieX/72990xx13BLcLCwuVnp6u/v37Kykp6bhq+aPcbrcWL16sfv36yWq1qsBVEJzGvadsz8H10j3Bqd7HOhptMVmCI86N4xqrcWxjNY5rrEaxjYLrabFpirfFV/Nd4liF9gebjael12f0BYSiPyAU/QEBNaEvBGaKAnVdjQrbaWlpSktLq5b3btOmjZo2baqlS5cGw3VhYaG+/PJL3XzzzUc8z+FwyOE4/GnVNpstKj+gNudt1sxvZ2pj8UY9/9Hz2lu2V06v8/dPlBRvi1fjuMZqEtekwjJ0PTUmVRazpZrvAtUhWn0SNQ99AaHoDwhFf0BANPsCfRD1RY0K21WxY8cO5ebmaseOHfJ6vcrOzpYktWvXTgkJCZKkzMxMTZo0SRdccIFMJpPGjRunhx9+WCeeeGLwq7+aN2+uoUOHRu9GqqjcW66F2xf6N0IGq1NjUiuE6CbxIesH2hPsCdEpGgAAAADqmVobtu+//37Nnj07uN2lSxdJ0rJly/SXv/xFkrRp0yYVFBQEj7nnnntUUlKiUaNGKT8/X1lZWVq0aFGt+o7t9MR0jWt0hvYVpuisP1+kFkkt1DiusewWe7RLAwAAAAAcUGvD9qxZs373O7YNo+LDvkwmkx566CE99NBD1VhZ9Ure97Ou++ot+UwWKaZY5j/fKSUStAEAAACgJjFHuwBUkdmqsha9ZDa8Mn/zmjT1NGnuNdLu76JdGQAAAADgAMJ2LbMnIVO9frtdd9knyJXRTzJ80vfvSs/1ll6/VNr5VbRLBAAAAIB6j7Bdy6zfka9ip0dvF7bXWb/erI1DFkonXyjJJP20SHqxrzTrXGnrcsk4tu/MBgAAAACEF2G7lhnYsaneuqGHGjkM7cov13lzCzSjyT/kG/2V1OUqyWyVtn8uvTxEeqGvtOkjQjcAAAAARBhhuxbq2CJJd3f2anDHpvL4DD268EddvyBfuX3/Ld2aLXUfJVljpF1fS29cJj2XJW14W/J5o106AAAAANQLhO1aKsYq/XtYJz16QSfZrWZ9+uNeDXr6c63Ji5cG/Usat0HqPU6yJ0p7vpPeuU6aerq07hXJ44p2+QAAAABQpxG2azGTyaQrerTS+6N7KyMtXrsLy3XZjFWatmyzfHFpUr8Hpds3SGfdJ8WmSLlbpPljpGe6SF/OkNxl0b4FAAAAAKiTCNt1QIdmSfpgTJYu7NJCPkP618ebNOKlNdpf7PSH7DPvkcZ9J/V/WEpoIhX+In10tzS5s7RisuQsivYtAAAAAECdQtiuI+IdVj116an618WdFWMz6/Of92vQ059r9dYc/wGOBKnXWOm2b6XB/yclt5JK9kpLJkj/7igtmySV5kb3JgAAAACgjiBs1zGXnJau90dnqW1avPYWOXXFzNWa+unP8vkOPJHcFiOdfr106zppyLNSw3ZSeb702WPS5E7S4vul4r1RvQcAAAAAqO0I23VQ+6aJmj8mSxd29U8rf/KTnw5OKw+w2KQuV0qj10gXvyQ16Si5iqWVT/tD98J7pIJfoncTAAAAAFCLEbbrqHiHVU8NO8q08gCzRep4oXTTCunyOVKL0yRPubTmeenpU6X5Y6XcrVG5BwAAAACorQjbddwlp6Vr/pgstWucEJxWPm3Z5oPTygNMJqn9QOn6JdLV70ut+0g+t7TuZWlKN+mdG6S9G6NzEwAAAABQyxC264GTmiRq/pjeFZ5Wfs2sr5RbUsn3bZtMUsZfpJEfStd+Ip3YXzJ80oa3pGfPkOZcJf2aHelbAAAAAIBahbBdT8TZrfq/Yafo8Ys6yWE167Of9mnQ05/r6+1HeQJ5qx7SlXOlUZ9JHc73t238QJpxpvTqRdKO1ZEpHgAAAABqGcJ2PWIymXTp6a00b3RvZTSK1+7Ccl06Y7We/2zL4dPKQzU/Vbr0FemWL6XOl0oms7R5ifSfAdKsc6WtyyXjKOcDAAAAQD1D2K6HOjRL0vyxWTr/lOby+gxN+uhH3fDy18ovrWRaeajGmdKFM6Sxa6WuV0tmm7T9c+nlIdKL/aRNiwjdAAAAACDCdr2V4LDq6ctO1aMXdJLdatbSH/dq8DMrlL0z//dPTs2Qzp8i3ZYtdb9RssZIv3wlvXGp9Hwf6ft5ks9XzXcAAAAAADUXYbseM5lMuqJHK717cy+d0DBOu/LLdMlzX2jWym0yjmWEOrmlNOgJadwGqfdtki1e2r1BmjvC/zC1b+ZIXk/13wgAAAAA1DCEbahji2R9MDZLf+3YVG6voQc++EFjXl+vonL3sb1BQmOp30PS7d9JZ94rOZKl/Zuk90ZJU7tJa2dJHme13gMAAAAA1CSEbUiSkmJsevbKrppw3p9ks5i0YMNvOm/KCv3wa+Gxv0lcqnTW36XbN0jn3C/FNZTytksf3CY900X68nnJXVZt9wAAAAAANQVhG0Emk0nX9G6jt27sqRYNYrU9p1RDn12pN9fsOLZp5QExyVKfO/3TywdMkhKaSoW7pI/ukSZ3llY+LTmLqu9GAAAAACDKCNs4TJdWKfpwbJbOzmwsl8en8e9u0F1zv1WZy1u1N7LHSz1vkW77Rhr8lJTcSirZKy2+X5rcSfrsCaksv1ruAQAAAACiibCNSqXE2/XC1afpnoHtZTZJ76z7RUOnrdSWfcVVfzNbjHT6ddKt66Qhz0qpbaWyPGnZI/7QvXSiVJIT/psAAAAAgCghbOOIzGaTbvlLO712/RlqlODQpj1FOn/KCn347a/H94YWm9TlSmnMV9JFL0ppHSRnofT5k9LkjtLH90lFu8N7EwAAAAAQBYRt/K6ebRtq4W1ZOiMjVSUur8a8vl4T3v9OTk8Vp5UHmC1Sp4ulm7+QLn1VanaK5C6VVk31f6Z74d1SwS/hvQkAAAAAiCDCNo5J48QYvXpdD40+q60kafaq/2nY86v1S17p8b+p2Sx1OE8a9Zl0xVypZXfJ65TWzJCePlWaf6uUuy08NwAAAAAAEUTYxjGzWsy6e0Cm/jPyNCXH2vTNznydO2WFlm/a+8fe2GSSTuovXfeJdPV8qXUfyeeW1s2WpnST3r1R2vdTeG4CAAAAACKAsI0qOzuziRbcmqXOLZOVX+rWNbO+0lOfbJLXV4WvB6uMySRlnCmN/FC6ZpHUrq9keKVv35SmdZfmjpR2fxeWewAAAACA6kTYxnFpmRKnuTf11PAzTpBhSM98ulkj/rNGOcXO8FzghJ7SVe9INyyT2g+WZEjfvyc911t64wpp17rwXAcAAAAAqgFhG8fNYbVo4tCOevqyUxVrs2jF5v0a/MwKrf1fbvgu0qKrdPnr0k0rpZMvkGSSNi2QZp4lvXqRtGN1+K4FAAAAAGFC2MYfNuTUFpo/prfapsVrd2G5Ln1+tV5csU2G8QenlYdq2lG6ZJY0+kup82WSySJtXiL9Z4A061xp62dSOK8HAAAAAH8AYRthcWKTRM0fk6XzTmkuj8/QxA9/0JjX16vY6QnvhdLaSxc+L439Wup6tWS2Sds/l14+3x+8f15C6AYAAAAQdYRthE28w6pnLjtVD55/smwWkxZs+E3nT12hn/YUhf9iqRnS+VOkW9dLp98gWRzSzi+l1y7yTzH/cQGhGwAAAEDUELYRViaTSSN6tdacG3uqWXKMtu4r0ZCpKzVv/a7quWCDdGnwk9Jt30g9x0i2OOnX9dKbV0jPZUnfvSv5vNVzbQAAAAA4AsI2qkXXVin6cGyW+pzYSGVur8bNydY/530np6eagm9SM2nAI9K4DVLW7ZI9QdrznfT2NdKzZ0jfzJG8YZ7SDgAAAABHQNhGtWmY4NCsa7rr1rPbSZJeWf0/DXt+tXbll1XfReMbSX0f8IfuM8dLMcnS/p+k90ZJU0+T1r0ieVzVd30AAAAAEGEb1cxiNumO/u310sjTlRxr0zc783XuM5/rs5/2Ve+F41Kls/7mD91n/1OKTZXytknzx0hTukpfvSB5wvSd4AAAAABwCMI2IuKszMb6cGyWOrVIVl6pWyNfWqOnl/wsn6+aH2IWkyz9+S5/6O7/sBTfWCrYKS24U3r6FGn1dMlVWr01AAAAAKh3CNuImPTUOM29qacu795KhiH9e8lPunb2V8ovjcC0bkeC1GusNO5b6a9PSInNpaLfpEXjpac7SyuflpzF1V8HAAAAgHqBsI2IirFZNOnCTvrXxZ3lsJq1fNM+DX5mhTb8UhCZAmyxUo8bpduypXP/LSW3kkr2SYvvlyZ3kv77L6k8QrUAAAAAqLMI24iKS05L13u39NYJDeO0K79MF03/Qm+s2SEjUt+NbXVIp10r3bpOGjLN/73dZbnSpw9L/+4kLXtUKs2NTC0AAAAA6hzCNqLmT82TNH9Mlvp2aCKX16e/vbtB97z9rcrdEfxebItN6nKVNPor6cKZUqP2krNA+uxx/0j3kgekkv2RqwcAAABAnUDYRlQlx9o0Y3g33TOwvcwmae7aX3TR9C+0IyfCDy2zWKXOw6RbVkuXzJaadJRcxdKKf/tD98f3SUW7I1sTAAAAgFqLsI2oM5tNuuUv7fTKdT3UMN6u738t1LlTPtenP+6JRjHSyUOlGz+XLntDat5FcpdKq6ZKkztLC++WCnZFvi4AAAAAtQphGzVG73aN9OGtWTo1vYEKyz26dtbXeuqTTfJW99eDVcZsljIHSTcsk658R0rvIXmd0poZ0jOnSh+Mk/L+F/m6AAAAANQKhG3UKM2SYzXnxjM0/IwTJEnPfLpZI19ao7ySCHw9WGVMJunEvtK1H0tXz5dOyJK8LmntS9KUrtK80VLOlujUBgAAAKDGImyjxnFYLZo4tKP+fekpirGZ9fnP+3XulBX69pf86BVlMkkZZ0rXLJCu+UjKOEvyeaTsV6Wpp0nvjpL2/RS9+gAAAADUKIRt1FgXdGmpeaN7q/WBrwe7ePoqvblmR7TLkk7oJV09T7puiXRif8nwSd/OkaZ1l+aOlPZ8H+0KAQAAAEQZYRs1WmbTJL0f8vVg49/doHsj/fVgR5J+unTlXGnUcinzXEmG9P170vRe0ptXSr9mR7lAAAAAANFC2EaNF/h6sLsH+L8ebM7XO3XJc6u0MzfCXw92JM27SJe9Jt20UvrTUEkm6ccPpRlnSq8Nk375OtoVAgAAAIgwwjZqBbPZpNFntdPsa7srJc6mDbsKdN7UFfrsp33RLu2gph2lYbP939XdaZhkMks/fyy9cI70ygXS/1ZFu0IAAAAAEULYRq3S58Q0fTA2S51bJiu/1K2RL63RlKU/yxeNrwc7ksaZ0kUzpTFfS6deKZks0pZPpZcGSrPOlbb9VzJqUL0AAAAAwo6wjVqnZUqc3rqxpy7vni7DkP5v8U8a9crXKihzR7u0ihq2lYY+K41dK3UdIZlt0vbPpdnnSf8ZKG1eSugGAAAA6ijCNmqlGJtFky7srCcu6iy71awlG/dqyNQV+nF3YbRLO1xqG+n8Z6Rb10un3yBZHNLO1dKrF0ov9JV++pjQDQAAANQxhG3UasNOT9c7N/VSiwax2p5TqgumfaH3s3dFu6zKNUiXBj8p3faNdMYtkjVW2vW19Pow/8PUNn4o+XzRrhIAAABAGBC2Uet1apmsD8dmqc+JjVTm9uq2N7P1wPzv5fbW0OCa1EwaOEka963U61bJFi/99o0050rp+T7+rw8jdAMAAAC1GmEbdUJKvF2zrumuMWe1kyTN+mK7rpi5WnsLy6Nc2VEkNJb6T5TGbZD63CnZE6U930lzR0rTe0ob3pZ8NeD7xAEAAABUGWEbdYbFbNJdA9pr5tWnKdFh1Vfb83TulBX6entutEs7uviG0jn3+0e6zxwvOZKlfT9K71wnTesuZb8ueT3RrhIAAABAFRC2Uef0+1MTzR+bpZOaJGhvkVOXzVit2V9sl1HTH0IWlyqd9Tfp9g3S2f+QYlOknM3SvJulqd2ktbMljyvaVQIAAAA4BoRt1EltGsXrvVt669zOzeTxGZow/3vd8dY3KnPVgmnZMcnSn+/2Ty/v+6AU10jK2y59cKs0pav01YuSxxntKgEAAAAcBWEbdVa8w6opl3fRPwZ3kMVs0nvrd+nC6V9oR05ptEs7No5EKWucf3p5/0ekhCZSwU5pwR3S06dKXz4vucuiXSUAAACAShC2UaeZTCZd3ydDr17XQ40S7Nr4W6HOnfK5lm3aG+3Sjp09Xuo1xv+VYX/9l5TYXCr6VfroHunpU2T+8llZvIx0AwAAADUJYRv1Qs+2DfXB2Cx1adVAheUeXTvrKz2z9Gf5fDX8c9yhbLFSj1HSbdnS4Kek5HSpeI8sS+5Xvx/ukHnVM5KzONpVAgAAABBhG/VIs+RYvTnqDF3Zo5UMQ3pq8U8a9crXKix3R7u0qrE6pNOvk8auk86fIqPBCXJ4imT59CFpcifpv09K5YXRrhIAAACo1wjbqFccVoseuaCTnri4s+xWs5Zs3KshU1dq0+6iaJdWdVa71PVqeW5arXWtbpCRmiGV5UqfTpQmd5SWPyaV5UW7SgAAAKBeImyjXhp2WrreuamXWjSI1bb9Jbrg2ZX68Ntfo13W8bHYtLNhH3luXCVd+ILUqL1UXiAtnyRN7iwtnSiV1vDvGgcAAADqGMI26q1OLZP1wdgsZbVrpFKXV2NeX69HFvwgj9cX7dKOj9kidb5EumWVdPFLUuOTJWeh9PmT/unliydIJfujXSUAAABQLxC2Ua+lxts1+9ruuunMtpKkmZ9v0/AX1yinuBY/3dtskTpeKN20Qrr0ValpZ8lVLK2c7A/dH98nFe2JdpUAAABAnUbYRr1nMZs0/q+Zmn5lV8XbLVq1NUfnTVmhb3/Jj3Zpf4zZLHU4T7rxv9Llc6TmXSV3qbRqqvR0Z+mje6XCWjp1HgAAAKjhCNvAAX/t1EzzRvdWRqN4/VpQroufW6W3vtoZ7bL+OJNJaj9QuuFT6cp3pJanS55y6cvnpKdPkRbcKeXXgfsEAAAAahDCNhDixCaJmjemt/p2aCKXx6d73vlWf39vg5web7RL++NMJunEvtJ1i6Xh86RWvSSvS/rqBemZLtIHt0l5/4t2lQAAAECdUGvD9iOPPKJevXopLi5ODRo0OKZzRo4cKZPJVOE1cODA6i0UtU5SjE0zhnfTnf1Okskkvf7lDl02Y7V2F5RHu7TwMJmktmdJ134kjfhQat1H8rmltbOkKV2l90dLOVuiXSUAAABQq9XasO1yuXTJJZfo5ptvrtJ5AwcO1G+//RZ8vfHGG9VUIWozs9mkseecqP+MPF1JMVat35Gvc6es0JptdewrtNr0kUZ+KF3zkZRxluTzSOtflaaeJr17o7T/52hXCAAAANRKtTZsP/jgg7r99tvVqVOnKp3ncDjUtGnT4CslJaWaKkRdcFb7xvpgbJYymyZqf7FTV8xcrVkrt8kwjGiXFl4n9JKunuefYt6un2T4pG/flKZ1l965Xtr7Y7QrBAAAAGqVWhu2j9fy5cvVuHFjtW/fXjfffLNycnKiXRJquBMaxuvdW3rp/FOay+Mz9MAHP+jOt75RubsOfI77UOndpave9j9Mrf0gf+jeMFd69gxp7khpz/fRrhAAAACoFazRLiCSBg4cqAsvvFBt2rTRli1b9Pe//11//etftWrVKlkslkrPcTqdcjoPfudyQUGBJCk3N1dutzsidR/K7XartLRUOTk5stlsUamhPrq/X7raJkuTl27R26t/1obtv+n/Lu6kFg1io1pXtfSHmNZS/6nSKd/JsmqazJsXSevelda9K1+7AfL2HCM16RieayFs+NmAUPQHhKI/IKAm9IWioiJJqnszBYFDmIwa1MvHjx+vxx9//KjHbNy4UZmZmcHtWbNmady4ccrPz6/y9bZu3aq2bdtqyZIlOueccyo95oEHHtCDDz5Y5fcGAAAAcGQ7d+5Uy5Yto10GUG1qVNjet2/f707rzsjIkN1uD27/kbAtSWlpaXr44Yd14403Vrr/0JFtn8+n3NxcNWzYUCaT6biu+UcVFhYqPT1dO3fuVFJSUlRqQM1Bf0AAfQGh6A8IRX9AQE3oC4ZhqKioSM2bN5fZXO8+1Yp6pEZNI09LS1NaWlrErvfLL78oJydHzZo1O+IxDodDDoejQtuxftVYdUtKSuIPTATRHxBAX0Ao+gNC0R8QEO2+kJycHLVrA5FSa/8qaceOHcrOztaOHTvk9XqVnZ2t7OxsFRcXB4/JzMzUe++9J0kqLi7W3XffrdWrV2v79u1aunSphgwZonbt2mnAgAHRug0AAAAAQB1Uo0a2q+L+++/X7Nmzg9tdunSRJC1btkx/+ctfJEmbNm0KPtDMYrHo22+/1ezZs5Wfn6/mzZurf//+mjhx4mEj1wAAAAAA/BG1NmzPmjVLs2bNOuoxoR9Hj42N1ccff1zNVUWGw+HQhAkT+EsCSKI/4CD6AkLRHxCK/oAA+gIQOTXqAWkAAAAAANQFtfYz2wAAAAAA1FSEbQAAAAAAwoywDQAAAABAmBG2a6hp06apdevWiomJUY8ePbRmzZqjHj937lxlZmYqJiZGnTp10sKFCyNUKapbVfrCzJkz1adPH6WkpCglJUV9+/b93b6D2qWqPxsC3nzzTZlMJg0dOrR6C0REVbU/5Ofna/To0WrWrJkcDodOOukk/ryoQ6raHyZPnqz27dsrNjZW6enpuv3221VeXh6halFd/vvf/+q8885T8+bNZTKZNG/evN89Z/ny5eratascDofatWv3uw8hBnBsCNs10Jw5c3THHXdowoQJWrdunU455RQNGDBAe/furfT4L774Qpdffrmuu+46rV+/XkOHDtXQoUP13XffRbhyhFtV+8Ly5ct1+eWXa9myZVq1apXS09PVv39/7dq1K8KVozpUtT8EbN++XXfddZf69OkToUoRCVXtDy6XS/369dP27dv19ttva9OmTZo5c6ZatGgR4cpRHaraH15//XWNHz9eEyZM0MaNG/Xiiy9qzpw5+vvf/x7hyhFuJSUlOuWUUzRt2rRjOn7btm0aPHiwzjrrLGVnZ2vcuHG6/vrr68y3+ABRZaDG6d69uzF69OjgttfrNZo3b25MmjSp0uOHDRtmDB48uEJbjx49jBtvvLFa60T1q2pfOJTH4zESExON2bNnV1eJiKDj6Q8ej8fo1auX8cILLxgjRowwhgwZEoFKEQlV7Q/Tp083MjIyDJfLFakSEUFV7Q+jR482zj777Aptd9xxh9G7d+9qrRORJcl47733jnrMPffcY5x88skV2i699FJjwIAB1VgZUD8wsl3DuFwurV27Vn379g22mc1m9e3bV6tWrar0nFWrVlU4XpIGDBhwxONROxxPXzhUaWmp3G63UlNTq6tMRMjx9oeHHnpIjRs31nXXXReJMhEhx9Mf5s+fr549e2r06NFq0qSJOnbsqEcffVRerzdSZaOaHE9/6NWrl9auXRucar5161YtXLhQgwYNikjNqDn4PRKoPtZoF4CK9u/fL6/XqyZNmlRob9KkiX788cdKz9m9e3elx+/evbva6kT1O56+cKh7771XzZs3P+wPUdQ+x9MfVqxYoRdffFHZ2dkRqBCRdDz9YevWrfr000915ZVXauHChdq8ebNuueUWud1uTZgwIRJlo5ocT3+44oortH//fmVlZckwDHk8Ht10001MI6+HjvR7ZGFhocrKyhQbGxulyoDaj5FtoI567LHH9Oabb+q9995TTExMtMtBhBUVFWn48OGaOXOmGjVqFO1yUAP4fD41btxYM2bMULdu3XTppZfqvvvu03PPPRft0hAFy5cv16OPPqpnn31W69at07vvvqsFCxZo4sSJ0S4NAOoMRrZrmEaNGslisWjPnj0V2vfs2aOmTZtWek7Tpk2rdDxqh+PpCwFPPvmkHnvsMS1ZskSdO3euzjIRIVXtD1u2bNH27dt13nnnBdt8Pp8kyWq1atOmTWrbtm31Fo1qczw/H5o1ayabzSaLxRJs69Chg3bv3i2XyyW73V6tNaP6HE9/+Oc//6nhw4fr+uuvlyR16tRJJSUlGjVq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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_eigenvalues_evolution(ylim=(-1.5, 1.5))" + ] + }, + { + "cell_type": "markdown", + "id": "8e89b285-f0d1-4652-aebf-f0370bc4a338", + "metadata": {}, + "source": [ + "We can visually observe from the above that although the spectral gap does change throughout $s$ it still stays quite large in our example, so we can choose $T$ accordingly. Without going into details we will choose a simple value for $T$ (represented as `TOTAL_EVOLUTION_TIME`). However, if we simply assume $ \\|H^{(1)}\\|^2 $, $ \\|H^{(2)}\\|^2 $ are bounded by constants, and use the worst-case bound that $ \\Delta \\geq \\kappa^{-1} $, it can be shown that in order to have $ \\eta(1) \\leq \\epsilon $, the runtime of vanilla AQC is $ T \\propto \\kappa^3 / \\epsilon $.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "id": "dae29d46-e824-4183-8869-7ded2c9f012a", "metadata": {}, "outputs": [], @@ -566,7 +577,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "85b63b16-87e4-4c24-8958-7bfb4f1f8490", "metadata": {}, "outputs": [], @@ -587,7 +598,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "e87f1b12-eb7b-41fa-a7f9-7a8af538ab28", "metadata": {}, "outputs": [], @@ -625,7 +636,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "e5b9ac3e-5380-42c6-a44c-8370eeed5f8d", "metadata": {}, "outputs": [], @@ -653,7 +664,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "1a102a03-cb5b-4cba-b8b8-54010d4add2d", "metadata": {}, "outputs": [ @@ -661,7 +672,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Opening: https://platform.classiq.io/circuit/e803dba9-fddb-440c-ad4d-4b961c9d1b34?version=0.63.1\n" + "Opening: https://platform.classiq.io/circuit/2rD8dU555vJA8wWyIXdVnmPrjrQ?version=0.64.0\n" ] } ], @@ -701,7 +712,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "13063341-2420-4c86-b08a-f2a1f4de50bc", "metadata": {}, "outputs": [], @@ -725,16 +736,6 @@ " plt.ylim(0, 1)\n", " plt.show()\n", "\n", - "def phase_difference(v1, v2):\n", - " # Ensure vectors are complex\n", - " v1 = np.array(v1, dtype=np.complex128)\n", - " v2 = np.array(v2, dtype=np.complex128)\n", - " \n", - " # Compute the inner product and find its angle (phase difference)\n", - " inner_product = np.vdot(v1, v2) # Computes conjugate transpose of v1 * v2\n", - " phase_diff = np.angle(inner_product) # Angle of the inner product in radians\n", - " \n", - " return phase_diff\n", "\n", "def compare_states(state1, state1_label, state2, state1_labe2, color1 ='gold',color2='b'):\n", " # Plot a histogram of each state probabilities\n", @@ -744,16 +745,14 @@ " # Check the overlap between states\n", " overlap = np.abs(np.vdot(state1, state2))**2\n", " print(f\"Similarity of results: {overlap:.4f}\")\n", - " # Calculate phase difference\n", - " phase_diff = phase_difference(state1, state2)\n", - " print(f\"Phase difference: {np.degrees(phase_diff)} degrees\")\n", + " \n", "\n", "\n" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "f12f7aec-7f82-4374-8f5b-7bf760e4f61d", "metadata": {}, "outputs": [ @@ -793,14 +792,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "Similarity of results: 0.9675\n", - "Phase difference: 138.5047426396263 degrees\n" + "Similarity of results: 0.9675\n" ] } ], "source": [ "# Print the solution vector x\n", - "# Use np.linalg.solve() to find x\n", "x = np.linalg.solve(A_normalized, b_normalized)\n", "print(\"Solution vector x:\")\n", "normalized_x = x/ np.linalg.norm(x)\n", @@ -819,7 +816,81 @@ "id": "51ec6fd4-5fa3-442e-a921-cc5b7b28e05c", "metadata": {}, "source": [ - "***By comparing the quantum-computed results with the mathematically expected solution, we observe a good alignment - showcasing the potential of the AQC approach for solving linear problems***" + "***By comparing the quantum-computed results with the mathematically expected solution, we observe a good alignment - showcasing the potential of the AQC approach for solving linear problems.***\n", + "\n", + "\n", + "\n", + ">***Importtant to note:*** The above implementation example aims to provide an intuitive understanding of the principles behind solving quantum linear solver problems with the adiabatic quantum evolution and the associated error bounds. However, for simplicity and accessibility, several aspects of the implementation are not optimal: \n", + ">\n", + ">- **Suzuki-Trotter Decomposition**: We utilized the Suzuki-Trotter approximation for time evolution instead of more advanced methods like truncated Dyson series expansion, which offer better efficiency. \n", + ">- **Schedule Function**: In the above example we used the vanilla AQC scheduling function. Using more sophisticated scheduling functions as suggested in [[1](#QLSP)] will improve runtime. \n", + ">- **Brute-Force Encoding**: The encoding of Pauli operators in this tutorial is direct and unoptimized, scaling exponentially with system size. Other encoding techniques will be more efficient. \n", + ">\n", + ">These choices were made to prioritize conceptual clarity over computational efficiency. Next step would be to apply state pf the art techniques and show improvement in gate complexity and runtime.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "f744d9da-5de4-4a19-9d5b-c628a3ade000", + "metadata": {}, + "source": [ + "### *Appendix A: Explanation of the adiabatic error bound components*\n", + "\n", + "The adiabatic error bound $\\eta(s)$ is defined by the quantum adiabatic theorem [[3](#ETA), Theorem 3] as:\n", + "\n", + "$$\n", + "\\eta(s) = C \\left\\{\n", + "\\frac{\\|H^{(1)}(0)\\|^2}{T \\Delta^2(0)} + \n", + "\\frac{\\|H^{(1)}(s)\\|^2}{T \\Delta^2(f(s))} +\n", + "\\frac{1}{T} \\int_0^s \n", + "\\left[ \n", + "\\frac{\\|H^{(2)}(s')\\|^2}{\\Delta^2(f(s'))} + \n", + "\\frac{\\|H^{(1)}(s')\\|^2}{2\\Delta^3(f(s'))}\n", + "\\right] ds'\n", + "\\right\\}.\n", + "$$\n", + "\n", + "#### *Detailed Explanation of Components:*\n", + "\n", + "1. **$\\eta(s)$**:\n", + " - Represents the adiabatic error bound at a specific point $s \\in [0, 1]$.\n", + " - Quantifies the deviation of the quantum state from the ground state during evolution.\n", + "\n", + "2. **$C$**:\n", + " - A proportionality constant that depends on system-specific properties, such as the dimensionality and scaling of norms.\n", + "\n", + "3. **$\\|H^{(1)}(0)\\|$**:\n", + " - The operator norm of the **first derivative** of the Hamiltonian, $H(s)$, evaluated at $s = 0$.\n", + " - Indicates how quickly the Hamiltonian changes initially.\n", + "\n", + "4. **$T$**:\n", + " - The total runtime of the adiabatic evolution.\n", + " - Larger $T$ values reduce the error, as slower evolution aids adiabaticity.\n", + "\n", + "5. **$\\Delta(0)$**:\n", + " - The spectral gap at $s = 0$, defined as the energy difference between the ground state and the first excited state of $H(s)$.\n", + " - Larger gaps improve the adiabatic process.\n", + "\n", + "6. **$\\|H^{(1)}(s)\\|$**:\n", + " - The operator norm of the first derivative of $H(s)$ at an intermediate point $s$.\n", + " - Reflects how fast the Hamiltonian is changing during evolution.\n", + "\n", + "7. **$\\Delta(f(s))$**:\n", + " - The spectral gap at the point $s$, mapped via the function $f(s)$.\n", + "\n", + "8. **$\\|H^{(2)}(s')\\|$**:\n", + " - The operator norm of the **second derivative** of the Hamiltonian, $H^{(2)}(s')$, at a point $s'$.\n", + " - Captures the curvature or acceleration of the Hamiltonian's evolution.\n", + "\n", + "9. **$\\int_0^s \\cdots ds'$**:\n", + " - An integral from $0$ to $s$, summing contributions of the Hamiltonian’s derivatives over the path.\n", + " - Accounts for cumulative effects of the Hamiltonian's changes during evolution.\n", + "\n", + "10. **$\\Delta^2(f(s'))$** and **$\\Delta^3(f(s'))$**:\n", + " - Higher powers of the spectral gap at $s'$.\n", + " - Larger gaps (in $\\Delta^2$ and $\\Delta^3$) significantly reduce the adiabatic error.\n", + "\n" ] }, { diff --git a/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.synthesis_options.json b/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.synthesis_options.json index 786e2e3d..539914d9 100644 --- a/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.synthesis_options.json +++ b/algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.synthesis_options.json @@ -7,28 +7,28 @@ "machine_precision": 8, "custom_hardware_settings": { "basis_gates": [ - "ry", - "r", - "t", - "x", "z", + "u", + "x", + "ry", "u2", + "cx", + "tdg", + "id", + "sxdg", + "sx", "p", - "rz", - "cz", - "h", "u1", - "sx", - "rx", - "y", - "tdg", - "sdg", + "h", "s", - "sxdg", - "u", - "id", "cy", - "cx" + "cz", + "y", + "sdg", + "rz", + "t", + "rx", + "r" ], "is_symmetric_connectivity": true }, @@ -41,6 +41,6 @@ "pretty_qasm": true, "transpilation_option": "auto optimize", "timeout_seconds": 300, - "random_seed": 2302908612 + "random_seed": 3320139336 } } \ No newline at end of file