526 lines
61 KiB
Plaintext
526 lines
61 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "98fa28f0",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Background"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6b41d6b3",
|
||
"metadata": {},
|
||
"source": [
|
||
"*Usage estimate: 4 minutes, 40 seconds on ibm_kyiv. (NOTE: This is an estimate only. Your runtime may vary.)*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fb089249",
|
||
"metadata": {},
|
||
"source": [
|
||
"In this tutorial, you will run an experiment on a quantum computer to demonstrate the violation of the CHSH inequality with the Estimator primitive.\n",
|
||
"\n",
|
||
"The CHSH inequality, named after the authors Clauser, Horne, Shimony, and Holt, is used to experimentally prove Bell's theorem (1969). This theorem asserts that local hidden variable theories cannot account for some consequences of entanglement in quantum mechanics. The violation of the CHSH inequality is used to show that quantum mechanics is incompatible with local hidden-variable theories. This is an important experiment for understanding the foundation of quantum mechanics.\n",
|
||
"\n",
|
||
"The 2022 Nobel Prize for Physics was awarded to Alain Aspect, John Clauser and Anton Zeilinger in part for their pioneering work in quantum information science, and in particular, for their experiments with entangled photons demonstrating violation of Bell’s inequalities."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "36669708",
|
||
"metadata": {},
|
||
"source": [
|
||
"For this experiment, we will create an entangled pair on which we measure each qubit on two different bases. We will label the bases for the first qubit $A$ and $a$ and the bases for the second qubit $B$ and $b$. This allows us to compute the CHSH quantity $S_1$:\n",
|
||
"\n",
|
||
"$$\n",
|
||
"S_1 = A(B-b) + a(B+b).\n",
|
||
"$$\n",
|
||
"\n",
|
||
"Each observable is either $+1$ or $-1$. Clearly, one of the terms $B\\pm b$ must be $0$, and the other must be $\\pm 2$. Therefore, $S_1 = \\pm 2$. The average value of $S_1$ must satisfy the inequality:\n",
|
||
"\n",
|
||
"$$\n",
|
||
"|\\langle S_1 \\rangle|\\leq 2.\n",
|
||
"$$\n",
|
||
"\n",
|
||
"Expanding $S_1$ in terms of $A$, $a$, $B$, and $b$ results in:\n",
|
||
"\n",
|
||
"$$\n",
|
||
"|\\langle S_1 \\rangle| = |\\langle AB \\rangle - \\langle Ab \\rangle + \\langle aB \\rangle + \\langle ab \\rangle| \\leq 2\n",
|
||
"$$\n",
|
||
"\n",
|
||
"You can define another CHSH quantity $S_2$:\n",
|
||
"\n",
|
||
"$$\n",
|
||
"S_2 = A(B+b) - a(B-b),\n",
|
||
"$$\n",
|
||
"\n",
|
||
"This leads to another inequality:\n",
|
||
"\n",
|
||
"$$\n",
|
||
"|\\langle S_2 \\rangle| = |\\langle AB \\rangle + \\langle Ab \\rangle - \\langle aB \\rangle + \\langle ab \\rangle| \\leq 2\n",
|
||
"$$\n",
|
||
"\n",
|
||
"If quantum mechanics can be described by local hidden variable theories, the previous inequalities must hold true. However, as is demonstrated in this notebook, these inequalities can be violated in a quantum computer. Therefore, quantum mechanics is not compatible with local hidden variable theories."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2033cfcd",
|
||
"metadata": {},
|
||
"source": [
|
||
"If you want to learn more theory, explore [Entanglement in Action](https://learning.quantum-computing.ibm.com/course/basics-of-quantum-information/entanglement-in-action#the-chsh-game) with John Watrous.\n",
|
||
"\n",
|
||
"<iframe loading=\"lazy\" width=\"800\" height=\"450\" style=\"margin-top: 40px; margin-bottom: 40px;\" src=\"https://www.youtube.com/embed/GSsElSQgMbU?si=ZhRKJKHMLRq0g3E1&start=2426\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d4cec8d8",
|
||
"metadata": {},
|
||
"source": [
|
||
"You will create an entangled pair between two qubits in a quantum computer by creating the Bell state $|\\Phi^+\\rangle = \\frac{|00\\rangle + |11\\rangle}{\\sqrt{2}}$. Using the Estimator primitive, you can directly obtain the expectation values needed ($\\langle AB \\rangle, \\langle Ab \\rangle, \\langle aB \\rangle$, and $\\langle ab \\rangle$) to calculate the expectation values of the two CHSH quantities $\\langle S_1\\rangle$ and $\\langle S_2\\rangle$. Before the introduction of the Estimator primitive, you would have to construct the expectation values from the measurement outcomes.\n",
|
||
"\n",
|
||
"You will measure the second qubit in the $Z$ and $X$ bases. The first qubit will be measured also in orthogonal bases, but with an angle with respect to the second qubit, which we are going to sweep between $0$ and $2\\pi$. As you will see, the Estimator primitive makes running parameterized circuits very easy. Rather than creating a series of CHSH circuits, you only need to create *one* CHSH circuit with a parameter specifying the measurement angle and a series of phase values for the parameter.\n",
|
||
"\n",
|
||
"Finally, you will analyze the results and plot them against the measurement angle. You will see that for certain range of measurement angles, the expectation values of CHSH quantities $|\\langle S_1\\rangle| > 2$ or $|\\langle S_2\\rangle| > 2$, which demonstrates the violation of the CHSH inequality."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6f5d9398-5aaa-4596-a554-61c923f0c2d2",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Requirements\n",
|
||
"\n",
|
||
"Before starting this tutorial, ensure that you have the following installed:\n",
|
||
"\n",
|
||
"* Qiskit SDK 1.0 or later\n",
|
||
"* Qiskit Runtime (`pip install qiskit-ibm-runtime`) 0.22 or later\n",
|
||
"* Visualization support (`'qiskit[visualization]'`)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9c7dcf81",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Setup"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "53cb74e3",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# General\n",
|
||
"import numpy as np\n",
|
||
"\n",
|
||
"# Qiskit imports\n",
|
||
"from qiskit import QuantumCircuit\n",
|
||
"from qiskit.circuit import Parameter\n",
|
||
"from qiskit.quantum_info import SparsePauliOp\n",
|
||
"\n",
|
||
"# Qiskit Runtime imports\n",
|
||
"from qiskit_ibm_runtime import QiskitRuntimeService\n",
|
||
"from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
|
||
"\n",
|
||
"# Plotting routines\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import matplotlib.ticker as tck"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "16f323fb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"'ibm_kyoto'"
|
||
]
|
||
},
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# To run on hardware, select the backend with the fewest number of jobs in the queue\n",
|
||
"service = QiskitRuntimeService(channel=\"ibm_quantum\")\n",
|
||
"backend = service.least_busy(operational=True, simulator=False, min_num_qubits=127)\n",
|
||
"backend.name"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "66d5e2e2",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Step 1: Map classical inputs to a quantum problem"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "1ab329f2",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Create a parameterized CHSH circuit\n",
|
||
"\n",
|
||
"First, we write the circuit with the parameter $\\theta$, which we call `theta`. The [`Estimator` primitive](https://docs.quantum-computing.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2) can enormously simplify circuit building and output analysis by directly providing expectation values of observables. Many problems of interest, especially for near-term applications on noisy systems, can be formulated in terms of expectation values. `Estimator` (V2) primitive can automatically change measurement basis based on the supplied observable."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "6c77e40a",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/svg+xml": [
|
||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg width=\"220.03pt\" height=\"125.65pt\" version=\"1.1\" viewBox=\"0 0 220.03 125.65\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><defs><style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style></defs><path d=\"m0 125.65h220.03v-125.65h-220.03z\" fill=\"#ffffff\"/><path d=\"m64.497 44.283h143.7\" clip-path=\"url(#fd0cd85198f)\" fill=\"none\" stroke=\"#000000\" stroke-linecap=\"square\" stroke-width=\"2\"/><path d=\"m64.497 90.637h143.7\" clip-path=\"url(#fd0cd85198f)\" fill=\"none\" stroke=\"#000000\" stroke-linecap=\"square\" stroke-width=\"2\"/><path d=\"m59.862 21.106h-1158.8v139.06h1158.8z\" clip-path=\"url(#fd0cd85198f)\" fill=\"#ffffff\" stroke=\"#ffffff\" stroke-width=\"1.5\"/><path d=\"m135.88 90.637v-46.354\" clip-path=\"url(#fd0cd85198f)\" fill=\"none\" stroke=\"#002d9c\" stroke-linecap=\"square\" stroke-width=\"2\"/><path d=\"m74.463 59.348h30.13v-30.13h-30.13z\" clip-path=\"url(#fd0cd85198f)\" fill=\"#fa4d56\" stroke=\"#fa4d56\" stroke-width=\"1.5\"/><path d=\"m135.88 48.803c1.1986 0 2.3482-0.4762 3.1958-1.3237 0.84753-0.84753 1.3237-1.9972 1.3237-3.1958 0-1.1986-0.4762-2.3482-1.3237-3.1958-0.84753-0.84753-1.9972-1.3237-3.1958-1.3237-1.1986 0-2.3482 0.4762-3.1958 1.3237s-1.3237 1.9972-1.3237 3.1958c0 1.1986 0.4762 2.3482 1.3237 3.1958s1.9972 1.3237 3.1958 1.3237z\" clip-path=\"url(#fd0cd85198f)\" fill=\"#002d9c\" stroke=\"#002d9c\" stroke-width=\"1.5\"/><path d=\"m135.88 101.18c2.7967 0 5.4792-1.1111 7.4568-3.0887 1.9776-1.9776 3.0887-4.6601 3.0887-7.4568 0-2.7967-1.1111-5.4792-3.0887-7.4568-1.9776-1.9776-4.6601-3.0887-7.4568-3.0887-2.7967 0-5.4792 1.1111-7.4568 3.0887-1.9776 1.9776-3.0887 4.6601-3.0887 7.4568 0 2.7967 1.1111 5.4792 3.0887 7.4568 1.9776 1.9776 4.6601 3.0887 7.4568 3.0887z\" clip-path=\"url(#fd0cd85198f)\" fill=\"#002d9c\" stroke=\"#002d9c\" stroke-width=\"2\"/><path d=\"m167.17 59.348h30.13v-30.13h-30.13z\" clip-path=\"url(#fd0cd85198f)\" fill=\"#9f1853\" stroke=\"#9f1853\" stroke-width=\"1.5\"/><path d=\"m135.88 96.663v-12.052\" clip-path=\"url(#fd0cd85198f)\" fill=\"none\" stroke=\"#ffffff\" stroke-linecap=\"square\" stroke-width=\"2\"/><path d=\"m129.86 90.637h12.052\" clip-path=\"url(#fd0cd85198f)\" fill=\"none\" stroke=\"#ffffff\" stroke-linecap=\"square\" stroke-width=\"2\"/><g clip-path=\"url(#fd0cd85198f)\"><g transform=\"translate(37.189 48.734) scale(.1625 -.1625)\"><defs><path id=\"DejaVuSans-Oblique-71\" transform=\"scale(.015625)\" d=\"m2669 525q-231-303-546-460-314-156-695-156-531 0-833 358-301 358-301 986 0 506 186 978t533 847q225 244 517 375t614 131q387 0 637-153t363-462l100 525h578l-934-4813h-579l360 1844zm-1778 813q0-463 193-705 194-242 560-242 544 0 928 520t384 1264q0 450-199 689-198 239-569 239-272 0-504-127-231-126-403-370-181-256-286-600-104-343-104-668z\"/><path id=\"DejaVuSans-30\" transform=\"scale(.015625)\" d=\"m2034 4250q-487 0-733-480-245-479-245-1442 0-959 245-1439 246-480 733-480 491 0 736 480 246 480 246 1439 0 963-246 1442-245 480-736 480zm0 500q785 0 1199-621 414-620 414-1801 0-1178-414-1799-414-620-1199-620-784 0-1198 620-414 621-414 1799 0 1181 414 1801 414 621 1198 621z\"/></defs><use xlink:href=\"#DejaVuSans-Oblique-71\"/><use transform=\"translate(63.477 -16.406) scale(.7)\" xlink:href=\"#DejaVuSans-30\"/></g></g><g clip-path=\"url(#fd0cd85198f)\"><g transform=\"translate(37.189 95.088) scale(.1625 -.1625)\"><defs><path id=\"DejaVuSans-31\" transform=\"scale(.015625)\" d=\"m794 531h1031v3560l-1122-225v575l1116 225h631v-4135h1031v-531h-2687v531z\"/></defs><use xlink:href=\"#DejaVuSans-Oblique-71\"/><use transform=\"translate(63.477 -16.406) scale(.7)\" xlink:href=\"#DejaVuSans-31\"/></g></g><g clip-path=\"url(#fd0cd85198f)\"><g transform=\"translate(84.64 47.87) scale(.13 -.13)\"><defs><path id=\"DejaVuSans-48\" transform=\"scale(.015625)\" d=\"m628 4666h631v-1913h2294v1913h631v-4666h-631v2222h-2294v-2222h-631v4666z\"/></defs><use xlink:href=\"#DejaVuSans-48\"/></g></g><g clip-path=\"url(#fd0cd85198f)\"><g transform=\"translate(179.76 55.53) scale(.08 -.08)\" fill=\"#ffffff\"><defs><path id=\"DejaVuSans-Oblique-3b8\" transform=\"scale(.015625)\" d=\"m2913 2219h-1988q-134-935 3-1331 172-488 638-488 468 0 825 491 312 431 522 1328zm96 531q85 888-25 1200-171 494-631 494-478 0-828-488-275-393-491-1206h1975zm-565 2163q750 0 1050-663 300-659 72-1828-225-1166-785-1828-556-666-1306-666-753 0-1050 666-297 662-72 1828 228 1169 781 1828 557 663 1310 663z\"/></defs><use transform=\"translate(0 .23438)\" xlink:href=\"#DejaVuSans-Oblique-3b8\"/></g></g><g clip-path=\"url(#fd0cd85198f)\"><g transform=\"translate(174.7 43.351) scale(.13 -.13)\" fill=\"#ffffff\"><defs><path id=\"DejaVuSans-52\" transform=\"scale(.015625)\" d=\"m2841 2188q203-69 395-294t386-619l641-1275h-679l-596 1197q-232 469-449 622t-592 153h-688v-1972h-631v4666h1425q800 0 1194-335 394-334 394-1009 0-441-205-732-205-290-595-402zm-1582 1959v-1656h794q456 0 689 211t233 620-233 617-689 208h-794z\"/><path id=\"DejaVuSans-59\" transform=\"scale(.015625)\" d=\"m-13 4666h679l1293-1919 1285 1919h678l-1650-2444v-2222h-634v2222l-1651 2444z\"/></defs><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-59\"/></g></g><defs><clipPath id=\"fd0cd85198f\"><rect x=\"7.2\" y=\"7.2\" width=\"205.63\" height=\"111.25\"/></clipPath></defs></svg>"
|
||
],
|
||
"text/plain": [
|
||
"<Figure size 370.906x200.667 with 1 Axes>"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"theta = Parameter(\"$\\\\theta$\")\n",
|
||
"\n",
|
||
"chsh_circuit = QuantumCircuit(2)\n",
|
||
"chsh_circuit.h(0)\n",
|
||
"chsh_circuit.cx(0, 1)\n",
|
||
"chsh_circuit.ry(theta, 0)\n",
|
||
"chsh_circuit.draw(output=\"mpl\", idle_wires=False, style=\"iqp\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "de760250",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Create a list of phase values to be assigned later\n",
|
||
"\n",
|
||
"After creating the parameterized CHSH circuit, you will create a list of phase values to be assigned to the circuit in the next step. You can use the following code to create a list of 21 phase values range from $0$ to $2 \\pi$ with equal spacing, that is, $0$, $0.1 \\pi$, $0.2 \\pi$, ..., $1.9 \\pi$, $2 \\pi$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "bcb3b32b",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"number_of_phases = 21\n",
|
||
"phases = np.linspace(0, 2 * np.pi, number_of_phases)\n",
|
||
"# Phases need to be expressed as list of lists in order to work\n",
|
||
"individual_phases = [[ph] for ph in phases]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "6e559aed",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Observables\n",
|
||
"\n",
|
||
"Now we need observables from which to compute the expectation values. In our case we are looking at orthogonal bases for each qubit, letting the parameterized $Y-$ rotation for the first qubit sweep the measurement basis nearly continuously with respect to the second qubit basis. We will therefore choose the observables $ZZ$, $ZX$, $XZ$, and $XX$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "940fc1dc-89c5-4137-bea7-5e892dd7f36e",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# <CHSH1> = <AB> - <Ab> + <aB> + <ab> -> <ZZ> - <ZX> + <XZ> + <XX>\n",
|
||
"observable1 = SparsePauliOp.from_list([(\"ZZ\", 1), (\"ZX\", -1), (\"XZ\", 1), (\"XX\", 1)])\n",
|
||
"\n",
|
||
"# <CHSH2> = <AB> + <Ab> - <aB> + <ab> -> <ZZ> + <ZX> - <XZ> + <XX>\n",
|
||
"observable2 = SparsePauliOp.from_list([(\"ZZ\", 1), (\"ZX\", 1), (\"XZ\", -1), (\"XX\", 1)])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "efabedc4",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Step 2: Optimize problem for quantum execution"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "4b2b4637-a2d4-41d6-a9c5-98fe3b8a2cd2",
|
||
"metadata": {},
|
||
"source": [
|
||
"To reduce the total job execution time, V2 primitives only accept circuits and observables that conforms to the instructions and connectivity supported by the target system (referred to as instruction set architecture (ISA) circuits and observables)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "5dcd3fea-3754-4c75-b11e-9216570336b7",
|
||
"metadata": {},
|
||
"source": [
|
||
"### ISA Circuit"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "9a5561eb",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/svg+xml": [
|
||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg width=\"583.82pt\" height=\"133.25pt\" version=\"1.1\" viewBox=\"0 0 583.82 133.25\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><defs><style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style></defs><path d=\"m0 133.25h583.82v-133.25h-583.82z\" fill=\"#ffffff\"/><path d=\"m103.81 51.882h468.18\" clip-path=\"url(#f258eb544ed)\" fill=\"none\" stroke=\"#000000\" stroke-linecap=\"square\" stroke-width=\"2\"/><path d=\"m103.81 98.236h468.18\" clip-path=\"url(#f258eb544ed)\" fill=\"none\" stroke=\"#000000\" stroke-linecap=\"square\" stroke-width=\"2\"/><g transform=\"translate(7.2 14.798) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-47\" transform=\"scale(.015625)\" d=\"m3809 666v1253h-1031v519h1656v-2004q-365-259-806-392-440-133-940-133-1094 0-1712 639-617 640-617 1780 0 1144 617 1783 618 639 1712 639 456 0 867-113 411-112 758-331v-672q-350 297-744 447t-828 150q-857 0-1287-478-429-478-429-1425 0-944 429-1422 430-478 1287-478 334 0 596 58 263 58 472 180z\"/><path id=\"DejaVuSans-6c\" transform=\"scale(.015625)\" d=\"m603 4863h575v-4863h-575v4863z\"/><path id=\"DejaVuSans-6f\" transform=\"scale(.015625)\" d=\"m1959 3097q-462 0-731-361t-269-989 267-989q268-361 733-361 460 0 728 362 269 363 269 988 0 622-269 986-268 364-728 364zm0 487q750 0 1178-488 429-487 429-1349 0-859-429-1349-428-489-1178-489-753 0-1180 489-426 490-426 1349 0 862 426 1349 427 488 1180 488z\"/><path id=\"DejaVuSans-62\" transform=\"scale(.015625)\" d=\"m3116 1747q0 634-261 995t-717 361q-457 0-718-361t-261-995 261-995 718-361q456 0 717 361t261 995zm-1957 1222q182 312 458 463 277 152 661 152 638 0 1036-506 399-506 399-1331t-399-1332q-398-506-1036-506-384 0-661 152-276 152-458 464v-525h-578v4863h578v-1894z\"/><path id=\"DejaVuSans-61\" transform=\"scale(.015625)\" d=\"m2194 1759q-697 0-966-159t-269-544q0-306 202-486 202-179 548-179 479 0 768 339t289 901v128h-572zm1147 238v-1997h-575v531q-197-318-491-470t-719-152q-537 0-855 302-317 302-317 808 0 590 395 890 396 300 1180 300h807v57q0 397-261 614t-733 217q-300 0-585-72-284-72-546-216v532q315 122 612 182 297 61 578 61 760 0 1135-394 375-393 375-1193z\"/><path id=\"DejaVuSans-50\" transform=\"scale(.015625)\" d=\"m1259 4147v-1753h794q441 0 681 228 241 228 241 650 0 419-241 647-240 228-681 228h-794zm-631 519h1425q785 0 1186-355 402-355 402-1039 0-691-402-1044-401-353-1186-353h-794v-1875h-631v4666z\"/><path id=\"DejaVuSans-68\" transform=\"scale(.015625)\" d=\"m3513 2113v-2113h-575v2094q0 497-194 743-194 247-581 247-466 0-735-297-269-296-269-809v-1978h-578v4863h578v-1907q207 316 486 472 280 156 646 156 603 0 912-373 310-373 310-1098z\"/><path id=\"DejaVuSans-73\" transform=\"scale(.015625)\" d=\"m2834 3397v-544q-243 125-506 187-262 63-544 63-428 0-642-131t-214-394q0-200 153-314t616-217l197-44q612-131 870-370t258-667q0-488-386-773-386-284-1061-284-281 0-586 55t-642 164v594q319-166 628-249 309-82 613-82 406 0 624 139 219 139 219 392 0 234-158 359-157 125-692 241l-200 47q-534 112-772 345-237 233-237 639 0 494 350 762 350 269 994 269 318 0 599-47 282-46 519-140z\"/><path id=\"DejaVuSans-65\" transform=\"scale(.015625)\" d=\"m3597 1894v-281h-2644q38-594 358-905t892-311q331 0 642 81t618 244v-544q-310-131-635-200t-659-69q-838 0-1327 487-489 488-489 1320 0 859 464 1363 464 505 1252 505 706 0 1117-455 411-454 411-1235zm-575 169q-6 471-264 752-258 282-683 282-481 0-770-272t-333-766l2050 4z\"/><path id=\"DejaVuSans-3a\" transform=\"scale(.015625)\" d=\"m750 794h659v-794h-659v794zm0 2515h659v-793h-659v793z\"/><path id=\"DejaVuSans-33\" transform=\"scale(.015625)\" d=\"m2597 2516q453-97 707-404 255-306 255-756 0-690-475-1069-475-378-1350-378-293 0-604 58t-642 174v609q262-153 574-231 313-78 654-78 593 0 904 234t311 681q0 413-289 645-289 233-804 233h-544v519h569q465 0 712 186t247 536q0 359-255 551-254 193-729 193-260 0-557-57-297-56-653-174v562q360 100 674 150t592 50q719 0 1137-327 419-326 419-882 0-388-222-655t-631-370z\"/><path id=\"DejaVuSans-Oblique-3c0\" transform=\"scale(.015625)\" d=\"m584 3500h3354l-113-575h-441l-418-2150q-44-225 15-325 57-97 228-97 47 0 116 10 72 6 94 9l-81-416q-116-40-235-59-122-19-237-19-375 0-478 203-104 207 3 757l406 2087h-1291l-568-2925h-588l569 2925h-447l112 575z\"/><path id=\"DejaVuSans-2f\" transform=\"scale(.015625)\" d=\"m1625 4666h531l-1625-5260h-531l1625 5260z\"/><path id=\"DejaVuSans-34\" transform=\"scale(.015625)\" d=\"m2419 4116-1594-2491h1594v2491zm-166 550h794v-3041h666v-525h-666v-1100h-628v1100h-2106v609l1940 2957z\"/></defs><use transform=\"translate(0 .015625)\" xlink:href=\"#DejaVuSans-47\"/><use transform=\"translate(77.49 .015625)\" xlink:href=\"#DejaVuSans-6c\"/><use transform=\"translate(105.27 .015625)\" xlink:href=\"#DejaVuSans-6f\"/><use transform=\"translate(166.46 .015625)\" xlink:href=\"#DejaVuSans-62\"/><use transform=\"translate(229.93 .015625)\" xlink:href=\"#DejaVuSans-61\"/><use transform=\"translate(291.21 .015625)\" xlink:href=\"#DejaVuSans-6c\"/><use transform=\"translate(318.99 .015625)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(350.78 .015625)\" xlink:href=\"#DejaVuSans-50\"/><use transform=\"translate(411.08 .015625)\" xlink:href=\"#DejaVuSans-68\"/><use transform=\"translate(474.46 .015625)\" xlink:href=\"#DejaVuSans-61\"/><use transform=\"translate(535.74 .015625)\" xlink:href=\"#DejaVuSans-73\"/><use transform=\"translate(587.84 .015625)\" xlink:href=\"#DejaVuSans-65\"/><use transform=\"translate(649.37 .015625)\" xlink:href=\"#DejaVuSans-3a\"/><use transform=\"translate(683.06 .015625)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(714.84 .015625)\" xlink:href=\"#DejaVuSans-33\"/><use transform=\"translate(778.47 .015625)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/><use transform=\"translate(838.67 .015625)\" xlink:href=\"#DejaVuSans-2f\"/><use transform=\"translate(872.36 .015625)\" xlink:href=\"#DejaVuSans-34\"/></g><path d=\"m99.176 28.705h-1158.8v139.06h1158.8z\" clip-path=\"url(#f258eb544ed)\" fill=\"#ffffff\" stroke=\"#ffffff\" stroke-width=\"1.5\"/><path d=\"m113.78 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><path d=\"m113.78 113.3h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><path d=\"m160.13 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#9f1853\" stroke=\"#9f1853\" stroke-width=\"1.5\"/><path d=\"m160.13 113.3h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#9f1853\" stroke=\"#9f1853\" stroke-width=\"1.5\"/><path d=\"m206.49 113.3h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><path d=\"m251.98 113.3h31.85v-76.484h-31.85z\" clip-path=\"url(#f258eb544ed)\" fill=\"#9f1853\" stroke=\"#9f1853\" stroke-width=\"1.5\"/><path d=\"m299.19 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><path d=\"m345.55 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#9f1853\" stroke=\"#9f1853\" stroke-width=\"1.5\"/><path d=\"m391.9 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><path d=\"m438.26 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><path d=\"m484.61 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#9f1853\" stroke=\"#9f1853\" stroke-width=\"1.5\"/><path d=\"m530.96 66.947h30.13v-30.13h-30.13z\" clip-path=\"url(#f258eb544ed)\" fill=\"#33b1ff\" stroke=\"#33b1ff\" stroke-width=\"1.5\"/><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(27.103 56.333) scale(.1625 -.1625)\"><defs><path id=\"DejaVuSans-Oblique-71\" transform=\"scale(.015625)\" d=\"m2669 525q-231-303-546-460-314-156-695-156-531 0-833 358-301 358-301 986 0 506 186 978t533 847q225 244 517 375t614 131q387 0 637-153t363-462l100 525h578l-934-4813h-579l360 1844zm-1778 813q0-463 193-705 194-242 560-242 544 0 928 520t384 1264q0 450-199 689-198 239-569 239-272 0-504-127-231-126-403-370-181-256-286-600-104-343-104-668z\"/><path id=\"DejaVuSans-30\" transform=\"scale(.015625)\" d=\"m2034 4250q-487 0-733-480-245-479-245-1442 0-959 245-1439 246-480 733-480 491 0 736 480 246 480 246 1439 0 963-246 1442-245 480-736 480zm0 500q785 0 1199-621 414-620 414-1801 0-1178-414-1799-414-620-1199-620-784 0-1198 620-414 621-414 1799 0 1181 414 1801 414 621 1198 621z\"/><path id=\"DejaVuSans-21a6\" transform=\"scale(.015625)\" d=\"m4175 1741h-3278v-1078h-531v2687h531v-1078h3278l-728 728 375 375 1228-1228v-281l-1228-1228-375 375 728 728z\"/><path id=\"DejaVuSans-37\" transform=\"scale(.015625)\" d=\"m525 4666h3e3v-269l-1694-4397h-659l1594 4134h-2241v532z\"/></defs><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-Oblique-71\"/><use transform=\"translate(63.477 -15.625) scale(.7)\" xlink:href=\"#DejaVuSans-30\"/><use transform=\"translate(157.29 .78125)\" xlink:href=\"#DejaVuSans-21a6\"/><use transform=\"translate(287.62 .78125)\" xlink:href=\"#DejaVuSans-37\"/><use transform=\"translate(351.24 .78125)\" xlink:href=\"#DejaVuSans-33\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(27.103 102.69) scale(.1625 -.1625)\"><defs><path id=\"DejaVuSans-31\" transform=\"scale(.015625)\" d=\"m794 531h1031v3560l-1122-225v575l1116 225h631v-4135h1031v-531h-2687v531z\"/><path id=\"DejaVuSans-38\" transform=\"scale(.015625)\" d=\"m2034 2216q-450 0-708-241-257-241-257-662 0-422 257-663 258-241 708-241t709 242q260 243 260 662 0 421-258 662-257 241-711 241zm-631 268q-406 100-633 378-226 279-226 679 0 559 398 884 399 325 1092 325 697 0 1094-325t397-884q0-400-227-679-226-278-629-378 456-106 710-416 255-309 255-755 0-679-414-1042-414-362-1186-362-771 0-1186 362-414 363-414 1042 0 446 256 755 257 310 713 416zm-231 997q0-362 226-565 227-203 636-203 407 0 636 203 230 203 230 565 0 363-230 566-229 203-636 203-409 0-636-203-226-203-226-566z\"/><path id=\"DejaVuSans-35\" transform=\"scale(.015625)\" d=\"m691 4666h2478v-532h-1900v-1143q137 47 274 70 138 23 276 23 781 0 1237-428 457-428 457-1159 0-753-469-1171-469-417-1322-417-294 0-599 50-304 50-629 150v635q281-153 581-228t634-75q541 0 856 284 316 284 316 772 0 487-316 771-315 285-856 285-253 0-505-56-251-56-513-175v2344z\"/></defs><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-Oblique-71\"/><use transform=\"translate(63.477 -15.625) scale(.7)\" xlink:href=\"#DejaVuSans-31\"/><use transform=\"translate(157.29 .78125)\" xlink:href=\"#DejaVuSans-21a6\"/><use transform=\"translate(287.62 .78125)\" xlink:href=\"#DejaVuSans-38\"/><use transform=\"translate(351.24 .78125)\" xlink:href=\"#DejaVuSans-35\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(122.68 63.128) scale(.08 -.08)\"><defs><path id=\"DejaVuSans-32\" transform=\"scale(.015625)\" d=\"m1228 531h2203v-531h-2962v531q359 372 979 998 621 627 780 809 303 340 423 576 121 236 121 464 0 372-261 606-261 235-680 235-297 0-627-103-329-103-704-313v638q381 153 712 231 332 78 607 78 725 0 1156-363 431-362 431-968 0-288-108-546-107-257-392-607-78-91-497-524-418-433-1181-1211z\"/></defs><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/><use transform=\"translate(60.205 .78125)\" xlink:href=\"#DejaVuSans-2f\"/><use transform=\"translate(90.271 .78125)\" xlink:href=\"#DejaVuSans-32\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(120.91 50.949) scale(.13 -.13)\"><defs><path id=\"DejaVuSans-52\" transform=\"scale(.015625)\" d=\"m2841 2188q203-69 395-294t386-619l641-1275h-679l-596 1197q-232 469-449 622t-592 153h-688v-1972h-631v4666h1425q800 0 1194-335 394-334 394-1009 0-441-205-732-205-290-595-402zm-1582 1959v-1656h794q456 0 689 211t233 620-233 617-689 208h-794z\"/><path id=\"DejaVuSans-5a\" transform=\"scale(.015625)\" d=\"m359 4666h3666v-482l-2950-3653h3022v-531h-3809v481l2950 3653h-2879v532z\"/></defs><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(123.08 109.48) scale(.08 -.08)\"><defs><path id=\"DejaVuSans-2212\" transform=\"scale(.015625)\" d=\"m678 2272h4006v-531h-4006v531z\"/></defs><use transform=\"translate(0 .3125)\" xlink:href=\"#DejaVuSans-2212\"/><use transform=\"translate(83.789 .3125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(120.91 97.303) scale(.13 -.13)\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(165.19 56.328) scale(.13 -.13)\" fill=\"#ffffff\"><defs><path id=\"STIXSizeOneSym-Regular-221a\" transform=\"scale(.015625)\" d=\"m6970 9933-3597-11821h-269l-1478 4806q-71 231-161 333-89 103-236 103-218 0-435-173l-77 128 1049 806h160l1453-4717h26l3200 10535h365z\"/><path id=\"DejaVuSans-58\" transform=\"scale(.015625)\" d=\"m403 4666h678l1160-1735 1165 1735h678l-1500-2241 1600-2425h-678l-1312 1984-1322-1984h-681l1665 2491-1453 2175z\"/></defs><use transform=\"translate(0 17.094) scale(.56391)\" xlink:href=\"#STIXSizeOneSym-Regular-221a\"/><use transform=\"translate(72.088 .84375)\" xlink:href=\"#DejaVuSans-58\"/><path d=\"m59.588 97.5v6.25h93.506v-6.25h-93.506z\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(165.19 102.68) scale(.13 -.13)\" fill=\"#ffffff\"><use transform=\"translate(0 17.094) scale(.56391)\" xlink:href=\"#STIXSizeOneSym-Regular-221a\"/><use transform=\"translate(72.088 .84375)\" xlink:href=\"#DejaVuSans-58\"/><path d=\"m59.588 97.5v6.25h93.506v-6.25h-93.506z\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(215.79 109.48) scale(.08 -.08)\"><use transform=\"translate(0 .3125)\" xlink:href=\"#DejaVuSans-2212\"/><use transform=\"translate(83.789 .3125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(213.62 97.303) scale(.13 -.13)\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(255.22 55.469) scale(.13 -.13)\" fill=\"#ffffff\"><use xlink:href=\"#DejaVuSans-30\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(255.22 101.82) scale(.13 -.13)\" fill=\"#ffffff\"><use xlink:href=\"#DejaVuSans-31\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(262.65 78.646) scale(.13 -.13)\" fill=\"#ffffff\"><defs><path id=\"DejaVuSans-45\" transform=\"scale(.015625)\" d=\"m628 4666h2950v-532h-2319v-1381h2222v-531h-2222v-1691h2375v-531h-3006v4666z\"/><path id=\"DejaVuSans-63\" transform=\"scale(.015625)\" d=\"m3122 3366v-538q-244 135-489 202t-495 67q-560 0-870-355-309-354-309-995t309-996q310-354 870-354 250 0 495 67t489 202v-532q-241-112-499-168-257-57-548-57-791 0-1257 497-465 497-465 1341 0 856 470 1346 471 491 1290 491 265 0 518-55 253-54 491-163z\"/><path id=\"DejaVuSans-72\" transform=\"scale(.015625)\" d=\"m2631 2963q-97 56-211 82-114 27-251 27-488 0-749-317t-261-911v-1844h-578v3500h578v-544q182 319 472 473 291 155 707 155 59 0 131-8 72-7 159-23l3-590z\"/></defs><use xlink:href=\"#DejaVuSans-45\"/><use x=\"63.183594\" xlink:href=\"#DejaVuSans-63\"/><use x=\"118.164062\" xlink:href=\"#DejaVuSans-72\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(308.5 63.128) scale(.08 -.08)\"><use transform=\"translate(0 .3125)\" xlink:href=\"#DejaVuSans-2212\"/><use transform=\"translate(83.789 .3125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(306.33 50.949) scale(.13 -.13)\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(350.6 56.328) scale(.13 -.13)\" fill=\"#ffffff\"><use transform=\"translate(0 17.094) scale(.56391)\" xlink:href=\"#STIXSizeOneSym-Regular-221a\"/><use transform=\"translate(72.088 .84375)\" xlink:href=\"#DejaVuSans-58\"/><path d=\"m59.588 97.5v6.25h93.506v-6.25h-93.506z\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(401.21 63.128) scale(.08 -.08)\"><use transform=\"translate(0 .3125)\" xlink:href=\"#DejaVuSans-2212\"/><use transform=\"translate(83.789 .3125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(399.04 50.949) scale(.13 -.13)\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(442.56 63.128) scale(.08 -.08)\"><defs><path id=\"DejaVuSans-Oblique-3b8\" transform=\"scale(.015625)\" d=\"m2913 2219h-1988q-134-935 3-1331 172-488 638-488 468 0 825 491 312 431 522 1328zm96 531q85 888-25 1200-171 494-631 494-478 0-828-488-275-393-491-1206h1975zm-565 2163q750 0 1050-663 300-659 72-1828-225-1166-785-1828-556-666-1306-666-753 0-1050 666-297 662-72 1828 228 1169 781 1828 557 663 1310 663z\"/><path id=\"DejaVuSans-2b\" transform=\"scale(.015625)\" d=\"m2944 4013v-1741h1740v-531h-1740v-1741h-525v1741h-1741v531h1741v1741h525z\"/></defs><use transform=\"translate(0 .23438)\" xlink:href=\"#DejaVuSans-Oblique-3b8\"/><use transform=\"translate(61.182 .23438)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(92.969 .23438)\" xlink:href=\"#DejaVuSans-2b\"/><use transform=\"translate(176.76 .23438)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(208.54 .23438)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(445.39 50.949) scale(.13 -.13)\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(489.66 56.328) scale(.13 -.13)\" fill=\"#ffffff\"><use transform=\"translate(0 17.094) scale(.56391)\" xlink:href=\"#STIXSizeOneSym-Regular-221a\"/><use transform=\"translate(72.088 .84375)\" xlink:href=\"#DejaVuSans-58\"/><path d=\"m59.588 97.5v6.25h93.506v-6.25h-93.506z\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(541.07 63.128) scale(.08 -.08)\"><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-33\"/><use transform=\"translate(63.623 .78125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g></g><g clip-path=\"url(#f258eb544ed)\"><g transform=\"translate(538.1 50.949) scale(.13 -.13)\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-52\"/><use transform=\"translate(70.439 -16.312) scale(.7)\" xlink:href=\"#DejaVuSans-5a\"/></g></g><defs><clipPath id=\"f258eb544ed\"><rect x=\"7.2\" y=\"14.798\" width=\"569.42\" height=\"111.25\"/></clipPath></defs></svg>"
|
||
],
|
||
"text/plain": [
|
||
"<Figure size 1027.1x200.667 with 1 Axes>"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n",
|
||
"\n",
|
||
"target = backend.target\n",
|
||
"pm = generate_preset_pass_manager(target=target, optimization_level=3)\n",
|
||
"\n",
|
||
"chsh_isa_circuit = pm.run(chsh_circuit)\n",
|
||
"chsh_isa_circuit.draw(output=\"mpl\", idle_wires=False, style=\"iqp\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "718759d4-f1d8-45c3-9142-c8404059a892",
|
||
"metadata": {},
|
||
"source": [
|
||
"### ISA Observables"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "76b721cc-7f45-4195-ae61-53d29e2bf8d4",
|
||
"metadata": {},
|
||
"source": [
|
||
"Similarly, we need to transform the observables to make it backend compatible before running jobs with [`Runtime Estimator V2`](https://docs.quantum.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2#run). We can perform the transformation using the `apply_layout` the method of `SparsePauliOp` object."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "a787d6f9-5df4-4e0b-b2f0-07948b882a94",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"isa_observable1 = observable1.apply_layout(layout=chsh_isa_circuit.layout)\n",
|
||
"isa_observable2 = observable2.apply_layout(layout=chsh_isa_circuit.layout)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "b7194399",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Step 3: Execute using Qiskit primitives\n",
|
||
"\n",
|
||
"In order to execute the entire experiment in one call to the [`Estimator`](https://docs.quantum-computing.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "2d8ad9e1",
|
||
"metadata": {},
|
||
"source": [
|
||
"We can create a [Qiskit Runtime `Estimator`](https://docs.quantum.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.EstimatorV2) primitive to compute our expectation values. The `EstimatorV2.run()` method takes an iterable of `primitive unified blocs (PUBs)`. Each PUB is an iterable in the format `(circuit, observables, parameter_values: Optional, precision: Optional)`."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "e73db51f",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# To run on a local simulator:\n",
|
||
"# Use the StatevectorEstimator from qiskit.primitives instead.\n",
|
||
"\n",
|
||
"estimator = Estimator(mode=backend)\n",
|
||
"\n",
|
||
"pub = (\n",
|
||
" chsh_isa_circuit, # ISA circuit\n",
|
||
" [[isa_observable1], [isa_observable2]], # ISA Observables\n",
|
||
" individual_phases, # Parameter values\n",
|
||
")\n",
|
||
"\n",
|
||
"job_result = estimator.run(pubs=[pub]).result()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "ace7dc90",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Step 4: Post-process, return result in classical format\n",
|
||
"\n",
|
||
"The estimator returns expectation values for both of the observables, $\\langle ZZ \\rangle - \\langle ZX \\rangle + \\langle XZ \\rangle + \\langle XX \\rangle$ and $\\langle ZZ \\rangle + \\langle ZX \\rangle - \\langle XZ \\rangle + \\langle XX \\rangle$."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "947fc660-073b-4dee-b347-358fd3e52ea2",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"chsh1_est = job_result[0].data.evs[0]\n",
|
||
"chsh2_est = job_result[0].data.evs[1]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "f6267448",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/svg+xml": [
|
||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg width=\"607.82pt\" height=\"377.4pt\" version=\"1.1\" viewBox=\"0 0 607.82 377.4\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><defs><style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style></defs><path d=\"m0 377.4h607.82v-377.4h-607.82z\" fill=\"#ffffff\"/><path d=\"m42.62 339.84h558v-332.64h-558z\" fill=\"#ffffff\"/><defs><path id=\"60c9fe35c07\" d=\"m67.984-354.38v43.889h25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364v-43.889h-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364z\" stroke=\"#999999\" stroke-opacity=\".7\"/></defs><g clip-path=\"url(#51bd4842319)\"><use y=\"377.39625\" fill=\"#999999\" fill-opacity=\".7\" stroke=\"#999999\" stroke-opacity=\".7\" xlink:href=\"#60c9fe35c07\"/></g><defs><path id=\"83b88d64fb5\" d=\"m67.984-54.686v-43.889h25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364 25.364v43.889h-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364-25.364z\" stroke=\"#999999\" stroke-opacity=\".7\"/></defs><g clip-path=\"url(#51bd4842319)\"><use y=\"377.39625\" fill=\"#999999\" fill-opacity=\".7\" stroke=\"#999999\" stroke-opacity=\".7\" xlink:href=\"#83b88d64fb5\"/></g><defs><path id=\"142181804ba\" d=\"m0 0v3.5\" stroke=\"#343a3f\" stroke-width=\".8\"/></defs><use x=\"67.983949\" y=\"339.84\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#142181804ba\"/><g transform=\"translate(60.184 354.44) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-30\" transform=\"scale(.015625)\" d=\"m2034 4250q-487 0-733-480-245-479-245-1442 0-959 245-1439 246-480 733-480 491 0 736 480 246 480 246 1439 0 963-246 1442-245 480-736 480zm0 500q785 0 1199-621 414-620 414-1801 0-1178-414-1799-414-620-1199-620-784 0-1198 620-414 621-414 1799 0 1181 414 1801 414 621 1198 621z\"/><path id=\"DejaVuSans-Oblique-3c0\" transform=\"scale(.015625)\" d=\"m584 3500h3354l-113-575h-441l-418-2150q-44-225 15-325 57-97 228-97 47 0 116 10 72 6 94 9l-81-416q-116-40-235-59-122-19-237-19-375 0-478 203-104 207 3 757l406 2087h-1291l-568-2925h-588l569 2925h-447l112 575z\"/></defs><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-30\"/><use transform=\"translate(63.623 .78125)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(95.41 .78125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g><use x=\"194.802131\" y=\"339.84\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#142181804ba\"/><g transform=\"translate(182.2 354.44) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-2e\" transform=\"scale(.015625)\" d=\"m684 794h660v-794h-660v794z\"/><path id=\"DejaVuSans-35\" transform=\"scale(.015625)\" d=\"m691 4666h2478v-532h-1900v-1143q137 47 274 70 138 23 276 23 781 0 1237-428 457-428 457-1159 0-753-469-1171-469-417-1322-417-294 0-599 50-304 50-629 150v635q281-153 581-228t634-75q541 0 856 284 316 284 316 772 0 487-316 771-315 285-856 285-253 0-505-56-251-56-513-175v2344z\"/></defs><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-30\"/><use transform=\"translate(63.623 .78125)\" xlink:href=\"#DejaVuSans-2e\"/><use transform=\"translate(95.41 .78125)\" xlink:href=\"#DejaVuSans-35\"/><use transform=\"translate(159.03 .78125)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(190.82 .78125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g><use x=\"321.620312\" y=\"339.84\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#142181804ba\"/><g transform=\"translate(313.82 354.44) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-31\" transform=\"scale(.015625)\" d=\"m794 531h1031v3560l-1122-225v575l1116 225h631v-4135h1031v-531h-2687v531z\"/></defs><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-31\"/><use transform=\"translate(63.623 .09375)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(95.41 .09375)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g><use x=\"448.438494\" y=\"339.84\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#142181804ba\"/><g transform=\"translate(435.84 354.44) scale(.1 -.1)\" fill=\"#343a3f\"><use transform=\"translate(0 .09375)\" xlink:href=\"#DejaVuSans-31\"/><use transform=\"translate(63.623 .09375)\" xlink:href=\"#DejaVuSans-2e\"/><use transform=\"translate(95.41 .09375)\" xlink:href=\"#DejaVuSans-35\"/><use transform=\"translate(159.03 .09375)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(190.82 .09375)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g><use x=\"575.256676\" y=\"339.84\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#142181804ba\"/><g transform=\"translate(567.46 354.44) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-32\" transform=\"scale(.015625)\" d=\"m1228 531h2203v-531h-2962v531q359 372 979 998 621 627 780 809 303 340 423 576 121 236 121 464 0 372-261 606-261 235-680 235-297 0-627-103-329-103-704-313v638q381 153 712 231 332 78 607 78 725 0 1156-363 431-362 431-968 0-288-108-546-107-257-392-607-78-91-497-524-418-433-1181-1211z\"/></defs><use transform=\"translate(0 .78125)\" xlink:href=\"#DejaVuSans-32\"/><use transform=\"translate(63.623 .78125)\" xlink:href=\"#DejaVuSans-20\"/><use transform=\"translate(95.41 .78125)\" xlink:href=\"#DejaVuSans-Oblique-3c0\"/></g><g transform=\"translate(307.3 368.12) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-54\" transform=\"scale(.015625)\" d=\"m-19 4666h3947v-532h-1656v-4134h-634v4134h-1657v532z\"/><path id=\"DejaVuSans-68\" transform=\"scale(.015625)\" d=\"m3513 2113v-2113h-575v2094q0 497-194 743-194 247-581 247-466 0-735-297-269-296-269-809v-1978h-578v4863h578v-1907q207 316 486 472 280 156 646 156 603 0 912-373 310-373 310-1098z\"/><path id=\"DejaVuSans-65\" transform=\"scale(.015625)\" d=\"m3597 1894v-281h-2644q38-594 358-905t892-311q331 0 642 81t618 244v-544q-310-131-635-200t-659-69q-838 0-1327 487-489 488-489 1320 0 859 464 1363 464 505 1252 505 706 0 1117-455 411-454 411-1235zm-575 169q-6 471-264 752-258 282-683 282-481 0-770-272t-333-766l2050 4z\"/><path id=\"DejaVuSans-74\" transform=\"scale(.015625)\" d=\"m1172 4494v-994h1184v-447h-1184v-1900q0-428 117-550t477-122h590v-481h-590q-666 0-919 248-253 249-253 905v1900h-422v447h422v994h578z\"/><path id=\"DejaVuSans-61\" transform=\"scale(.015625)\" d=\"m2194 1759q-697 0-966-159t-269-544q0-306 202-486 202-179 548-179 479 0 768 339t289 901v128h-572zm1147 238v-1997h-575v531q-197-318-491-470t-719-152q-537 0-855 302-317 302-317 808 0 590 395 890 396 300 1180 300h807v57q0 397-261 614t-733 217q-300 0-585-72-284-72-546-216v532q315 122 612 182 297 61 578 61 760 0 1135-394 375-393 375-1193z\"/></defs><use xlink:href=\"#DejaVuSans-54\"/><use x=\"61.083984\" xlink:href=\"#DejaVuSans-68\"/><use x=\"124.462891\" xlink:href=\"#DejaVuSans-65\"/><use x=\"185.986328\" xlink:href=\"#DejaVuSans-74\"/><use x=\"225.195312\" xlink:href=\"#DejaVuSans-61\"/></g><defs><path id=\"8fc66b67bd0\" d=\"m0 0h-3.5\" stroke=\"#343a3f\" stroke-width=\".8\"/></defs><use x=\"42.620312\" y=\"331.800239\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(20.878 335.6) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-2212\" transform=\"scale(.015625)\" d=\"m678 2272h4006v-531h-4006v531z\"/><path id=\"DejaVuSans-33\" transform=\"scale(.015625)\" d=\"m2597 2516q453-97 707-404 255-306 255-756 0-690-475-1069-475-378-1350-378-293 0-604 58t-642 174v609q262-153 574-231 313-78 654-78 593 0 904 234t311 681q0 413-289 645-289 233-804 233h-544v519h569q465 0 712 186t247 536q0 359-255 551-254 193-729 193-260 0-557-57-297-56-653-174v562q360 100 674 150t592 50q719 0 1137-327 419-326 419-882 0-388-222-655t-631-370z\"/></defs><use xlink:href=\"#DejaVuSans-2212\"/><use x=\"83.789062\" xlink:href=\"#DejaVuSans-33\"/></g><use x=\"42.620312\" y=\"278.821464\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(20.878 282.62) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-2212\"/><use x=\"83.789062\" xlink:href=\"#DejaVuSans-32\"/></g><use x=\"42.620312\" y=\"225.84269\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(20.878 229.64) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-2212\"/><use x=\"83.789062\" xlink:href=\"#DejaVuSans-31\"/></g><use x=\"42.620312\" y=\"172.863916\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(29.258 176.66) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-30\"/></g><use x=\"42.620312\" y=\"119.885142\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(29.258 123.68) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-31\"/></g><use x=\"42.620312\" y=\"66.906368\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(29.258 70.706) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-32\"/></g><use x=\"42.620312\" y=\"13.927594\" fill=\"#343a3f\" stroke=\"#343a3f\" stroke-width=\".8\" xlink:href=\"#8fc66b67bd0\"/><g transform=\"translate(29.258 17.727) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-33\"/></g><g transform=\"translate(14.798 208.19) rotate(-90) scale(.1 -.1)\" fill=\"#343a3f\"><defs><path id=\"DejaVuSans-43\" transform=\"scale(.015625)\" d=\"m4122 4306v-665q-319 297-680 443-361 147-767 147-800 0-1225-489t-425-1414q0-922 425-1411t1225-489q406 0 767 147t680 444v-660q-331-225-702-338-370-112-782-112-1060 0-1670 648-609 649-609 1771 0 1125 609 1773 610 649 1670 649 418 0 788-111 371-111 696-333z\"/><path id=\"DejaVuSans-48\" transform=\"scale(.015625)\" d=\"m628 4666h631v-1913h2294v1913h631v-4666h-631v2222h-2294v-2222h-631v4666z\"/><path id=\"DejaVuSans-53\" transform=\"scale(.015625)\" d=\"m3425 4513v-616q-359 172-678 256-319 85-616 85-515 0-795-200t-280-569q0-310 186-468 186-157 705-254l381-78q706-135 1042-474t336-907q0-679-455-1029-454-350-1332-350-331 0-705 75-373 75-773 222v650q384-215 753-325 369-109 725-109 540 0 834 212 294 213 294 607 0 343-211 537t-692 291l-385 75q-706 140-1022 440-315 300-315 835 0 619 436 975t1201 356q329 0 669-60 341-59 697-177z\"/><path id=\"DejaVuSans-77\" transform=\"scale(.015625)\" d=\"m269 3500h575l719-2731 715 2731h678l719-2731 716 2731h575l-916-3500h-678l-753 2869-756-2869h-679l-915 3500z\"/><path id=\"DejaVuSans-69\" transform=\"scale(.015625)\" d=\"m603 3500h575v-3500h-575v3500zm0 1363h575v-729h-575v729z\"/><path id=\"DejaVuSans-6e\" transform=\"scale(.015625)\" d=\"m3513 2113v-2113h-575v2094q0 497-194 743-194 247-581 247-466 0-735-297-269-296-269-809v-1978h-578v3500h578v-544q207 316 486 472 280 156 646 156 603 0 912-373 310-373 310-1098z\"/><path id=\"DejaVuSans-73\" transform=\"scale(.015625)\" d=\"m2834 3397v-544q-243 125-506 187-262 63-544 63-428 0-642-131t-214-394q0-200 153-314t616-217l197-44q612-131 870-370t258-667q0-488-386-773-386-284-1061-284-281 0-586 55t-642 164v594q319-166 628-249 309-82 613-82 406 0 624 139 219 139 219 392 0 234-158 359-157 125-692 241l-200 47q-534 112-772 345-237 233-237 639 0 494 350 762 350 269 994 269 318 0 599-47 282-46 519-140z\"/></defs><use xlink:href=\"#DejaVuSans-43\"/><use x=\"69.824219\" xlink:href=\"#DejaVuSans-48\"/><use x=\"145.019531\" xlink:href=\"#DejaVuSans-53\"/><use x=\"208.496094\" xlink:href=\"#DejaVuSans-48\"/><use x=\"283.691406\" xlink:href=\"#DejaVuSans-20\"/><use x=\"315.478516\" xlink:href=\"#DejaVuSans-77\"/><use x=\"397.265625\" xlink:href=\"#DejaVuSans-69\"/><use x=\"425.048828\" xlink:href=\"#DejaVuSans-74\"/><use x=\"464.257812\" xlink:href=\"#DejaVuSans-6e\"/><use x=\"527.636719\" xlink:href=\"#DejaVuSans-65\"/><use x=\"589.160156\" xlink:href=\"#DejaVuSans-73\"/><use x=\"641.259766\" xlink:href=\"#DejaVuSans-73\"/></g><path d=\"m42.62 66.906h558\" clip-path=\"url(#51bd4842319)\" fill=\"none\" stroke=\"#e6e6e6\" stroke-dasharray=\"3.7,1.6\"/><path d=\"m42.62 278.82h558\" clip-path=\"url(#51bd4842319)\" fill=\"none\" stroke=\"#e6e6e6\" stroke-dasharray=\"3.7,1.6\"/><path d=\"m42.62 23.017h558\" clip-path=\"url(#51bd4842319)\" fill=\"none\" stroke=\"#e6e6e6\" stroke-dasharray=\"6.4,1.6,1,1.6\"/><path d=\"m42.62 322.71h558\" clip-path=\"url(#51bd4842319)\" fill=\"none\" stroke=\"#e6e6e6\" stroke-dasharray=\"6.4,1.6,1,1.6\"/><path d=\"m42.62 339.84v-332.64\" fill=\"none\" stroke=\"#343a3f\" stroke-linecap=\"square\" stroke-width=\".8\"/><path d=\"m42.62 339.84h558\" fill=\"none\" stroke=\"#343a3f\" stroke-linecap=\"square\" stroke-width=\".8\"/><path d=\"m67.984 65.485 25.364 38.408 25.364 46.91 25.364 45.488 25.364 45.352 25.364 36.987 25.364 27.282 25.364 18.808 25.364-1.8862 25.364-15.746 25.364-26.435 25.364-37.752 25.364-45.899 25.364-49.48 25.364-46.883 25.364-35.456 25.364-30.453 25.364-10.087 25.364-1.0388 25.364 13.586 25.364 30.645\" clip-path=\"url(#51bd4842319)\" fill=\"none\" stroke=\"#1192e8\" stroke-linecap=\"square\"/><defs><path id=\"29cc8734fca\" d=\"m0 3c0.79561 0 1.5587-0.3161 2.1213-0.87868 0.56258-0.56258 0.87868-1.3257 0.87868-2.1213s-0.3161-1.5587-0.87868-2.1213c-0.56258-0.56258-1.3257-0.87868-2.1213-0.87868s-1.5587 0.3161-2.1213 0.87868c-0.56258 0.56258-0.87868 1.3257-0.87868 2.1213s0.3161 1.5587 0.87868 2.1213c0.56258 0.56258 1.3257 0.87868 2.1213 0.87868z\" stroke=\"#1192e8\"/></defs><g clip-path=\"url(#51bd4842319)\" fill=\"#1192e8\" stroke=\"#1192e8\"><use x=\"67.983949\" y=\"65.484853\" xlink:href=\"#29cc8734fca\"/><use x=\"93.347585\" y=\"103.893097\" xlink:href=\"#29cc8734fca\"/><use x=\"118.711222\" y=\"150.803095\" xlink:href=\"#29cc8734fca\"/><use x=\"144.074858\" y=\"196.291578\" xlink:href=\"#29cc8734fca\"/><use x=\"169.438494\" y=\"241.643377\" xlink:href=\"#29cc8734fca\"/><use x=\"194.802131\" y=\"278.630107\" xlink:href=\"#29cc8734fca\"/><use x=\"220.165767\" y=\"305.912262\" xlink:href=\"#29cc8734fca\"/><use x=\"245.529403\" y=\"324.72\" xlink:href=\"#29cc8734fca\"/><use x=\"270.89304\" y=\"322.833759\" xlink:href=\"#29cc8734fca\"/><use x=\"296.256676\" y=\"307.087745\" xlink:href=\"#29cc8734fca\"/><use x=\"321.620312\" y=\"280.653032\" xlink:href=\"#29cc8734fca\"/><use x=\"346.983949\" y=\"242.900871\" xlink:href=\"#29cc8734fca\"/><use x=\"372.347585\" y=\"197.002336\" xlink:href=\"#29cc8734fca\"/><use x=\"397.711222\" y=\"147.522676\" xlink:href=\"#29cc8734fca\"/><use x=\"423.074858\" y=\"100.640014\" xlink:href=\"#29cc8734fca\"/><use x=\"448.438494\" y=\"65.184148\" xlink:href=\"#29cc8734fca\"/><use x=\"473.802131\" y=\"34.73092\" xlink:href=\"#29cc8734fca\"/><use x=\"499.165767\" y=\"24.64363\" xlink:href=\"#29cc8734fca\"/><use x=\"524.529403\" y=\"23.604831\" xlink:href=\"#29cc8734fca\"/><use x=\"549.89304\" y=\"37.191235\" xlink:href=\"#29cc8734fca\"/><use x=\"575.256676\" y=\"67.83582\" xlink:href=\"#29cc8734fca\"/></g><path d=\"m67.984 65.649 25.364-27.528 25.364-14.16 25.364-1.6402 25.364 16.593 25.364 24.521 25.364 39.966 25.364 46.145 25.364 48.031 25.364 46.746 25.364 36.276 25.364 26.325 25.364 15.664 25.364 1.4762 25.364-16.429 25.364-27.474 25.364-41.169 25.364-42.837 25.364-46.363 25.364-45.735 25.364-40.158\" clip-path=\"url(#51bd4842319)\" fill=\"none\" stroke=\"#6929c4\" stroke-linecap=\"square\"/><defs><path id=\"6deff4ac78c\" d=\"m0 3c0.79561 0 1.5587-0.3161 2.1213-0.87868 0.56258-0.56258 0.87868-1.3257 0.87868-2.1213s-0.3161-1.5587-0.87868-2.1213c-0.56258-0.56258-1.3257-0.87868-2.1213-0.87868s-1.5587 0.3161-2.1213 0.87868c-0.56258 0.56258-0.87868 1.3257-0.87868 2.1213s0.3161 1.5587 0.87868 2.1213c0.56258 0.56258 1.3257 0.87868 2.1213 0.87868z\" stroke=\"#6929c4\"/></defs><g clip-path=\"url(#51bd4842319)\" fill=\"#6929c4\" stroke=\"#6929c4\"><use x=\"67.983949\" y=\"65.648874\" xlink:href=\"#6deff4ac78c\"/><use x=\"93.347585\" y=\"38.120687\" xlink:href=\"#6deff4ac78c\"/><use x=\"118.711222\" y=\"23.96021\" xlink:href=\"#6deff4ac78c\"/><use x=\"144.074858\" y=\"22.32\" xlink:href=\"#6deff4ac78c\"/><use x=\"169.438494\" y=\"38.913455\" xlink:href=\"#6deff4ac78c\"/><use x=\"194.802131\" y=\"63.43459\" xlink:href=\"#6deff4ac78c\"/><use x=\"220.165767\" y=\"103.401034\" xlink:href=\"#6deff4ac78c\"/><use x=\"245.529403\" y=\"149.545601\" xlink:href=\"#6deff4ac78c\"/><use x=\"270.89304\" y=\"197.576409\" xlink:href=\"#6deff4ac78c\"/><use x=\"296.256676\" y=\"244.322387\" xlink:href=\"#6deff4ac78c\"/><use x=\"321.620312\" y=\"280.598358\" xlink:href=\"#6deff4ac78c\"/><use x=\"346.983949\" y=\"306.923724\" xlink:href=\"#6deff4ac78c\"/><use x=\"372.347585\" y=\"322.587727\" xlink:href=\"#6deff4ac78c\"/><use x=\"397.711222\" y=\"324.063916\" xlink:href=\"#6deff4ac78c\"/><use x=\"423.074858\" y=\"307.634482\" xlink:href=\"#6deff4ac78c\"/><use x=\"448.438494\" y=\"280.160969\" xlink:href=\"#6deff4ac78c\"/><use x=\"473.802131\" y=\"238.991705\" xlink:href=\"#6deff4ac78c\"/><use x=\"499.165767\" y=\"196.154894\" xlink:href=\"#6deff4ac78c\"/><use x=\"524.529403\" y=\"149.791633\" xlink:href=\"#6deff4ac78c\"/><use x=\"549.89304\" y=\"104.057118\" xlink:href=\"#6deff4ac78c\"/><use x=\"575.256676\" y=\"63.899317\" xlink:href=\"#6deff4ac78c\"/></g><path d=\"m524.89 189.7h70.734v-32.356h-70.734z\" fill=\"#ffffff\" opacity=\".8\" stroke=\"#cccccc\"/><path d=\"m528.89 165.44h10 10\" fill=\"none\" stroke=\"#1192e8\" stroke-linecap=\"square\"/><use x=\"538.885937\" y=\"165.440312\" fill=\"#1192e8\" stroke=\"#1192e8\" xlink:href=\"#29cc8734fca\"/><g transform=\"translate(556.89 168.94) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-43\"/><use x=\"69.824219\" xlink:href=\"#DejaVuSans-48\"/><use x=\"145.019531\" xlink:href=\"#DejaVuSans-53\"/><use x=\"208.496094\" xlink:href=\"#DejaVuSans-48\"/><use x=\"283.691406\" xlink:href=\"#DejaVuSans-31\"/></g><path d=\"m528.89 180.12h10 10\" fill=\"none\" stroke=\"#6929c4\" stroke-linecap=\"square\"/><use x=\"538.885937\" y=\"180.118437\" fill=\"#6929c4\" stroke=\"#6929c4\" xlink:href=\"#6deff4ac78c\"/><g transform=\"translate(556.89 183.62) scale(.1 -.1)\" fill=\"#343a3f\"><use xlink:href=\"#DejaVuSans-43\"/><use x=\"69.824219\" xlink:href=\"#DejaVuSans-48\"/><use x=\"145.019531\" xlink:href=\"#DejaVuSans-53\"/><use x=\"208.496094\" xlink:href=\"#DejaVuSans-48\"/><use x=\"283.691406\" xlink:href=\"#DejaVuSans-32\"/></g><defs><clipPath id=\"51bd4842319\"><rect x=\"42.62\" y=\"7.2\" width=\"558\" height=\"332.64\"/></clipPath></defs></svg>"
|
||
],
|
||
"text/plain": [
|
||
"<Figure size 1000x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"fig, ax = plt.subplots(figsize=(10, 6))\n",
|
||
"\n",
|
||
"# results from hardware\n",
|
||
"ax.plot(phases / np.pi, chsh1_est, \"o-\", label=\"CHSH1\", zorder=3)\n",
|
||
"ax.plot(phases / np.pi, chsh2_est, \"o-\", label=\"CHSH2\", zorder=3)\n",
|
||
"\n",
|
||
"# classical bound +-2\n",
|
||
"ax.axhline(y=2, color=\"0.9\", linestyle=\"--\")\n",
|
||
"ax.axhline(y=-2, color=\"0.9\", linestyle=\"--\")\n",
|
||
"\n",
|
||
"# quantum bound, +-2√2\n",
|
||
"ax.axhline(y=np.sqrt(2) * 2, color=\"0.9\", linestyle=\"-.\")\n",
|
||
"ax.axhline(y=-np.sqrt(2) * 2, color=\"0.9\", linestyle=\"-.\")\n",
|
||
"ax.fill_between(phases / np.pi, 2, 2 * np.sqrt(2), color=\"0.6\", alpha=0.7)\n",
|
||
"ax.fill_between(phases / np.pi, -2, -2 * np.sqrt(2), color=\"0.6\", alpha=0.7)\n",
|
||
"\n",
|
||
"# set x tick labels to the unit of pi\n",
|
||
"ax.xaxis.set_major_formatter(tck.FormatStrFormatter(\"%g $\\\\pi$\"))\n",
|
||
"ax.xaxis.set_major_locator(tck.MultipleLocator(base=0.5))\n",
|
||
"\n",
|
||
"# set labels, and legend\n",
|
||
"plt.xlabel(\"Theta\")\n",
|
||
"plt.ylabel(\"CHSH witness\")\n",
|
||
"plt.legend()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "63e63853",
|
||
"metadata": {},
|
||
"source": [
|
||
"In the figure, the lines and gray areas delimit the bounds; the outer-most (dash-dotted) lines delimit the quantum-bounds ($\\pm 2$), whereas the inner (dashed) lines delimit the classical bounds ($\\pm 2\\sqrt{2}$). You can see that there are regions where the CHSH witness quantities exceeds the classical bounds. Congratulations! You have successfully demonstrated the violation of CHSH inequality in a real quantum system!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "3eaa8f60",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"'0.25.0'"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import qiskit_ibm_runtime\n",
|
||
"\n",
|
||
"qiskit_ibm_runtime.version.get_version_info()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "eb75a5c8",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"'1.1.1'"
|
||
]
|
||
},
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import qiskit\n",
|
||
"\n",
|
||
"qiskit.version.get_version_info()"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"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"
|
||
},
|
||
"vscode": {
|
||
"interpreter": {
|
||
"hash": "1910f834ba40d1043b9ae723a4d216fb6c2faf55822807adca52e5ece8e3f1c8"
|
||
}
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|