From 6022b37531f38a2847f8985fa5a07c4e48b36c43 Mon Sep 17 00:00:00 2001 From: Ritajit Majumdar <122992142+ritajitmajumdar1@users.noreply.github.com> Date: Thu, 2 May 2024 07:04:54 +0530 Subject: [PATCH] docs(notebooks): add introduction to primitives tutorial --- .../intro_to_qiskit_with_primitivesV2.ipynb | 1062 +++++++++++++++++ 1 file changed, 1062 insertions(+) create mode 100644 docs/notebooks/intro_to_qiskit_with_primitivesV2.ipynb diff --git a/docs/notebooks/intro_to_qiskit_with_primitivesV2.ipynb b/docs/notebooks/intro_to_qiskit_with_primitivesV2.ipynb new file mode 100644 index 0000000..f9b81bc --- /dev/null +++ b/docs/notebooks/intro_to_qiskit_with_primitivesV2.ipynb @@ -0,0 +1,1062 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "cb18b624-e138-494e-8dd6-31a26ce63079", + "metadata": {}, + "source": [ + "## Introduction to Qiskit" + ] + }, + { + "cell_type": "markdown", + "id": "50754782-d7d8-4ff1-8b69-e9622a40f07c", + "metadata": {}, + "source": [ + "### Ritajit Majumdar\n", + "Research Scientist @ IBM Quantum" + ] + }, + { + "cell_type": "markdown", + "id": "a554fd18-4956-4b7c-a77c-9606f592c972", + "metadata": {}, + "source": [ + "Let us select a Bell state as our problem of interest" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b6920429-eeb1-4281-88f1-0039070eaad8", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdIAAADuCAYAAACNr4ZUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAnwElEQVR4nO3deVxVdf4/8NddgMuqXBbZlEVFEXHfJU1DExQZt9Jx0hkrqxmNylH6mVPZ16+5jTZaZk1ftXEasiInXMtlUtRS1HAUEDdwRLgylx1kvZzfHwyMxHbvPffew8XX8/HoIfes7xvL637O53M+RyYIggAiIiIyilzqAoiIiKwZg5SIiEgEBikREZEIDFIiIiIRGKREREQiMEiJiIhEYJASERGJwCAlIiISgUFKREQkAoOUiIhIBAYpERGRCAxSIiIiERikREREIjBIiYiIRGCQEhERicAgJSIiEoFBSkREJAKDlIiISAQGKRERkQgMUiIiIhEYpERERCIwSImIiERgkBIREYnAICUiIhKBQUpERCQCg5SIiEgEBikREZEISqkLICLrlpycbND2Wq0WX3/9NWbOnAl3d3e99hk+fLgxpRFZBFukRGRRWq0Wn3zyCbRardSlEJkEg5SIiEgEBikREZEIDFIiIiIRGKREZFHOzs6YMmUKnJ2dpS6FyCRkgiAIUhdBRNbL0FG7xuCoXerI2CIlIouqqqrC3bt3UVVVJXUpRCbBICUii8rMzMSsWbOQmZkpdSlEJsEgJSIiEoEzG1GLBEEArO3Sm50dZDKZ1FVQJyEIAnQ6ndRlGEShUPB3QAIMUmpZVRVqn1oodRUGUX7xKaBSSV0GdRI6nQ4JCQlSl2GQWbNmQankn3VL46VdIiIiEfjRhYgsqm/fvjh//rzUZRCZDFukREREIjBIicii7ty5g0WLFuHOnTtSl0JkEgxSIrKoiooKXL16FRUVFVKXQmQSDFIiIiIRGKREREQiMEiJiIhEYJASkUV5e3tj9erV8Pb2lroUIpPgfaREZFFdunRBZGSk1GUQmQxbpERkUYWFhfjyyy9RWFgodSkWJQgCiouLcf/+fWg0GhQVFcGQx0ELgoCDBw+ipKTEjFWSMdgiJSKLun//PjZu3IiwsDC4urpKXY5ZaTQaJCUl4ebNm8jMzGwWgs7OzggICECvXr0QHh4OX1/fFo8jCAL++te/4uDBgzh58iRWrVoFFxcXS7wF0gODlIjIxC5fvoxDhw7h8uXLbW5XWlqKK1eu4MqVK9i3bx9CQ0MRGRmJoUOHNj7F5eEQBYB//etfSEtLw6hRo8z+Pkg/DFIL0Gq12LBhA77++mtkZ2fDw8MDM2fOxNq1a/Hyyy9j586d2LZtG5YsWSJ1qWQmOXnl+L9913HlRiEqq3Rw62qHGRP9MXVcdygU7GHpLEpLS7Fr1y6cPXu22bqG1mdDS7KsrAxZWVkoLi5u3CY1NRWpqakYPnw4nn32WXTp0qVJiALA4sWLGaIdDIPUzFJSUhAZGQmNRgNHR0f069cPOTk52Lp1K27duoWCggIAwKBBg6Qt1ExOavMw6Yfvsa7fALzWs2+L29ju/wJRnt74+8jHLFyd+WkLK/G7tWeRcCwLOl3T/rDd39xAD29H/M/vhmLB9N4SVUimkpqaiq1btzYJRk9PT0RERGDUqFHw8PBo9qxQQRCQn5+P8+fP47vvvoNGowEAJCcnIy0tDf369UNycnLj9osXL8bEiRMt84ZIbwxSM9JqtYiOjoZGo8GyZcvw1ltvwdnZGQCwYcMGxMXFQalUQiaTYcCAARJXS6aW++8HGL/oIG7caX1wyL9yy7Fw1Slk3y/HyucHWa44CTk4OGDkyJFwcHCQuhST+emnn7B582bU1NQAABwdHbFw4UKEh4dDLm/9ioNMJoO7uzuioqIwZcoUnDt3Drt27UJJSQnKy8sZolaC15TM6OWXX0Z2djaWLFmCTZs2NYYoAKxYsQIDBw5EbW1tk8s91DnU1QmY/vLRNkP0YW9su4gvv8s0c1UdQ48ePbBt2zb06NFD6lJM4tq1a01CNCwsDJs2bcK4cePaDNGfk8vlGD16NDZu3AhPT88m66KiohiiHRiD1EzS09Oxd+9euLu74913321xm6FDhwIABg4c2GR5ZmYmpk+fDmdnZ7i6umLBggXIz883e81kOt+eycaFVK1B+/zvn1MMuh3CWul0OpSVlUGn00ldimgPHjzAtm3bGkN01KhRiIuLM3o0siAISExMRF5eXpPlZ86c4W0vHRiD1Ezi4+NRV1eH+fPnw8nJqcVt7O3tATQN0tLSUkyYMAHZ2dmIj4/Hxx9/jKSkJEybNg11dXUWqd0cHuh00FZVtfhfZ7R9b7rB+1zOKMAPl/Pa39DK3bhxAxMnTsSNGzekLkW0zz77rPFDbkhICJYsWQKl0rges5+PzgWA7t27AwCKi4uxe/du0fWSebCP1ExOnDgBAJgwYUKr22RnZwNoGqQff/wx7t27h1OnTjVe+vLz88OYMWOQmJiIX/ziF+Yr2ozeyUjFOxmpUpdhEYIg4MjZbKP2PXw6G2MGdTNxRWQON2/exPHjxwEAKpUKL730kklDdPHixRg8eDB+//vfo7y8HGfPnsWECRMQFhZmkvrJdBikZtLw0GJ/f/8W19fW1uLMmTMAmgbpgQMHEB4e3qT/aPTo0QgKCsL+/fuNCtJhw4Y1jgbUl71cjrRBow0+V2ue6xGEWT7dW1wX+eNJk5wjODgYFR2g1V4HG9SqVxm175atO7Br3WETV2Res2fPNmj7hsuWhw8fxsWLF/XaZ8aMGQbXJZatrW2r3TIA8O233zZ+PXfu3Gb9mvpqLUQb+kQXLFiADz/8EADw3XfftRmkwcHBqK6uNqqOR52XlxcuXLhg1L4MUjMpLy8HgFYfXrx3715otVo4OzsjMDCwcXlaWhrmzJnTbPvQ0FCkpaUZVYtGo8G9e/cM2sdBoQAGGXW6FvVycsITHuZtaeXk5OBBh+h3kwGudYDM8J6T8pIClN837HsltYafdX01/E5UVFTova+hP7+mYGdn1+q6kpIS/PDDDwAAJycnowcCtReiABAeHo7PP/8chYWFuHDhArRaLdzd3Vs8Xk5ODqo6aXdJR8YgNRMvLy8UFhbi0qVLGD26acsuNzcXy5cvBwAMGDCgyb1lhYWF6Nq1a7PjqdVqZGRkGF2LoewNGG3YUfj4+HSIFikA5OlyUKP0M3g/tX0x7FuZJq6jcnR0NGj7hvC0t7fXe9/Wps4zJ1tb21bXnT9/HrW1tQCAxx9/vM1tW6NPiAKAQqFAREQEvvzySwiCgB9//BHTpk1r8Zg+Pj5skRrJmL+TDRikZhIREYH09HSsX78ekyZNQnBwMID6G62feeYZaLX1IzotMRGDMZcrhMpK1D610AzVmM/169chU6mkLgMAsPub6/jNH5IM2sfX0wFZl76DUmldH2IevtdRH7W1tfj1r38NZ2dnvfsU33vvPSMqE6e2thYJCQktrrt9+3bj18OHDzf42PqGaINhw4bhyy+/bHbun7t+/brR/bRkPOv6jbUiK1asgJubG+7evYvQ0FCEhYWhd+/eGDFiBIKCghp/YX5+64urqyuKioqaHa+goABqtdoSpZMJPP1kELzc7Q3aZ+kv+1ldiBpDqVTC1dXVqv/gN4SZTCZrdRxEawwNUaC+RW5jY9Pk3NRxdP7fWon4+fkhKSkJU6dOhUqlQlZWFtRqNT766CMcPHgQ169fB9A8SENCQlrsC01LS0NISIhFaifx7FVKJG6dBEd7/cJixhP++P3CR2M0ZnZ2NpYtW9Y4at0a5eTkAKi/HKgy4CqIMSEK1H/4aLgVRqPRdIp7cDsTBqkZhYSE4MCBAygtLUVpaSnOnTuHxYsXo7y8HFlZWZDL5ejfv3+TfaZNm4bTp083+SNz7tw53Lp1C9HR0ZZ+CyTC8P4eOLlrKgJ8Wr6PGADkchlenNMXezdMfGQmry8rK0NSUhLKysqkLsUogiBArVZDrVbDw8PDoH3/9re/GRyiDdzd3aFWq9GtW7fGCSCoY7DeaytWLDU1FYIgIDg4uNl8o4sXL8a2bdsQExOD1atXo7KyEitWrMCIESMQExMjUcXGG+/uierop9rcpr311mxoP3fcPDgHh5KysePLdHx75h50dQKUChlW/GYAXpjTFz28Ww9a6nhkMpnRfbaBgYGQyWQQBMHguXNfe+01o85J5scglcCVK1cANL+sCwAuLi44ceIEYmNjMXfuXCiVSkybNg1btmwxaN5O6jgUCjmiH++B6Md7wC8iHvfyHqCbmz3+9+VhUpdGFjZmzBgAQGVlJefO7UQYpBJoK0gBoGfPnjhw4IAlSyIiC2kIU+o82MSRQHtBStSZeXh4IDY21uD+RaKOii1SCTTMw0v0KHJzc8P8+fOlLoPIZNgiJSKLKikpwbFjx/hYMOo0GKREZFE5OTlYuXJl472YRNaOQUpERCQCg5SIiEgEBikREZEIDFIisig7Ozv06dOnzed9ElkT3v5CRBYVGBiIPXv2SF0GkcmwRUpERCQCg5SILCojIwNjx45FRkaG1KUQmQSDlIgsShAE1NTUQBAEqUshMgkGKRERkQgcbEQts7OD8otPpa7CMBwFSiakUCgwa9Yskx1v40d7UVpeDmdHRyx/4elmr01BoVCY5DhkGAYptUgmkwEqldRlEElGJpNBqTTdn0gBQJ1Q/69SqWz2mqwXv3tEZFEBAQGIj4+Hr6+v1KUQmQSDlIgsSqVSoWfPnlKXQWQyHGxERBaVm5uLNWvWIDc3V+pSiEyCQUpEFlVcXIzExEQUFxdLXQqRSTBIiYiIRGCQEhERicAgJSIiEoFBSkQWpVarsXDhQqjVaqlLITIJBikRWZRcLoeNjQ3kcv75oc6BP8lEZFFarRaffPIJtFqt1KUQmQSDlIiISAQGKRERkQgMUiIiIhEYpERkUc7OzpgyZQqcnZ2lLoXIJDhpPRFZlK+vL9555x2pyyAyGbZIiciiqqqqcPfuXVRVVUldCpFJMEiJyKIyMzMxa9YsZGZmSl0KkUnw0i4RETUjCAJ0Op3UZRhEoVBAJpNZ/LwMUiIiakan0yEhIUHqMgwya9YsKJWWjzVe2iUiIhKBQUpERCQCL+0SkUX17dsX58+fl7oMIpNhi5SIiEgEBimRhQiCAEEQGr9+VN25cweLFi3CnTt3pC6FyCR4aZfITKprdNj//b+QdOk+LqRpkXItH+UVtQCAnH9XIHDKXgzt545hoe6YMdEffQK7SluwhVRUVODq1auoqKiQuhQik2CQEplYTl45tu9Nx58TMpBXUNnqdlk5ZcjKKUPCsSz8vz9dwBMjffC7uSH4xUR/Se6FIyLjMEiJTEQQBOzcdx2vbTqHkrIag/c/fi4Hx8/l4ImRPvi/1eHw9+Gk7kTWgH2kRCZQUFyFqN9+h+fePm1UiD7s+Lkc9J+5D3v23zBRdURkTmyREomUl1+BiMWHceVGocmOWfagBgveOAVtURVefaa/yY7bEXh7e2P16tXw9vaWuhQik2CQEolQXFqNyS8eMWmIPuy1jefgaK/E4tl9zXJ8KXTp0gWRkZFSl0FWqLKyEtXV1XBxcZG6lCYYpEQixK7/EZczCsx6jiVrf8CoAZ4YEKw263kspbCwEMeOHUNERARcXV2lLofMrLKyEjdv3kRmZiZu376NkpIS1NbWwsbGBm5ubggMDERQUBCCgoLanCe3srIS69evR3l5OVatWtWhwpRBSmSkg6f+hU8TDevHTI6fDi93B2i0DzB8XqJe+9TU1uHXq07h3GfTYWNj/cMa7t+/j40bNyIsLIxB2onduXMHR48eRVJSUpvPnj158iSA+isVEydOxBNPPAF3d/cm2zSEaHp6OgBgy5YtePPNNzvM6Hbr/620AlqtFitWrECvXr2gUqnQvXt3xMbGory8HM8++yxkMhnef/99qcskA1RV6/DCO2cM3s/L3QF+3Rzh5e5g0H4/XcvHtvhUg89HZGlFRUXYvHkz4uLicOzYMb0f4F5cXIx9+/Zh6dKl+PTTTxv3+3mIOjg44Fe/+lWHCVGALVKzS0lJQWRkJDQaDRwdHdGvXz/k5ORg69atuHXrFgoK6i8LDho0SNpCySAJR7NwL++BRc+57W9piJ0fCoWCn3+pYzp79ix27tyJsrKyxmUqlQqjR49Gnz59EBQUBE9PTyiVSlRXV+PevXvIzMzE1atXcfHiReh0OgiCgMOHD+Onn37Cc889h4SEhCYh+sYbb6Bnz55SvcUWMUjNSKvVIjo6GhqNBsuWLcNbb70FZ+f6ewM3bNiAuLg4KJVKyGQyDBgwQOJqyRAf7E2z+Dmzcspw+HQ2po3vYfFzE7Vn37592Lt3b+NrFxcXzJw5E+PGjYODQ/MrMEqlEr1790bv3r0xefJkFBQU4NixY9i/fz9qamqg0WiwZs2axu07aogCvLRrVi+//DKys7OxZMkSbNq0qTFEAWDFihUYOHAgamtrERAQ0KE6zqltt7NLcDYlT5Jz/2X/TUnOa0oODg4YOXJki39cyTp98803TUJ01KhR2LRpE6ZMmaL391mtVuOpp57CunXrmoWlnZ1dhw1RgEFqNunp6di7dy/c3d3x7rvvtrjN0KFDAQADBw5sXNYQvCNGjICdnV2H6gegeuev/Fuycydfle7cptKjRw9s27YNPXqwZd0ZXLx4EfHx8Y2v58+fj1deecXoxoGbmxtsbW2bLKutrYW9vb2oOs2JQWom8fHxqKurw/z58+Hk5NTiNg0/GA8H6c2bN5GQkAAvLy8MHz7cIrWSYS6kaiU7d1ZOGfKLWp+/1xrodDqUlZVBp9NJXQqJVFZWhj//+c+Nr+fNm4fo6Gijj/fzgUUKhQJA/c/Mjh07UFdXJ65gM2GQmsmJEycAABMmTGh1m+zsbABNg3TcuHHIzc1FYmIiIiIizFskGSX1VpGk50+T+Pxi3bhxAxMnTsSNG5wC0drt2bMHRUVFAIDBgwdj+vTpRh+rpdG5q1atQrdu3QAA169fx5EjR0TXbA4cbGQmDc9a9Pf3b3F9bW0tzpypv33i4SCVy03/2WbYsGHQaDQmP+6j6t/OvwFsAlpc13CfaGu83O0b/717dG6b52ntXtMZs+dCVdNx+kpnz55t0PZ5efX9y4cPH8bFixf12mfGjBkG19XRzPjNK3B0ckGuJhd+fn7NXnc0tra2rXZLAfWDKU+dOgWgPvSef/55o7uiWgrRhj7RF198Ee+88w4EQcD+/fsxefLkViduCA4ORnV1tVE1eHl54cKFC0btyyA1k/LycgBo9ZmLe/fuhVarhbOzMwIDA81ai0ajwb1798x6jkdKYBVg0/KqhvtE26NUyPXariX5Wi1Q1nG+nw0/6/pq+J2oqKjQe9/O8PNb959L2XU6He7du9fsdUdjZ2fX5vrjx483PqA+MjISarVxM2+1FaIAEBISgqFDh+LChQsoLCzEpUuXMGLEiBaPlZOTo/d9q6bEIDUTLy+vxm/66NGjm6zLzc3F8uXLAQADBgww+4AiLy8vsx7/UaO1laG1X1WNtu17S73c7aFUyFGrq4NG2/aDrVs7lrubC+y6+OpTqkU4Ohr2gaAhPO3t7fXe19e347xfY8n/098nVyjg6+vb7HVH8/MBPw+rq6tr7L6Sy+V44oknjDpHeyHaYNKkSY2txePHj7capD4+PqJapMZikJpJREQE0tPTsX79ekyaNAnBwcEAgOTkZDzzzDPQausHrFhiIgZjL1dQy5b/8Tw2fXqlxXXtTft39+hc+HVzhEZbge6TPjfq/BmX/wF1l7ZbC5aUnJxs0PbXrl1DfHw8IiMj0bevfpPxv/fee0ZU1rGs/eAzlJSVw9vLG9nZ2c1edzS1tbVISEhocZ1Go0FxcTGA+q4pY1qj+oYoAISFhUGtVqOgoAAZGRmoq6trsRvs+vXrbc7Xay4cbGQmK1asgJubG+7evYvQ0FCEhYWhd+/eGDFiBIKCgjBx4kQATftHyToM7ecm2bkDfZ07VIgao1evXvj222/Rq1cvqUshI2VmZjZ+bcz30ZAQBepbvQ3rKisrkZuba0TV5sMgNRM/Pz8kJSVh6tSpUKlUyMrKglqtxkcffYSDBw/i+vXrABik1mhEmIeE53Zvf6MOTqlUwtXVVZKWA5lGVlZW49dBQUEG7WtoiLZ0noeDvCPgT7IZhYSE4MCBA82Wl5WVISsrC3K5HP37d66HNj8KgvxcED64G07/dN/i514Q3dvi5zS17OxsbNmyBa+++mqHHK1K7Xt4Lt2fP6mlLcaGKFA/UUMDQwe4mRuDVAKpqakQBAHBwcEtTp/11VdfAQDS0tKavA4ICMCwYcMsVyi16rdPh1g8SAN9nfHkmI43KMVQZWVlSEpKwvPPPy91KWSk6OhojB07FjU1NQYFaUZGBq5duwbA8Llz+/fvj7i4ONja2sLb29uous2FQSqBK1fqB6q0dll3zpw5Lb5euHAhdu/ebdbaSD+zJgWg+3uOuKux3Cfjl3/Zj09+oQ7Bx8cHPj4+Bu83cOBALF26FLt27cLrr79u0Ny5arXa6FtszI1BKoH2grTh3izquGxtFPjoD2MR9bvvLHK+YaHuWDKvn0XORWROY8aMwaBBgzrVQwv48VYC7QUpWYfIx7pj0Yxgg/bRaB8g+355u/ebPszWRo7d/zMOSiV/Xalz6EwhCrBFKomGG5nJ+m1ZPhIp1/JxKT1fr+3bu8+0JR+uGovQXq4G79dReXh4IDY2Fh4e0o1+JjIlfsQlEsHFyRZHPnwSg/qap+9m6+ujDG71dnRubm6YP39+k1GYRNaMQUokkofaHv/4JArTxnU32TFdnGzwt3WPY+kvQ012zI6ipKQEx44dQ0lJidSlEJkEg5TIBLq62CFx2yR8umYcujq3PkepPqaM9cPVr2diXpT+IxqtSU5ODlauXImcnBypSyEyCfaREpmITCbDgum98eRYP+z4Ih0fJ2QgJ0//QUVTxvrhd3NDMHVcd7M/yICITIdBSmRi3dzs8dZLQ7DyuUE4dPouTl+6j4tpWvx0LR9FpfVPplAoZOjp54Kh/dwwtJ87fjHRHz27u0hcOREZg0FKZCY2NnLETPBHzIT/Pty9rk6ATifAxoa9KkSdBYOUyILkchnk8kf7sq2dnR369OnT7oOjiawFg5SILCowMBB79uyRugwik+H1JSIiIhEYpERkURkZGRg7diwyMjKkLoXIJBikRGRRgiCgpqaGD2egToN9pERE1IxCocCsWbNMdryNH+1FaXk5nB0dsfyFp5u9NgWFQmGS4xiKQUpERM3IZDIolaaLCAFAnVD/r1KpbPbamvHSLhERkQjW/TGAiKxOQEAA4uPj4evrK3UpRCbBICUii1KpVOjZs3NOyE+PJl7aJSKLys3NxZo1a5Cbmyt1KUQmwSAlIosqLi5GYmIiiouLpS6FyCQYpERERCIwSImIiERgkBIREYnAUbtEJMrw4cMN2t7Pzw9vvfUWIiIi4O3tbaaqiCyHQUpEFuXt7Y23335b6jKITIaXdomIiERgkBIREYnAICUiIhKBQUpERCQCg5SIiEgEBikREZEIDFIiIiIRGKREREQiMEiJiIhEYJASERGJwCAlIiISgUFKREQkAoOUAAAbN27E6NGj4erqiq5duyI8PBxHjhyRuiwiasOhQ4cwaNAg2NnZISAgAJs3b5a6JIs6deoUYmJi4O/vD5lMhjVr1khSB4OUAAAnTpzAokWL8I9//APnz5/HmDFjMG3aNJw5c0bq0oioBRcuXEBMTAwiIyORkpKCt99+GytXrsSOHTukLs1iysrK0K9fP2zYsAFeXl6S1cHHqBEA4PDhw01eb9iwAUeOHMHXX3+NsWPHSlQVEbVm8+bNGD58ON59910AQEhICFJTU7Fu3Tq8+OKLEldnGVFRUYiKigIAxMXFSVYHg5RaVFdXh5KSEjg6OkpdCpFVeVBRiWyNttnyWp2u8d/rmdnNXj/Mp5sbnBzs2zzPmTNn8OyzzzZZNmXKFGzatAnZ2dnw8/MT8zZEybybi5paXZNlhrx/JwcVfLq5W6ZYE2CQUovWrl2LoqIiLF68WOpSiKyKna0tvjuVjGzNv1tc/6CiEju/ONTq627urliycEa758nNzW12ObPhdW5urqRBmnM/H/uPn21xXXvvXwbg+XnTzF2iSbGPlJrZvn071q5di6+++krSX0Yia6RQyPHUtAlQKhWG7yuv39dGad1tnNFDQ9HL39eofcOHD0BQDx8TV2ReDFJqYtOmTVi+fDkSExMREREhdTlEVsnTrSuiHh9p8H4R4UPhq+clTW9vb2g0mibL7t+/37hOSnKZDHOixkNlZ2vQft3cXTF53DAzVWU+DFJq9Oabb2L16tU4dOgQQ5RIpFFDQtE7QP9Wmb9vN4wfOVDv7ceOHYtvv/22ybIjR47A39+/Q1xJ6uLihF9MDtd7e4VcjqejJ1pla5xBSgCAV155BRs3bsSePXvQp08faDQaaDQaFBcXS10akVWSy2SYHfU47FV27W5ra6PEU1MnQC7X/0/yq6++ivPnz+ONN97AtWvX8Omnn2Lbtm14/fXXxZRtUoP69cKAvkF6bTvpsWHw8XQz6PhlZWVISUlBSkoKqqurodFokJKSgps3bxpTrtFkgiAIFj0jdUgymazF5QsXLsTu3bstWwxRJ3I57Sbi959oc5uZU8ZhxMC+Bh/74MGDWLlyJa5duwYvLy/ExsbitddeM7ZUs3hQUYn3dn6FkrIHrW4T4OeFxfOmGfRBAgC+//57TJgwodny8ePH4/vvvze0VKMxSMkgDyoqUVBUCj9vD6lLIbIa8YnHcTn9VovrQnr1wIKZT7b6YbYzuJ6Z3WRk7sNsbW0Q+5tZcOvqYuGqTIeXdskgSclX8P5f9uHgiR+lLoXIasRMDoeLU/N7sh3tVZg5ZVynDlEACA70w+ghoS2ui5442qpDFGCQkgHKKypx9uJVAPWXYohIPw4qO8yJGt9s+cwp4+Ds6CBBRZYX+fhIeKi7NFkW0ssfwwb0kagi0+k0QSqTyRo/1e3fvx+PPfYYXFxc4O7ujtmzZ+PWrf9eVjlw4ADGjx+Prl27wsXFBTExMbhx40arx66qqsKf/vQnjBkzBl27doVKpUKfPn2wfPlyaLXNZzABgHPnziEuLg7Dhw+Hl5cX7Ozs4Ovri6eeegrJycmtnuvQoUOIioqCp6cnbGxs4ObmhpCQECxatEjyeW9PJ19BVXUNvD3d0K+3v6S1EFmb3oF+GDP0v62yoWHBCA0OkK4gC7O1UeKpaRMg/8/faUcHFWZ1lta40EkAEAAI77//vgBA8PHxEQYPHizY29sLAARfX18hLy9P2LJliwBA8Pb2brLey8tLyMvLa3ZcjUYjDB48WAAgyOVywd/fXwgLCxPs7OwEAEKPHj2EW7duNduvZ8+eAgBBrVYLoaGhwuDBgwU3NzcBgKBUKoWvvvqq2T4ffPBB4/twc3MThgwZIoSEhAhOTk4CAOGFF14wy/87fZQ9qBDe3LxTiFv3kXA1I1OyOoisWVV1jbDp473Cug//JlRUVkldjiSOJl2o/ztyPVPqUkym0ww2avhU4+DggA8//BALFiwAABQUFGDKlClITk7GtGnTcPz4cezYsaNxfX5+Pp588klcvHgRcXFxWLduXeMxBUHAhAkTcPLkSUydOhXvv/8+AgICANQPu46NjcXOnTsxevRonD3bdDqsv/zlLxgzZgx69erVuKyurg7ffPMNFixYAKVSibt378LJyQkAUFtbC09PTxQWFmL79u1YvHgxFApFYx1JSUnIz8/HjBntTx32c9s+/RqlZRUG7/ewqupqVFXXQC6XtzsHKBG1TqfTQQCgVBg+81FnIAgCampqYWtrI3UpTTg72WPpwplG7dvpgnTp0qXYunVrk3VHjhxBZGRkq+sPHz6MqKgoDBgwAJcvX25cfujQIUydOhX9+/dHcnIyVCpVk/10Oh1GjBiBS5cu4fTp03o/JeUPf/gD1qxZg/j4eMydOxcAoNFo4O3tDVdXVxQUFBj25tux9oPPUFJWbtJjEhF1Ji5Ojlj5u/lG7Wt9U0i047nnnmu2bMiQIXqtv337dpPlCQkJAOrvpfx5iAKAQqHA9OnTcenSJXz//ffNgvTGjRv4/PPPcfnyZeTn56OmpgYAkJeXBwBISUlpDFIPDw+oVCoUFRXh6NGjmDRpkt7vuT3OTuJakGyNElFnJ+bvZKcL0p49ezZb5uHh0eZ6T09PAPWXax/2z3/+EwCwa9cu/P3vf2/xfA1zW967d6/J8j/+8Y94/fXXUVtb22qt+fn5jV8rFArExsZi/fr1mDx5MoYMGYKIiAiEh4dj/PjxcHExfni4sZcrgPqRuht2xAMA5sdEPFKDI4iI9NHpLu229naMWd+7d2+9p5p6eAagM2fOIDw8HAqFAqtXr0ZMTAwCAgLg6OgImUyGnTt34tlnn202a1BdXR22b9+ODz74ANeuXWtcbmdnh1/+8pfYtGkT1Gq1XvU8TEwfKVujRPQoENNH2ulapKbUMBAoMTER0dHReu+3Z88eAMCyZcvwxhtvNFv/cEv0YXK5HEuWLMGSJUuQnZ2NpKQkHD16FF988QV27dqFu3fv4ujRowa/j9KyCtF9pHV1dexnJSJqAYO0DaGhoUhJScHVq1cNCtLMzEwAQHh4y08++PHH9mcF8vPzw7x58zBv3jwsW7YMYWFhOHbsGDIzMxEYGKh3LYDx1/7ZGiWiRwX7SM1k9uzZ+Oyzz/Dxxx9j6dKljS3U9tjb139Dfv6sQKB+ANKBAwcMqiM0NBRdunRBUVERcnJyDA5SYy5XsG+UiEg/nWZmI3OIiYnB+PHjkZWVhcmTJ+Pq1atN1tfV1eGHH37Aiy++2GTE72OPPQYAePfdd5vMqJSamoro6OgWn3CQlpaG559/Hj/++GOTflqdTof33nsPRUVFUKlUCA1teb5KU+MsRkRE+uFgo3bWa7VaxMTENE644O/vDy8vL1RUVODWrVsoL6/vN0xPT0ffvvWPQSotLcWQIUNw8+ZN2NjYoE+fPqirq0N6ejq8vb3x29/+FqtWrWoy2CglJQWDBw8GADg7O6Nnz55QKBTIyspq7FPdvn07XnrpJaP+/xiioTVaVV2DZ2ZMZmuUiKgNbJG2w93dHSdPnsTu3bsxadIklJeX48KFC8jMzESvXr0QGxuLkydPIjg4uHEfZ2dnnD59GosWLYKrqysyMjJQVlaGF154AZcuXYKvr2+z8wQHB+OTTz7B008/DW9vb9y+fRuXL1+GSqXCnDlzkJSUZJEQBYDKqmr08PFka5SISA+dpkVKpldZVQ2Vna3UZRARdWgMUiIiIhF4aZeIiEgEBikREZEIDFIiIiIRGKREREQiMEiJiIhEYJASERGJwCAlIiISgUFKREQkAoOUiIhIBAYpERGRCAxSIiIiERikREREIjBIiYiIRGCQEhERicAgJSIiEoFBSkREJAKDlIiISAQGKRERkQgMUiIiIhEYpERERCIwSImIiERgkBIREYnAICUiIhKBQUpERCQCg5SIiEgEBikREZEIDFIiIiIRGKREREQiMEiJiIhEYJASERGJwCAlIiISgUFKREQkAoOUiIhIBAYpERGRCAxSIiIiERikREREIjBIiYiIRGCQEhERicAgJSIiEuH/AyiWrixGC8EdAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qiskit.circuit import QuantumCircuit\n", + "\n", + "qc = QuantumCircuit(2)\n", + "qc.h(0)\n", + "qc.cx(0,1)\n", + "qc.measure_all()\n", + "\n", + "qc.draw('mpl')" + ] + }, + { + "cell_type": "markdown", + "id": "2cdbdf95-85bf-4a18-ba1d-b48c68ab9534", + "metadata": {}, + "source": [ + "### Obtaining the probability distribution: Introduction to Sampler" + ] + }, + { + "cell_type": "markdown", + "id": "90c7059d-68f2-46f2-8804-a286f4b634af", + "metadata": {}, + "source": [ + "Qiskit Runtime offers two primitives - Sampler and Estimator. The former is used to obtain the probability distribution of a circuit. In this section, we shall see the usage of Sampler." + ] + }, + { + "cell_type": "markdown", + "id": "08366435-546f-43b4-93a3-04864f93f270", + "metadata": {}, + "source": [ + "You can install the latest version of Qiskit Runtime by *pip install qiskit-ibm-runtime*. Note that with Qiskit 1.0, you may need to separately install qiskit-aer by *pip install qiskit-aer*." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5c5de001-69d3-43fe-9341-544d40c0af05", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_aer import AerSimulator\n", + "from qiskit_ibm_runtime import SamplerV2\n", + "\n", + "backend = AerSimulator()\n", + "sampler = SamplerV2(backend=backend)\n", + "\n", + "# You can set the number of shots you want for your experiment\n", + "sampler.options.default_shots = 4096" + ] + }, + { + "cell_type": "markdown", + "id": "135638c4-20a4-4372-9167-9d9126762189", + "metadata": {}, + "source": [ + "Using sampler allows you to also use dynamical decoupling to your problem without manually working on it. For example,\n", + "\n", + "*sampler.options.dynamical_decoupling.enable = True*\n", + "\n", + "*sampler.options.dynamical_decoupling.sequence_type = 'xpxm'*" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c4a328e7-659c-4b28-8d59-8a87273ff901", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'5b675486-f5fa-49f1-8b09-b65f2eb147de'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "job = sampler.run([qc])\n", + "job.job_id()" + ] + }, + { + "cell_type": "markdown", + "id": "b5355710-3969-4a10-8085-0ec0f1289a9d", + "metadata": {}, + "source": [ + "Note that *job_id* is not useful for local simulation. But when you use real quantum device, you will most likely encounter a queue. So it is useful to keep the *job_id* handy. This way you can turn off / send to sleep mode your laptop while the program waits on queue, and gets executed. Once the result is ready, you can retrieve the job using this *job_id* and obtain the results." + ] + }, + { + "cell_type": "markdown", + "id": "29e68d15-e203-4585-89fd-2a12eae6963d", + "metadata": {}, + "source": [ + "Note that both the primitives allow you to send multiple circuits together for execution. You can do that by job = sampler.run([qc1,qc2,...]). So your result is an array with the i-th entry giving you the outcome of the i-th circuit.\n", + "\n", + "Since for this example, there is only one circuit, we take the 0-th entry of the result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0caa1260-68d2-44c6-8100-690f4a77f3e8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'00': 2040, '11': 2056}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result = job.result()[0]\n", + "counts = result.data.meas.get_counts()\n", + "counts" + ] + }, + { + "cell_type": "markdown", + "id": "db4a6f86-dfe0-40f3-a9f8-174f43ed1371", + "metadata": {}, + "source": [ + "You can also plot the count as a histogram for better visualization. Note that you need to install *qiskit-visualization* for this" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "724d84b9-4579-48d4-999b-cdfedd7b5276", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qiskit.visualization import plot_histogram\n", + "\n", + "plot_histogram(counts)" + ] + }, + { + "cell_type": "markdown", + "id": "484d31d8-22ff-4274-9a51-3c7fa0140407", + "metadata": {}, + "source": [ + "### Calculating expectation value from probability distribution" + ] + }, + { + "cell_type": "markdown", + "id": "27cdea55-3e35-4fa9-9336-1da32396054f", + "metadata": {}, + "source": [ + "#### For observables diagonal in Z basis" + ] + }, + { + "cell_type": "markdown", + "id": "1175dbae-99e2-4690-b750-f0deb67ba38d", + "metadata": {}, + "source": [ + "Let us assume that you want to calculate the expectation value of $\\langle ZZ \\rangle$ for the Bell state. You can do that by using the *sampled_expectation_value* function, and the *SparsePauliOp* class for observables." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "23cc99a9-4db5-4553-b91a-c32d1b81fe6d", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit.result import sampled_expectation_value\n", + "from qiskit.quantum_info import SparsePauliOp" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b60f89e1-7c55-44eb-bc7e-e462b289b666", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SparsePauliOp(['ZZ'],\n", + " coeffs=[1.+0.j])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "observable_zz = SparsePauliOp('ZZ')\n", + "observable_zz" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a1d812d8-9ab5-4312-bf26-6fb6201fdba1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Expectation value of is 1.0\n" + ] + } + ], + "source": [ + "expval_zz = sampled_expectation_value(counts, observable_zz)\n", + "print(f'Expectation value of is {expval_zz}')" + ] + }, + { + "cell_type": "markdown", + "id": "c5e636dd-47bd-4e7d-a87f-0f835a1aa2e8", + "metadata": {}, + "source": [ + "You can similarly calculate the expcation value of observables like, say, $\\langle ZI \\rangle$." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6272aa97-df3d-4c51-af94-958840e5d65d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Expectation value of is -0.00390625\n" + ] + } + ], + "source": [ + "observable_zi = SparsePauliOp('ZI')\n", + "expval_zi = sampled_expectation_value(counts, observable_zi)\n", + "print(f'Expectation value of is {expval_zi}')" + ] + }, + { + "cell_type": "markdown", + "id": "962e0582-a36e-4134-aeec-aa6ca74ab858", + "metadata": {}, + "source": [ + "Note that we know the ideal expecation value of $\\langle ZI \\rangle$ is 0. But that is in the range of infinite shots. Here we have $(2040-2056)/4096 = -0.0039$. The more you increase the number of shots, the closer will this value be to 0." + ] + }, + { + "cell_type": "markdown", + "id": "2ce9224f-bfb5-4006-a4f2-c24e677d38e7", + "metadata": {}, + "source": [ + "#### For observables which are not diagonal in Z basis" + ] + }, + { + "cell_type": "markdown", + "id": "c6064ab0-45b6-40f1-a356-d5758bc0b1ae", + "metadata": {}, + "source": [ + "##### X type observables" + ] + }, + { + "cell_type": "markdown", + "id": "a5ec31cf-1307-47fb-be1c-379d6a87f83b", + "metadata": {}, + "source": [ + "If the observable is not diagonal in $Z$ basis, then it is necessary to change the measurement basis. But quantum hardware can measure only in $Z$ basis. So we apply a unitary *before measurement* in order to set the correct rotation. For measurement in $X$ basis, we need to add a Hadamard gate before measurement since HZH = X.\n", + "\n", + "Let us measure the expectation value of $\\langle XX \\rangle$." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "71862eb0-20a5-402b-8f1b-2c7286e9a7e5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAADuCAYAAACDMIXKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAApiklEQVR4nO3de1xUdf4/8NdcgOEq94aLXBUFlATvt0xDExXR9b5+09ZM282ictHSbrZumrpd1Cxbf5X5aE03ayOveSlFMq+LpSCgggvCSMNFBbnOnN8fLKzEoMycmTlcXs/Hw4fMOedzzntgGF7zOZ/zOTJBEAQQERERmUgudQFERETUvjFMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCSKUuoCiIjas9OnTxu1vVarxVdffYXf/e538PT0bHW7/v37G1sakdWwZ4KIyIq0Wi22bNkCrVYrdSlEZsMwQURERKIwTBAREZEoDBNEREQkCsMEEZEVOTs7Y+zYsXB2dpa6FCKzkQmCIEhdBBFRe2Xs1Rym4tUc1JaxZ4KIyIqqq6uRl5eH6upqqUshMhuGCSIiK8rJycGUKVOQk5MjdSlEZsMwQURERKJwBkwySBAEoL11w9rZQSaTSV1Fh8HXQOcmCAJ0Op3UZRhFoVDw5y8RhgkyrLoaddPnSl2FUZQ7twIqldRldBx8DXRqOp0Ou3btkroMo0yZMgVKJf+sSYGnOYiIiEgURjgiIivq2bMnTp06JXUZRGbFngkiIiIShWGCiMiKrl27hnnz5uHatWtSl0JkNgwTRERWVFlZiQsXLqCyslLqUojMhmGCiIiIRGGYICIiIlEYJoiIiEgUhgkiIivy8fHBihUr4OPjI3UpRGbDeSaIiKyoS5cuiIuLk7oMIrNizwQRkRWVlpbin//8J0pLS6Uuxeqqqqrw66+/QqPRQKvVora21qj2mZmZOHv2rIWqIzHYM0FEZEU3btzA2rVr0bt3b7i5uUldjkVVVVXh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zdbf3SNxN7lcjkWLFmHRokXIz89HSkoKDh48iJ07d+KTTz5BXl4eDh48aPTzuF1eKXrMhF6v57gLIiIyiGHiHiIjI5GWloYLFy4YFSZycnIAAMOGGb5j3k8/3X/2SH9/f8yaNQuzZs3C4sWL0bt3bxw6dAg5OTkIDg5udS2A6efB2CtBRNR5cMyEhUydOhWff/45PvroIzzzzDONPRX3Y29f/wPRaDTN1mVnZ2P37t1G1REZGYkuXbqgrKwMBQUFRocJU7qtOFaCiIhaq8PMgGkJCQkJGDFiBHJzczFmzBhcuHChyXq9Xo8TJ07gqaeeanIlyPDhwwEAq1atajLz5sWLFxEfH29w6tT09HQ8+eST+Omnn5qM29DpdHj33XdRVlYGlUqFyEjD89ubG2e7JCKi1uIAzPus12q1SEhIaJyUKjAwEGq1GpWVlbhy5QoqKurHEWRkZKBnz54AgNu3byMmJgaXL1+GjY0NevToAb1ej4yMDPj4+OBPf/oTXn755SYDMNPS0hAdXT9vu7OzM0JDQ6FQKJCbm9s4xmLTpk344x//aNL3xxgNvRLVNbV4bPIY9koQEdE9sWfiPjw9PXH06FF8+umnGD16NCoqKnDmzBnk5OSgW7duSExMxNGjRxEWFtbYxtnZGcePH8e8efPg5uaGzMxMlJeXY+HChTh37hz8/PyaHScsLAxbtmzBjBkz4OPjg6tXr+L8+fNQqVSYNm0aUlJSrBIkAKCqugYBvt7slSAiolbpMD0TZH5V1TVQ2dlKXQYREbVxDBNEREQkCk9zEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJwjBBREREojBMEBERkSgME0RERCQKwwQRERGJ8v8BUXskLGjm+s4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qc_x = qc.copy()\n", + "qc_x.remove_final_measurements()\n", + "qc_x.h([0,1]) # these hadamard gates ensure that now measurement is in X basis\n", + "qc_x.measure_all()\n", + "\n", + "qc_x.draw('mpl')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "22eed0c3-0d1e-4f64-8d87-90d24d09e974", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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06ZNq8zxAgAAoIpUOBj6+vpq7969+utf/6p169Zpy5Yt1mW1atXSsGHDNH/+fNWrV69SBgoAAICqdUM3uPbz89Pbb7+tpUuX6siRI9Ynn4SGhsrFxaWyxggAAIBqUO5zDGfPnq2///3vys/Pt9ZcXFzUqlUrhYeHq1WrVjKbzZoyZYrmzZtXoUGtXr1ao0aN0r333is3NzcZDAatWLGi1P7MzExNnDhRgYGBcnNzU1BQkF544QVlZ2eX2G8ymbR48WK1atVK7u7uql+/vp544gkdO3as1HXExcUpIiJCXl5e8vb2VmRkpLZv316h+QEAADiicgXDTz/9VC+++KJ8fX2vuUfQ1dVVvr6+mjJlSoXuYzh16lQtW7ZMqampatSo0TV7c3JyFBERoYULFyo0NFQTJkxQSEiIXnvtNXXt2rXYhTGSNGrUKI0bN05ms1njxo1Tjx49tHHjRrVr104pKSnF+levXq0ePXro+++/19ChQzVkyBB9++23evDBB/X++++Xe34AAACOqFzB8J133lHdunU1duzY6/aOGTNG9erVU2xsbLkHFRMToxMnTujcuXN65plnrtn7yiuv6MCBA5o0aZLi4uI0b948xcXFadKkSfryyy+1cOFCm/6EhATFxMSoc+fO2r9/v+bPn69Vq1bpo48+0oULF4rN7eLFi3ruuefk5+en/fv3a/HixVq8eLH2798vX19fPfvss8rKyir3HAEAABxNuYLh7t271b17d7m5uV23183NTd27d9euXbvKPaju3bsrMDDwun1ms1kxMTHy9PQsdvXztGnT5OnpqZiYGJv68uXLJUmzZs2Sq6urtf7QQw+pS5cuio+P18mTJ6319957T7/++quee+45NWnSxFpv0qSJxo4dq/Pnz+vDDz8s9xwBAAAcTbmC4alTp9SsWbMy9wcHB+v06dPlHlRZpaSk6NSpUwoPD5eHh4fNMg8PD4WHh+vYsWNKS0uz1hMTE63LrhYdHS1JSkpKsumXpKioqDL1AwAA1FTluirZaDTaXHRyPfn5+TIaK3wP7esqOh+wefPmJS5v3ry54uLilJKSooCAAOXk5Oj06dO666675OTkVGL/le97vXWU1F+SvLw85eXlWX/OzMyU9Pvvp+j3aTQa5eTkpMLCQplMJmtvUb2goEBms9lad3JyktFoLLUOOJqrPzucnX//+Cko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", + "text/plain": [ + "
" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "counts_x = sampler.run([qc_x]).result()[0].data.meas.get_counts()\n", + "plot_histogram(counts_x)" + ] + }, + { + "cell_type": "markdown", + "id": "97e42913-55c4-4fe0-bb54-c2d159c26430", + "metadata": {}, + "source": [ + "This is the expected result since a Bell state is entangled in all spin directions.\n", + "\n", + "Note that we have already rotated our measurement basis. So now, we need to calculate the expectation value of $\\langle ZZ \\rangle$, not $\\langle XX \\rangle$. The rotation using Hadamard gate ensured that now we can simply calculate along $Z$ basis to obtain the correct expectation value.\n", + "\n", + "So now I shall use the counts from this new experiment, but use $\\langle ZZ \\rangle$ observable to calculate the expectation value." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "4187728f-e6e1-4570-b543-4831388e545b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Expectation value of is 1.0\n" + ] + } + ], + "source": [ + "expval_xx = sampled_expectation_value(counts_x, observable_zz)\n", + "print(f'Expectation value of is {expval_xx}')" + ] + }, + { + "cell_type": "markdown", + "id": "b214b2e0-85de-4c1c-8fbc-c23f280bee98", + "metadata": {}, + "source": [ + "##### Y type observables" + ] + }, + { + "cell_type": "markdown", + "id": "e74d0642-59c0-4753-be84-5af1cbb2b67a", + "metadata": {}, + "source": [ + "For Y type observable, we need to apply a Hadamard gate followed by a $S^{\\dagger}$ gate before measurement. This rotation ensures measurement Y basis.\n", + "\n", + "Let us measure the expectation value of $\\langle YY \\rangle$." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c5a9c721-289d-4142-a836-d8194a325b78", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlMAAADuCAYAAAAdioJqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAuOklEQVR4nO3deVxU9f4/8NcsMAybsukMIIsoCopZbtctl9TEjQy3ro+0a+tNi2v+1L7a/Zbdrrm1aVer6027fdWsi5UZmlsaWikumAoCKiA4jDYsIsgiM/P7gwtJDMrMOTNngNfz8eghM2d7T8wcXvP5fM75yMxmsxlEREREZBO51AUQERERtWQMU0REREQCMEwRERERCcAwRURERCQAwxQRERGRAAxTRERERAIwTBEREREJwDBFREREJADDFBEREZEADFNEREREAjBMEREREQnAMEVEREQkAMMUERERkQAMU0REREQCMEwRERERCcAwRURERCQAwxQRERGRAAxTRERERAIwTBEREREJwDBFREREJADDFBEREZEADFNEREREAjBMEREREQnAMEVEREQkAMMUERERkQAMU0REREQCMEwRERERCaCUugAiImrZUlJSmr2uwWDAjh078Oijj8Lf37/Z2/Xr18+W0ogcgi1TRETkMAaDARs3boTBYJC6FCLRMEwRERERCcAwRURERCQAwxQRERGRAAxTRETkMF5eXhg7diy8vLykLoVINDKz2WyWuggiImq5rLmaz1a8mo+cGVumiIjIYaqqqpCXl4eqqiqpSyESDcMUERE5THZ2NuLj45GdnS11KUSiYZgiIiIiEoB3QCeLzGYz0NKa4VUqyGQyqatoNdr6e8BsBiqNouzKYdwUAD8C4jGbzTAaW9abQKFQ8DwoAYYpsqyqCjXTZktdhVWUn38CuLlJXUbr0cbfA5VGYGiSKLtymORxgJpnddEYjUYkJiZKXYZV4uPjoVTyTeBo7OYjIiIiEoDxlYiIHKZ79+44fvy41GUQiYotU0REREQCMEwREZHD5ObmYs6cOcjNzZW6FCLRMEwREZHDVFRU4Ny5c6ioqJC6FCLRMEwRERERCcAwRURERCQAwxQRERGRAAxTRETkMFqtFsuWLYNWq5W6FCLR8D5TRETkMO3atUNsbKzUZRCJii1TRETkMMXFxfjiiy9QXFwsdSkOZzKZUFRU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", + "text/plain": [ + "
" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qc_y = qc.copy()\n", + "qc_y.remove_final_measurements()\n", + "\n", + "# change in measurement basis to Y\n", + "qc_y.h([0,1])\n", + "qc_y.sdg([0,1])\n", + "\n", + "# measure in Z basis\n", + "qc_y.measure_all()\n", + "\n", + "qc_y.draw('mpl')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "376e6f7c-e4f8-4bd9-99c7-a43bc4836ac1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoYAAAG8CAYAAABDg2QvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5iElEQVR4nO3de1iUdd7H8c8MJ5GTCFqSiNgiVloe8kiBKGHqPpVp+liZuuuhPLRqW66rpmmetrRc3VqVDU0zD1tmmS6YguYp20xTS6E8QYhJKiAhAjPPHw7zOAIKCMyg79d1eV3N9/7OzO83y33vZ+7TGMxms1kAAAC47RntPQAAAAA4BoIhAAAAJBEMAQAAYEEwBAAAgCSCIQAAACwIhgAAAJBEMAQAAIAFwRAAAACSJGd7D+B2ZDKZlJaWJi8vLxkMBnsPBwAA3MLMZrOys7MVEBAgo/H6+wQJhnaQlpamwMBAew8DAADcRlJSUtSwYcPr9hAM7cDLy0vSlf+BvL297TwaAABwK8vKylJgYKA1f1wPwdAOig4fe3t7EwwBAEC1KMvpa1x8AgAAAEkEQwAAAFgQDHFLmzVrltq2bSsvLy/Vr19fTzzxhI4ePWrTc+nSJY0cOVJ+fn7y9PRU7969debMGZseg8FQ7N+qVausywcNGlRiz3333Vct8wQAoDIQDHFL27Ztm0aOHKk9e/Zo8+bNys/PV3R0tHJycqw9Y8eO1Weffaa1a9dq27ZtSktL05NPPlnstWJjY3X69GnrvyeeeMK6bP78+TbLUlJSVLduXT311FPVMU0AACqFwWw2m+09iNtNVlaWfHx8lJmZycUn1ezs2bOqX7++tm3bpvDwcGVmZqpevXpauXKl+vTpI0k6cuSI7rnnHu3evVsdOnSQdGWP4bp162zC4PV88sknevLJJ3X8+HEFBQVV1XQAALih8uQO9hjitpKZmSlJqlu3riTpm2++UX5+vqKioqw9zZo1U6NGjbR7926b544cOVL+/v5q166d3nvvPV3vO9W//vUvRUVFEQoBOLTKON3m119/1aOPPqqAgAC5ubkpMDBQo0aNUlZWls3r/OMf/9A999wjd3d3hYaG6v3336+WOaJ8CIa4bZhMJo0ZM0ZhYWFq3ry5JCk9PV2urq6qU6eOTe8dd9yh9PR06+Np06ZpzZo12rx5s3r37q0RI0ZowYIFJb5PWlqaNm3apCFDhlTZXACgMlTG6TZGo1GPP/64Pv30UyUlJWnp0qX64osv9Pzzz1t73n33XU2YMEFTp07V4cOH9dprr2nkyJH67LPPqnW+KAMzql1mZqZZkjkzM9PeQ7mtPP/88+agoCBzSkqKtfbBBx+YXV1di/W2bdvW/Morr5T6WpMnTzY3bNiwxGUzZ840+/n5mfPy8m5+0ABQjX755RezJPO2bdvMZrPZfOHCBbOLi4t57dq11p4ffvjBLMm8e/fuUl9n/vz5NtvIjh07mv/85z/b9IwbN84cFhZWyTNAScqTO9hjiNvCqFGjtGHDBiUkJNj8HNCdd96py5cv68KFCzb9Z86c0Z133lnq67Vv316pqanKy8uzqZvNZr333nsaMGCAXF1dK3UOAFDVbuZ0myJpaWn6+OOPFRERYa3l5eWpVq1aNn3u7u7au3ev8vPzK3sauAkEQ9zSzGazRo0apXXr1mnr1q0KDg62Wd6mTRu5uLhoy5Yt1trRo0d16tQpdezYsdTX3b9/v3x9feXm5mZT37Ztm3788Uf98Y9/rNyJAEAVu5nTbSSpf//+ql27tu666y55e3srJibGuqxbt26KiYnRN998I7PZrP/+97+KiYlRfn6+MjIyqnxuKDt+Eg+3tJEjR2rlypVav369vLy8rBsyHx8fubu7y8fHR3/84x81btw41a1bV97e3ho9erQ6duxovSL5s88+05kzZ9ShQwfVqlVLmzdv1syZM/XnP/+52Pv961//Uvv27a0bVQCoKUaOHKlDhw5px44dFXr+W2+9pSlTpigpKUkTJkzQuHHj9M4770iSJk+erPT0dHXo0EFms1l33HGHBg4cqL/97W8yGtlH5VCq+LA2SsA5htVHUon/YmNjrT25ubnmESNGmH19fc21a9c29+rVy3z69Gnr8k2bNplbtmxp9vT0NHt4eJgfeOAB8z//+U9zYWGhzXtduHDB7O7ubl68eHF1TQ8AKsXIkSPNDRs2NB87dsymvmXLFrMk8/nz523qjRo1Ms+bN6/U1/vyyy/NksxpaWk29cuXL5tTUlLMBQUF5nfeecfs5eVVbFuKylee3MF9DO2A+xgCAByB2WzW6NGjtW7dOiUmJiokJMRmedG9Xj/88EP17t1b0pXTbZo1a2Zzr9drbd++XRERETp+/LgaN25cYk9ERITuuusurVy5slLnhOLKkzs4lAwAwG2qMk632bhxo86cOaO2bdvK09NThw8f1ssvv6ywsDBrKExKStLevXvVvn17nT9/XvPmzdOhQ4e0bNkye00dpSAYAgBwm3r33XclSZ07d7apx8bGatCgQZKunDtoNBrVu3dv5eXlqVu3btZzB6UrVxcvWbJEY8eOVV5engIDA/Xkk0/qL3/5i7WnsLBQc+fO1dGjR+Xi4qLIyEjt2rWr1L2JsB8OJdsBh5IBAEB14SfxAAAAUG4EQwAAAEgiGAIAAMCCYAgAAABJBEMAAABYEAwBAAAgiWAIAAAAC4IhAAAAJBEMAQAAYEEwBAAAgCSCIQAAACwIhgAAAJBEMAQAAIAFwRAAAACSCIYAAACwIBgCAABAkuRs7wGgagx9294jAGwtGWPvEQAAboQ9hgAAAJBEMAQAAICFwx1K/vnnn7V27Vpt3LhRR44cUXp6uurWrauwsDC98sorat++fbHnZGVlaerUqfroo4+Unp6uBg0a6KmnntKUKVPk6elZrN9kMukf//iHFi9erB9//FGenp6KiorSjBkz1KRJkxLHFRcXp5kzZ2rfvn0yGAxq06aNJk2apK5du1b6ZwAAqFqcbgNH4kin2jjcHsMFCxZo7NixOnbsmKKjo/XSSy/poYce0vr169WpUyetXr3apj8nJ0cRERF666231KxZM40dO1ahoaF688031aVLF126dKnYewwfPlwvvviizGazXnzxRT366KP6+OOP1bZtWyUnJxfrX7FihR599FH98MMPGjRokAYOHKjDhw/rkUce0b///e8q+ywAAACqk8FsNpvtPYirffzxx/Lz81NERIRN/csvv1TXrl3l6emp06dPy83NTZI0ZcoUTZs2TePHj9fs2bOt/X/5y180Z84czZw5UxMmTLDWExIS1KVLF4WHh2vz5s1ydXWVJG3atEk9evRQdHS04uLirP3nz59XkyZN5OzsrG+//VYNGzaUJKWmpqpVq1aSpGPHjsnLy6vMc8zKypKPj48yMzPl7e1dzk+obPg2DEfjSN+IAbaRcCRVvX0sT+5wuD2GTz75ZLFQKEkPP/ywIiMjdf78eR08eFCSZDabFRMTI09PT02ePNmmf/LkyfL09FRMTIxNfcmSJZKk6dOnW0OhJHXv3l2dO3dWfHy8Tp06Za2vXbtWFy5c0OjRo62hUJIaNmyoUaNGKSMjQ+vWrbv5iQMAANiZwwXD63FxcZEkOTtfOTUyOTlZaWlpCgsLk4eHh02vh4eHwsLCdOzYMaWkpFjriYmJ1mXX6tatmyRp27ZtNv2SFB0dXaZ+AACAmsrhLj4pzalTp/TFF1+oQYMGatGihSRZzwcMCQkp8TkhISGKi4tTcnKyAgMDlZOTo9OnT6t58+ZycnIqsf/q173Re5TUX5K8vDzl5eVZH2dlZUmS8vPzlZ+fL0kyGo1ycnJSYWGhTCaTtbeoXlBQoKuP+js5OcloNJZaBxxN0d96kaIveAUFBTZ1FxcXmUwmFRYWWmsGg0HOzs6l1ktbbyprfSrr2JlTTZqTQYAjqcr1qTxqRDDMz8/XgAEDlJeXpzlz5lhDXWZmpiTJx8enxOcVHUcv6itv/42eU1J/SWbNmqXXXnutWD0+Pl61a9eWJDVq1EitWrXSd999Z3MoOzQ0VM2aNdPevXt19uxZa71ly5YKCgrS9u3blZ2dba137NhR9evXv+54AHvYuHGjzeMePXooNzdXCQkJ1pqzs7N69uypjIwM7d6921r38vJSly5dlJKSov3791vr9erVU6dOnZScnKyjR49a65W9PsXHx9uEi8jISLm7uzOnGjwnyUWAI6nK9SkgIKDM43C4i0+uZTKZNGDAAK1cuVJDhw7V4sWLrctWrlypZ555RhMnTtTrr79e7LkTJ07UzJkz9fHHH6tXr15KS0vTXXfdpbCwMO3YsaNY/+bNmxUdHa0XX3xR8+fPlyQ1bdpUycnJys/Pt377LJKfny9XV1fdf//9OnDgQKlzKGmPYWBgoDIyMqzhsrK/OXNiNRzNOyPZY8icHGdOw+azxxCOY8mYqt1jmJOTU+aLTxx6j6HJZNIf/vAHrVy5Us8++6z++c9/2iwv2otX2h67okO2RX3l7b/2OX5+fjfsL4mbm5v1Kuqrubi4WM+bLOLk5FTiYe5rQ+mN6oCjufZv/Xp1o9FY4uGP0uqlrTeVtT6VZ+yl1ZmT480JcCRVvT6VeRwVfmYVM5lMGjx4sJYtW6b+/ftr6dKlxT6YG53jd+35gR4eHmrQoIGOHz9uk75L67/Re9zoHEcAAICaxCGDYVEofP/999WvXz8tX7681ItFAgICtHPnTuXk5Ngsy8nJ0c6dOxUcHKzAwEBrPSIiwrrsWkX3LwwPD7fpl66cD1haf0m31wEAAKhpHC4YFh0+fv/99/XUU09pxYoVpe4SNRgMGjJkiC5evKjp06fbLJs+fbouXryooUOH2tSHDRsm6cp9Di9fvmytb9q0SYmJiYqOjlZQUJC13rdvX/n4+GjBggVKTU211lNTU7Vw4UL5+/urV69eNz1vAAAAe3O4E9SmTZumZcuWydPTU02bNi3xopInnnhCLVu2lCS98sorWr9+vebMmaNvv/1WrVu31r59+xQfH6+2bdtqzJgxNs+NjIzUkCFDFBMTo9atW6tnz546ffq0Vq9erbp162rBggU2/b6+vlq4cKEGDBig1q1bq1+/fpKk1atX69dff9Xq1avL9asnAAAAjsrhguGJEyckSRcvXtSMGTNK7GncuLE1GHp4eGjbtm2aOnWqPvroIyUkJKhBgwZ66aWXNGXKFLm7uxd7/qJFi9SiRQstXrxY8+fPl6enp3r16qUZM2bo7rvvLtb/7LPPyt/fXzNnzlRsbKwMBoPatGmjSZMmKSoqqtLmDgAAYE8Of7uaWxG/lYzbEb+VDEfCNhKOhN9KBgAAgMMhGAIAAEASwRAAAAAWBEMAAABIIhgCAADAgmAIAAAASQRDAAAAWBAMAQAAIIlgCAAAAAuCIQAAACQRDAEAAGBBMAQAAIAkgiEAAAAsCIYAAACQRDAEAACABcEQAAAAkgiGAAAAsCAYAgAAQBLBEAAAABYEQwAAAEgiGAIAAMCCYAgAAABJBEMAAABYEAwBAAAgiWAIAAAAC4IhAAAAJBEMAQAAYEEwBAAAgCSCIQAAACwIhgAAAJBEMAQAAIAFwRAAAACSCIYAAACwIBgCAABAEsEQAAAAFgRDAAAASCIYAgAAwIJgCAAAAEkEQwAAAFgQDAEAACCJYAgAAAALgiEAAAAkEQwBAABgQTAEAACAJIIhAAAALAiGAAAAkEQwBAAAgAXBEAAAAJIIhgAAALAgGAIAAEASwRAAAAAWBEMAAABIIhgCAADAgmAIAAAASQRDAAAAWBAMAQAAIIlgCAAAAAuCIQAAACQRDAEAAGBBMAQAAIAkgiEAAAAsCIYAAACQRDAEAACABcEQAAAAkgiGAAAAsCAYAgAAQBLBEAAAABYEQwAAAEgiGAIAAMCCYAgAAABJDhoMV6xYoeHDh+vBBx+Um5ubDAaDli5dWmLv1KlTZTAYSv134sSJEp8XFxeniIgIeXl5ydvbW5GRkdqyZUupY0pKSlLfvn3l7+8vd3d3PfDAA3r33XdlNpsrYcYAAAD252zvAZRk0qRJOnnypPz9/dWgQQOdPHnyhs8ZOHCgGjduXKxep06dYrUVK1ZowIABqlevngYNGiRJWr16tR555BGtWbNGffr0sen//vvv1alTJ+Xm5qpv374KCAjQ559/rhEjRuj777/XggULKjJNAAAAh+KQwTAmJkYhISEKCgrS7NmzNWHChBs+Z9CgQercufMN+86fP6/Ro0fL399f+/btU8OGDSVJ48ePV6tWrfTCCy+oW7du8vLysj7nhRdeUGZmpjZu3Kju3btLkqZPn66oqCgtXLhQTz/9tDp27FixyQIAADgIhzyUHBUVpaCgoCp57bVr1+rChQsaPXq0NRRKUsOGDTVq1ChlZGRo3bp11npSUpK2b9+uyMhIayiUJFdXV02fPl2StGTJkioZKwAAQHVyyGBYEdu3b9ecOXP0xhtv6JNPPtHFixdL7EtMTJQkRUdHF1vWrVs3SdK2bdvK1P/QQw/Jw8PDph8AAKCmcshDyRUxZcoUm8d16tTR/Pnz9dxzz9nUk5OTJUkhISHFXqOoVtRzo34nJycFBwfr+++/V0FBgZydS/448/LylJeXZ32clZUlScrPz1d+fr4kyWg0ysnJSYWFhTKZTNbeonpBQYHNhS5OTk4yGo2l1gFHU/S3XqRofSkoKLCpu7i4yGQyqbCw0FozGAxydnYutV7aelNZ61NZx86catKcDAIcSVWuT+VR44PhAw88oPfee0+dO3dWgwYNlJ6erg0bNujVV1/VoEGDVKdOHT322GPW/szMTEmSj49Psdfy9va26blRf9FzTCaTsrOz5evrW2LPrFmz9NprrxWrx8fHq3bt2pKkRo0aqVWrVvruu+906tQpa09oaKiaNWumvXv36uzZs9Z6y5YtFRQUpO3btys7O9ta79ixo+rXr1/iOAB72rhxo83jHj16KDc3VwkJCdaas7OzevbsqYyMDO3evdta9/LyUpcuXZSSkqL9+/db6/Xq1VOnTp2UnJyso0ePWuuVvT7Fx8fbhIvIyEi5u7szpxo8J8lFgCOpyvUpICCgzOMwmB38fitFF5/ExsZaryAuiy1btuiRRx5R8+bN9d1331nrTZs2VXJysvLz84vt4cvPz5erq6vuv/9+HThwQJI0bNgwLVmyRJs3b1ZUVFSx9wkLC9OuXbt07ty5UoNhSXsMAwMDlZGRYQ2jlf3NeejbZf6ogGrxzkj2GDInx5nTsPnsMYTjWDKmavcY5uTkyMfHR5mZmdbcUZoav8ewNF27dtXdd9+tgwcPKisry/pBFO35y8zMlJ+fn81zig7xXr138Or+kmRlZclgMNhcxXwtNzc3ubm5Fau7uLjIxcX2W6uTk5OcnJyK9ZZ2mLq0OuBorv1bv17daDSWePijtHpp601lrU/lGXtpdebkeHMCHElVr09lHkeFn1kD+Pv7S5J+++03a62k8wiLlHQ+4fX6CwsLdfz4cQUHBxPQAABAjXfLBsOcnBwdPnxYHh4e1oAoSREREZKunN93rbi4OJueG/Xv2LFDOTk5Nv0AAAA1VY0OhtnZ2UpKSipWz83N1dChQ5Wdna2+ffva7M3r27evfHx8tGDBAqWmplrrqampWrhwofz9/dWrVy9rPTQ0VOHh4UpISNCmTZus9cuXL2vy5MmSpCFDhlTF9AAAAKqVQx7/jImJ0Y4dOyRJBw8etNaK7in40EMPaciQIfr111/VrFkztW3bVvfcc4/uvPNOnTlzRl988YVSU1PVokULvfHGGzav7evrq4ULF2rAgAFq3bq1+vXrJ+nKT+L9+uuvWr16dbHzBd955x2FhYXpiSeeUL9+/dSgQQN9/vnnOnz4sEaNGqVOnTpV8ScCAABQ9RwyGO7YsUPLli2zqe3cuVM7d+60Ph4yZIjq1q2rESNGaO/evdq4caPOnz8vd3d33XPPPXrxxRc1atQoubu7F3v9Z599Vv7+/po5c6ZiY2NlMBjUpk0bTZo0qcQrj++77z599dVXmjRpkj7//HPl5OSoadOm+sc//qEXXnih8j8AAAAAO3D429XcirKyssp82XhFcbsaOJolY+w9AuD/sY2EI6nq7WN5ckeNPscQAAAAlYdgCAAAAEkEQwAAAFgQDAEAACCJYAgAAAALgiEAAAAkEQwBAABgQTAEAACAJIIhAAAALAiGAAAAkEQwBAAAgAXBEAAAAJIIhgAAALAgGAIAAEASwRAAAAAWBEMAAABIIhgCAADAgmAIAAAASQRDAAAAWBAMAQAAIIlgCAAAAAuCIQAAACQRDAEAAGBBMAQAAIAkgiEAAAAsCIYAAACQRDAEAACABcEQAAAAkm4iGG7fvl2nTp26bk9KSoq2b99e0bcAAABANapwMIyMjNTSpUuv2/P+++8rMjKyom8BAACAalThYGg2m2/YYzKZZDAYKvoWAAAAqEZVeo5hcnKyfHx8qvItAAAAUEmcy9P8hz/8webxJ598ohMnThTrKywstJ5f2L1795saIAAAAKpHuYLh1ecUGgwG7d+/X/v37y+x12AwqG3btnrrrbduZnwAAACoJuUKhsePH5d05fzCJk2aaMyYMfrTn/5UrM/JyUm+vr7y8PConFECAACgypUrGAYFBVn/OzY2Vq1atbKpAQAAoOYqVzC82sCBAytzHAAAALCzCgfDInv37tXXX3+tCxcuqLCwsNhyg8GgyZMn3+zbAAAAoIpVOBieO3dOTzzxhHbu3HndexoSDAEAAGqGCgfDcePGaceOHercubMGDhyohg0bytn5pndAAgAAwE4qnOQ2bNigdu3aacuWLfy6CQAAwC2gwr98kpubq/DwcEIhAADALaLCwbBly5Yl/uoJAAAAaqYKB8MpU6bo008/1Z49eypzPAAAALCTCp9jmJ6erp49eyoiIkLPPPOMWrduLW9v7xJ7n3vuuQoPEAAAANWjwsFw0KBBMhgMMpvNWrp0qZYuXVrsfEOz2SyDwUAwBAAAqAEqHAxjY2MrcxwAAACwM34SDwAAAJJu4uITAAAA3FoqvMfw1KlTZe5t1KhRRd8GAAAA1aTCwbBx48Zlurm1wWBQQUFBRd8GAAAA1aTCwfC5554rMRhmZmbqwIEDOn78uCIiItS4ceObGR8AAACqSYWD4dKlS0tdZjabNXfuXP3tb3/Tv/71r4q+BQAAAKpRlVx8YjAY9Oc//1n33XefXn755ap4CwAAAFSyKr0q+cEHH9TWrVur8i0AAABQSao0GP70009ceAIAAFBDVPgcw9KYTCb9/PPPWrp0qdavX6+uXbtW9lsAAACgClQ4GBqNxuversZsNsvX11dz586t6FsAAACgGlU4GIaHh5cYDI1Go3x9fdW2bVsNHjxY9evXv6kBAgAAoHpUOBgmJiZW4jAAAABgb/xWMgAAACRV0sUnO3fu1P79+5WVlSVvb2+1bNlSYWFhlfHSAAAAqCY3FQx37dqlwYMH68cff5R05YKTovMOQ0JCFBsbq44dO978KAEAAFDlKhwMDx8+rOjoaP3222965JFHFBkZqQYNGig9PV0JCQmKj49Xt27dtGfPHt17772VOWYAAABUgQoHw2nTpuny5cvauHGjHn30UZtl48eP13/+8x899thjmjZtmlatWnXTAwUAAEDVqvDFJ4mJierTp0+xUFjk0UcfVZ8+fZSQkFDhwQEAAKD6VDgYZmZmKjg4+Lo9wcHByszMrOhbAAAAoBpVOBgGBARoz5491+356quvFBAQUNG3AAAAQDWqcDB87LHHlJiYqMmTJ+vSpUs2yy5duqQpU6YoISFBjz/++E0PEgAAAFWvwhefTJ48WRs2bNDMmTO1aNEitWvXTnfccYfOnDmjr7/+WmfPnlWTJk00efLkyhwvAAAAqkiF9xj6+flpz549GjhwoC5evKiNGzcqNjZWGzduVHZ2tgYPHqw9e/aobt265X7tFStWaPjw4XrwwQfl5uYmg8GgpUuXltqflZWlcePGKSgoSG5ubmrcuLFefvllXbx4scR+k8mkBQsWqEWLFnJ3d1e9evXUv39/HTt2rNT3iIuLU0REhLy8vOTt7a3IyEht2bKl3HMDAABwVDd1g2t/f3+99957WrRokY4cOWL95ZNmzZrJxcWlwq87adIknTx5Uv7+/mrQoIFOnjxZam9OTo4iIiK0f/9+RUdHq3///vr222/15ptvatu2bdq+fbtq1apl85zhw4crJiZG9913n1588UWlpaVpzZo1io+P1549exQSEmLTv2LFCg0YMED16tXToEGDJEmrV6/WI488ojVr1qhPnz4VnisAAICjKPcewxkzZuivf/2r8vPzrTUXFxe1aNFCYWFhatGihcxmsyZOnKjZs2dXaFAxMTE6ceKEzp49q+eff/66vX/729+0f/9+jR8/XnFxcZo9e7bi4uI0fvx4ff3113rrrbds+hMSEhQTE6Pw8HDt27dPc+bM0fLly/XJJ5/o3LlzGjVqlE3/+fPnNXr0aPn7+2vfvn1asGCBFixYoH379snPz08vvPCCsrOzKzRPAAAAR1KuYPjFF1/o1VdflZ+f33X3CLq6usrPz08TJ06s0H0Mo6KiFBQUdMM+s9msmJgYeXp6FjuXcfLkyfL09FRMTIxNfcmSJZKk6dOny9XV1Vrv3r27OnfurPj4eJ06dcpaX7t2rS5cuKDRo0erYcOG1nrDhg01atQoZWRkaN26deWeIwAAgKMpVzB8//335evrW2yvWklG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", + "text/plain": [ + "
" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "counts_y = sampler.run([qc_y]).result()[0].data.meas.get_counts()\n", + "plot_histogram(counts_y)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "73c60b59-34a4-47da-af9c-9fb7e9a6044d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Expectation value of is 1.0\n" + ] + } + ], + "source": [ + "expval_yy = sampled_expectation_value(counts_y, observable_zz)\n", + "print(f'Expectation value of is {expval_yy}')" + ] + }, + { + "cell_type": "markdown", + "id": "e3aad8bd-992d-4090-81e1-102840762a82", + "metadata": {}, + "source": [ + "#### Finding the minimum number of circuits" + ] + }, + { + "cell_type": "markdown", + "id": "17df47ea-2a2c-43fa-89ab-36b28eb92b9c", + "metadata": {}, + "source": [ + "Let us assume that you want to calculate the expectation values of multiple observables on the circuit: say 1. $\\langle ZI \\rangle$, 2. $\\langle ZX \\rangle$, 3. $\\langle YX \\rangle$, 4. $\\langle IX \\rangle$.\n", + "\n", + "Note that for these four observables, the brute-force method will be to create four different circuits to measure these. But if two observables commute qubit-wise, then a single circuit is sufficient to calculate the expectation value of both the observables.\n", + "\n", + "In this example, $[ZI, IX] = 0$, $[ZI, ZX] = 0$ and $[ZX, IX] = 0$. Therefore, it is possible to construct a single circuits to measure all three of these observables. Another circuit is required to measure $\\langle YX \\rangle$. Therefore, only two circuits are sufficient.\n", + "\n", + "Food for thought: What should be the rotations for the measurement on each circuit so that we can measure $\\langle ZI \\rangle$, $\\langle ZX \\rangle$ and $\\langle IX \\rangle$ using a single circuit?\n", + "\n", + "All these intricate calculations on the minimum number of circuits needed, the rotation required for each qubit are taken care of by the Qiskit Runtime Primitive: Estimator." + ] + }, + { + "cell_type": "markdown", + "id": "d105f66c-d465-4982-9d6c-5de67314ec23", + "metadata": {}, + "source": [ + "### Obtaining the expectation value: Introduction to Estimator" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "376e8a03-8aa4-409d-bf15-d8dafa6fa7f8", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_ibm_runtime import EstimatorV2\n", + "\n", + "estimator = EstimatorV2(backend=backend)" + ] + }, + { + "cell_type": "markdown", + "id": "60d50073-0e9c-4754-9710-5f739f469d74", + "metadata": {}, + "source": [ + "Using estimator allows you to also use different error suppression and mitigation methods to your problem without manually working on it. For example,\n", + "\n", + "*estimator.options.dynamical_decoupling.enable = True*\n", + "\n", + "*estimator.options.dynamical_decoupling.sequence_type = 'xpxm'*\n", + "\n", + "*estimator.options.resilience.measure_mitigation=True*\n", + "\n", + "*estimator.options.resilience.zne_mitigation=True*" + ] + }, + { + "cell_type": "markdown", + "id": "5a2c97d9-0434-457e-9ee3-0f6e16850eac", + "metadata": {}, + "source": [ + "As we saw that measurement in different basis requires different rotation gates to be appended before measurement, so estimator jobs do not accept circuits with measurements. We need to submit circuits without measurement; estimator will add them with proper rotation gates." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "4fed002d-9ee1-42d5-a506-88d56a885f10", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPEAAACuCAYAAADnE+srAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAOgklEQVR4nO3df1DTd57H8VcCSPgRKj+0AUF+iCggP6zICVO7gwV7VPGcXt2651jvTkfrnatz65jp7t1ea3dvXGad3T3Xdg/25sbOdkrxdO1h2GvHWa4VPY/GIjdWgqzUWAL5rn4FK4YfNpD7w9GRI0gCyTf5fHk9ZpyOyTf5vJny5PvNN1+ixuVyuUBEwtIGegAimhlGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJDhGTCQ4RkwkOEZMJLjQQA9AE7lcLmBkJNBjeCc8HBqNJtBTzEqMOBiNjMD57W2BnsIrocffBXS6QI8xK/FwmkhwjJhIcIyYSHCMmEhwjJhIcIyYSHCMmEhwjJhIcIyYSHCMmEhwjJhIcIyYSHCMmEhwqo9YlmUYjUZkZmZCp9MhJSUF+/btg8PhwPbt26HRaHD06NFAj0l+dv+bUTR/LuHDJis+OmdDt3Qv0CP5jKp/FbGtrQ2VlZWQJAlRUVHIyclBb28vjhw5gq6uLvT19QEACgsLAzuon3wq30TFhU/wk5x8fG/RUrfbzDl9HC/OT8SHf7Ja4emUYb81iHfqLfj1yav44+2hR7drNMC61Sn47l/kYG1pcgAnnDnV7ollWUZVVRUkScL+/ftht9vR2toKSZJQXV2NxsZGmM1maDQa5OfnB3pc8oNLFhnPvPIhflzbNi5gAHC5ANPZbrzw2scw/uyzBx/EICjVRrx3717YbDbs2bMHhw8fhl6vf3Sf0WhEQUEBnE4n0tLSEBMTE8BJyR+ufXUXa1/7GJI8NOW2Pz12GW++c0mBqfxDlRFbLBbU19cjISEBhw4dcrvNihUrAAAFBQXjbr9+/To2bNgAvV6P2NhYvPrqq7h9+7bfZybf+v4/myH3D3u8/Y9qL8HaM+DHifxHlRHX1dVhbGwMW7ZsQXR0tNttIiIiAIyPeGBgAGVlZbDZbKirq0NtbS2am5uxfv16jI2NKTK7PwyOjkIeGXH7R416bzpwqumGV49xuYCaEx1+msi/VHliq6mpCQBQVlY26TY2mw3A+Ihra2vR09ODs2fPYuHChQCA5ORklJaWoqGhARs3bvTf0H701tUreOvqlUCPoZj3f/clRke9f4177D/+gEP7VvphIv9SZcQ3bjz4KZyamur2fqfTifPnzwMYH7HJZMKzzz77KGAAKCkpQUZGBk6fPj3tiIuKiiBJksfbR2i1aC8smdZa7uxYmIE/T0pxe1/l/3zqkzWysrIwFCRHK3ciKwHdKq8fJ8lDWJC8EBoo/3UYDAZcvHhxWo9VZcQOhwMAMDTk/qRGfX09ZFmGXq9Henr6o9vb29uxadOmCdvn5uaivb192vNIkoSenh6Pt48MCQEKp73cBJnR0Xh+3tO+e0I3ent7MTg66tc1PJY4AEzzgzd7e3qAAEQ8E6qM2GAwoL+/H62trSgpGb9Hs9vtOHDgAAAgPz9/3Gcl9/f3Y+7cuROeLy4uDlevXp3RPN6I0Ip3qiIpKSlo9sQDujHcncbjtGN3kbgg0efzeMLb75HHqTLi8vJyWCwWVFdXo6KiAllZWQAAs9mMrVu3QpZlAMpd5OHtYZJreFi4z53u7OyEJkg+d9p+axAL134Ap5evi1/fuRr/tPfv/DSV/4j3I98DRqMR8fHx6O7uRm5uLvLy8rB48WIUFxcjIyMDa9asATDx7aXY2FjcuXNnwvP19fUhLi5OidHJBxLnReKl8jSvHqPVarDz5SX+GcjPVBlxcnIympubsW7dOuh0OlitVsTFxaGmpgaNjY3o7OwEMDHi7Oxst69929vbkZ2drcjs5Bs/2bcS8+M8PzJ4c/dypCbpp94wCKkyYuBBkCaTCQMDAxgYGEBLSwt27twJh8MBq9UKrVaLZcuWjXvM+vXrce7cuUdvPwFAS0sLurq6UFVVpfSXQDOQnqzHmdpKJM2PnHLbH+wowD/sLPT/UH6icYl80eg0tLS0YNWqVViyZAk6Osa/uX/37l3k5eUhISEBBw8exPDwMIxGI+bNm4cLFy5Aq9AJJxFfE4cefzdoXhM/7ubtIdSc6EDNv3eg5+bguPteej4Ne76TjbLipABN5xuq3RNP5vLlywAmHkoDQExMDJqampCYmIjNmzdjx44dKC0thclkUixg8q358RH44a7lsH70Cv77N+sR/1Q4AMAQr8PJnz8vfMCASs9OP8mTIgaARYsWwWQyKTkSKSA0VIuSgqehCw8BAISEqOeHsnq+Eg9NFTGRaGbdnvjhddVEajHr9sREasOIiQTHiIkEx4iJBMeIiQTHiIkEx4iJBMeIiQTHiIkEx4iJBMeIiQQ3666dFkJ4OEKPvxvoKbwTHh7oCWYtRhyENBoNEIS/YE/BiYfTRIJjxESCY8REgmPERIJjxESCY8REgmPERIJjxESCY8REgmPERIJjxESCY8REgmPERIJjxESCY8REgmPERIJjxESCY8REgmPERIJjxESCY8REgmPERIJjxESCY8REguOHx5OqSfIgPm+X8Xn7bXxpG0Df1yMAgDsD9/FvpzqxIiceORmxCAsTd3+mcblcrkAPQeRLwyNOnDhjxTv1Flz435tTbh8bMwd/vTELu1/JxqKUGAUm9C1GTKrhcrnwnuka9h/+DLf6h6f1HJv/NANHXl+FeXERPp7OfxgxqYL91iB2HjwH09nuGT/XvFgd3vn7Ury8Nt0Hk/kfIybhWb68g4qd/4mem4M+fd43XluON3Yvf/AP3AUxRkxC67R+jdV/acLNvukdPk/lH3ctx8G/fcYvz+0rjJiEdW/wGxRuOoWu7gG/rvPeoW9hy7pMv64xE+KeV6dZ7/VfmL0O2Fy3Ad1nNsNct8Hjx3z30AXYb/n2UN2XZkXEsizDaDQiMzMTOp0OKSkp2LdvHxwOB7Zv3w6NRoOjR48GekzywqcX7Xj7A4vXjzMkRCL56SgYEiI9fkz/3ft47UfnvV5LKaq/2KOtrQ2VlZWQJAlRUVHIyclBb28vjhw5gq6uLvT19QEACgsLAzsoeeWtf7mk6HoNn3yFto7bKFwar+i6nlD1nliWZVRVVUGSJOzfvx92ux2tra2QJAnV1dVobGyE2WyGRqNBfn5+oMclD3Vcv4Omz+yKr/ur497v+ZWg6oj37t0Lm82GPXv24PDhw9Dr9Y/uMxqNKCgogNPpRFpaGmJixLtSZ7aqPdERkHXfM3VhwHE/IGs/iWojtlgsqK+vR0JCAg4dOuR2mxUrVgAACgoKHt32MPri4mKEh4cH/XuEs9F/mZXfCwPA4LAT5i/kgKz9JKqNuK6uDmNjY9iyZQuio6PdbhMR8eDSuscjvnbtGk6ePAmDwYCVK1cqMit5bnjEiS+u9Qds/c/bGbFimpqaAABlZWWTbmOz2QCMj/i5556D3W5HQ0MDysvL/Tskee2La/1wOgN3aUOr5XbA1p6Mas9O37hxAwCQmprq9n6n04nz5x+8bfB4xFqt73+uFRUVQZIknz/vbDQclgnot7q9z1y3Ycq3jgwJEY/+231m86TbSfIgVn6nYcLtp06fQfL77tefCYPBgIsXL07rsaqN2OFwAACGhobc3l9fXw9ZlqHX65Ge7t8L3SVJQk9Pj1/XmDX0CYDe/V0P3wP2RGiI1uNtHzcy4gy6/5eqjdhgMKC/vx+tra0oKSkZd5/dbseBAwcAAPn5+X4/eWUwGPz6/LPJcNhTmOyAVpKnvqrKkBCB0BAtnKNjkGT3P+Cf9Fzh4SFIWLDAk1G9MpPvEdVGXF5eDovFgurqalRUVCArKwsAYDabsXXrVsjygxMUSlzkMd3DJJqo4/odZP/ZSbf3uTv8/f+6z2xG8tNRkOQhpFR84PX6W195Eb9+0/27HYGi2hNbRqMR8fHx6O7uRm5uLvLy8rB48WIUFxcjIyMDa9asATD+9TAFv6zUpxAdGRaw9VfkJARs7cmoNuLk5GQ0Nzdj3bp10Ol0sFqtiIuLQ01NDRobG9HZ2QmAEYtGq9Vg+dK4gK0fjBGr9nAaALKzs2EymSbcfu/ePVitVmi1WixbtiwAk9FMVH1rIZpb/6j4uknzI1G4JPiunVZ1xJO5cuUKXC4XsrKyEBk58S2JEydOAADa29vH/T0tLQ1FRUXKDUpu/dXGLPzw7VaM3B9VdN1dLy8Nyk/FnJURX758GcDkh9KbNm1y+/dt27bh2LFjfp2NppYQq8O316bjN6Zriq0ZGqrBjpeyFFvPG4zYDX7YSfA7+DfP4Le/t8Ix5FRkvQPb8pE03/v3lZUQfMcGCpgqYgp+6cl6/PR7xYqslbNoLt7YvVyRtaZjVu6JH15XTWLbtWkpTGe/wu+abR4/5uFFHJ5cGAIAuvAQvPvj5xA+J2RaMyqBH5RHQnMMfoMXdn+M85d8f7Z6TpgWp35RjhdXp/j8uX1pVh5Ok3pERYbho1+9gLWlvr0UMjoyDI1vrw36gAHuiUklRkfH8Mv32/GDX17E0PDM3noqX5WEf33zWaQmTfKbFkGGEZOq/OHG1zD+3IyGT77C2Jh339oZyXp8f3sBtr+UJdQnujBiUqVu6R5qT1zFb39vRcf1rycNOn5uOFY/Y8Cul5dibekCaLXixPsQIybVcwx+g7arfejqvovh+6MIC9UiNmYOli+Nx8LEaKH2uu4wYiLB8ew0keAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeAYMZHgGDGR4BgxkeD+DyBtQk9i1toDAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qc.remove_final_measurements()\n", + "qc.draw('mpl')" + ] + }, + { + "cell_type": "markdown", + "id": "498c72e3-5f48-4e23-a6ca-df59cae4b1cd", + "metadata": {}, + "source": [ + "Let us consider all four observables we took in the previous discussion, and also $ZZ$." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "b0a90580-371f-43f3-8cc1-61b047b2c53c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[SparsePauliOp(['ZI'],\n", + " coeffs=[1.+0.j]),\n", + " SparsePauliOp(['ZX'],\n", + " coeffs=[1.+0.j]),\n", + " SparsePauliOp(['YX'],\n", + " coeffs=[1.+0.j]),\n", + " SparsePauliOp(['IX'],\n", + " coeffs=[1.+0.j]),\n", + " SparsePauliOp(['ZZ'],\n", + " coeffs=[1.+0.j])]" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "observables = [\n", + " SparsePauliOp('ZI'),\n", + " SparsePauliOp('ZX'),\n", + " SparsePauliOp('YX'),\n", + " SparsePauliOp('IX'),\n", + " SparsePauliOp('ZZ')\n", + "]\n", + "\n", + "observables" + ] + }, + { + "cell_type": "markdown", + "id": "d340f4c7-62a3-445e-8342-698635cc9a5a", + "metadata": {}, + "source": [ + "Estimator takes a tuple (circuit, observable) as its input. As with sampler, we can provide multiple tuples together as an array. For this example, we only have one circuit with a set of observables -- leading to an array with a single tuple. So we need to consider the 0-th element of result." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "cd3e743d-a801-4311-b0c5-5c95e34be395", + "metadata": {}, + "outputs": [], + "source": [ + "job = estimator.run([(qc, observables)])\n", + "result = job.result()[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "6e98c838-b5a9-4028-b18d-9478adddcdc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-0.00195312, -0.0078125 , 0.00683594, -0.01220703, 1. ])" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "expvals = result.data.evs\n", + "expvals" + ] + }, + { + "cell_type": "markdown", + "id": "c019b804-64cc-43c9-bd01-97f4d2914740", + "metadata": {}, + "source": [ + "Note that these expectation values suffer from statistical/shot noise. In other words, we would get the ideal expectation values if we can take inifnite shots." + ] + }, + { + "cell_type": "markdown", + "id": "8cf957d9-616b-49d5-992a-6da8ab4671f0", + "metadata": {}, + "source": [ + "Now let us assume that the final value which we wanted to calculate was some linear combination of these expectation values. For example: $O = 0.1\\langle ZI \\rangle - 0.5\\langle ZX \\rangle + 0.3\\langle YX \\rangle + 0.2\\langle IX \\rangle - 0.4\\langle ZZ \\rangle$.\n", + "\n", + "We already have the individual values, so we can easily calculate this linear combination." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "a57c7c0e-cb6f-4849-a690-abff8c615ebc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of the linear combination is -0.39667968750000004\n" + ] + } + ], + "source": [ + "combination = 0.1*expvals[0] - 0.5*expvals[1] + 0.3*expvals[2] + 0.2*expvals[3] - 0.4*expvals[4]\n", + "print(f'Value of the linear combination is {combination}')" + ] + }, + { + "cell_type": "markdown", + "id": "ff310ed1-0bdb-477b-838c-b950c8d988fa", + "metadata": {}, + "source": [ + "#### Using SparsePauliOp with proper coefficients" + ] + }, + { + "cell_type": "markdown", + "id": "6980f373-6ec9-4809-89da-fb2a859ddd84", + "metadata": {}, + "source": [ + "Instead of having an array of individual observables, and then calculating the combination manually, one can also set the whole thing as a single observable $O$ where each Pauli has a corresponding coefficient." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "4436b9bf-fca4-42f2-a84f-5459c2679ab6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SparsePauliOp(['ZI', 'ZX', 'YX', 'IX', 'ZZ'],\n", + " coeffs=[ 0.1+0.j, -0.5+0.j, 0.3+0.j, 0.2+0.j, -0.4+0.j])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "obs = SparsePauliOp(['ZI','ZX','YX','IX','ZZ'], coeffs=[0.1,-0.5,0.3,0.2,-0.4])\n", + "obs" + ] + }, + { + "cell_type": "markdown", + "id": "b1dee91f-c72e-40e8-ba79-ffd9163333dd", + "metadata": {}, + "source": [ + "Note now that this is a single observable. If we compute with this observable, we won't obtain the expectation values for individual terms, rather will obtain the expectation value of $O = 0.1\\langle ZI \\rangle - 0.5\\langle ZX \\rangle + 0.3\\langle YX \\rangle + 0.2\\langle IX \\rangle - 0.4\\langle ZZ \\rangle$." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "409f4595-f76c-45eb-a738-542c25b70074", + "metadata": {}, + "outputs": [], + "source": [ + "job = estimator.run([(qc, obs)])\n", + "result = job.result()[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "09dddd74-9646-444d-8fc8-f2b0d0688721", + "metadata": {}, + "outputs": [], + "source": [ + "expval_combined = result.data.evs" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "1dbfe050-efc3-45e0-9934-b86c4119d608", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The expectation value of O is -0.39677734375\n" + ] + } + ], + "source": [ + "print(f'The expectation value of O is {expval_combined}')" + ] + }, + { + "cell_type": "markdown", + "id": "e1841057-4846-4123-abf3-1d5c768fc41f", + "metadata": {}, + "source": [ + "### Running on fake hardware" + ] + }, + { + "cell_type": "markdown", + "id": "30ecf41b-d7d1-4e14-8327-a26e0682b21a", + "metadata": {}, + "source": [ + "Now we show an example of obtaining expectation value on noisy backend. Instead of running on real backend, we show on Fake Backend, which contains most of the properties (e.g., coupling map, noise profile) of real backend." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "bb4b1a5c-0c15-4a00-8903-52102d9fde75", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit_ibm_runtime.fake_provider import FakeKolkata\n", + "\n", + "fake_backend = FakeKolkata()" + ] + }, + { + "cell_type": "markdown", + "id": "1ea46919-ce86-4042-8d15-e1e1ed9a4ab9", + "metadata": {}, + "source": [ + "We can visualize the properties of this backend." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "20625bc8-1adb-4350-8ccb-1f8f8e631ddb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rNuRbiIiIiIiIiIn15Dv+xlwo1r19NNP4+rVq9i6datdynvllVewY8cOHDlyxC7lEREREREREVHVNdT7fgbciIiIiIiIiIiI7KjezVJKRERERERERERUlzHgRkREREREREREZEcMuBEREREREREREdkRA25ERERERERERER2xIAbERERERERERGRHTHgZqP8/HyEh4cjPDwc+fn5td0cIiIiIiIiIiKHYiyk6hhwIyIiIiIiIiIisiMG3IiIiIiIiIiIiOyIATciIiIiIiIiIiI7ktd2A+oLmUyG+++/v+g9EREREREREZEzYyyk6gRJkqTabgQREREREREREZGzYJdSIiIiIiIiIiIiO2KXUhtJkoSCggIAgEajgSAItdwiIiIiIiIiIiLHYSyk6pjhZqOCggJERkYiMjKy6GAjIiIiIiIiInJWjIVUHQNuREREREREREREdsSAGxERERERERERkR0x4EZERERERERERGRHDLgRERERERERERHZEQNuREREREREREREdsSAGxERERERERERkR3Ja7sB9YVMJsPw4cOL3hMREREREREROTPGQqpOkCRJqu1GEBEREREREREROQt2KSUiIiIiIiIiIrIjBtyIiIiIiIiIiIjsiAE3G+Xn5yM8PBzh4eHIz8+v7eYQERERERERETkUYyFVx4AbERERERERERGRHTHgRkREREREREREZEcMuBEREREREREREdkRA25ERERERERERER2xIAbERERERERERGRHTHgRkREREREREREZEfy2m5AfSGTydC/f/+i90REREREREREzoyxkKoTJEmSarsRREREREREREREzoJdSomIiIiIiIiIiOyoXnQpjd62tUbrCx80uEbrIyIiIiIiIiJqCOwR46kPcRtmuNkoPz8fbdq0QZs2bZCfn1/bzSEiIiIiIiIicijGQqquXmS41RUFBQW13QQiIiIiIiIiohrDWEjVMMONiIiIiIiIiIjIjhhwIyIiIiIiIiIisiMG3IiIiIiIiIiIiOyIATciIiIiIiIiIiI7YsCNiIiIiIiIiIjIjjhLqY1EUUT37t2L3hMREREREREROTPGQqqOATcbqdVq/PTTT7XdDCIiIiIiIiKiGsFYSNUxPElERERERERERGRHDg24GQwGvPzyywgKCoJGo0H37t2xdetWR1ZJRERERERERERUqxwacJs6dSo+/vhjPPTQQ1iwYAFkMhlGjBiBffv2ObJah8jPz0eXLl3QpUsX5Ofn13ZziIiIiIiIiIgcylliIbm5uXjjjTcwbNgweHl5QRAELF68uNxtTCYTWrduDUEQ8OGHH1a6TocF3I4cOYKVK1di/vz5+OCDD/DEE09gx44daNKkCV566SVHVetQ6enpSE9Pr+1mEBERERERERHVCGeIhaSmpmLevHm4cOEC2rdvb9M2n332GW7cuFHlOh0WcFu9ejVkMhmeeOKJomVqtRqPPvooDh48iJs3bzqqaiIiIiIiIiIiIgBAYGAgEhISEBsbiw8++KDC9ZOTkzFv3jy8/PLLVa7TYQG3kydPonnz5nB3dy+2vFu3bgCAU6dOOapqIiIiIiIiIiIiAIBKpUJAQIDN67/yyito0aIFJk+eXOU65VXesgIJCQkIDAwssfz2svj4+FK3MxgMMBgMxZcZjVAplfZvJBERERERERER0V+OHDmCJUuWYN++fRAEocrlOCzDraCgACqVqsRytVpd9Hlp5s+fD51OV+z11cqVjmomERERERERERHVIwaDAdnZ2cVedyZvVYUkSZg1axYmTpyInj17VqsshwXcNBpNqV9Wr9cXfV6auXPnIisrq9jrqUmTHNVMIiIiIiIiIiKqR0pL1po/f361y128eDHOnj2L9957r9plOaxLaWBgIG7dulVieUJCAgAgKCio1O1UKlWJzLjUOtCdVBRFtG3btug9EREREREREZEzq6uxkLlz52LOnDnFlpXWy7IysrOzMXfuXLz44oto3LhxtcoCHBhw69ChA3bu3Ins7OxiEyccPny46PP6RK1WY926dbXdDCIiIiIiIiKiGlFXYyGlJWtV14cffgij0YiJEyciJiYGABAXFwcAyMjIQExMDIKCgqC0MSnMYeHJcePGwWKx4JtvvilaZjAYsGjRInTv3t0u0UIiIiIiIiIiIqLqunHjBjIyMtCmTRuEhYUhLCwMffr0AQC88847CAsLw/nz520uz2EZbt27d8f48eMxd+5cJCcnIyIiAkuWLEFMTAy+//57R1VLRERERERERERUKbNnz8aYMWOKLUtOTsaTTz6JqVOnYvTo0QgLC7O5PIcF3ABg6dKleO2117Bs2TJkZGSgXbt2+OOPP9C3b19HVusQBQUFGDJkCADgzz//LHPSByIiIiIiIiIiZ+BMsZCFCxciMzMT8fHxAID169cXdRmdNWsWOnXqhE6dOhXb5nbX0jZt2pQIxlXEoQE3tVqNDz74AB988IEjq6kRkiQVTQIhSVItt4aIiIiIiIiIyLGcKRby4YcfIjY2tujnNWvWYM2aNQCAyZMnQ6fT2bU+hwbciIiIiIiIiIiIatvtbLXKCA0NrXKgse7M6UpEREREREREROQEGHAjIiIiIiIiIiKyIwbciIiIiIiIiIiI7IgBNyIiIiIiIiIiIjvipAk2EgQBzZo1K3pPREREREREROTMGAupOgbcbKTRaLBly5babgYRERERERERUY1gLKTq2KWUiIiIiIiIiIjIjupFhlv4oMG13QQiIiIiIiIiIiKbMMPNRgUFBRg6dCiGDh2KgoKC2m4OEREREREREZFDMRZSdfUiw60ukCQJV65cKXpPREREREREROTMGAupOgbciIiIiIiIiIioRjSUYcPYpZSIiIiIiIiIiMiOGHAjIiIiIiIiIiKyIwbciIiIiIiIiIiI7IgBNyIiIiIiIiIiIjvipAk2EgQBwcHBRe+JiIiIiIiIiJwZYyFVJ0j1YF7X6G1ba7sJABrOTBpERERERERERFR17FJKRERERERERERkRwy4ERERERERERER2RHHcLORwWjE6NGjAQA///wz1Gp1LbeIiIiIiIiIiMhx9Ho9Jk6cCKB6sRB7DxVWH4b8YsDNRlZJwtmzZwvfW6213BoiIiIiIiIiIseyWq2MhVQRu5QSERERERERERHZEQNuREREREREREREdsSAGxERERERERERkR0x4EZERERERERERGRHDLgRERERERERERHZEWcprQQvL6/abgIRERERERERUY1hLKRqHBpwy83NxQcffIDDhw/jyJEjyMjIwKJFizB16lRHVusQGpUKx44dq+1mEBERERERERHVCK1Wy1hIFTm0S2lqairmzZuHCxcuoH379o6sioiIiIiIiIiIqE5waIZbYGAgEhISEBAQgGPHjqFr166OrI6IiIiIiIiIiKjWOTTDTaVSISAgwJFV1BiD0YgHHngADzzwAPR6fW03h4iIiIiIiIjIofR6PWMhVVTnZik1GAzIzs4u9jIYjbXdLFglCYcPH8bhw4dhtVpruzlERERERERERA5ltVqdIhaSm5uLN954A8OGDYOXlxcEQcDixYtLrDd16lQIglDi1bJly0rXWedmKZ0/fz7eeuutYstmPzwZzz7ySC21iIiIiIiIiIiI6qvbcwyEhISgffv22LVrV5nrqlQqfPfdd8WW6XS6StdZ5wJuc+fOxZw5c4otu7Vvby21hoiIiIiIiIiI6rPKzDEgl8sxefLkatdZ5wJuKpUKKpWq2LJUpbKWWkNERERERERERPVZZecYsFgsyMvLg7u7e5XrrHNjuBEREREREREREdWG/Px8uLu7Q6fTwcvLCzNmzEBubm6ly6lzGW5ERERERERERERlMRgMMBgMxZaV1mOysgIDA/HSSy+hU6dOsFqt2Lx5M7744gucPn0au3btglxuexiNAbdK0Gg0td0EIiIiIiIiIqIaUxdjIaVNuPnGG2/gzTffrHa5/zRp0iQ0b94c//73v7F69WpMmjTJ5rIcHnBbuHAhMjMzER8fDwBYv3494uLiAACzZs2q0kwPtUGjUuHcuXO13QwiIiIiIiIiohqh1WrrZCyktAk3q5vdVpZ//etfeO2117Bt27a6FXD78MMPERsbW/TzmjVrsGbNGgDA5MmT603AjYiIiIiIiIiIap89uo/aSqPRwNvbG+np6ZXazuEBt5iYGEdXQUREREREREREZHc5OTlITU2Fr69vpbbjLKU2MppMmD59OqZPn15iYD4iIiIiIiIiImdjMBgaTCxEr9cjJyenxPL//Oc/kCQJw4YNq1R5nDTBRharFbt27Sp8b7HUbmOIiIiIiIiIiBzMYrE4TSykojkGMjIy0LFjRzzwwANo2bIlAGDLli3YuHEjhg0bhtGjR1eqPgbciIiIiIiIiIjIqVU0x4CHhwfuvfdebN26FUuWLIHFYkFERATeeecdvPDCCxDFynUSZcCNiIioFJIkIT+vAGmpGcjJzoVMFOHiqoWPvzc0GnVtN4+IqMZZrVZkZeUgPTUD+XkFUCoV0Hm4w9vHEwqlorabR0REVC5b5hhYtmyZ3epjwI2IiOgfcnJysevPA9i34xBiom/CoDfAbLYAAiCXyaB10SKiRSj6D74LPft2hVqjgiAItd1sIiKHkCQJifHJ2LpxFw7tO4bEhBQYDUZYLFYIggCFQg53nRvadmyNu4f1RccukZXOACAiInJGDLgREVGDZ7VakZebj20bd+P7z1cgPTUDRqMJVqtU6vpXL0Vj68bdCG4ciJkvPIqefbtCqVIw8EZETsNisSArMxs/LlqDlUt/g8FggMlogiSVfl68eO4Kfv1pPdp3boMZcx5F67bNIZfLeV4kIqIGiwE3IiJqsCRJgsViwfkzl/HNgqU4cvAkzCZzhduZzRaYzRZEX72BF59+C30G9cAzc6YhtGljyOX810pE9ZckSSjI12PvzkP49IPvkBCXAIvFWuF2RqMJAHB4/0lcOPMyxj80GhMfGQNff29mvBERUYPEuwIiImqwrFYrdm89iEVf/ojzZy9XvgBJgkWyYN+OQ8hIy8STz01Bp27toORYRkRUD0mShOysHKz7ZROW/7AaSQkpVSkE2dm5WP7DL0hOSsH0Zx5CWNMQZroREVGDI0hl5YUTERE5uT3bD+L9NxYi/lZitcsSBAEtI5vhxddnoF3H1hBlzOggovpFrzfgl+Xr8MMXPyI9PbPa5YmiiN4DuuO1d56Hn79P9RtIRET1VvS2rXYtL3zQYLuW5wi8GyAiogbp3JlLWPDut3YJtgGFmSGXzl/Fwve/Q0pyapnjHBER1UWSJGHvzkNY/PVKuwTbgMIs4v27j+B/73wJvd5glzKJiIjqCwbciIiowdHrDfjqf0sQe+2mXcu1Wqw4c/ICVi75jQE3IqpXcrJz8dHbXyA1Jd2u5VrMFuzdcQgbf9vG8yIRETUoDLjZyGAwYMaMGZgxYwYMBj6hIyKqryRJwo7Ne3Hp/BVYpYoHAq8ss9mMnxatwfWrN+xeNhGRI1itViz9dhWSk1IdUn5OTh5WLl2LpMQqjAlHRES1irGQqmPAzUYWiwWbNm3Cpk2bYLFYars5RERURVmZ2dixZS/S7JzF8U8WiwWLv1oJq9X+AT0iIntLuJWE337ZBIvZcde4ifHJ2LpxN6xWZrkREdUnjIVUHQNuRETUoFy5EI3rV2/A1p5NKrUSvv4+UGvUNtdhsVhx7NCpqs3wR0RUw3Zt3Y+83LwyPxcEAe46NwQE+pU4F7q4aOCuc4Molj8LaVZmNs6cOIec7By7tJmIiKiuk9d2A4iIiGqKJEmIjYlDfFySTesHNw7A2Afuha+/DwAJW9bvxP5dR2zaVq/X48yJ8wgM9q9Gi4mIHMtqteLE0TPQF5TeTUgURfQf3Av9B/eGXC5DXm4+Fn39E5LiU9D9rk4YOLQ35HIFLpy7jDUrN8BkNJVZV8KtJMTdSIDOw91RX4eIiOqo+jCrqL0xw42IiBoMg8GI5IRUGGyYLU8URXS/qxNc3Vzwy/J12LZxD558dgqahDWyqS59gRFXLkVXt8lERA6VlZWD5KTUMrvAu7q5YPpTD2LvjoNY+u0quLm7Yti9A+EX4IMHpozFsUOnsfbnDeg/6C707NOl3LqSk9KQ4qBx4oiIiOoaBtyIiKjBMOgNyMzIAiQUvsqh83RHaEQTHD98GmdPXsDBPUeRnpaB1m2b21SX2WRCUjy7lBJR3ZaVnlVmdhsANG0eitzcfGzfvBcXz13BsUOn0LFrW7Tt0AqSJGHrpt04feIcrl6KxqDh/cosRwKQk52DrCx2KSUiooahXnQpjd621e5lNsR0RiKihs5iscJoMNq0rtFgREF+AXSe7nBx1ULrokWTsEYIbBRg0/ZWSYLehkw6IqLaZDQaYbWUPcHLyaNn8dTDL0CUifAP9EWX7h2wf9cRNGoShFtxiUUTLdyMjUeL1hFlliMAMJstMJvM9v4KREREdVK9CLgRERHZgygKkCvkhXd+FcjLzcfp4+cw4r7BcNe5QefhDr3eCIONATtBEKBUKqrZYiIix5LLFRDF8ju9aF006NK9A/re3ROpKWnYtmk3Hn5sQrFuqHm5eTDoyz8/ymQyyOQyu7SbiIiormPAzUYajQZRUVFF74mIqP5RqZRw17nZtK4oirh2OQYb126Fj68XrlyMhpe3B27G3rJpe7lcBh9fr+o0l4jI4dw93KBUlf1wQKGQY+LDY9AkrBEO7DmKA3uOIjcnD2kp6WjXsXXRet6+3rh6+Xq5dbm4auHq6mK3thMRkeMxFlJ1HMPNRoIgQKvVQqvVQhBsSI0gIqI6R6VWwdffB3J5xc+bZDIZut/VCb7+3ti8fgeyMnLgF+CDC2cv21SXWq1GePMm1W0yEZFDeXi6w9PLo8zr2/BmoRg0vC82/LYNRw+dgkwmg5ubK44fOY3ARv6IaB4GnYc7unRvhzMnz5Vbl4+vF3z9+CCCiKg+YSyk6pjhRkREDYYoimgUEgj/QB/cuplY7romkwm3biZi8qPjMHTkQLi7u+LrBUuRmpxuU10KhRyRHVrZo9lERA4jl8vRpn1LHD98Gvn5BSU+79y9PZq1DMe8D16GJBXONhMbE4cXnnoDO//cj/c+ex1mswUnjp7BsYOnyq3LP8AXQY0DHfE1iIiI6hwG3GxkMBjw6quvAgDefvttqFSqWm4RERFVRbOW4QhtGoJbcYkVzlR64shpnD15Hv6BfkhOSoXRYCy64SyPIABNm4chPIIZbkRU9/Uf1Au/LF9XasBt5ZK1+GX5umLLJEmC2WzBoq9+xLpfNkEQBKSnZcD81wQKpVGrVWjROoJd7YmI6hnGQqqOATcbWSwW/PrrrwCAt956q5ZbQ0REVeUf6Itud3XCmRPnkZOdW+66kgQYjSabx227Ta1W4eHHxzPtnojqhRatI9D9rs7YtH4HJGvxGUutVmuxyRH+yWKxIiU5zaY6GjUJwt3DevO8SERUz9gSC4netrUmmwQACB80uMbrrCyO4UZERA2KIAgYeu8ANGsVXuHMfFWrAOg9oDt69O5s/7KJiBxAFEU8NnMyvL3LHsutOpRKJe4e2hfNW0XYvWwiIqK6igE3IiJqcPwCfDD1yUnw9NLZ9eZSEIAWrSIwfcZDEGX8F0tE9UdY0xA8NuMhqDX27SokCAK63dUR4yePcsxDDiIiojqK//WIiKhB6tGnM2a//LjdbgAFQYBfoB+emP0wmjYPY7cpIqpXBEHAPfcNwcSHx9jtgYEoCghvFoIXXp0BXz9vu5RJRERUXzgs4Hb06FHMnDkTbdq0gYuLC0JCQjBhwgRcvnzZUVUSERHZTC6XY+jIAZjz6tPQaDXVCrwJAuDr740nZk1Gr/7dIGN2GxHVM4IgwM3dFQ9NH4cx40dApVJWqzxRFNG0WSjeev8VNAlrbKdWEhER1R8OmzThvffew/79+zF+/Hi0a9cOiYmJWLhwITp16oRDhw4hMjLSUVUTERHZRKFUYNyD98LL2wNfL1iKWzcTYDKaKlWGUqVAaHgInnx2CvoN7glBEJjdRkT1kiAI8PXzxr/mPgmdzhUbf9+O5MRUm2Zn/mcZWq0GXXp2wOwXH0fT5qGOazAREVEd5rCA25w5c/Djjz9Cqfz76djEiRPRtm1bvPvuu1i+fLmjqiYiIrKJIAhQKBUYNLwvghoHYO3KDTh59CxuxsSXOSvfbUqlAo2bBKFz9w4Y//Ao3lQSkVMQBAHuOjc8M2c62nVqg99WbcTFc1eRnFR24E0AIAHQaNRo1rIp+t3dEyPHDYV/gG+Ntp2IiKguEaTKPLKyg86dC2dtO378uM3bOGKK2cpOIStJEtLT0wEAXl5ezF4gInJCBfkFOHUsCieOnMXlC9dw+fw1ZGXkwGKxAAIgk8ng5e2BVu2ao1nLcHTp0R7tO7WBTC6r7aYTETlEVmY2Duw5irOnLuDSuau4cTUOBfl6WK1WCIIAuVyOwMZ+iGgdjhatI9Cjd2c0bRbKCRKIiJyELbEQR8RsKlLZmE5tcFiGW2kkSUJSUhLatGlTk9XahSAI8PbmYK9ERM5Mo9WgR58u6NKzAy6du4bP3/8BZzPOA0JhQE2EiJDQRpjx/HQEhwRCoajRf6NERDVO5+GOYSMHot+gXti39TBWfLEayQl/ZbsJgEyUYdCQ/hj94DD4+HpBEPlQmojImTAWUnU1eqewYsUK3Lp1C/PmzStzHYPBAIPBUHyZ0QiVsnoDtxIREdlCEAQoFAp4+XhCoVDAYvm7a6nFbIFcJoO3ryeDbUTUYNwel83TSwdREAEJECAAEmC1WOHu7goPT3cG24iIiP6hxnK9L168iBkzZqBnz56YMmVKmevNnz8fOp2u2OurlStrqpllMhgMeP311/H666+XCAgSERERERERETkbxkKqrkYCbomJibjnnnug0+mwevVqyGRlj3Uzd+5cZGVlFXs9NWlSTTSzXBaLBcuXL8fy5csLx/IhIiIiImpgJNTo8M9ERFTLGAupOocH3LKysjB8+HBkZmZi8+bNCAoKKnd9lUoFd3f3Yi92JyUiIiIiqn0C2G2UiIjqn9zcXLzxxhsYNmxY0eQPixcvLnVdq9WKL7/8Eh06dIBGo4G3tzcGDhyI06dPV6pOhw5Ao9frMXLkSFy+fBnbtm1D69atHVkdERERERERERFRMampqZg3bx5CQkLQvn177Nq1q8x1p0+fjhUrVuCRRx7BzJkzkZeXh5MnTyI5OblSdTos4GaxWDBx4kQcPHgQ69atQ8+ePR1VFRERERERERERUakCAwORkJCAgIAAHDt2DF27di11vVWrVmHJkiVYs2YN7rvvvmrV6bCA2/PPP4/ff/8dI0eORHp6OpYvX17s88mTJzuqaiIiIiIicgCO4UZERPWRSqVCQEBAhet9/PHH6NatG+677z5YrVYUFBTAxcWlSnU6LOB26tQpAMD69euxfv36Ep8z4EZEREREVL9wDDciInJW2dnZOHLkCJ555hn83//9Hz777DPk5uYiLCwM7777LiZMmFCp8hwWcCuvPywREREREdU/zHAjIqK6wGAwwGAwFFumUqmgUqmqXOa1a9cgSRJWrlwJuVyO999/HzqdDgsWLMCkSZPg7u6OYcOG2Vyew2cpdRZqtRp79uzBnj17oFara7s5REREREQ1jhluREQNS12NhcyfPx86na7Ya/78+dUqMzc3FwCQlpaGdevW4emnn8aDDz6I7du3w9vbG2+//XalynPoLKXORBRFNGrUqLabQURERERUa5jhRkTUsNTVWMjcuXMxZ86cYsuqk90GABqNBgAQFhaG7t27Fy13dXXFyJEjsXz5cpjNZsjltoXSGHAjIiIiIiKbMMONiIjqgup2Hy1NUFAQAMDf37/EZ35+fjCZTMjLy4NOp7OpPAbcbGQ0GvHRRx8BKJyBValU1nKLiIiIiIiIiIgcpyHFQoKCghAQEIBbt26V+Cw+Ph5qtRpubm42l8cx3GxkNpvx7bff4ttvv4XZbK7t5hAREREREREROVRDi4VMnDgRN2/exNatW4uWpaamYt26dRg4cCBE0fYwGjPciIiIiIiIiIjIqS1cuBCZmZmIj48HAKxfvx5xcXEAgFmzZkGn02Hu3LlYtWoV7r//fsyZMwc6nQ5fffUVTCYT3nnnnUrVx4AbERERERHZhJMmEBFRffXhhx8iNja26Oc1a9ZgzZo1AIDJkydDp9PB398f+/btwwsvvID//e9/MJlM6NmzJ5YvX4727dtXqj4G3IiIiIiIiIiIyKnFxMTYtF54eHhRIK46OIYbERERERHZhLOUEhER2aZeZLiFDxpc200gIiIiImrw2KWUiIjINsxwIyIiIiIimzDDjYiIyDb1IsOtLlCr1di8eXPReyIiIiKihoYZbkREDQtjIVXHgJuNRFFE8+bNa7sZRERERES1hhluREQNC2MhVccupUREREREZBNmuBEREdmGGW42MhqN+OKLLwAAzzzzDJRKZS23iIiIiIioZjHDjYioYWEspOoYcLOR2WzGp59+CgB44okneJARERERUYPDDDciooaFsZCqY5dSIiIiIiKyCTPciIiIbFMvMtyit211eB3hgwY7vA4iIiIiovqMGW5ERES2qRcBNyIiIiIiqn3McCMiojsxgal07FJKREREREQ2YYYbERGRbRhwIyIiIiIimzDDjYiIyDYMuBERERERkU2Y4UZERGQbjuFmI5VKhbVr1xa9JyIiIiJqaJjhRkTUsDAWUnUMuNlI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X8dqtSiheSM99sx96ty9vexBNedDummaOnEsQ9Mnz9a0T2bqdG5eha5z9kP63Q8P1W133qiomEgvV1q1uVxurVnxoz544xP9/OPWCl8nIDBAHTon6pGn7lVShytq1Id00zR1+OBRTf7fdH01dW65voA4l2EYCgkN1mNP36f+Q65TeESYlyutus4GHMsWrNbH73yuvTv3V/haNlugelzXTfc+eoeatGgsaw1az8g0Te3fk6ZJ707TgjlLK3wdi8VQZHSEHnnmPl1zfTeFhNWcTb/OhuffzlqkT97/XOlpxyp8Lbvdpt/c0ld3P3S76jeMq3Hvc1K37tH/3piiVUvWV/g6FqtF8Q3r6pGn71W3qzsqKLjmrB9qmqZOnczUl1O/0eT/zlBWZnaFrmMYUlBQkIbfd4vuuPdm1aod4+VKAXiqJgZuNeddGOAF+fkOzf7iO3387tQKh23SmTWvHflOff7x13rnnxOVnZXjxSqrvq0/p+rv4966pLBNOhOW7Endr7de+Z82rP6pXN/AV3eZp7I1deJX+uKTWRUO26T//+3xf9+crI/emarcnNNerLLq27D6J/1j3JuXFLZJUlFhkTas+Vlv/v1D7diyq1yju6q7o0eO68M3J2n2F99VOGyTzjwX807n682/f6gvPp2lvLx8L1ZZtZmmqRU/rNW7r068pLBNkgoKCrXk+5V697WJOnwovVwjaqq7A3vS9M7fP9KieSsu6Tput6nMjGy984+PNH/2EjkdBV6qsOorKCjUt7N+0H/fmnxJYZt0Zv28mZ/P09uv/U+nTmZ6p8BqYufWPfrXi+9q9dINl3Qdt8uttP3peucfE7V6yfpyjXqt7nJzTuuLSbM16cPpFQ7bpF/eczscmvjuVL3/+ifKyc71YpUAcGEEboCHXC63Vixaq88++lKnMrK8ck23263v5yzRf9+cLKezZryh37/nkN7758favWOvV65nmqb27z6gie9M1f7dh2rEh0unw6kF3yzR7BnfKzf30gOyM+sduTTri2817ZOZKixjnSN/k7ptt15/+T0d2J/mleuZpqnNG7fp3X9N1InjGTXiuZidlauvP5+nJQtWeuU17GwAPH3ybH0/a1GNCdG3bNqu9//1idIPX1rAcZbpNrVuxSa999pE5ec5vHLNqu7EsQxNmzhTm9ZsLtfU+rKYpqmsjGx98clsrV+5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2866+eabJanUObIAAAAAAADAxdjtdkVERJT48SRwS09P18CBAxUZGanp06fLarVesP1TTz0li8WiBQsWlLvGy7pLaXp6uiSdN0e2OrBarRowYEDxbQAAAAAAAH/mT1lIVlaWBgwYoMzMTC1btkzx8fEXPSc4OFixsbHKyMgod3+XNXD7+9//roiIiOJ/rNI4nc7zFrpzFhTI/qsdJS43u92u//znP5VaAwAAAAAAwOXiL1mIw+HQoEGDlJqaqgULFqhNmzYenZeTk6MTJ06odu3a5e6z3FNKK2r8+PFasGCBXn75ZUVFRZXZrrSF796dOvVylQkAAAAAAAA/4XK5NGzYMK1atUpffPGFkpOTz2vjcDiUk5Nz3vH/+7//k2ma6t+/f7n7vSwj3D7//HP9+c9/1gMPPKBHH330gm1LW/gubfkyX5YHAAAAAAAAP/T0009r1qxZGjRokDIyMjRp0qQS948YMULp6enq2LGjhg8frtatW0uSvvvuO82dO1f9+/fXkCFDyt2vzwO3+fPn65577tHAgQP17rvvXrS93W4/b6G7E5U8nVSS8vLylJSUJElKSUlRSEhIJVcEAAAAAADgO/6QhWzatEmSNHv2bM2ePfu8+0eMGKGoqCjdeOONmj9/vj7++GO5XC41b95c48eP1+9//3tZLOWfIOrTwG3NmjW6+eab1aVLF02bNk0BAZd1yTgAAAAAAADUYIsXL75om6ioKH366ade7ddna7ht27ZNAwcOVEJCgubMmaPg4GBfdQUAAAAAAABUGRUacvbWW28pMzNThw8flnRmWN6hQ4ckSY8//rgsFov69eunU6dO6ZlnntE333xT4vxmzZqVukgdAAAAAAAAUN1VKHB79dVXtX///uL//+WXX+rLL7+UdGbuqyQdPHhQkvTss8+ed/7IkSMJ3AAAAAAAAOCXKhS47du376JtTNOsyKUBAAAAAACAas1na7gBAAAAAAAANRHbhnrIarWqV69exbcBAAAAAAD8GVlIxRG4echut+t///tfZZcBAAAAAABwWZCFVBxTSgEAAAAAAAAvInADAAAAAAAAvIjAzUN5eXlKTExUYmKi8vLyKrscAAAAAAAAnyILqTjWcCuH/Pz8yi4BAAAAAADgsvFlFtK0T1+fXbuyMcINAAAAAAAA8CICNwAAAAAAAMCLqsWUUn8eYggAAAAA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CgpS9+7dtXbt2gu2/+KLL9S6dWsFBQWpbdu2mjt3bon7TdPUX//6V9WrV0/BwcHq06ePdu7cecFrLl26VIMGDVJ8fLwMw9DXX399wfZffvml+vbtq9q1aysiIkLJycn67rvvSrSZMGGCunbtqvDwcNWpU0c33XSTduzYccHroqSXX35ZhmHod7/73QXbZWZmatSoUapXr57sdrtatmxZ4nnxzjvvqF27doqIiCj+95o3b56PqwcAAAAAnMXnu6qnqmYhVSEn8rbLHrh9/vnnGjNmjMaNG6cff/xR7du3V79+/XTs2LFS269cuVLDhw/XAw88oI0bN+qmm27STTfdpJSUlOI2f//73/XGG2/o3Xff1Zo1axQaGqp+/frJ4XCUWcfp06fVvn17/ec///Go7qVLl6pv376aO3euNmzYoN69e2vQoEHauHFjcZslS5Zo1KhRWr16tebPn6/CwkLdcMMNOn36tIePTs22bt06vffee2rXrt0F2xUUFKhv377at2+fpk+frh07duiDDz5Q/fr1i9s0aNBAL7/8sjZs2KD169fruuuu05AhQ7RlyxZf/xoAAAAAUOPx+a5qqopZSFXJibzOvMy6detmjho1qvj/u1wuMz4+3pwwYUKp7YcOHWoOHDiwxLHu3bubv/3tb03TNE23223GxcWZ//jHP4rvz8zMNO12u/nZZ595VJMk86uvvirnb2Kabdq0MV944YUy7z927JgpyVyyZEm5r13T5OTkmC1atDDnz59v9uzZ03zyySfLbPvOO++YTZs2NQsKCsrVR3R0tPnhhx9eYqUAAAAAgAvh8131UFWykKqYE3nDZR3hVlBQoA0bNqhPnz7FxywWi/r06aNVq1aVes6qVatKtJekfv36Fbffu3ev0tPTS7SJjIxU9+7dy7ymN7jdbuXk5CgmJqbMNllZWZJ0wTY4Y9SoURo4cOB5/9almTVrlpKTkzVq1CjVrVtXSUlJGj9+vFwuV6ntXS6Xpk6dqtOnTys5OdnbpQMAAAAAzsHnO//l7SzEn3KiXwu4bD1JOnHihFwul+rWrVvieN26dbV9+/ZSz0lPTy+1fXp6evH9Z4+V1cYXXn31VeXm5mro0KGl3u92u/W73/1OV111lZKSknxWhz+YOnWqfvzxR61bt86j9nv27NEPP/ygu+66S3PnztWuXbv02GOPqbCwUOPGjStut3nzZiUnJ8vhcCgsLExfffWV2rRp46tfAwAAAABqPD7f+TdvZyH+lBP92mUN3PzFlClT9MILL2jmzJmqU6dOqW1GjRqllJQULV++/DJXV70cPHhQTz75pObPn6+goCCPznG73apTp47ef/99Wa1Wde7cWWlpafrHP/5R4gW5VatW2rRpk7KysjR9+nSNHDlSS5Ys4UUZAAAAAHyAz3f+jSykfC7rlNJatWrJarXq6NGjJY4fPXpUcXFxpZ4TFxd3wfZn/7c817wUU6dO1YMPPqhp06aVOTx29OjRmjNnjhYtWqQGDRp4vQZ/smHDBh07dkydOnVSQECAAgICtGTJEr3xxhsKCAgodRhxvXr11LJlS1mt1uJjV1xxhdLT01VQUFB8zGazqXnz5urcubMmTJig9u3b6/XXX78svxcAAAAA1DR8vvNfvspC/CEnKstlDdxsNps6d+6shQsXFh9zu91auHBhmXOvk5OTS7SXpPnz5xe3b9KkieLi4kq0yc7O1po1a7w+n/uzzz7Tfffdp88++0wDBw48737TNDV69Gh99dVX+uGHH9SkSROv9u+Prr/+em3evFmbNm0q/unSpYvuuusubdq0qcSL7llXXXWVdu3aJbfbXXwsNTVV9erVk81mK7Mvt9stp9Ppk98DAAAAAGo6Pt/5J19mIdU9J7qgy7Y9wy+mTp1q2u12c+LEiebWrVvNhx9+2IyKijLT09NN0zTNu+++23z22WeL269YscIMCAgwX331VXPbtm3muHHjzMDAQHPz5s3FbV5++WUzKirKnDlzpvnzzz+bQ4YMMZs0aWLm5+eXWUdOTo65ceNGc+PGjaYk85///Ke5ceNGc//+/aZpmuazzz5r3n333cXtJ0+ebAYEBJj/+c9/zCNHjhT/ZGZmFrd59NFHzcjISHPx4sUl2uTl5Xnt8asJfr2Lza+fEwcOHDDDw8PN0aNHmzt27DDnzJlj1qlTx3zppZeK2zz77LPmkiVLzL1795o///yz+eyzz5qGYZjff//95fxVAAAAAKBG4/Nd1VIVs5CqkhN522UP3EzTNN98802zUaNGps1mM7t162auXr26+L6ePXuaI0eOLNF+2rRpZsuWLU2bzWYmJiaa33zzTYn73W63+Ze//MWsW7euabfbzeuvv97csWPHBWtYtGiRKem8n7N9jxw50uzZs2eJui7U3jTNUu+XZH700UcVeZhqrF+/IJf2nFi5cqXZvXt30263m02bNjX/9re/mUVFRcX333///Wbjxo1Nm81m1q5d27z++ut5MQYAAACAy4zPd1VLVc1CqkJO5G2GaZqmr0fRAQAAAAAAADXFZV3DDQAAAAAAAPB3BG4AAAAAAACAFxG4AQAAAAAAAF5E4AYAAAAAAAB4EYEbAAAAAAAA4EUEbgAAAAAAAIAXEbgBAAAAAAAAXkTgBgAAAAAAAHgRgRsAAAAAAADgRQRuAAAAAAAAgBcRuAEAAAAAAABeROAGAAAAAAAAeBGBGwAAAAAAAOBFBG4AAAAAAACAFxG4AQAAAAAAAF5E4AYAAAAAAAB4EYEbAAAAAAAA4EUEbgAAAAAAAIAXEbgBAAAAAAAAXkTgBgAAAAAAAHgRgRsAAAAAAADgRQRuAAAAAAAAgBcRuAEAAAAAAABeROAGAAAAAAAAeBGBGwAAAAAAAOBFBG4AAAAAAACAFxG4AQAAAAAAAF5E4AYAAAAAAAB4EYEbAAAAAAAA4EUEbgAAAAAAAIAXEbgBAAAAAAAAXkTgBgAAAAAAAHgRgRsAAAAAAADgRQRuAAAAAAAAgBcRuAEAAAAAAABeROAGAAAAAAAAeBGBGwAAAAAAAOBFBG4AAAAAAACAFxG4AQAAAAAAAF5E4AYAAAAAAAB4EYEbAAAAAAAA4EUEbgAAAAAAAIAXEbgBAAAAAAAAXkTgBgAAAAAAAHgRgRsAAAAAAADgRQRuAAAAAAAAgBcRuAEAAAAAAABeROAGAAAAAAAAeBGBGwAAAAAAAOBFBG4AAAAAAACAFxG4ASjh4MGDCgoK0ooVK7xyvZMnTyo0NFRz5871qP3zzz8vwzBkGIbCwsK8UgMqR1RUVPG/5ejRoyu7HAAAUINMmzZNMTExys3N9cr1vv32W4WFhen48eMete/Vq1fx+6Abb7zRKzXg8tu0aVPxv6NhGJo+fXpll4RqhMANl93EiRNlGIbWr19f6v29evVSUlLSZa6q+sjLy9Pzzz+vxYsX++T6L774orp3766rrrqq+NiKFSvUqVMnhYeHq1evXtq+fft55z3xxBPq16/fecdjY2P14IMP6i9/+Uu56vj000/13//+t8z7u3XrJsMw9M4775TrutWN0+nUH//4R8XHxys4OFjdu3fX/PnzPT4/LS1NQ4cOVVRUlCIiIjRkyBDt2bOnRJv8/Hw98MADSkpKUmRkpMLCwtS+fXu9/vrrKiwsLNF24cKFuv/++9WyZUuFhISoadOmevDBB3XkyJHz+n7//ff16aefVuwXBwDgAnbv3q3f/va3atq0qYKCghQREaGrrrpKr7/+uvLz84vbJSQkyDAMPf744+ddY/HixWV+gN6yZYtGjBih+vXry263Kz4+XnfddZe2bNlSot25H8Qv9OOr923V2datW/X8889r3759Xr+2y+XSuHHj9Pjjj5f4Ave9995TkyZNFBMTo7vvvlvZ2dklznO73erYsaPGjx9/3jX79++v5s2ba8KECR7X0bp1a3366af6/e9/X+r9mZmZCgoKkmEY2rZtm8fXrW527Nihp556Sj169Cj+fcv7775t2zb1799fYWFhxf9+pYWfu3bt0m233abo6GiFhITo6quv1qJFi85rt3btWj322GPq3LmzAgMDZRhGqf02btxYn376qZ577rly1QtIkkzgMvvoo49MSea6detKvb9nz55mYmLiZa6q+jh+/LgpyRw3bpzXr33s2DEzMDDQnDJlSvGxzMxMMzY21hw4cKD5zjvvmN27dzfbtGljFhUVFbdJSUkxg4KCzC1btpR63a1bt5qSzIULF160hnHjxpkXe2lKTU01JZkJCQnmVVdd5eFvVz3dcccdZkBAgPn73//efO+998zk5GQzICDAXLZs2UXPzcnJMVu0aGHWqVPHfOWVV8x//vOfZsOGDc0GDRqYJ06cKG538uRJs3v37uYzzzxj/uc//zHfeecd8+677zYNwzCHDx9e4pqdO3c2mzRpYv7hD38wP/jgA3Ps2LFmeHi4WbduXfPIkSOl1iHJHPX/2rvz+Jiu/3/gr0kiqyYR2dFE7JIQotRSsadqrV2LUKWI4teitn6UWouiqtZ+UZQgdrWLVO2NLdZaYkttVQ2JiGXevz/ymfvJzcxkJjERaV7PxyMPcu455557z2TmPefec25k5MudCCIiov/avHmzODg4iKurqwwYMEDmz58v33//vXTq1EkKFSokvXr1UvL6+fkJALGzs5PExERVPTExMQJAVq9erUqPjo4WW1tb8fb2lpEjR8rChQtl1KhR4uPjI7a2trJ27Vol79KlS1U/jRs3FgB66bdv387dk5IPrV69WgBITEyMxetet26daDQauXnzppK2b98+0Wg0MnDgQJk5c6Z4e3tL7969VeXmzp0rJUuWlCdPnhis94cffhBHR0d5+PChyTaEhYVJWFhYlnnmz58v9vb2ymvt32rRokViZWUlQUFBEhISIgAkISHB7PI3btwQd3d3KVWqlMycOVPGjx8vRYoUkcqVK0taWpqS7/r16+Lu7i5eXl4yfvx4mTFjhlSuXFlsbGwkNjZWVefo0aOlUKFCEhoaKmXLljX5/cPY+wVRVjjgRq/c6zDglpycbDBdq9XK48ePX6ru1NRUefHihdn5nz17pvqgMCU3B9y+/fZbcXBwkEePHilpW7duFUdHR0lNTRURkYSEBAEg58+fV/I0atRIPv300yzrDgoKkq5du5psgzkDbv/5z3/E09NToqOjRaPRZOsDOz85fPiwAJApU6YoaampqVKqVCmpWbOmyfKTJ08WAHLkyBEl7dy5c2JtbS3Dhw83Wb5///4CQDWQFhsbq/f6jo2NFQBGA0UOuBERkaVcuXJFChcuLOXLl5c///xTb/vFixdlxowZyu9+fn4SGBgoNjY2erGKoS/Qly5dEkdHRylfvrzcvXtXlf/evXtSvnx5cXJyksuXLxtsX2RkpMk4xpJSUlIMpmc3vjTEWLxsqfy5OeDWsmVLqVOnjirtiy++kPr16yu/L1q0SLy9vZXfHzx4IO7u7hIdHW203jt37oi1tbX8+OOPJttgzoBb3bp1pU2bNvL//t//k5IlS5qsM7+6f/++Mkg5ZcqUbA+49e3bVxwcHOTatWtK2s6dOwWAzJs3T0nr16+f2NjYqL6npKSkSIkSJaRq1aqqOm/fvq187zPn75YDbpQTnFJK+drhw4fx7rvvwsXFBY6OjggLC9Nbe0y3JtjZs2fxwQcfoEiRIqhTpw6A9GkGzZs3x/bt21GtWjU4ODhg3rx5AIArV66gffv2cHNzg6OjI95++21s2bJFVbduKsLKlSsxatQoFCtWDI6Ojnq3p+tcvXoVGo0GU6dOxYwZM1CqVCnY2dnh7NmzePr0Kf7zn/8gNDQULi4ucHJywjvvvKO6Bfrq1avw8PAAAIwZM0aZpvDVV18pec6fP4927drBzc0N9vb2qFatGjZu3GjW+Vy/fj1q1KihuvU+NTUV9vb2sLe3BwC4ubkBSJ/aWXIiUAAALtFJREFUqitz/PhxjBkzJsu6GzdujE2bNkFEzGpLVn7++We0a9cOzZs3h4uLC37++Wdl25o1a6DRaBAbG6tXbt68edBoNDh9+rSStnr1alSsWBH29vYICgrCunXr0L17d/j7+790O1/WmjVrYG1tjd69eytp9vb26NmzJw4ePIgbN26YLP/WW2/hrbfeUtLKly+Phg0bYtWqVSb3rzsH//zzj5JWt25dWFmpPzrq1q0LNze3f/VUCCIiej188803SE5Oxo8//ggfHx+97aVLl8bAgQNVaf7+/ujWrRsWLFiAP//8M8v6p0yZgsePH2P+/PlKzKXj7u6OefPmISUlBd98883LH0wGy5YtQ2hoKBwcHODm5oZOnTrpfc7rll2Ji4tD3bp14ejoiBEjRmQZXwLAnj178M4778DJyQmurq5o1aqV3md2VvGyIbolYmJjY9GvXz94enqiePHiAIBr166hX79+KFeuHBwcHFC0aFG0b99eNYVw8eLFaN++PQCgfv36Bqfebt26VWn3G2+8gWbNmulN6TXkyZMn2LZtGxo1aqRKT01NRZEiRZTf3dzclHhWdw6Cg4PRpk0bo3V7enqiUqVK2LBhg8l2mHL9+nXs27cPnTp1QqdOnZCQkIADBw4o2/v374/ChQur2qjTuXNneHt748WLFwDSp8J+9dVX8PX1haOjI+rXr4+zZ8/C398f3bt3f+m2viw3Nze88cYbOS4fHR2N5s2b480331TSGjVqhLJly6pi2n379qFKlSooV66ckubo6IiWLVvi2LFjuHjxopLu5eUFBweHHLeJyBw2ed0AKriSkpLw119/6aVnXjPKmD179qBp06YIDQ3F6NGjYWVlhUWLFqFBgwbYt28fqlevrsrfvn17lClTBhMmTFAN+ly4cAGdO3fGJ598gl69eqFcuXK4c+cOatWqhcePH2PAgAEoWrQolixZgpYtW2LNmjV4//33VXV//fXXsLW1xeDBg5GWlgZbW9ss275o0SI8efIEvXv3hp2dHdzc3PDw4UMsXLgQnTt3Rq9evfDo0SP8+OOPCA8Px5EjRxASEgIPDw/MmTMHffv2xfvvv68EBJUqVQKQvt5I7dq1UaxYMQwbNgxOTk5YtWoVWrdujejoaL12Zz7vR48eRd++fVXpVapUQVJSEqZNm4Z27dphxowZcHFxQbly5ZCWlobPP/8cY8aMUQUwhoSGhmL69Ok4c+bMS63Rd/jw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BTim2mWkPw280EBUUDEeffm68kM8micDbpnOl6FYxRLxcPp2Q5/tWZ8Xo7Ea49FstYvxaKY8mdIZjxqpy8h5YTz6+uNDE4iIiIiIiIiIiCyIA25EREREREREREQWxAE3IiIiIiIiIiIiC+KAGxERERERERERkQVxwI2IiIiIiIiIiMiCOOBGRERERERERERkQRxwIyIiIiIiIiIisiAOuBEREREREREREVkQB9yIiIiIiIiIiIgsiANuREREREREREREFsQBNyIiIiIiIiIiIgvigBsREREREREREZEFccCNiIiIiIiIiIjIgjjgRkREREREREREZEEccCMiIiIiIiIiIrIgDrgRERERERERERFZEAfciIiIiIiIiIiILIgDbkRERERERERERBbEATciIiIiIiIiIiIL4oAbERERERERERGRBXHAjYiIiIiIiIiIyII44EZERERERERERGRBHHAjIiIiIiIiIiKyIA64ERERERERERERWRAH3IiIiIiIiIiIiCyIA25EREREREREREQWxAE3IiIiIiIiIiIiC+KAGxERERERERERkQVxwI2IiIiIiIiIiMiCOOBGRERERERERERkQTZ53QBzabUv8EKjUaVpNOnjhQJNhrT0/8t/t2kyl/lvXq2RdKsM6Rqo67AyWkY9bmkov17eTHXp8mqQ+Rh15YzvN/MxGqtLSddo9I4FujqN7t/4+TK6/0y7+F+ZTOkZ2pX5eHTtMXcfmY9dVZexMjBeJmN+s+pS9q9fJn27frqhPlbl0ajrVrZDvw1WBs6h6hhM9oHxuvRfMibOQcbXbKY0Y+3TO0aN+t/0YzDeZnPSoclqP0bSrYznN3f/MPX6sspGXaaO0cq817GqDqN1mi6jpFtpst6uMXQu1a/zzOnGtsPAew8ynEtDDTZ2DmCVRV26sibqzFhOv65Mx5Kdc2A0r+HXE6yMpBs8X5nPsd6bo8H0R48fg6igYjxqfL//pnhUr66XiEfNLmNGPJr9/auP7X/bDdWf9XlhPMp4lPGo/nbGo4ZfT4xH/+e1H3CztbWFt7c3zv95OK+bQkRERAC8vb1ha2ub180gemUYjxIREb1e8kM8qhERyetGmPLkyRM8ffo0r5vx2nr48CFKlCiBGzduwNnZOa+bQ2Ziv+Vf7Lv8if1mOba2trC3t8/rZhC9UoxHLYfvxwUT+73g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", + "text/plain": [ + "
" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qiskit.visualization import plot_error_map\n", + "\n", + "plot_error_map(fake_backend, show_title=False)" + ] + }, + { + "cell_type": "markdown", + "id": "8cca5a61-e721-49cd-a9e1-fd8860f7f3f8", + "metadata": {}, + "source": [ + "In order to run a circuit on the real backend (or fake backend as in this example), it is necessary to transpile the circuit. Transpilation maps the circuit to the basis gates of the backend, and adds swap gates whenever necessary to make the circuit amenable to the coupling map." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "21e5be0c-2472-49f2-a234-e5779afa4f4b", + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", + "\n", + "pm = generate_preset_pass_manager(optimization_level=3, backend=fake_backend)\n", + "isa_qc = pm.run(qc)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "57e0871b-7abc-40f9-9965-efc2015135d7", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isa_qc.draw('mpl', idle_wires=False)" + ] + }, + { + "cell_type": "markdown", + "id": "96639e41-8537-4ad3-9e1a-1d4ff2daa472", + "metadata": {}, + "source": [ + "Note now that $q_0$ and $q_1$ has been placed on physical qubits 8 and 9 respectively. But an observable such as $ZZ$ implies $Z$ on qubits 0 and 1. This no longer conforms to the mapping of the transpiled circuit. So we need to ensure that our observable now has $Z$ acting on physical qubits 8 and 9, and $I$ elsewhere. We can easily apply this layout to the observable." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "075cce46-7e5e-4613-8f67-62f366ee5e62", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SparsePauliOp(['IIIIIIIIIIIIIIIIIZIIIIIIIII', 'IIIIIIIIIIIIIIIIIZXIIIIIIII', 'IIIIIIIIIIIIIIIIIYXIIIIIIII', 'IIIIIIIIIIIIIIIIIIXIIIIIIII', 'IIIIIIIIIIIIIIIIIZZIIIIIIII'],\n", + " coeffs=[ 0.1+0.j, -0.5+0.j, 0.3+0.j, 0.2+0.j, -0.4+0.j])" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isa_obs = obs.apply_layout(isa_qc.layout)\n", + "isa_obs" + ] + }, + { + "cell_type": "markdown", + "id": "d1bfad9d-5c9a-4d70-9cb3-0d00beeeab1a", + "metadata": {}, + "source": [ + "Note now each observable is of length 27 (same as the number of qubits in the backend), and the non-identity observables are placed on locations 8 and 9 to conform to the physical layout of the transpiled circuit.\n", + "\n", + "Now we can use the *isa_qc* and *isa_obs* to obtain the same expectation value from fake backend." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "5ebcbaac-f4b3-4d46-bdeb-f570001facae", + "metadata": {}, + "outputs": [], + "source": [ + "noisy_job = estimator.run([(isa_qc, isa_obs)])\n", + "noisy_result = noisy_job.result()[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "6514397a-9941-40fe-a741-aac51a513555", + "metadata": {}, + "outputs": [], + "source": [ + "noisy_expval = noisy_result.data.evs" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "0a509507-145a-4498-8451-6b6417683b13", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The expectation value of O from a noisy backend is -0.400732421875\n" + ] + } + ], + "source": [ + "print(f'The expectation value of O from a noisy backend is {noisy_expval}')" + ] + }, + { + "cell_type": "markdown", + "id": "3d6942a3-9420-4c1c-b1ad-74589406888c", + "metadata": {}, + "source": [ + "Here the circuit is small. Therefore, the effect of noise is minimal and not much apparent difference is observed between the noisy and ideal expectation value. However, for larger circuits, the difference will grow. There, using the suppression and mitigation methods from Estimator will be helpful to retrieve the ideal expectation value from the noisy one." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "8962a9ed-a805-43b0-b224-938c9e9ec950", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "qiskit runtime version 0.23.0\n", + "qiskit version 1.0.2\n" + ] + } + ], + "source": [ + "import qiskit_ibm_runtime\n", + "import qiskit\n", + "\n", + "print(f\"qiskit runtime version {qiskit_ibm_runtime.version.get_version_info()}\")\n", + "print(f\"qiskit version {qiskit.version.get_version_info()}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33b37e22-7f8c-4ab3-85f3-c48acc16c61f", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.11.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}