{ "cells": [ { "cell_type": "markdown", "id": "04e33286", "metadata": {}, "source": [ "# ProbabilityV0" ] }, { "attachments": { "image.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+cAAAHrCAYAAACto+zuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAALPmSURBVHhe7N13nBNl4sfxz0yS7ZTdZSnSUURFQVERFKxnRQ45bGdHPbtiPSsKdlF/NixnQQE9xK7YsGIDTw5FTqUqvbNsYWvKPL8/khmy2QWXmi3fN6+HbCYzk2QyKd95yljGGIOIiIiIiIiIJI2dOEFEREREREREdi6FcxEREREREZEkUzgXERERERERSTKFcxEREREREZEkUzgXERERERERSTKFcxEREREREZEkUzgXERERERERSTKFcxEREREREZEkUzgXERERERERSTKFcxEREREREZEkUzgXERGResEYkzipVrZ2uU3ZkvXFz1vTcsaYGqeLiEjjo3AuIiKN0o4ORInrT7wutRcfYLc1zDqOs9nlN3dbPHe+cDiceFMVlmVBbP74v2uaR0REGjeFcxERqbXEUBFva29Llh0diCzLqvK8NxXMGhJjDI7jJE7eZpZlVduertren7ts/OteU9D/s9fJvT93Pr/f702vaRl3evzjT9z3QqFQlesiItI4KZyLiEitbWn42lQYqQvig1RNoaomjuMQDAa3aBskcu+rpmBYn4VCIcLhMLa9435aJIb02u6PbjiO5zgO4XC41q+BMYZQKEQkEvGWSbzvxPsAsG3bm17T7a7aPg4REWm4LKNvAxER2UrGmCphxbIsbNuuFtBqCkfJFgwGq9R+/tnjM8awYMECZsyYwYABA2jSpEniLFVEIpFqtaluUIsPbA1BOBzm888/x3EcjjrqKFJSUhJn2WbuvuY4DpZl1eo1c7kHQuJrvd3XIBQKeYHf5/PVGPjd/TcQCOA4DrZtV1ku8aeUbdtejXq8xPeLbdv4fD6IBf3E942IiDQuCuciIrLF3JCxatUqZs+eTWFhIQDNmjWjY8eOdOrUidTUVIiF4BUrVpCXl0dmZmbCmpJn7dq1/PTTT5SXl9OvXz9yc3MTZ6nmscce4+qrr2bp0qW0a9cu8eYqZs2axaJFiygtLcVxHAKBAE2bNvW2T3p6euIi2ySZB0AqKys59NBDqaysZObMmYk3e7b2MTqOw9q1a5k5cybr168nLy+PHj16kJeXV6v1FRYWsmLFClauXEk4HCYnJ4euXbvSvHnzKvOFQiF++eUXFi9eTGVlpTfdsizS0tI44YQTiEQi3r79zTffsGHDBoqKirx5Hcehffv29OvXzwvxbgAvKCjgP//5DxUVFfj9ftq0aUP37t1JT0+v1fMQEZEGzoiIiNSS4zjGGGNCoZD5+uuvTZ8+fUxubq5p3ry5adasmWnTpo3p0qWLef/99735582bZ/r162feeeedhLUlRygUMpFIxPzzn/80lmUZy7LMlClTEmer0RNPPGEAs2TJksSbqjn//PMNYJo2bWqys7NNs2bNTFZWltltt93M66+/boLBYOIi28R9bbaF4zhbtZ7y8nLTq1cv06tXr8SbqqjtuuPnc/ehI444wjRp0sQ0b97cZGRkmDPPPNMsXbrURCKRKsvGc9dz/fXXm3bt2pmMjAxj27Y56KCDzLfffltt3sLCQjNw4EBj27Zp3ry5yc3NNXl5eSYnJ8d069bNmzcUChljjOnatavx+XwmNzfX5ObmmhYtWpjs7GwzZMgQs27duirrXrBggfn73/9umjdvbtq0aWNatWplWrVqZW677TazevVqb14REWm81H5KRERqza3dmz59OocddhirVq3imWee4auvvmLSpEnce++9tG3blrVr13rLrFixgm+//ZaVK1cSiURq7OfrNiWORCJEIpEq093LcDjsNRN3+wvHNz92pyeuO5HjOMyZM4dXXnmF5s2bk5WVRSAQSJytRu5j+7P7iPfKK6/w3//+l08//ZSnnnqKgoICTjnlFKZMmZI4K8Qen9t82+U2nXZvc6e5l+7zjn9c7vRE7joStx+x55e4HR3H8fqTu9x53OJOi7898XribYnz1MQYw4YNG7jgggv44YcfeOyxx/j888+5++67eeutt7jyyisJBoOJi3ksy8JxHAoLC8nLy+O2226jZcuWrF69ml122QVi9xEKhQgGgxhjyM/Pp2XLlnz++edMnjyZTz/9lO+++44vvvjCW6/bZN0Yw+67787bb7/NRx99xGeffca0adN47LHHqrQSKSwsZOjQobz77rs89NBDfPLJJ3z44YcceeSR3Hvvvdxzzz01vh4iItK4KJyLiMgWGzt2LMYYXn75ZU4++WR69OhB//79Oe+88/jqq68499xzIdbcefr06QD88ccfzJgxgx9//JEVK1Z46wqHw6xatYpffvmFGTNm8Ouvv1JcXIyJawJtWRYLFixg8eLFVFRUMG/ePH788Uf+97//kZ+f7wW9xL7ciSHQ/fvqq6+mV69enHjiiZSWlnrNlF2bCvlb0ifYfSxdunShc+fOHHjggZx99tnccMMNAPzwww9VRul2HIf8/Hx+/fVXZsyYwaxZs8jPz/fCuGVZrFu3jv/973+Ew2HveZaVlTFr1izmzZtX5TGvWbOG//3vf5SXl0Osyba7/h9//JGZM2eycOFCKisrveV8Ph+2bTNnzhyWLVtGeXk5c+fO5T//+Q/Lly8nFArhOA7r169n9uzZzJo1i9mzZ1NZWYkVG6wtXiQS8ZZxw707X03zu9zpxhgmTJjAN998w9133825555Lr169uOaaa7jssst47733+N///pe4eBW2bfPUU0/xww8/cPPNN9OlSxeKioqqHADx+/2kpqaSlpZGMBgkPT2dHj16sO+++9KjRw/22GMPWrRokbhqbNsmIyOD3r1706tXL/bZZx+6devGLrvsQlpamjffzJkz+eabb7j22mu54IILyMnJoVevXowePZqcnBy+/PJL/H4/tm3XuN+JiEjjUPtfGSIiInH9fwEyMjISb64SuiZNmsSIESMAGD16NMceeyzHHnssTz31FMTC27Rp07jgggs48sgjOfrooznssMO4/PLLWb58eZVa9pNPPplzzjmHF154gSOPPJJjjz2WPn36cPHFF7N8+fIag7P7WNxgGIlEmDlzJl9//TUXX3wxu+66K47jkJKSUiXI17SuLeXUMHCZMYYuXbpALDy7NfaRSIS5c+dy+eWX079/f44++mj69evH2WefzfTp070Q+c4777Dffvsxe/Zsb32TJk2iV69eHHHEEaxbtw5iBzzuu+8+DjnkEObNmwfA3LlzOe+88xg8eDBHHXUURx55JMcddxzjx4+vdpCgV69enH/++Tz88MOceeaZDBw4kLFjxxIIBFiyZAlXXnklBx54IEcccQQDBgzgtddeIyMjw3ue7mB7s2fPZvLkyeTn52/RAG4u27b59ttv8fl8HHvssd7r4jgOJ554IsYY3n///cTFqgkEAvh8PkKhEBUVFfh8viqPxYrVsFdUVJCamkp5eTlTp07lhx9+YMGCBRQXF3v9xhOVlZUxc+ZMfvjhB2bNmkVJSQnEXht3v/P5fPj9ftatW0d5eTl5eXmEw2Hmzp1LJBLx9gkREWnctv3Xh4iINCq2bdOrVy/8fj+vv/46q1evJj8/n/Ly8mrNcgcPHsxNN90EwAUXXMCkSZN4//33ufDCCzHGMHPmTAYNGsSaNWu4/fbbGTt2LJdddhnvvPMOF154oVcjGwwGycnJYerUqUyYMIEhQ4bwxhtvcMEFF/DBBx/UqnmzMYaSkhKuu+46Bg0axAknnOAFqcSwtj1qL931uQcYIpEIlZWVzJ8/H4AuXbp44W3dunWcdtppfP3119xyyy2MGTOGO++8kxkzZvD3v//da2lw7LHHkpKSwtSpU4lEIliWxbfffkt2djaFhYXMmTMHYo//xx9/5IgjjmC33XaDWPeCVatWMXz4cJ5++mmeeOIJmjdvziWXXOKNtG7FjbY/Z84cJkyYwMknn8wbb7zB0UcfTWVlJVdccQXvvvsuw4YN44033uAvf/kLzz//PN9++y1Nmzat8twfe+wxBg4cyH/+8x+2RiQSYd68eey6667eAHzua9O2bVuaNGnCL7/8krBUVW5zcSs22npKSkqVFhbupRv8W7VqxYYNGzjllFM4/vjj2W+//Tj33HOZNWtWtf3CGMOKFSs44YQTOO644zj00EO5/vrrWblyZZWDPbvvvjsHH3ww48eP5+mnn+bzzz/n66+/5tFHH6Vly5bceuutXgsDd70iItIIJXZCFxERSeQOFOY4jgmFQmb58uWmf//+JjMz07Rp08YMGDDAPPDAA2bmzJkmPz+/ynKTJ082gHn66aerrLO8vNz87W9/M126dDEFBQUmEol45eGHHzaAN1DbkiVLzN/+9jdj27Z58cUXjYkblOviiy82gPnwww+9ddc08Fhpaal54oknTLNmzcz06dONMcZce+21xrIsM3XqVG8Z9znW5PHHHzeAWbx4ceJN1Zx77rkmEAiYd955xyxYsMB8++235sknnzRt27Y1OTk5ZurUqcbE7u+OO+4wfr/f/PTTT1W2w9dff23S0tLMfffd5623bdu25rzzzjNFRUXGGGM6depkTj31VJOdnW3uv/9+Y4wxP/30k8nNzTXXXHONt5zjOFUGoYtEImbp0qWmTZs2ZvDgwVVe4+bNmxu/32++//57b35jjHn55ZcNYP75z38aY4ypqKgwxhjz4osvGsuyzMknn2yMMd79jBgxwrRt29Z8+eWXcWupzr3fxMHdiouLzW677Wb69u1bZV5jjFm5cqVp3769Oeigg+KW+HNHHHGEad68uZk7d261/WTlypXmnnvuMQ888ID5/PPPzaRJk8zw4cNN06ZNTYcOHczatWurbMfTTjvNPPzww2bq1Knm1VdfNVdccYVp2rSpOeyww8yCBQu85+M4jvnvf/9r9tprL5Oenm6aN29umjRpYtq1a2cmT55sQqFQlW3g/i0iIo2Las5FRORPWXF9hP1+P7vssgsTJ07k5ptvplmzZsyYMYO7776bAw88kEsvvZQNGzZg4s4NXZOKigomT57MoYceyooVK1iwYAHz5s1j7ty5dO7cmUAgwLRp0wBIT09n3bp1tG7dmr59+0LcoFyDBw8GYNq0aV6NY3wtuKugoIBRo0Zx8cUXs88++wCQkpKC3++v0ofbfY7byo6dRuvcc8+ld+/enHDCCVx77bWEQiHGjRtH3759cRyH8vJy3nzzTXbbbTeaNWvGggULmDt3LvPmzSMQCNCiRQu+/fZbb72HHnoo06dPp7CwkHA4zKJFi7jwwgvp168fH3zwAQA//vgjZWVl9O7d21vOip3Te926dSxfvpx58+axdu1a9t57b2bOnFnlNQ6FQnTv3p199tkHJ67//VdffYVlWZxwwgkAXl/9/v37k56ezpo1ayDWjBzgjjvuYNGiRRx++OHe46iJW8NMXH9/EzdQW/zrkfg6uX3qa8OJG8DOfa7xWrduzS233MI///lPjjzySE488UTuvPNOnn76aZYvX86jjz5KOBwmEAhgjOHVV1/l2muvpUePHgwePJgnnniC22+/na+//ppPP/0UK+486JFIhH333ZcrrriCCRMm8Nhjj9G0aVPOP/98vv/+e6xY94v4x6QadBGRxkXhXEREtojbFLtNmzbccsst/Pzzz0yfPp1HH32UQw89lLfeeovrrrvOO/e5G9QS+3GvXbuWsrIyJkyYQL9+/ejTpw8HH3wwBx98MOeffz6ZmZnYtk04HCY3N5eSkhLat29P69atIS5otWrVCoDFixdXC1tuuKmsrOSuu+4iFApVaQIfCAS881A7sVHJtxc3PD7++OO89dZbPP300wwaNIiCggIKCgqoqKjAtm2vyfqCBQvo1asXBx10EAcffDCHHHIIxx9/PCUlJVRUVHjrPeyww5g7dy7r16/nl19+wefzseeee3L44YczZ84cr/+6MYb9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Ns307NnT7LLLLt7tLVq0MH/729/Mr7/+akzc4/rmm2/MXnvtZVq3bu3N26ZNG3PppZfWuD/++OOPZuDAgSYvL8+bv127dua5557zHv/mto+IiDR8lkk8XC0iIlILxcXF/PHHH95AapmZmbRp04Zu3bolzuo1hV+9ejXBYJCuXbvSvXt37/b8/HwWLFhAfn4+qamptGjRgm7dunmn6jLG0LNnT5o0acLkyZOZP38+69ato2nTpnTr1o3s7Oy4e6vK/ZqrqTZy4cKFLF26lP32269Wo34/8cQTXHXVVSxevJgOHTok3lzFvHnzWL16Nb169SIzM7PKbY7jsGDBAhYtWsSBBx7oPf6Kigp+/fVX1q1b57Uu6NSpEy1atKjSXLy8vJwZM2aQlZXFPvvs4w12tn79embNmkVeXh577rlnlabdxLbznDlzKCgooG3btuy3337ea9inTx/vPqZNm0Z2dja77757lXW4txcVFfHzzz9TUlJChw4d2Hvvvfnll18Ih8PstddeBAIBLMti8eLFrFixgm7dunlN3ol7LeKvu+velJKSEn766SeKiorIzc1l77339l4zdz0FBQXMmzeP9u3bs8suu3jrmzdvHosXLyYcDpOeno4Va+buOI63z6ampuI4DsuWLWPFihUUFRVhjCE3N9cbdM+9Lyt2urmVK1eydOlSiouLCQQC5OXlseuuu5KVlRX3yKtutzlz5njN7nfddVdvVHx3Pjaxr4qISMOncC4iInVeMBhk3333pXnz5nzxxRfewGM722OPPcbVV19dq3DeUPxZaHbFz1fbZVxbOv/2kPh4qQOh2B1jIdmPQ0REkkMDwomISKNnEk4XtiluLXJdCk+1edzbIjHAbkpt59uUrV1ua1lxo6HXlUBcFx6DiIgkj8L5ZrijuRYVFVFYWEhlZWXiLDUKhUIUFBR4o7zu7B8cIiINjWVZNGnShKysrB0SYGobznw+H82aNavVvDvLznostb2f2s6XaGuX2xZbe5876nt9ax+PiIg0DGrWvgmO47Bw4UI+/vhj5s6dS2lpKaeffjpHHXVUtT587oiyxPrETZs2jZdffpni4mJ69+7N2WefTdu2bTGxUXZrKxnN/ERE6iJjDBMnTiQlJYWTTjppiz5Lt6dffvmFr7/+mnPOOadav2IREZHGQBllx1E434RwOMw777zD6NGjyc7O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fjqWZbFs2TKee+45vvvuO4qKisjOzuaMM87gtNNOY8iQIXz88cd07tyZFi1a0Lx5c95++23ee+89/vWvf/Hiiy/SuXNnKisrmT59OqNGjWLp0qUAnHjiiVxwwQV07NgRgIkTJ/LII49w33338dxzz7FgwQI6derELbfcQs+ePas1jVc4rzu24Z0kIiIiIiINmbGipzoDB0wQTClNnEIyIvn4wwX4wgUEwuu3vkTW449EL1Mi60mJ5JMaWUtKeC0Z4fVkOsUEnHIwkejjSXyAm2GMwbZtKioqvOtNmjQhLy+PgoIC5s6dy7PPPsvixYu57LLLOPXUUykoKOCiiy5ixowZHHnkkQwePJiCggLOOeccfvnlFwB+/vln7rvvPiKRCCNHjqR169Z8/PHHrF692huwzXEcVq1aRWFhIbZtU1RUxMiRI5kwYQJHH300w4YNY9CgQYRCIRzH4cwzzwRgyJAh3HnnnZx33nlkZmaybt061q1b5w0sN2vWLK6//no2bNjAtddey8CBA3njjTe4/fbbCYVCBINBioqK+PHHH3n66ac54ogjuOSSS5g3bx6333671xpA6iaFcxERERER2TS3gtQATrSWG3zR/uGWDwiAtS3FH12PW9j4dyRWiNXSbmldbSQSYeXKlcybN485c+bwzTffUFJSwmGHHUZ+fj5dunThtttu4/zzz+f000/ns88+45dffmH06NH87W9/45hjjuHxxx8nEokwduxYAO699142bNjAiy++yOmnn86oUaM45phjWLlyJRkZGRCrVfb5fN6Bgf/+97+89NJL3HPPPdx0002cffbZXHHFFZxxxhmkpaV5/cz79+/PcccdxxlnnAFAMBjE5/Oxfv16AMaNG8fixYuZOHEiZ599NnfeeSfXXXcd//73v5k9eza2bRMKhTDGcPbZZ3PRRRdxwQUXcNNNN/HRRx+xaNEi1XjXYQrnIiIiIiKySdF6Visamm0/jhUAK3VjsRMut6rEh/UUsFIwVoCI5Ys2m9+KQOn2z37kkUe49NJLueSSS3jggQe44IILOP300wmHw+y///5kZmZ6y3z33XcUFhZy/fXXc/nll3Puuedyyy23UFlZyfLlywGYP38+u+++O61bt4ZYjXzv3r1p3bo1wWDQW1ckEvGakP/www9kZGTwt7/9DcdxvNHYs7Ky8Pl8FBcXA3inTHNZ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Uq821TFONBjGFWdbi4k2n3ecPys1LNvAixvE3b+JC+zxt21tiUQiOI5DaWkpkUiElJToueQVzpND5zmvo3SecxERERFJplAoxIoVKwgGgzRv3jxam+6zsS0L48QCYqzFtbWp05T/CeOtoxZLK7ZsN26rCCcW+ouLi7EsizZt2pCeng6x8O82qdd5zncOhfM6SuFcRERERJKtsrKS/Px8ysvLIRbqbNvCiYXzeFsT1TaupTZLV79P2TaOEx2HPzU1lZycHDIyMrzbFM53PoXzOkrhXERERETqilAoRCQSwefzYTZxHuzqU/6c4l3yWJaF4zjYtk0gEPCmuRTOdz6F8zpK4VxERERERJJF4XznU09/ERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOP8TjuNQUlJCQUEBJSUlGGMSZ6kmGAxSVFREYWEhJSUlRCKRxFlEREREREREPArnm2GMYe7cubz55puMGTOG119/nYULF3q3xV8SC/KFhYV88cUXTJgwgXHjxvHmm2/y22+/VVmniIiIiIiISDyF881Yvnw5d911F88//zwffvghTzzxBA888ACrVq3CsiyMMViW5c1fXl7O66+/zogRI/jggw/4+OOP+de//sW9997LokWLqqxbRERERERExKVwnsAY45Vnn32Wb7/9ljvvvJPJkydzzz338OabbzJ+/HhCoVCVYA6watUqHn74Ybp06cK4ceN47bXXGD58OF999RUvvvgiQLVlRERERERERBTOE7i14eFwmAkTJnDmmWdyxBFH4Pf7Of744/nLX/7C+++/T0FBQZUgD3h90vfZZx+aNGlCZmYm3bp1o02bNpSXlyfe1Z9SkBcREREREWkcFM4TuIF4w4YNLFq0iO7du1e5vU+fPqxcuZL8/Hwsy6oSoHfddVeOPPJIvv76az788EM+++wzxowZQ3p6OieeeGKVIB/PcRzC4TDhcJhIJILjONWazIuIiIiIiEjDpXCewA3ExcXFhMNhcnJyqtyek5NDUVERZWVl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Bx1Et27daN++PWlpaVVq0+vKDqZwLiIiIiIiyaRwvvM1qGbtbtDOysri+OOP57bbbuO6666jd+/efPvtt4waNYp7772Xe+65h7feeosNGzZgJZwOTURERERERGRna1Dh3LIsIpEIlZWV/Pbbb7z77rv861//Yvny5fTv359//OMfHHvssQQCAZ544glee+21xFWIiIiIiIiI7HQNrln7119/zTfffMPs2bMpKSmhadOm7LLLLhx22GH07t2b3NxcCgoKGDp0KKtXr2batGmJq0g6NWsXEREREZFkUrP2na9B1ZwDvPfee3z44Ye0bt2aE044gfvvv5977rmHY489lpycHACys7M5//zz6devX+LiIiIiIiIiIjtdgwrnxhg6dOjA9ddfz/33388//vEPdtllF2zbxrIs1q1bx6pVqzDGcPjhh3P11VcnrkJERERERERkp2tQ4Rxg1apV5Obm4vP5vKYW7uVbb73Fq6++CkCTJk3YZZddqiwrIiIiIiIikgwNKpxblsX48eP57bffqvWBsCyLyZMn88knn1SZLiIiIiIiIpJsDSKcG2P4/PPPmTx5MmVlZcyaNYsPP/yQyZMn8/HHH/Phhx/y5ptvsnDhQrp27arTp4mIiIiIiEidUu/DueM4AEycOJExY8ZQUVHBN998w4svvsjYsWMZO3Ys48ePZ/z48XTp0oW///3vEAv0DWygehEREREREamn6nU4N8bgOA6WZdGnTx+OOuoounfvzgEHHEC/fv04+OCDOeSQQ+jfvz8DBgzgxhtvpE+fPt7yqjkXERERERGRuqDen+c8Eong8/koLS0lPT2dd955h86dO9OlSxcsy/Jqx30+H2lpafj9fhzHwbZtb9m6Ruc5FxERERGRZNJ5zne+el9z7vP5+OCDDygpKcG2bVq0aMGyZcuYMmUKX375JVOmTGHKlCl88cUXTJ48mV9//VXN2UVERERERKROqdfhnFhAf+WVV1i5ciXEjuq88sor/Pvf/+aVV17h5Zdf9sq4ceP4z3/+g23bXrAXERERERERSbZ6Hc7dGvA+ffqQk5MDwP777+/1M+/Xr1+VctBBB9GxY8cqy6oWXURERERERJKtXvc5j0QiWJZFfn4+zZo1w+fzUVZWRmVlJcSN5A54fcwzMzPJyMiAuH4Sda2/hPqci4iIiIhIMqnP+c5Xr8O5O1r7l19+STAYJBwOezvLpp5Wp06d2GOPPfD5fNXmqSs7mMK5iIiIiIgkk8L5zlevw7lbM37BBRewYsUKLMsiEAiQkpLi7UyJT+/444/nwgsv9Ham+Pnqyg6mcC4iIiIiIsmkcL7z1fs+55Zlsf/++3PYYYdx9NFHc8ghh9C3b18OPvjgKpeHHHIIffr0oXPnzlV2pLratF1EREREREQaj3pdc+6G8/Xr15OWlobP56OiosLrix5fK+72OU9PTyctLQ3brrvHJVRzLiIiIiIiyaSa852v7ibULTB79myCwSB+v5+5c+fyyy+/MHv2bObOneuVX3/9ld9++42VK1dWa+ouIiIiIiIikkz1uubccRwsy+Lkk0/m9ttvp2fPnlx44YWsW7cOn89HJBLx5vX5fITDYU444QQuvvjiKuupa1RzLiIiIiIiyaSa852vXtecuztE7969adasGQAHHHAABx10EAcccAAHHnggBxxwAL1796ZXr1707t2bzp07J6xFREREREREJLnqdc25ezQnHA5j27bXr9wYQzgcpqysjEgkgt/vJz09Hb/fj23bWJZVpU96XaOacxERERERSSbVnO98DaLm3OfzVZleUVHBl19+yUsvvcTYsWMZO3YsM2fOrNLXvK4GcxEREREREWl86nU4d1mW5Y2+np+fz//93//x2GOPMXXqVH744Qe+/vprRo4cyQsvvEBFRUXi4iIiIiIiIiJJ1SDCebyXX36ZiRMn0q9fP84991zOPfdczjnnHDp16sTo0aP59NNPVWMuIiIiIiIidUqDC+evvPIKvXv35vrrr+fEE09kwIABDBo0iJEjR+L3+3nnnXdAfSRERERERESkDqn34TxxPLumTZuyyy67kJKS4gVwy7Jo1qwZrVq1IiUlpcr8IiIiIiIiIslW78M5wKpVq1i+fDkrVqxg8ODBzJo1izfeeIM//viDefPmMW/ePMaMGQPA8ccfn7i4iIiIiIiISFLV61OpEas5v+GGGyguLgYgGAzywQcf0KpVKw444ABCoRDGGL799lt8Ph/33HMPZ5xxhrdsXWzerlOpiYiIiIhIMulUajtfg6g5T0lJIRAIeOczP+OMMzjiiCNIT0+nefPmNG/enL/+9a+ccMIJ3s6EdigRERERERGpI+p9zTnA+vXrCYfDEDvCk5KSQigUIhKJeOdAt20bYwzp6elkZWUlrKFuUc25iIiIiIgkk2rOd74GUXOek5NDy5YtadmyJS1atCA7O5sWLVpg2zaVlZUEg0HKy8uprKz0BpBrAMckREREREREpIFoEDXn8UKhENOmTePLL7+ksLCQiooKgsEgWVlZlJSUcPTRR3PaaafV6SM9qjkXEREREZFkUs35ztcgas7j/e9//+Ouu+5i3rx5fPjhh3zxxRdkZGTw7rvvMmXKFK+Zu4iIiIiIiEhd0eDC+ZgxY1i9ejW33XYbLVq04MADD+T222/nrLPOYv/996ddu3beUZ4G1mhARERERERE6qkGF86nTp1Kv3792HPPPTHGkJubS0pKCldccQV+v5+JEyd68yqci4iIiIiISF3QoMK5MQa/309mZiYAHTp0YNmyZZSWlpKbm8vixYtZuXKlF8rVT0JERERERETqggYVzgH69u1LWloa4XCYs88+m9WrV/P0009z//33s2zZMo455hhQrbmIiIiIiIjUIQ0unA8dOpTDDz+cYDDIX/7yFw499FC++OILPv/8c0477TSOO+44LMtSOBcREREREZE6o0GFc8uy6NmzJ3369CEQCJCamsoFF1zAP//5T/75z39y3XXX0aZNG29+BXQRERERERGpCxpUOHdZlsWPP/7Ia6+9xjfffENBQQHZ2dk0adKkyjwK5yIiIiIiIlIXNLhwvmHDBiZMmMDIkSN57LHHGDNmDE8//TQPPfQQn332GeFwGGLhXAPCiYiIiIiISF3QYMK5MQZjDO+88w5PPPEEHTt25IwzzuD888/n/PPPJyMjg1GjRvHdd995y9h2g3n6IiIiIiIiUo/V+3Sa2DT9qaeeon379txyyy1cfvnlnHvuuVx00UVcf/31rFmzhgkTJlRbRkRERERERCSZ6nU4d2vLjTFeM/XKykp69OhBu3btqoTw7t2707lzZ0pLS6v0N1dQFxERERERkWSr1+HcDeRFRUWsX7+e9evXc8IJJ/DTTz/xww8/UFZWxtq1aykuLmby5MkUFxfzl7/8xQvz7jpEREREREREkqleh3Ni4XrMmDE88cQTPPHEExQUFDBv3jxGjBjBXXfdxejRo7nlllu47777WLp0KVlZWYmrEBEREREREUmqeh3O3SbtCxYsYM6cOcyZM4fy8nL22WcfQqEQv/76K7Nnz2bOnDlkZmbSs2dPb7R2ERERERERkbrCMvW807XjOMyYMYOKigoAfD4fkUgE27YxxhAOh/H5fF4T+DZt2tClS5cqTdvrGmMMeXl5DB8+nGHDhiXeLCIiIiIiskPF56VJkyYxZMgQSktL8fv9oO7BO0S9rjkntlMceOCB9O/fn/79+3PwwQfTt29funfvTl5eHk2aNKF169bss88+HHzwwXTu3Nlbrp4flxAREREREZEGol6H8/ijOW7QjkQiTJkyhVtuuYXbbruNO+64g1tvvZWRI0fy66+/4jiOt7wCuoiIiIiIiNQF9Tqcx3ND+tSpU7n//vtZtGgRPXv2pG/fvuyxxx5Mnz6dBx54gNmzZ1cJ5GqOISIiIiIiIslWr8N5YrA2xvDcc8/hOA633347N9xwA9dffz033ngjt956Kz/99BPvvvtulWVEREREREREkq1eh/NElmUxY8YM+vXrR58+fUhNTSUlJYXMzEyOO+44WrVqxaxZs6o1hRcRERERERFJpgYVzgF22WUX5s+fT0FBgdcn3XEcfv/9d9auXUvLli0VykVERERERKROaXDh/LzzzuOXX37h5ptv5rnnnuPFF1/k2Wef5ZZbbiEzM5PTTjvNGwgusVm8iIiIiIiISDI0iHAeXxM+YMAArrvuOpYuXcobb7zBW2+9xTvvvINt29xyyy306dMHauivLiIiIiIiIpIslmlAbbyNMbz33nt069aNwsJCFi5ciN/vx+/3s/vuu7Pnnnti23X/eIQxhry8PIYPH86wYcMSbxYREREREdmh4lsaT5o0iSFDhlBaWorf7wdVdu4QdT+pbqFRo0YxZcoU+vTpw8knn8zgwYMZPHgw3bt31w4kIiIiIiIidVKDC+cdO3Zk6dKllJSUYNu2d2QHHd0RERERERGROqpBhXPLsujbty+ffPIJzzzzDN999x3ff/8906ZN47vvvuPbb7/l999/T1xMREREREREJKkaVDgHWLduHcuXL2fs2LGMGjWK0aNHM3r0aJ588klGjx7NV199VWUAuQbU5V5ERERERETqqQYVzsvLyykpKaFLly507dqVPffckz333JOuXbuy22670bVrV/Ly8qo0b1dTdxEREREREUm2BhPOCwsLefzxx5k5cybFxcVs2LCBbt26ceGFF/KPf/yDiy66iIsuuohDDjnEW6a2tebGmC2at6a/NzdNREREREREGrd6H87dsPvqq68y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vpkTTzzRu722HMfxRm+X+sXgttgOgJUCtg1WKlhpKonFTgU7AJafiJVGxEolYvzRunIr+vFkEjewiIiIiEgDpGbtteA4jtesI7522x3AzW3GXpNIJIJlWZudpyY5OTkMHz6ca665JvEmqeMigM+UwLK34fnLwKkAX1bibAKx2vPoKRCDvmbk+1uzKqs7+116L/haEbZTsdSsXURERGSnU7P2nW/LEmMjZds2Pp8P27ar7IS1Cd3uctIYxfYVK9pQO1r0b+M/Ymc6j/Yqd7Ax2NGxF2KHDPWRLyIiIiKNhVKjyHbiNkGxAIwbK92p1RuoWI28RG08bGHForpVfVOJiIiIiDR4CuciO4RVJY+7YbR6OG3cNm4HB8tEw7mIiIiISGOkcC4iIiIiIiKSZArnIlJHqN5cRERERBovhXMRSRp1LxcRERERiVI4F5GkqKnvfZWwrrM8ioiIiEgjonAuIskTl79NbAw9b6B7EREREZFGROFcROoOBXMRERERaaQUzkVERERERESSTOFcROoOdTMXERERkUZK4VxEREREREQkyRTORURERERERJJM4VxEREREREQkyRTORURERERERJJM4VxEREREREQkyRTORURERERERJJM4VxEREREREQkyRTORXYUK3GCiIiIiIhIzRTORURERERERJJM4VxkRzGJE0RERERERGqmcC6ynVkomIuIiIiIyJZROBeRuslSp30RERERaTwUzkW2M0NcsFTA3HpGzQ9EREREpPFQOBfZIUy0fbsCpoiIiIiI1ILCuYiIiIiIiEiSKZyL7CiqNBcRERERkVpSOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERERERFJMoVzERERERERkSRTOBcRERGR5DBxRUSkkVM4FxEREZGdLzGQm5omiog0HgrnIiIiIjtcfBVxIy4m7m/L/bum7SMi0vgonIvsKFbiBBERabwsFZNw6RV3+8SHdxGRxkfhXGSniP/xISIiDV8sYMZdNPYSz5sey+rRvG7FfU0mLiEi0vApnIvsFAarxp8nUh9t6semSGOw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P81Pf/rT7T6pJdKepVIpPvvssyjQvuqqqxgxYgSDBg3iS1/6Et/61rdYvnw5BG2l8vJyZsyYwdy5c3O/SiSvKTgX2Qnx4LyoqIitW7cC8M477zBx4kSWLVvGz3/+c8aOHcusWbP45S9/GTXKDjjgAKqqqli8eHF0BlmkIzPGRIH2Rx99RFVVFUcddRR1dXWsXr069+3su+++GGN44403cl8S6ZAcx4mC7E2bNvHiiy9y6KGH8rOf/Yzp06ezevVqLrzwQj7++GMIjpkDDzyQN954IwroRTo6x3Gi9lFxcTHf/va3+fWvf80Pf/hDPvroI0477TTWrl1LQUEBnuexzz778Ne//lVXzUViFJyL7IR4QF1UVER9fT0A8+bNY9GiRTz00EOMGzeOa6+9losuuogZM2ZQXV0NQGlpKaeeeiovvPAC1dXVqpSkw0ulUhQUFABw6qmncttttzFlyhSGDh1KXV1d7tvZZ599GD16NH/84x911VA6Bc/z8DyPTCZDaWkps2fPZtq0aYwfP57x48dz00038e677/LYY49Fn/nqV79K//79mT9/flQP6HiQjsp1XTKZDARtpKlTp3L++eczevRoTj/9dGbMmMGKFSv429/+hg3Gmp966qnU1dWxZMmS3K8TyVsKzkV2QjygbmhoiAKT119/ncrKSgYOHEhhYSGlpaVMmDCBzZs3884770DQ+Bo7diwLFy5kw4YN0feIdFTx8YLdunWjvLyc4uLiFk88lZSUMHLkSObPnx815kQ6i8LCQvr160dpaSmFhYUYYygvL6dXr178+9//huCYGTx4MJWVlTzxxBPRZzVZqHRkNnYHm+7du1NUVERhYSHFxcUsXboUz/Po1q0bjuPgOA5f//rXSaVSvPjii7lfJZK3VAuI7IT4lfNUKkVRUREAq1atol+/fhQWFkbv69atG4lEgmXLlkWfGTNmDP/85z9ZunRptEykMzCxCX9aCs6NMRx//PGsXbuWd999N/dlkQ4rrBvi+77jONx///18+umnnHLKKdHriUSCo48+mgULFkTvFenIEolE1t+PPPIIxx13HAcffDA/+9nPmDNnDiNGjIhe79WrF126dNExIBKj4FxkF8WDENd1SSaT0WvGGJLJJMlkMmtSuOLiYr7yla/w8ssvR8tFOpMwSG+OtZaKigq++tWv8vvf/z73ZZEOq7n9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nd69e7PPPvvwhS98gSFDhjBmzBhee+213LdH4oFsJpOJAt2WriJba/nOd77Dm2++mfvSLrPWsmLFCvr3788f/vCH3JezxNc7HF89c+ZMDjnkEBYvXgzB91lr8Twv+m25KZPJRO8NH8PvbikPRERE8oWCcxERkR3kui7pdJoxY8awZMkS3njjDR577DEqKioYP348VVVVuR8ByJq9OH7rueYmlLTBRGMlJSX06dMnWh5/PTcYzpX7fS09b+nz4fLmZl221tLQ0IDrulnBu+M4JJNJjDFNUnibpfgkd+F3xydVa25dREREOrumta2IiIh8LmstpaWl7LfffgwcOJAjjzySqVOnsm7dOtasWRO974knnuDYY4+lZ8+elJeXM378eJYuXQqxgPTRRx+lsrKS8vJyysvL+eY3v8maNWswxjBz5kwGDhwYfd+7777LeeedR0VFBRUVFey///7Mnz+/2QDaGMPy5cuZMGECPXr0oFevXgwZMoT58+dTU1PDuHHjqKqqYuLEiXTt2pUuXbqQSqXwPI8rrriCQw45hIqKCgYNGsRdd90Vddt/+umnmTFjBh999BFf+9rX2Guvvbj44ouj37N48WKOPfZYysvLqays5Prrr6e2tjYKul988UVGjx5Njx496NOnD0ceeSTLli3LWm8REZF807QmFxERkW3yPA/P8ygsLMQYQyKRwHEcFixYQGlpKX369IkC0c2bNzNhwgTmzp3L//zP/7B06VImT57M+++/D8BTTz3F5MmTOeWUU3jkkUe48847OfHEE6NAOJPJUF1dHf3bkyZNYt26dcycOZM//OEPTJkyhW7dupFKpaL3hOrr67n66qt58803eeCBB/jd737H9ddfT3V1NV26dOHGG2+kS5cuXHPNNTz77LM8++yzJBIJampqKC8v57/+67+45557uOyyy5g0aRJ33XUXAKNHj+aCCy6goqKCWbNmsWjRIr7zne8AMH/+fEaNGsXxxx/P/fffz7Rp03jkkUe47LLLMMawfv16zj77bIYOHcpDDz3Evffey9ixY0kmk3iep6vmIiKSt3QrNRERkR20efNmvvGNb/D666/TvXt3XNelrq6OgoICHnjgAU488cTo6u/WrVspKCiI/l6+fDkTJ07klFNOYdq0aVx99dXcfffdfPDBB3Tr1i3qqu44DolEgttvv50bbriBDRs2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" } }, "cell_type": "markdown", "id": "a0c83dca", "metadata": {}, "source": [ "![image.png](attachment:image.png)" ] }, { "cell_type": "markdown", "id": "058cb0f2", "metadata": {}, "source": [ "## Description\n", "\n", "Reinforcement learning environment for training parameterized quantum circuits \n", "to approximate a target probability distribution over computational basis states.\n", "It is based on the `QuantumEnv` base class.\n", "\n", "The goal of `ProbabilityV0` is to optimize variational quantum circuits such that \n", "the measured probability distribution of outcomes matches a given target \n", "distribution. This is useful in tasks like quantum compilation, quantum generative \n", "modeling, and distribution learning." ] }, { "cell_type": "markdown", "id": "35ba685c", "metadata": {}, "source": [ "## Environment Dynamics\n", "- **State (observation):**\n", " The current probability distribution over `2**n_qubits` basis states obtained \n", " from the quantum circuit.\n", "\n", "- **Action:**\n", " A continuous vector of parameter updates (`Box(low=-0.1, high=0.1, shape=(n_params,)`), \n", " which perturbs the trainable parameters of the ansatz.\n", "\n", "- **Reward:**\n", " Defined as the *negative* of a weighted cost combining:\n", " - KL divergence between the target distribution and the circuit's output.\n", " - L2 distance between the target and circuit distributions.\n", " The weighting is controlled by `alpha` (for KL vs. L2) and `beta` (step penalty).\n", "\n", "- **Episode Termination:**\n", " - If the reward is below the specified tolerance.\n", " - If the number of steps reaches `max_steps`." ] }, { "cell_type": "markdown", "id": "bd2c4c5a", "metadata": {}, "source": [ "\n", "**Key Parameters**\n", "-----------------\n", "- `n_qubits (int)`: Number of qubits in the circuit.\n", "- `target_distribution (np.ndarray)`: Target probability distribution (must sum to 1).\n", "- `ansatz (callable, optional)`: Custom circuit ansatz. Defaults to a simple \n", " layer of RY rotations if not provided.\n", "- `max_steps (int, default=100)`: Maximum steps per episode.\n", "- `tolerance (float, default=-1e3)`: Reward threshold for termination.\n", "- `alpha (float, default=0.5)`: Weight between KL divergence and L2 error.\n", "- `beta (float, default=0.01)`: Penalty weight for step count.\n", "- `ffmpeg (bool, default=False)`: If `True`, uses FFmpeg for saving animations; otherwise uses Pillow (GIF)." ] }, { "cell_type": "markdown", "id": "4a7dd570", "metadata": {}, "source": [ "**Visualization**\n", "----------------\n", "- `render()`: Creates an animation showing the evolution of the learned \n", " distribution and corresponding rewards across training.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "11368057", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Step 0: Reward = -0.2336\n", "Step 1: Reward = -0.1629\n", "Step 2: Reward = -0.1143\n", "Step 3: Reward = -0.0796\n", "Step 4: Reward = -0.0545\n", "Step 5: Reward = -0.0361\n", "Step 6: Reward = -0.0225\n", "Step 7: Reward = -0.0125\n", "Step 8: Reward = -0.0050\n" ] }, { "data": { "image/png": "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8pcN8n3GKTMzUw0bNtSGDRs0ZMiQAhcJAAAAACVFvu9xcnJysrm3CQAAAABKuwItDjF06FD95z//0dWrVwu7HgAAAAAodgq0OMTevXsVFRWlL7/8Uk2bNpWHh4fN9rVr1xZKcQAAAABQHBQoOPn4+Oihhx4q7FoAAAAAoFjKV3DKzs7Wa6+9piNHjigjI0N33323Jk+eXOxX0gMAAACAm5Gve5ymT5+u8ePHy9PTU9WqVdO8efM0dOjQW1UbAAAAABQL+QpO//3vf/X2229ry5YtWr9+vT7//HMtX75c2dnZt6o+AAAAALC7fAWnhIQE9ejRw/o+JCREFotFf/zxx00VMX/+fAUFBcnV1VXt27fXnj178jRuxYoVslgs6t27903tHwAAAABuJF/B6erVq3J1dbVpc3JyUmZmZoELWLlypSIiIhQZGanvv/9ezZs3V2hoqE6fPn3DcfHx8Ro1apQ6duxY4H0DAAAAQF5YDMMw8trZwcFB3bt3l4uLi7Xt888/1913322zJHl+liNv37692rZtq7feekvSXwtQBAYGatiwYRo7dmyuY7KystSpUyc99dRT2rlzp86fP6/169fnaX+pqany9vZWSkqKvLy88lwnAAAAgNIlP9kgX6vqDRgwIEfbE088kb/q/iYjI0P79+/XuHHjrG0ODg4KCQlRTEzMdcdNnTpVvr6+Gjx4sHbu3HnDfaSnpys9Pd36PjU1tcD1AgAAACib8hWcli5dWqg7P3PmjLKysuTn52fT7ufnp7i4uFzHfPPNN1qyZIliY2PztI+ZM2dqypQpN1sqAAAAgDIsX/c42duFCxf05JNPavHixapcuXKexowbN04pKSnW18mTJ29xlQAAAABKm3ydcSpslStXlqOjo5KSkmzak5KS5O/vn6P/8ePHFR8fr549e1rbri2FXq5cOR0+fFh16tSxGePi4mJzTxYAAAAA5Jddzzg5OzurdevWioqKsrZlZ2crKipKwcHBOfo3bNhQP/74o2JjY62vXr16qUuXLoqNjVVgYGBRlg8AAACgjLDrGSdJioiI0IABA9SmTRu1a9dOc+bMUVpamgYNGiRJCgsLU7Vq1TRz5ky5urqqSZMmNuN9fHwkKUc7AAAAABQWuwenRx55RMnJyZo0aZISExPVokULbd682bpgREJCghwcStStWAAAAABKmXw9x6k04DlOAAAAAKT8ZQNO5QAAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACACYITAAAAAJggOAEAAACAiXL2LgBS0NiN9i6hRIh3fdzeJZQMk1PsXUEOHON5wzGeRxzjJRbHeD5wnJdYHOd5VAyPcTOccQIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBBcAIAAAAAEwQnAAAAADBRLILT/PnzFRQUJFdXV7Vv31579uy5bt/FixerY8eOqlChgipUqKCQkJAb9gcAAACAm2X34LRy5UpFREQoMjJS33//vZo3b67Q0FCdPn061/7R0dF67LHHtH37dsXExCgwMFD33nuvfv/99yKuHAAAAEBZYffgNGvWLA0ZMkSDBg1S48aNtXDhQrm7u+u9997Ltf/y5cv1/PPPq0WLFmrYsKHeffddZWdnKyoqqogrBwAAAFBW2DU4ZWRkaP/+/QoJCbG2OTg4KCQkRDExMXma49KlS8rMzFTFihVz3Z6enq7U1FSbFwAAAADkh12D05kzZ5SVlSU/Pz+bdj8/PyUmJuZpjjFjxqhq1ao24evvZs6cKW9vb+srMDDwpusGAAAAULbY/VK9m/HKK69oxYoVWrdunVxdXXPtM27cOKWkpFhfJ0+eLOIqAQAAAJR05ey588qVK8vR0VFJSUk2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bNlSGzduLOLKgMIRFxen7OxsvfPOO/r55581e/ZsLVy4UOPHj7f24bscJV2XLl20atUqHT58WGvWrNHx48fVt29f63aO8dKD4IRi6dChQ9q8ebPeffddtW/fXnfeeafefPNNrVixwvp/cRwcHHT//ffr008/tXO1QMFMmTJFI0eOVNOmTa/bp1evXhzjKLG6deumpUuX6t5771Xt2rXVq1cvjRo1SmvXrrX24bscJd3IkSN1++23q2bNmurQoYPGjh2r7777TpmZmZI4xksTghOKpZiYGPn4+KhNmzbWtpCQEDk4OGj37t3Wtl69eunzzz+3R4lAkejVq5e+/PJLm0ubgJIsJSVFFStWtGnjuxylxblz57R8+XJ16NBBTk5O1naO8dKB4IRiKTExUb6+vjZt5cqVU8WKFZWYmGht69q1q/73v/8pLi6uqEsEikSzZs1UqVIlbdu2zd6lADft2LFjevPNN/Wvf/3Lpp3vcpR0Y8aMkYeHhypVqqSEhIQcZ5c4xksHghNKNDc3N3Xu3FmbNm2ydynALdOjRw+OcZR4v//+u7p166Z+/fppyJAhNtv4LkdJ9+KLL+rAgQP68ssv5ejoqLCwMBmGYd3OMV46lLN3AUBu/P39dfr0aZu2q1ev6ty5c/L397dpP3HiRL6WBQVKmhMnTigkJMTeZQAF9scff6hLly7q0KGDFi1alGsfvstRklWuXFmVK1dW/fr11ahRIwUGBuq7775TcHCwtQ/HeMnHGScUS8HBwTp//rz2799vbdu2bZuys7PVvn17a9uxY8f066+/KjQ01B5lArdcWlqatm3bpl69etm7FKBAfv/9d3Xu3FmtW7fW0qVL5eCQ808PvstRmmRnZ0uS0tPTrW0c46UDZ5xQLDVq1EjdunXTkCFDtHDhQmVmZio8PFyPPvqoqlatau332Wef6Z577pGHh4cdqwUKJiEhQefOnVNCQoKysrIUGxsrSapbt648PT0lSVu2bFGdOnVUt25dO1YKFMy10FSzZk29/vrrSk5Otm77+9UDfJejpNq9e7f27t2rO++8UxUqVNDx48c1ceJE1alTx+ZsE8d46UBwQrG1fPlyhYeH65577pGDg4MeeughzZs3z6bPp59+qscff9xOFQI3Z9KkSXr//fet71u2bClJ2r59uzp37izpr2Ocs00oqbZu3apjx47p2LFjql69us22v9//wXc5Sip3d3etXbtWkZGRSktLU0BAgLp166YJEybIxcXF2o9jvHSwGH//5gLsKDo6WgMHDlR8fHye+p87d05+fn767bffbM5CAcVVfo/xrKws+fv767PPPrP5P5dAccZ3OUo7jvGyi3ucUGJt3LhRLVq04EsIpdauXbvk4OBgc18fUNrwXY7SjmO89CA4ocR68skntXfvXnuXAdwyHTt2VFJSUq430wOlBd/lKO04xksP/muMYiMoKEgvvPCCvcsAbhmOcZQFHOco7TjGyy7ucQIAAAAAE5xxAgAAAAATBCcAAAAAMEFwAgAAAAATBCcAQIm1bNky+fj42LsMAEAZQHACANwSAwcOlMVisb4qVaqkbt266Ycffii0fTzyyCM6cuRIoc33d0FBQZozZ06+x3Xu3JkVtwCgFCI4AQBumW7duunUqVM6deqUoqKiVK5cOd1///2FNr+bm5t8fX0LbT4AAK6H4AQAuGVcXFzk7+8vf39/tWjRQmPHjtXJkyeVnJxs7TNmzBjVr19f7u7uql27tiZOnKjMzEzr9oMHD6pLly4qX768vLy81Lp1a+3bt09Szkv1btT3nwzD0OTJk1WjRg25uLioatWqGj58uKS/zhr99ttvGjlypPWMmSSdPXtWjz32mKpVqyZ3d3c1bdpUH3/8sXXOgQMH6uuvv9bcuXOt4+Lj4yVJP/30k7p37y5PT0/5+fnpySef1JkzZ6xjV69eraZNm8rNzU2VKlVSSEiI0tLSbu4XAAAoNAQnAECRuHjxoj788EPVrVtXlSpVsraXL19ey5Yt0y+//KK5c+dq8eLFmj17tnV7//79Vb16de3du1f79+/X2LFj5eTklOs+8tN3zZo1mj17tt555x0dPXpU69evV9OmTSVJa9euVfXq1TV16lTrGTNJunLlilq3bq2NGzfqp59+0jPPPKMnn3xSe/bskSTNnTtXwcHBGjJkiHVcYGCgzp8/r7vvvlstW7bUvn37tHnzZiUlJenhhx+WJJ06dUqPPfaYnnrqKR06dEjR0dHq06ePeNQiABQf5exdAACg9NqwYYM8PT0lSWlpaQoICNCGDRvk4PB//99uwoQJ1n8HBQVp1KhRWrFihUaPHi1JSkhI0IsvvqiGDRtKkurVq3fd/eW3r7+/v0JCQuTk5KQaNWqoXbt2kqSKFSvK0dFR5cuXl7+/v3VMtWrVNGrUKOv7YcOGacuWLVq1apXatWsnb29vOTs7y93d3WbcW2+9pZYtW2rGjBnWtvfee0+BgYE6cuSILl68qKtXr6pPnz6qWbOmJFlDHACgeOCMEwDglunSpYtiY2MVGxurPXv2KDQ0VN27d9dvv/1m7bNy5Urdcccd8vf3l6enpyZMmKCEhATr9oiICD399NMKCQnRK6+8ouPHj193f/np269fP12+fFm1a9fWkCFDtG7dOl29evWGnycrK0vTpk1T06ZNVbFiRXl6emrLli029ebm4MGD2r59uzw9Pa2va+Hu+PHjat68ue655x41bdpU/fr10+LFi/Xnn3/ecE4AQNEiOAEAbhkPDw/VrVtXdevWVdu2bfXuu+8qLS1NixcvliTFxMSof//+6tGjhzZs2KADBw7opZdeUkZGhnWOyZMn6+eff9Z9992nbdu2qXHjxlq3bl2u+8tP38DAQB0+fFhvv/223Nzc9Pzzz6tTp04291f902uvvaa5c+dqzJgx2r59u2JjYxUaGmpTb24uXryonj17WkPktdfRo0fVqVMnOTo6auvWrfriiy/UuHFjvfnmm2rQoIFOnDhh9iMGABQRghMAoMhYLBY5ODjo8uXLkqRdu3apZs2aeumll9SmTRvVq1fP5mzUNfXr19fIkSP15Zdfqk+fPlq6dOl195Gfvm5uburZs6fmzZun6OhoxcTE6Mcff5QkOTs7Kysry6b/t99+qwceeEBPPPGEmjdvrtq1a+dYDj23ca1atdLPP/+soKAga5C89vLw8LD+bO644w5NmTJFBw4ckLOz83VDHwCg6BGcAAC3THp6uhITE5WYmKhDhw5p2LBh1rMv0l/3ICUkJGjFihU6fvy45s2bZxMWLl++rPDwcEVHR+u3337Tt99+q71796pRo0Y59pWfvtJfK/ItWbJEP/30k3799Vd9+OGHcnNzs95jFBQUpB07duj333+3rn5Xr149bd26Vbt27dKhQ4f0r3/9S0lJSTbzBgUFaffu3YqPj9eZM2eUnZ2toUOH6ty5c3rssce0d+9eHT9+XFu2bNGgQYOUlZWl3bt3a8aMGdq3b58SEhK0du1aJScnX7d2AEDRIzgBAG6ZzZs3KyAgQAEBAWrfvr327t2rTz75RJ07d5Yk9erVSyNHjlR4eLhatGihXbt2aeLEidbxjo6OOnv2rMLCwlS/fn09/PDD6t69u6ZMmZJjX/npK0k+Pj5avHix7rjjDjVr1kxfffWVPv/8c+uKf1OnTlV8fLzq1KmjKlWqSPprIYtWrVopNDRUnTt3lr+/v3r37m0z76hRo+To6KjGjRurSpUqSkhIUNWqVfXtt98qKytL9957r5o2baoXXnhBPj4+cnBwkJeXl3bs2KEePXqofv36mjBhgt544w117969EH4LAIDCYDFY6xQAAAAAbogzTgAAAABgguAEAAAAACYITgAAAABgguAEAAAAACYITgAAAABgguAEAAAAACYITgAAAABgguAEAAAAACYITgAAAABgguAEAAAAACYITgAAAABgguAEAAAAACb+H83GCQMG/PF5AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pennylane import numpy as np\n", "import pennylane as qml\n", "from qrl.env import ProbabilityV0\n", "\n", "n_qubits = 2\n", "target_distribution = np.array([0.25, 0.25, 0.25, 0.25]) # Example target distribution\n", "\n", "# initialize environment\n", "# set ffmpeg=True if you have ffmpeg installed to save as mp4, or ffmpeg=False to save as gif\n", "env = ProbabilityV0(\n", " n_qubits=n_qubits,\n", " target_distribution=target_distribution,\n", " alpha=0.7, # KL vs L2 weight\n", " beta=0.01, # step penalty\n", " max_steps=10,\n", " ffmpeg=False\n", ")\n", "\n", "# Reset environment\n", "params, _ = env.reset()\n", "\n", "\n", "# Use PennyLane's optimizer\n", "opt = qml.GradientDescentOptimizer(stepsize=0.2)\n", "\n", "# params = env.params.copy()\n", "for step in range(env.max_steps):\n", " params, cost_val = opt.step_and_cost(env.get_reward, params)\n", " probs = env.circuit(params)\n", "\n", " # Save history for rendering\n", " env.history.append(probs)\n", " env.params = params # update env params\n", " reward = -cost_val\n", " env.rewards.append(-cost_val)\n", " print(f\"Step {step}: Reward = {reward:.4f}\")\n", "\n", " if reward > -1e-2: # close to perfect\n", " break\n", "\n", "# Animate the full evolution\n", "env.render(save_path_without_extension=\"probability_v0\")" ] } ], "metadata": { "kernelspec": { "display_name": "qrl_env (3.10.0)", "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.10.0" } }, "nbformat": 4, "nbformat_minor": 5 }