diff --git a/ignis/Intro to Measurement Error Mitigation with Qiskit.ignis.ipynb b/ignis/Intro to Measurement Error Mitigation with Qiskit.ignis.ipynb new file mode 100644 index 00000000..e3725e65 --- /dev/null +++ b/ignis/Intro to Measurement Error Mitigation with Qiskit.ignis.ipynb @@ -0,0 +1,476 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [], + "source": [ + "from qiskit import *\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this brief tutorial, I aim to walk you through a classic error mitigation workflow using qiskit.ignis so that you understand the why behind everything we're doing. It's important to note, that these principles work just as well when scaling the number of qubits. We'll first start by creating a circuit to test on an actual quantum computer so that we can obtain the noise model. The actual circuit you use doesn't matter since all we care about are the deviations from an arbitrary ideal state. But let's go with a bell state, those are easy to visualize since there are only two ideal states." + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nqubits = 3\n", + "circuit = QuantumCircuit(nqubits,nqubits)\n", + "circuit.h(0)\n", + "circuit.cx(0,1)\n", + "circuit.cx(1,2)\n", + "circuit.barrier()\n", + "circuit.measure([0,1,2],[0,1,2])\n", + "circuit.draw(output='mpl')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's simulate the circuit on a quantum circuit simulator to get a feel for what the ideal measurements should look like." + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [], + "source": [ + "simulator = Aer.get_backend('qasm_simulator')\n", + "results = execute(circuit, backend=simulator, shots=1024).result()" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qiskit.visualization import plot_histogram\n", + "plot_histogram(results.get_counts(circuit))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "ibmqfactory.load_account:WARNING:2020-11-10 07:37:08,620: Credentials are already in use. The existing account in the session will be replaced.\n" + ] + } + ], + "source": [ + "IBMQ.load_account()\n", + "provider = IBMQ.get_provider(hub='ibm-q')\n", + "device = provider.get_backend('ibmqx2')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's try the same circuit on an actual quantum computer now!" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">\n", + "Job Status: job has successfully run\n" + ] + } + ], + "source": [ + "job = execute(circuit, backend=device, shots=1024)\n", + "print(job.job_id)\n", + "from qiskit.tools.monitor import job_monitor\n", + "job_monitor(job)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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SUlTREQkJiVNERGRmJQ0RUREYlLSFBERiUlJU0REJCYlTRERkZiUNEVERGJS0hQREYlJSVNERCQmJU0REZGYlDRFRERiUtIUERGJSUlTREQkJiVNERGRmJQ0RUREYlLSFBERiUlJU0REJCYlTRERkZiUNEVERGJS0hQREYlJSVNERCQmJU0RkQwxb948RowYQV5eHnfeeede66urqzn77LPJy8tj/PjxrF27FoC1a9fSpUsXxowZw5gxY7jsssvqtyktLeWYY44hLy+Pa665BndP1uFkJCVNEZEMUFtby5VXXsnzzz/PypUreeyxx1i5cuUeZe6//3569OjBO++8w/XXX89NN91Uv27o0KEsXbqUpUuXMmvWrPrll19+ObNnz6a8vJzy8nLmzZuXtGPKREqaIiIZYMmSJeTl5TFkyBA6derEOeecw9NPP71HmaeffpoLL7wQgLPOOosXX3yx2Zrjhg0b2L59OyeccAJmxgUXXMDcuXPb8zAynpKmiEgGqKqqYuDAgfWvc3NzqaqqarJMVlYWn//859myZQsAFRUVHHfccUycOJGXX365vnxubm6z+5Q9KWke5Pa3jaTOe++9R9euXbn77rtj71NEkqt///689957/PWvf+Wee+7hvPPOY/v27akOKyMpaR7EWttGAnDDDTdw6qmntmifItJyOTk5rF+/vv51ZWUlOTk5TZapqanhww8/pFevXmRnZ9OrVy8Ajj/+eIYOHcrq1avJycmhsrKy2X3KnpQ0D2KtbSOZO3cugwcPZtSoUS3ap4i03Lhx4ygvL6eiooLdu3czZ84cpkyZskeZKVOm8NBDDwHw5JNP8qUvfQkz4/3336e2thaANWvWUF5ezpAhQ+jfvz/du3fntddew915+OGH+cpXvpL0Y8skSpoHsda0kezYsYO77rqLH/7why3ep4i0XFZWFjNmzGDy5MkcffTRfOMb32DUqFHceuutPPPMMwBcfPHFbNmyhby8PO6555765pGFCxdy7LHHMmbMGM466yxmzZpFz549AZg5cybTpk0jLy+PoUOH7nHlSPaWleoAJDNNnz6d66+/nq5du6Yshnnz5nHttddSW1vLtGnT+N73vrfH+urqai644AJKS0vp1asXjz/+OIMGDWLJkiVceumlALg706dP54wzzgBg6tSpPPvss/Tp04fly5cn/ZhEmnPa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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 116, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# execute\n", + "device_results = job.result()\n", + "plot_histogram(device_results.get_counts(circuit))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As observed above, quantum noise has given us measurements that are neither of the ideal states. In a purely theoretical sense, our circuit should output an even split of 111 and 000. To get a clearer picture of what the ideal measurements should actually look like, we can apply some post-processing to the results so that it filters out the 'invalid' states. This is what we call error mitigation.\n", + "\n", + "We're going to split the quantum circuit into several quantum circuits so that each represent the computational basis state measurements of our overall circuit. These quantum circuits are what we call calibration circuits. So since we have a circuit with 4 qubits, we're going to break that into 16 computational basis states so that we can calibrate each one individually.\n", + "\n", + "Note that the computational basis state of each circuit is the state label." + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from qiskit.ignis.mitigation.measurement import (complete_meas_cal, CompleteMeasFitter)\n", + "cal_circuits, state_labels = complete_meas_cal(qr = circuit.qregs[0], circlabel='measerrormitigationcal')\n", + "# Let's draw an arbitrary calibration circuit to look at an example\n", + "cal_circuits[2].draw(output= 'mpl')" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 128, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that we have 8 computational basis states, hence we have 8 calibration circuits\n", + "len(cal_circuits)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's run all of our calibration circuits on a real quantum computer to gauge how much we need to calibrate each computational basis state to so that we filter out the noise." + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5fab5ecd3b553100132dd647\n", + "Job Status: job has successfully run\n" + ] + } + ], + "source": [ + "cal_job = execute(cal_circuits,\n", + " backend=device,\n", + " shots=1024,\n", + " optimization_level=0,\n", + " )\n", + "print(cal_job.job_id())\n", + "job_monitor(cal_job)\n", + "cal_results = cal_job.result()" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcQAAAFDCAYAAACk6n5/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAArm0lEQVR4nO3de3xU9Z3/8deHpFwU0AQFJAkGGqAmSGocGqMRKFuk0m6sllXceite6qW6avtbH92qq7Zr7Wq9VNbasq4idkWxrdhSEVYLFBvBkIoNsRBLoCRykUsFFBMTP78/zkkaYhIykJkhk/fz8eDBzDnfM/M5ZzLzOed7O+buiIiI9HS9Eh2AiIjIkUAJUUREBCVEERERQAlRREQEUEIUEREBlBBFREQASE10ALFy3HHHeXZ2dqLDEBGRI8jq1at3uPvxba1L2oSYnZ1NWVlZosMQEZEjiJltam+dqkxFRERQQhQREQGUEEVERAAlRBEREUAJUUREBFBCFBERAZQQRUREACVEERERQAlRREQEUEIUEREBlBBFREQAJUQRERFACVFERARQQhQREQGUEEVERAAlRBEREUAJUUREBFBCFBERAZQQRUREACVEERERQAlRREQEUEIUEREBlBBFJEqLFi1izJgx5OTkcM8993xi/U033cRnP/tZPvvZzzJ69GiOPfbY5nW33HILY8eOZezYsTzzzDPNy2fNmkVOTg5mxo4dO+KxGyKfkJroAESk+2hsbOS6665jyZIlZGZmMn78eEpKSsjNzW0u88ADDzQ/fvjhh/njH/8IwMKFCykvL+eNN96grq6OSZMmcfbZZzNw4EDOOOMMvvzlLzNp0qR475JIM10hikinrVq1ipycHEaOHEnv3r2ZMWMGCxYsaLf8008/zYUXXghAZWUlEyZMIDU1laOPPppx48axaNEiAE455RSys7PjsQsi7VJCFJFOq62tJSsrq/l5ZmYmtbW1bZbdtGkT1dXVTJ48GYD8/HwWLVrEBx98wI4dO/jd737H5s2b4xK3SGeoylREYmLevHlMnz6dlJQUAM466yxef/11Tj/9dI4//niKioqa14kcCXSFKCKdlpGRccBVXU1NDRkZGW2WnTdvXnN1aZPvfve7vPHGGyxZsgR3Z/To0TGNVyQaSogi0mnjx4+nqqqK6upq6uvrmTdvHiUlJZ8o9+c//5nd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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 120, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Visualizing counts of an arbitrary calibration circuit\n", + "# Notice that we only measure the basis state 75-85% of the time, theoretically it should be 100%\n", + "plot_histogram(cal_results.get_counts(cal_circuits[3]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A histogram is nice, but density matrices are better suited to visualize the measurements. Next, we're going to fit these results into a density matrix that shows the measured state for each prepared state. The prepared states is what the measurement of the calibration circuit should have been. In a zero-noise environment, we'd have an identity matrix (1s along the diagonal) since each prepared state would be equivalent to the measured state. But of course, since we're in the NISQ era for quantum computers, we'll have greyish clouds near each ideal state which represent the off-target measurements." + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "meas_fitter = CompleteMeasFitter(cal_results, state_labels)\n", + "meas_fitter.plot_calibration()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Given the density matrix, we now know the probabilities of each off-target measurement. Since this is a probability matrix, all of the values in each column squared are normalized. What we're going to do next is filter out all of the off-target measurements (not on the diagonal). \n", + "\n", + "If you're interested in the math behind this, I implore you to look into Chapter 5.2 in the Qiskit textbook. The short summary is that the density matrix above applied to the ideal state gives us the noisy results. So if we follow that logic, we can apply the inverse of that noisy matrix to the noisy results to obtain the ideal state." + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [], + "source": [ + "meas_filter = meas_fitter.filter\n", + "mitigated_result = meas_filter.apply(device_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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xzm321fmGeB8M/u9mZ1pZvcCPweerqZ7EhEREamwat1myTk3w8waA/cDLYBVeMtdFLR6nVGs/CEzuxBvcP+3QCbwT+D3Rcp8ZWbDgPHAH4GNwFDn3KIqvh0RERGRSlPte186554Hni/lXP8Sjq0FLj5Fne8A71RGfCIiIiL+oL0vRURERAKAkjIRERGRAKCkTERERCQAKCkTERERCQBKykREREQCgJIyERERkQCgpExEREQkACgpExEREQkASsrKafz48YSFhREaGsoll1xywvlRo0YRFBREZGQkkZGR3HDDDYXnbrnlFsLCwggLC+OWW24pPP6n3f8iaf14ktaP56otL1XLfYiIiEhgUVJWDjk5OTzyyCN8+umnZGZmkpqayqxZs04o16lTJ44cOcKRI0eYOnUqABs3bmTKlCl8//33rF27lilTppCWlkZazl5e3/cts874NWva309G/hFeylhQ3bcmIiIifqakrBymTJlC/fr16d+/P1FRUfTt25dJkyaV6dqnn36ahIQE2rVrR5s2bUhISOCpp55i6ZGtRAWFkxDeFIBz67ThvQMrqvI2REREJAApKSuHtWvX0rhx48LHbdq0YceOHSeUW716NZGRkcTFxbFokbcvelpaGrGxsYVlWrZsSVpaGmdHtuZQfjbfZv3A0fxcvji0noy8rKq/GREREQkoSsoq2T333ENmZiZHjhyhX79+JY47K6pVWENGN+rDzdve4OyNf6VpSBRBWDVFKyIiIoFCSVk5JCYmsnfv3sLHaWlptGjR4rgy7du3Jzo6GoBXX32Vffv2AV6r2rZt2wrLbd++nTZt2gAwrsn5rGz/B1a2v5eEsCa0CImu4jsRERGRQKOkrBxGjBjB/v37mTdvHocOHWLevHncfvvtx5VZvnx54fcPPPAAdevWBeCuu+5iw4YN3uD+tDQ2bNjAXXfdBcD67N0AbM3JZPah7/lNk59Xy/2IiIhI4AjxdwA1SUREBPfffz8XXnghzjn69+/PL3/5S/r27ct5553HhAkTuO2221i2bBlmRkREBDNnzgSgXbt2XH/99XTo0AGA4cOH065dOzYCN2+bxp7cQwBcU78H59VN8NctioiIiJ+Yc87fMfhNSkqKW7x4sV9j2Jj4cIWub7e2YteLiMjxzGyJcy7F33FI7aPuSxEREZEAoKRMREREJAAoKRMREREJ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gHNuk5mNBT4vSwW+RV+fL+Vc/2KPnwaeLkOd7xAYExJERERETsvpjCkraWZA9cwWEBEREfmJKm9S9jnwnJm1KjhgZmfgtWaVqaVMRERERE5U3qRsLFAX2GRmW8xsC94Yrrq+cyIiIiJyGso7pmwvcDbe6oBn+o5975w75WbkIiIiIlK6MidlZhYM7AeSnXNzgDlVFpWIiIhILVPm7kvnXB6wBQirunBEREREaqfyjin7E/CYmTWpimBEREREaqvyjim7G2gDbDOzdOBw0ZPOuS6VFZiIiIhIbVLepOwdvDXJrApiEREREam1ypSUmVkd4K/Ar4BQvDXJxjjnfqy60ERERERqj7KOKXsEuBH4GHgLuBB4oYpiEhEREal1ytp9eSVws3NuOoCZvQksMLNg36xMEREREamAsraUtQL+U/DAOfcNkAu0rIqgRERERGqbsiZlwUBOsWO5lH+igIiIiIiUoKxJlQFvmFl2kWMRwEtmllVwwDk3qDKDExEREaktypqUTS3h2BuVGYiIiIhIbVampMw5d1NVByIiIiJSm5V3myURERERqQJKykREREQCgJIyERERkQCgpExEREQkACgpExEREQkASspEREREAoCSMhEREZEAoKRMREREJAAoKRMREREJAErKRERERAKAkjIRERGRAKCkTERERCQAKCkTERERCQBKykREREQCgJIyERERkQCgpExEREQkACgpExEREQkASspEREREAoCSMhEREZEAoKRMREREJAAoKRMREREJAErKRERERAKAkjIRERGRAKCkTERERCQAKCkTERERCQBKykREREQCgJIyERERkQCgpExEREQkACgpExEREQkA1Z6UmdntZpZmZkfNbImZnXeSsi3MbJqZ/dfM8sxsSgllbjQzV8JXRJXeiIiIiEglqtakzMyGAs8Afwa6AV8B/zKzM0q5JBz4EXgMWHSSqrOAFkW/nHNHKytuERERkapW3S1l44ApzrmXnHPfO+fGADuA20oq7Jzb7Jwb65ybAmScpF7nnNtZ9KvyQxcRERGpOtWWlJlZGNAD+LTYqU+BcypYfaSZbTGzdDP7yMy6VbA+ERERkWpVnS1lTYBgYFex47uA5hWody0wEvglcA1wFFhgZu0rUKeIiIhItQrxdwAV5ZxbCCwseGxmXwHLgTHA2OLlzexW4FaAli1bMnfuXADatm1LvXr1WLFiBQCNGzemY8eOzJs3D4CQkBD69OnD0qVLOXDgAAApKSns2rULaFdVt3dKc+fOpXfv3qSlpbFzp9drm5SURF5eHmvXrgUgNjaWuLg4Fi3yhuVFRUWRkpLCwoULyc7OBqBPnz6sW7eO3bt3A9CpUyeys7NZv349AK1ataJZs2YsXrwYgOjoaLp37878+fPJzc0FoG/fvqxevZq9e/cCkJyczMGDB9m0aRMA8fHxNGrUiKVLlwLQsGFDkpOTSU1NxTmHmdGvXz9WrFhBZmYmAN27dycjI4PNmzcDFXuftm7dCkD79u0JDw9n1apVAMTExNChQwfmz58PQHh4OL1792bx4sUcOnQIgF69epGens62bdsASExMJDg4mDVr1gDQvHlz2rRpw8KF3kcxMjKSXr16sWjRIo4cOQKg90nvU614n6A//rJjx45KeZ9E/MWcc9XzRF73ZRZwjXPu7SLHJwGdnHP9TnH9R8CPzrkby/BcrwLNnXOXnqxcSkqKK/ihWBG3PH361/7+hYcr9Nzt1lbsehGRylSRn4dQsZ+JlfXz0MyWOOdSKqUykXKotu5L51wOsAS4qNipi/BmYVYKMzOgC94EAhEREZEaobq7L58CXjezb4AFwGigJTAZwMxeA3DOjSi4wMy6+r6NBvJ9j3Occ2t85x8CvgbW+8qMxUvKSpzRKSIiIhKIqjUpc87NMLPGwP1464mtAgY657b4ipS0XtmyYo8vB7YA8b7HDYAX8SYL7PeV7+uc+6ZSgxcRERGpQtU+0N859zzwfCnn+pdwzE5R32+A31RKcCIiIiJ+or0vRURERAKAkjIRERGRAKCkTERERCQAKCkTERERCQBKykREREQCgJIyERERkQCgpExEREQkACgpExEREQkASspEREREAoCSMhEREZEAoKRMREREJAAoKRMREREJAErKRERERAKAkjIRERGRAKCkTERERCQAKCkTERERCQBKykREREQCgJIyERERkQCgpExEREQkACgpExEREQkASspEREREAoCSMhERPxs/fjxhYWGEhoZyySWXnHD+wIEDnHHGGYSGhhIVFcX8+fMBmD9/PmZGZGQkkZGRJCUlFV7zxhtvEBERQWhoKMnJyeTn51fb/YjI6VFSJiLiRzk5OTzyyCN8+umnZGZmkpqayqxZs44rc+uttxIVFcWxY8cY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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Let's visualize the difference between the counts before and after our error mitigation\n", + "device_counts = device_results.get_counts(circuit)\n", + "mitigated_counts = mitigated_result.get_counts(circuit)\n", + "plot_histogram([device_counts, mitigated_counts], legend=['device, noisy', 'device, mitigated'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hurrah! Virtually all of the unintended measurement states have been filtered out.\n", + "\n", + "So we have now made a filter (inverse matrix) that can be applied to any 3 qubit circuit to filter out any off-target measurements. Note that our filter will work best when applied to circuits that have been run on the same quantum computer given that it's the noise model that we calibrated our filter for. Let's try applying our filter to the generic circuit I first showed you!" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Just recreating that same circuit\n", + "circuit2 = QuantumCircuit(3,3)\n", + "circuit2.x(1)\n", + "circuit2.h(0)\n", + "circuit2.cx(0,1)\n", + "circuit2.cx(1,2)\n", + "circuit2.measure([0,1,2],[0,1,2])\n", + "circuit.draw(output='mpl')" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Plotting ideal measurements using Aer simulator...\n", + "plot_histogram(execute(circuit2, backend=simulator, shots=1024).result().get_counts(circuit2))" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [], + "source": [ + "# Executing on an actual quantum computer to check out the raw measurements\n", + "device_counts_2 = execute(circuit2, backend=device, shots=1024).result().get_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AVQQRUREABVEERERQAVRREQEUEEUEREBVBBFREQAFUQRERFABVFERARQQRQREQE0ubeISNS45sHmff7HJjfv88c6HSGKiIiggigiIgKoIIqIiAAqiCIiIoAKooiICKCCKCIiAqggioiIACqIIiIigAqiiIgIoIIoIiICqCCKiIgAKogiIiKACqKIiAiggigiIgKoIIqIiAAqiCIiIoAK4hFt/vz5pKWlkZqayvTp07+3fsaMGfTt25fTTjuNs88+m40bN1atu/3220lPT6dPnz7cfPPNuDt79+5l9OjRnHLKKaSnp/OLX/winLsjItKsVBCPUBUVFUyaNIl58+ZRUFDArFmzKCgoOGCbgQMHkp+fz4cffsiYMWO4/fbbAXjnnXd4++23+fDDD1m1ahXvvfceixYtAuC2227jk08+4f333+ftt99m3rx5Yd83EZHmoIJ4hFq2bBmpqamkpKQQHx/PuHHjmDNnzgHbjBgxguOOOw6AIUOGUFRUBICZsX//fsrKyigtLeXbb7+lc+fOHHfccYwYMQKA+Ph4MjIyqh4jIhLrwl4QzexGMys0s/1mttzMzqhn2+Fm9o6ZlZjZPjP7xMxuC2feWFVcXEy3bt2q7icnJ1NcXFzn9o8//jgXXHABANnZ2YwYMYKTTjqJk046iZEjR9KnT58Dtt+xYwevvPIKZ599dvPsgIhImMWF84eZ2VjgIeBGYEno/3lm1tfdP6/lIXuA3wEfAXuB04FHzWyvuz8cpthHvGeffZb8/PyqZtF169bx8ccfVx39nXvuubz11luccUbw3aW8vJxLL72Um2++mZSUlIjlFhFpSuE+Qvw58KS7P+buH7v7TcCXwA21bezuy909191Xu3uhuz8L/A2o86hSAklJSWzatKnqflFREUlJSd/b7u9//zv33HMPc+fOJSEhAYCXXnqJIUOGkJiYSGJiIhdccAFLly6tesy1115Lr169mDx5crPvh4hIuIStIJpZPDAIeL3GqteBHzbwOQaGtl3UtOmOPIMHD2bt2rUUFhZSVlZGbm4uOTk5B2zz/vvvc9111zF37lw6depUtbx79+4sWrSI8vJyvv32WxYtWlTVZHrHHXewc+dOHnzwwXDujohIswtnk2kHoCWwpcbyLcA59T3QzIqAjgR573T3R+rY7lrgWoCuXbvy5ptvApCSkkLr1q1ZuXIlAO3btyc9PZ3FixcDEBcXx9ChQ1mxYgW7du0CIDMzky1btlQdZfXq1YuEhARWrVoFQKdOnejduzdLliwBICEhgezsbPLz89mzZw8AWVlZFBUVVZ27S0tLo2XLllW9Pbt06ULPnj2rjr6OPfZYsrKyyMvLY9++fUBwPq+wsJDNmzcD0LdvXyoqKlizZg0QHAkmJyeTl5cHQGJiIpmZmbz33ntce+21DBs2jPj4eC688EK++uorrrzySs477zxGjBjB1Vdfzfbt2/nxj39MXFwcrVu35p577iElJYWTTz6Z1NRUICiuo0eP5o033uCee+6he/fu9O/fn++++45Ro0YxevRoevToQbt27VixYgUAbdu2pX///ixatAh3x8wYPnw4K1euZPv27QBkZGSwbds2NmzYcNS+T0uXLqW0tBSAoUOH8umnn7J161YA+vXrR2lpKWvXrgWgW7dudO7cmfz8fADatGlDRkYGS5Ysoby8HIBhw4axevVqSkpKAOjfvz+7d+9m/fr1AHqfovx9gu40p+++++6of5/qY+5+6K9uI5hZV6AYGO7ui6stnwpc5u5p9Ty2J5AIDAHuA25x92fq+3mZmZle+QspIhILrnmweZ//scnN+/yxwMyWu3tmbevCeYT4NVABdK6xvDOwub4Hunth6OZHZtYZmAbUWxBFREQaI2znEN29DFgOnFtj1bnAO414qhZAQlPlEhERgTAPuwBmAM+Y2TLgbeB6oCvwCICZPQ3g7leG7t8EFAJrQo8fBtwGaMiFiIg0qbAWRHd/3szaA3cAJwGrgFHuXjmJZs0zyi0Jzhn2AMqBz4BfECqgIiIiTSXcR4iEBtTXeoTn7mfWuP8g8GCzhxIRkaOe5jIVERFBBVFERARQQRQREQFUEEVERAAVRBERESACvUwlfDQNlIhIw+kIUUREBBVEERERQAVRREQEUEEUEREBVBBFREQAFUQRERFABVFERARQQRQREQFUEEVERAAVRBEREUAFUUREBFBBFBERAVQQRUREABVEERERQAVRREQEaGRBNLMWZtai2v0uZna1mZ3e9NFERETCp7FHiK8BNwGYWSKQD/wGeNPMrmzibCIiImHT2IKYCSwM3b4Y2AV0Aq4BbmvCXCIiImHV2IKYCOwI3T4PeMndvyUokic3YS4REZGwamxB/Bw43cyOB0YCb4SWtwP2NmUw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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plot_histogram(device_counts_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Applying our filter on the results \n", + "device_mitigated_counts_2 = meas_filter.apply(device_counts_2)\n", + "plot_histogram(device_mitigated_counts_2)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "qiskit", + "language": "python", + "name": "qiskit" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}