{ "cells": [ { "cell_type": "markdown", "id": "9f55cc41-587f-4a0d-a25f-266b97c545f8", "metadata": {}, "source": [ "# 08 - Improving Variational Quantum Optimization using CVaR\n", "### Modified for use with Quantum Rings toolkit for Qiskit 2.x" ] }, { "cell_type": "code", "execution_count": 1, "id": "6c6754fc-c583-4cc2-a35a-0408c9eddf1f", "metadata": {}, "outputs": [], "source": [ "# This code is from the tutorial at:\n", "# https://qiskit-community.github.io/qiskit-optimization/tutorials/08_cvar_optimization.html\n", "# Note: binary_probabilities() is not supported in SamplerV2. See below for an example how to calculate this.\n", "\n", "# Modified for use with Quantum Rings SDK" ] }, { "cell_type": "code", "execution_count": 2, "id": "2202656e-a8ce-4248-988c-d76d3175aa00", "metadata": {}, "outputs": [], "source": [ "#\n", "# Setup your account\n", "# You can also save your account locally using the class method QrRuntimeService.save_account(...) and\n", "# invoke the QrRuntimeService class constructor without any arguments.\n", "#\n", "\n", "import os\n", "my_token = os.environ[\"QR_TOKEN\"]\n", "my_name = os.environ[\"QR_ACCOUNT\"]\n", "\n", "#\n", "# Set the backend of your choice, depending upon the task and your hardware configuration.\n", "# See SDK documentation for additional help.\n", "#\n", "\n", "my_backend = \"scarlet_quantum_rings\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "5ddbc6c1-f30b-449b-a000-0ec7a38520ad", "metadata": {}, "outputs": [], "source": [ "# Import from Quantum Rings Toolkit\n", "from quantumrings.toolkit.qiskit import QrRuntimeService\n", "\n", "# Acquire Quantum Rings backend\n", "qr_services = QrRuntimeService(name = my_name, token = my_token)\n", "qr_backend = qr_services.backend(name = my_backend, precision = \"single\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "de9d8659-2484-46b2-94a3-00781ab79b9b", "metadata": {}, "outputs": [], "source": [ "from qiskit.circuit.library import RealAmplitudes\n", "from qiskit_algorithms.optimizers import COBYLA\n", "from qiskit_algorithms import NumPyMinimumEigensolver, SamplingVQE\n", "from qiskit_algorithms.utils import algorithm_globals\n", "\n", "# Switch to Quantum Rings's Sampler\n", "#from qiskit.primitives import Sampler\n", "from quantumrings.toolkit.qiskit import QrSamplerV2 as Sampler\n", "\n", "from qiskit_optimization.converters import LinearEqualityToPenalty\n", "from qiskit_optimization.algorithms import MinimumEigenOptimizer\n", "from qiskit_optimization.translators import from_docplex_mp\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from docplex.mp.model import Model" ] }, { "cell_type": "code", "execution_count": 5, "id": "bca3244a-cf89-4a20-a6cb-37e9e45e5c9a", "metadata": {}, "outputs": [], "source": [ "algorithm_globals.random_seed = 123456" ] }, { "cell_type": "code", "execution_count": 6, "id": "18681a92-3be4-40cc-a862-4278e027cf96", "metadata": {}, "outputs": [], "source": [ "# prepare problem instance\n", "n = 6 # number of assets\n", "q = 0.5 # risk factor\n", "budget = n // 2 # budget\n", "penalty = 2 * n # scaling of penalty term" ] }, { "cell_type": "code", "execution_count": 7, "id": "b0fbb14c-974b-496d-ad79-40ea5b2e7e09", "metadata": {}, "outputs": [], "source": [ "# instance from [1]\n", "mu = np.array([0.7313, 0.9893, 0.2725, 0.8750, 0.7667, 0.3622])\n", "sigma = np.array(\n", " [\n", " [0.7312, -0.6233, 0.4689, -0.5452, -0.0082, -0.3809],\n", " [-0.6233, 2.4732, -0.7538, 2.4659, -0.0733, 0.8945],\n", " [0.4689, -0.7538, 1.1543, -1.4095, 0.0007, -0.4301],\n", " [-0.5452, 2.4659, -1.4095, 3.5067, 0.2012, 1.0922],\n", " [-0.0082, -0.0733, 0.0007, 0.2012, 0.6231, 0.1509],\n", " [-0.3809, 0.8945, -0.4301, 1.0922, 0.1509, 0.8992],\n", " ]\n", ")\n", "\n", "# or create random instance\n", "# mu, sigma = portfolio.random_model(n, seed=123) # expected returns and covariance matrix" ] }, { "cell_type": "code", "execution_count": 8, "id": "4428131e-ff2f-47ca-a218-ee518601ca9b", "metadata": {}, "outputs": [], "source": [ "# create docplex model\n", "mdl = Model(\"portfolio_optimization\")\n", "x = mdl.binary_var_list(range(n), name=\"x\")\n", "objective = mdl.sum([mu[i] * x[i] for i in range(n)])\n", "objective -= q * mdl.sum([sigma[i, j] * x[i] * x[j] for i in range(n) for j in range(n)])\n", "mdl.maximize(objective)\n", "mdl.add_constraint(mdl.sum(x[i] for i in range(n)) == budget)\n", "\n", "# case to\n", "qp = from_docplex_mp(mdl)" ] }, { "cell_type": "code", "execution_count": 9, "id": "52753707-332d-44f2-89cd-ac1d08aba801", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "objective function value: 1.27835\n", "variable values: x_0=1.0, x_1=1.0, x_2=0.0, x_3=0.0, x_4=1.0, x_5=0.0\n", "status: SUCCESS\n" ] } ], "source": [ "# solve classically as reference\n", "opt_result = MinimumEigenOptimizer(NumPyMinimumEigensolver()).solve(qp)\n", "print(opt_result.prettyprint())" ] }, { "cell_type": "code", "execution_count": 10, "id": "3c87457a-a280-4dc6-99ac-313bcd46b382", "metadata": {}, "outputs": [], "source": [ "# we convert the problem to an unconstrained problem for further analysis,\n", "# otherwise this would not be necessary as the MinimumEigenSolver would do this\n", "# translation automatically\n", "linear2penalty = LinearEqualityToPenalty(penalty=penalty)\n", "qp = linear2penalty.convert(qp)\n", "_, offset = qp.to_ising()" ] }, { "cell_type": "markdown", "id": "14a35478-4043-4784-ab4f-a21ddf073ec2", "metadata": {}, "source": [ "# Minimum Eigen Optimizer using SamplingVQE" ] }, { "cell_type": "code", "execution_count": 11, "id": "f778c4b4-dc47-425f-9115-1e59d694edf8", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\vkasi\\AppData\\Local\\Temp\\ipykernel_30516\\322616792.py:6: DeprecationWarning: The class ``qiskit.circuit.library.n_local.real_amplitudes.RealAmplitudes`` is deprecated as of Qiskit 2.1. It will be removed in Qiskit 3.0. Use the function qiskit.circuit.library.real_amplitudes instead.\n", " ansatz = RealAmplitudes(n, reps=1)\n" ] } ], "source": [ "# set classical optimizer\n", "maxiter = 100\n", "optimizer = COBYLA(maxiter=maxiter)\n", "\n", "# set variational ansatz\n", "ansatz = RealAmplitudes(n, reps=1)\n", "m = ansatz.num_parameters\n", "\n", "# set sampler\n", "sampler = Sampler(backend = qr_backend)\n", "\n", "# run variational optimization for different values of alpha\n", "alphas = [1.0, 0.50, 0.25] # confidence levels to be evaluated" ] }, { "cell_type": "code", "execution_count": 12, "id": "877552a1-e65d-4b65-a874-73983f850601", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Count of raw samples: 8\n", "Count of samples: 8\n", "\n", "Count of eigenstate binary probs: 15\n", "alpha = 1.0:\n", "objective function value: 0.9716499999999968\n", "variable values: x_0=1.0, x_1=0.0, x_2=0.0, x_3=0.0, x_4=1.0, x_5=1.0\n", "status: SUCCESS\n", "\n", "Count of raw samples: 29\n", "Count of samples: 29\n", "\n", "Count of eigenstate binary probs: 36\n", "alpha = 0.5:\n", "objective function value: 1.2783500000000174\n", "variable values: x_0=1.0, x_1=1.0, x_2=0.0, x_3=0.0, x_4=1.0, x_5=0.0\n", "status: SUCCESS\n", "\n", "Count of raw samples: 23\n", "Count of samples: 23\n", "\n", "Count of eigenstate binary probs: 30\n", "alpha = 0.25:\n", "objective function value: 1.2783500000000174\n", "variable values: x_0=1.0, x_1=1.0, x_2=0.0, x_3=0.0, x_4=1.0, x_5=0.0\n", "status: SUCCESS\n", "\n" ] } ], "source": [ "from qiskit.result import QuasiDistribution\n", "\n", "# dictionaries to store optimization progress and results\n", "objectives = {alpha: [] for alpha in alphas} # set of tested objective functions w.r.t. alpha\n", "results = {} # results of minimum eigensolver w.r.t alpha\n", "\n", "# callback to store intermediate results\n", "def callback(i, params, obj, stddev, alpha):\n", " # we translate the objective from the internal Ising representation\n", " # to the original optimization problem\n", " objectives[alpha].append(np.real_if_close(-(obj + offset)))\n", "\n", "\n", "# loop over all given alpha values\n", "for alpha in alphas:\n", "\n", " # initialize SamplingVQE using CVaR\n", " vqe = SamplingVQE(\n", " sampler=sampler,\n", " ansatz=ansatz,\n", " optimizer=optimizer,\n", " aggregation=alpha,\n", " callback=lambda i, params, obj, stddev: callback(i, params, obj, stddev, alpha),\n", " )\n", "\n", " # initialize optimization algorithm based on CVaR-SamplingVQE\n", " opt_alg = MinimumEigenOptimizer(vqe)\n", "\n", " # solve problem\n", " results[alpha] = opt_alg.solve(qp)\n", " \n", " print(f\"Count of raw samples: {len(results[alpha].raw_samples)}\")\n", " print(f\"Count of samples: {len(results[alpha].samples)}\")\n", " print(type(results[alpha].min_eigen_solver_result))\n", "\n", " counts = results[alpha].min_eigen_solver_result.eigenstate\n", " shots = 0\n", " for key, val in counts.items():\n", " shots += val\n", " quasi_dist = QuasiDistribution({outcome: freq / shots for outcome, freq in counts.items()})\n", " print(f\"Count of eigenstate binary probs: {len(quasi_dist.binary_probabilities().values())}\")\n", " \n", " #print(f\"Count of eigenstate binary probs: {len(results[alpha].min_eigen_solver_result.eigenstate.binary_probabilities().values())}\")\n", " \n", " # print results\n", " print(\"alpha = {}:\".format(alpha))\n", " print(results[alpha].prettyprint())\n", " print()" ] }, { "cell_type": "code", "execution_count": 13, "id": "9f465f68-674f-4709-b0f9-5e8dcb868099", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3gAAAHQCAYAAADzvsjkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAwvRJREFUeJzs3Qd0VOXWBuA3vSeEVEiAUELvvUoTUETsXRF7uSpX0d9er8q13qtiQ68Vu1gpYqFX6b1D6IEkhPSe/Gt/Z87kTDJJJpOZZDJ5n7VmzZl+Mmlnz97f3h5lZWVlICIiIiIiokbPs6F3gIiIiIiIiByDAR4REREREZGbYIBHRERERETkJhjgERERERERuQkGeERERERERG6CAR4REREREZGbYIBHRERERETkJhjgERERERERuQkGeERERERERG6CAR4REREREZGbYIAH4Pjx4/jvf/+L8ePHo3Xr1vD19UVsbCwuu+wyrF27tqF3j4iIiIiIyCYeZWVlZWjiHnnkEbz00kto3749Ro0ahaioKOzbtw8//fQT5O358ssvcdVVVzX0bhIREREREVWLAR6AH374ARERERg5cqTF9cuXL8fYsWMRHByMkydPws/Pr8H2kYiIiIiIqCYM8GowYcIE/P7771i3bh369+/f0LtDRERERERUJe+qbyLh4+Ojzr29bXurSktLceLECYSEhMDDw8PJe0dERERERK6qrKwMWVlZaNmyJTw966f9CTN41Thy5Ag6duyI5s2b4+jRo/Dy8qp0n4KCAnUyNmzp2rVrPe8pERERERG5Kokl4uPj6+W1mMGrQlFREW644QYVvEkDFmvBnZgxYwaeffZZq9/E0NDQethTIiIiIiJyRZmZmWjVqpWq7qsvzOBVUWYpwZ10z7ztttswa9asKu9bMYOnfxMzMjIY4BERERERNWGZmZkICwur19iAGTwrwd3NN9+sgrvrr78e7733XrX3l86a7K5JRERERESugAFeheDupptuwmeffYZrrrkGn3zySb0thiQiIiIiIqorRi9WgjsZav75559Xue6OiIiIiIjIFTHAM5RlSnB3xRVXYPbs2QzuiIiIiIio0WGJJoDnnnsOn376KYKDg9VYhOeff77SfS6++GL07t27QfaPiIiIiIjIFgzwACQlJanz7OxsvPDCC1bvk5CQwACPiIiIiIhcGsck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mZui2Jplq448x/bjGebxBeGBvk7poklERERERI0kwJPB5osWLcKPP/6ozuWyNbIGr6rbmpqle1PMc+dGdY4qvyGwOXDlp8D5L0lUbPEYKYk1DvE+cTavzvuxPumMytgJafIS6u9tbrxii7xC27toEhERERGR89mddklKSsK0adMwb948lBmmZEsgIsPP//vf/yIhwbEzz9zF4j2mUQgAxpgGmdvCnOkzDT7vGBPisPEIg9o1x1ZTVlEye9LlUzpUVodr8IiIiIiI3CDAO3DgAIYNG4bTp0+rDpmyHRMTg1OnTmHVqlX45ZdfsGbNGrXdrp1hXRmhuKQUS00NVkL8vdGvTbjNj21pCPAckcFba2iwIh0o9REMEq/nFBYjxN+nFiWaDPCIiIiIiBplgPfwww8jJSUF7733Hm677TaLjpqSzZs1axbuvvtudb/vvvvOkfvb6G08chaZpjVu53SMgreXZ4MEeDLiYOsxbf1d+6gg1akzxK88oJMsXk0BXh6brBARERERNf41eH/99RcmT56M22+/vdK4BLl8xx13qDLNP//801H76ZbjEWpTninimvmbt0+cza/Tfmw4nI5i0/q7QTJk3ZRR1NnSaMWii6YPm6wQERERETXKAK+kpATdunWr9j7du3dX9yNLi03jESQuHtnJ0GDFBi3CLNfg1cXag4b1d6YB4caMnS3Dzo0ZPJZoEhERERE10gCvb9++2LFjR7X3kdv79+9v7365pZMZedidrI2K6BnfDJHBfrV6fJCfN5oF+jikRNM44Fw6aFbM4OllpNXJLSo2z8/z8bJt8D0REREREblYgPfCCy9gwYIF+PDDD63eLmvwFi5ciOeff76u++dWthzV1ryJER0i7XqOlqYsXnJGvnnEQW1J5k2fw9c2Mggxof52lWjqGbxAH69KpbpERERERFT/bFo49dxzz1W6TgaXy1q71157zaKL5sqVK7F3715MmDBBrdUbOnSoM/a7UTqQkm3e7hRr34gDabSy82SmWj+XklWA2LDydXm22nQkHUUlZRblmZUDPNtLNFmeSURERETUiAK8Z555psrb9uzZo04V/fbbbyqL9+STT9ZtD93IvlNaeaboEB1s13MYG63IOjx7Ajxr5ZkV1+Bl21SiacrgMcAjIiJqcoqKithvgZokLy8v+PhU323e5QO8xYsXO39PmoD9pgyezA+X0kh7VByVUJs5ero1FQac6+ztohngyw6aRERETUVmZiZSU1NRUFDQ0LtC1GD8/PwQGRmJ0NBQuBqbjsxHjhzp/D1xc6WlZdh/WgvwWjcPhL+PfVmvus7Cyy8qweajZ837YezMWZsumrL+r7C4VG0zg0dERNR0grvjx48jODhYHdxKFoPr8KkpKSsrU9nrjIwM9bsgXC3IY+qlnkg5ZX6RFhB1iLZv/Z0jArxNR86aA7PBhuxdbTN4MihdF2BnsEpERESNi2TuJLiLj49nYEdNVkBAAEJCQnDs2DH1O+FWAZ40VPnkk0+wefNm9YmOfHF9+vTBlClTMHz4cMftpRuVZ9Zl/Z2IMwR4x+0Ydr72UPn6u0Fty9ff1XZMQp5p/Z1gkxUiIiL3J1kLKcuUzB2DO2rqPDw8EBYWprJ48rvhSmvy7A7w7r//frz55psqTal/kbK9YcMG/O9//8O0adPw+uuvO3JfG7X9pxwT4EWF+MHb00N10bQng2cx4LxiBs/P0GSloMjmIecs0SQiInJ/ekMVVzqQJWpIPqbfBfndcKXfC7vm4H366ad44403kJiYiC+++AInTpxAcXExTp48iS+//BIdO3ZUt3/22WeO3+NGSl9/JxLrEODJUHG9c+aJjNoFeAXFJdh4JF1tx4cHID480OJ2fx9PFTzaVqLJAI+IiKgpYvaOyLV/F+wK8N59911Ve7127Vpcc801iI2NVV+gzMK7+uqrsWbNGsTFxeGdd95x/B43UvtOl49IaF+HAM+4Du9sbhFyCmrudmkctF5gWn9XsTxTyPdQL9OsTYAX4MOlnEREREREjTbA27FjBy677DJVd2qNXC+3y/1I67ajZ/Bahvkj2K9uAZFxHd7JWmTx1hrm31Usz6zYSbOmLpos0SQiIiIicpMAz5VTltLw5bHHHsOECRMQFRWl9mPUqFE1Pk5KTQcOHIigoCCEh4dj0qRJ2Lhxo0P2KSW7wNy0pK7ZO9HSYti57Y1W1hrm3w0xDDg3Mmbw9PWVNXbRZIBHRERE5FRJSUnquHbq1KkNvSvkjgFet27dMGfOHGRnl68rM8rKylK3y/3q208//YQZM2ZgyZIlqnTUFi+88AKuv/56nD59GnfeeSeuuOIKLFu2DEOHDlWdQh3ZYCWxDiMS6jIqQUYjrD98xpxFlDV41ujZRWnioo91qLGLJsckEBEREdVZQkKCOhHVe4B3xx13qLkPQ4YMUYGczH8Qcv7999+rwEhuv+uuu1DfJDiTTp4SfP7xxx813n/fvn145plnVGOYLVu24LXXXsOsWbNUgCduu+02lJZWHejU54gEawHeSRsDvB0nMswB26B2EVVmWC2GnVfTSZMlmkRERET1R/pb7Nq1SyUyiKpj12Kwm266CZs2bcLMmTNx5ZVXqus8PT3NgZCU9t1777248cYbUd9qmzX8+OOPVQfQxx9/3GJNYe/evVUDGZnzt2LFCpxzzjl279M+B41IqMssvN3J5U1eesZbXzspQisMO68q4WjRZIUBHhEREZFTSRv+zp07N/RukDuvwZMZeEuXLlV1wBIMSTpZziX4k+tlTEJjIKWcYvz48ZVuk3V8Qr4eVxiRoGthGpNQmxLNPYYAr1Ns1WWixmHn1XXSNJZoBvqyiyYRERE1HZIgGDRoEIKDg9VJtiUpUPEYUyqmpFJMkgXSEyIkJATNmjVTzQj3799faX3d4cOH1Um29ZM8vro1ePK8cr0MoZc+FK1bt0ZAQAD69euHP//8U90nIyMD//jHP9CyZUv4+/urKry///670tdVXe8Ka+Wjsi/ymIMHD+LVV19VFXHy2l27dsXXX3+t7lNYWKgSKfJYee2ePXtiwYIFdr/3VLM6HZmPGDFCnRozKdGUX0xr6/Vkzp9+n6rIL5OcdJmZmVWWaEYE+SI8yLfO+yxllJJpk8Ytts7C23vKEODFVBfgGUo0q+mkaWyywhJNIiIiairuu+8+vPXWW6pk8pZbblHXyZIlvcKtYpJDxodJWeV5552nKtyky/yPP/6I5cuXq9vatWungr6nn34a//3vf9Vj/vnPf5ofb0uzQHHVVVdh27ZtmDx5MvLy8lQDQWkaKP0kbr/9dhVoyVKmlJQUfPPNN2p/Dh06VGVX/Np44IEH1Pi0Cy+8EF5eXiq4u/baa1XjQnmvdu7ciQsuuAD5+flqZvZFF12kyk3bt29f59emypp86kU+0YiOjrZ6W2hoqPk+VZFf2Geffbbq588tQkpWgcPKM43r8DKTs3DybD5KS8vgaRpQXlOAFxnsh4hgvzpn8Iwlmv5sskJERERNgPRokIClS5cuWL16tTk4kizb4MGDVYXb5ZdfbpEAWbhwId577z3Vw0L3/vvvq8Z+06ZNw6+//qoCPHkOPQuoZ+1qIy0tDVu3blUd4fVKNAn6zj33XIwbN04FVt7e2nGeVN09/PDD+N///qeCs7qSYE1eWzrYCwl2Jasp87G7d++uAs+K+yWBsLxf1EQCvOnTp1tkxWoivxx6tq2+Pfrooxa/GJLBa9Wqlfny/pTyzJkjAzxZhyfr6gpLSpGaU4DokPKyzYpSswuQml2otjvFVr8PwRYBHpusEBERUS28/rp2qknfvsAvv1heN3kyYMuIKjnuMgYlWVlAly61f5wdPv30U3MAZsx8SaZKMnDXXXedCtKMAZ6ULUrTPiO5LI395s2bpzJqemBUF9IVXg+ihASasm7v7NmzqnxSD+6E9JmQAE8aDDqClGAavwYZPSaZSSndrLhfUp4q++Wo16ZGEuDJpxo5OTk2319+gO0N8OSXs6oMnV5uWV3q2s/PT51sabDiiPV31kcl5Fcb4O01rL/rWE15ZuUSTVvX4DHAIyIiInXwBBw/XvP9DB+Gm6Wk2PbYisthZG6vPY+zg5RgVlU2OXr0aPNMZqNhw4apZoRGclmul2VAEuhIlq2uJCtX8TWkSi03N1etyzNq0aKFOj9x4kSdX9faa+uvIQFexdukhFP2y1GvTY0kwKtqvp4zSGAoKfbk5ORK6/D0tXd1yQ4aG6x0cMAMvKpm4fVu1azK++6xcf2dvSWa7KJJREREiixviYur+X7WMlZynS2PNS2hMZPRT/Y8zg7y4b8ETtYybjExMarhSMV+DHK9Nfr11S0Fqg19aZGRZO2qul4UFRU59bWru81Rr02NJMCrTyNHjlQB3u+//44pU6ZY3CY10/p97LXPIsBzZAbP9k6axgYrHavpoGltTIJtJZpN/seIiIiI6loGWbFk01YhIcCxY6gPEqzIWDApq6zYw+H06dNqVFjFgObUqVNWn0u/3hFNThxFAlQZH2aNBKKutK/khDEJ7kIWgcqnCFIfbPwERdLrX331lVpEO3z48Dpn8EL8vBETWnUpZ91m4eXZPCKhdiWatnXRDGCTFSIiImoC+vTpYzFmy0i/rmJJonSx1GdF6+TyqlWrVEDVq1cvi/LFkpLyD9Hrm6wlPG6l3FVGNMhaPmoc3C7A2717t5rJISdpvlLxuoqzQ2ThqyyU3bt3r/oFkwYv0kpWH2z+wQcfVKqbtpUEQXrw1T46WP0SO6tEsyrySdJe0zrA+PAABPt5O7RE08/bE141dPAkIiIicgc33nijOpcO6sZSTEkS6F3V9fvo5BhTjieN5LJcL6MDjOWezZs3R2pqqhon0BAGDBiggjnjDGgZr+CITptUf9yutk7W0ukdjowpcON1FQdR6sMXZfbIu+++C19fX9X96F//+hf6SpcnOx04neOUBisiOsRPBVYlpWWqyUpVTmTkI7ug2Kb1d8IYAOqPq67JCtffERERUVMhCQCZZSejEqT9v3SElA/TZQ7esWPH1Iw8PUmgk7EAcv38+fPRrVs3NQdPRiNERkZWmpk3ZswYrF+/Hueff746FpVjUnm+is/pLBLIybKliRMnqk6bgYGB+OOPP9QYB70xC7k+t8vgSVcj+UWr7mSNtLVdt26d6jQkKWhpW1uX4M6ZIxKEt5cnYkP9a8zg7UnOtHn9nQjy9VZrlW0dkxDI8kwiIiJqQmR220cffaSa882aNUtl4yT4kesqBmxC5uP99ddfKssnj5VSzosvvlj1gJBRAkZPPvmkGqGwZ88evPjii+ryokWL6u1rGz9+PL799ls1gPzzzz/Hd999p2boSZAnwSY1Dm6XwXMlFiMSYhwb4OmNVqQENC2nEPlFJVYHju9JLt8HWzJ4MjBdsnhSnmlLkxVm8IiIiKgp9nCQk62kn4O1dXsVBQcHq6DRGqk2s5aoqO55pdyyKlUlPWT8mJxseS6piqtYGVfX/aK6c7sMniuxGJEQ5bgRCbVZh2fsoNnJhgyeCDU1WsmsIsCTPwi5phJNdtAkIiIiInIdDPCcaH9KtrkRSVx4eTDmrGHn1XXQlPV67aKCbHpevdFKVSWahSWlau2fYAaPiIiIiMh1MMBzksLiUhxOy1Xb7aOCndJpsqYMXnFJqTnIbBsZBD9v24IxvdFKQXGp+jqqn4HHAI+IiIiIyFWwvs5JjpzJMWe5HN1gRRdnGHZubRZeUlquOUCzZf2dtVEJ0kmzubev1REJgjPwiIiIiKpu/EdU35jBcxJnjkiwNYNnXH9X04Dz2gw710ckCJZoEhERERG5DgZ4TnIwpTzA61AfAV5GXpXr70SnWNv3oaZh5yzRJCIiIiJyTQzwnORgqnNHJOjdLkNM6+WsNVmx7KAZalcGL9NKBs9YoskumkREREREroMBnpMcMDU38fb0QJsI27pX1iWLJ2vwKtZ57zEFeNLFs3XzQIdl8HILy6/jGjwiIiIiItfBAM9JDpk6aLaJCISPl/PeZhl2LqSZigw818ng86TUHHMGsTZdPFmiSURERETUODHAc5IiU/fKxGjHDzi3pdGKDFk3NfGsVYOVSl00ayjRZJMVIiIiIiLXwQDPyZzVYKWmAM9i/V1tAzw/n+ozeMYumizRJCIiIiJyGQzwnMxZDVZ0cYYA77ih0Yq+/k50jLU/g5dVUFOJJpusEBERERG5CgZ4TtY+qoEyeIYRCZ1rHeBVPwfPsosmM3hERERERK6CAZ4TeXjUR4CnNVmpXKKZbc7GxYaW36e2GbxMa100iwxdNBngEREREVm1ZMkSeHh44JlnnqnT88jj5Xnk+YhqwgDPieLDA5weAMWE+kNvkKkHeJJ1k7EJ+vo7+YNQG+yiSURERETO9tZbb+Gmm25Cz5494e3tXacgtqCgAM899xwSExPh7++Pli1b4vbbb8fp06erfMwXX3yBgQMHIigoCOHh4Zg0aRI2btyIxo4BnhN1cHL2TsgIBgnyjGvw9tZh/Z0INg1Pt6mLJpusEBEREZEd7rvvPnzyySdITU1FVFSU3c9TWlqKiy66CE8//TQiIyPxz3/+E0OGDMGHH36ozlNSUio95oUXXsD111+vAsA777wTV1xxBZYtW4ahQ4di5cqVaMwY4DlRYi27V9Z1HV5qdoGaf7cnWSvPtKeDpvD28jRn5mrsoskMHhERERHZYe7cuTh58iROnDihAjR7ffrpp1i4cCGuueYarFq1Cv/+978xZ84cvPPOOzh48CCeeOIJi/vv27dPlb127NgRW7ZswWuvvYZZs2apAE/cdtttKmhsrBjgNfIMXsVGK8kZ+ZYZPDuDTL1Ms+YSTXbRJCIioqahsLBQlRVOmDABrVq1gp+fH6Kjo3HppZdi06ZNNj9PQkKCOp09exZ33HEHYmNjVVlhnz598NVXX1X72C+//BK9e/dGQEAAWrRogWnTpiEvL88p++lsF1xwgfra6+qDDz5Q5zNmzLBYmiTvbbt27VQppvE9+vjjj1FcXIzHH38cYWFh5uvlfZUgcdeuXVixYgUaKwZ4TtTBySMSqmq0ssfQQbOTHSWaxk6a1rtolgd9XINHRERETcWZM2dU+Z+s95o4cSLuv/9+jBo1CvPnz1elfevWrbP5uSQIO/fcc7F06VLccMMNuPnmm3H06FFce+21KjizZubMmWpdWbdu3XDXXXepdWNvvvkmbr31Vqftp6vLz8/H2rVr0alTJ7Rp08biNgn2xo0bh5ycHKxfv958vb7Ob/z48ZWeT4JiId+Xxorpl0Y85Nz6LLw8cwYvKsQPzYN87XpOfR1eTmEJSkrL4KV3cjFk8OQDEj9vfkZARERETYMEVEeOHEFcXJzF9Tt27MDgwYPx2GOP4Y8//rDpuaQ0URqCSEmhr692vCaPlyzeQw89pLJtFV/nzz//xIYNG1Qwo68jk6zT119/jVdeeUU1FnH0fsoauaSkJNhKAkk51ZcDBw6ockp5L61JNF0vZZkjRowwbwcHB1vNHhrv31gxwHOS6BBfhBrmyTlTy7DyAG/rsQyk5RTavf7OWifN7IJihAX4VGqyEujjVesOnUREROSeLnxrBVKyCuDK5MPvX+8dbvfjpdSxYtAkJKM2evRotQ6sqKgIPj62HQO++OKL5uBOxMfHq5LLJ598UgVt06dPt7i/3KYHd0LKNKWk8Nlnn1WBnx7gOXI/JcCrbTarPgO8jIwMdW4stTQKDQ21uJ++LSWrtt6/sWGA5yTt6mn9XcU1eIv3nK7z+jthDE6lTNNagMcGK0RERKST4C45U+vo7c42b96Ml19+Wa3RSk5OVoGSkXSElLVxNZGxANLhsSI9y2RtrVy/fv0qXSdBoZD1fM7YT87ea3wY4DnJ5F7aJyj1XaJ5LL18AWmnWPuDzOpm4eldNBngERERkTE75u77KOWUY8aMMa/fknI+KfWTiqaffvpJdWSUdW+2kHb+np6Vl7rExMRUmUHSs0sVA0VRUlLilP10dXrmrqqMW2ZmpsX99O3a3L+xYYDnJJN7V06LO0togLdqdmKcT1fXDF61AZ65RJM/PkRERKSpS+ljYyFr3iQwWr58OYYPt/x616xZowInW0kGTdaOVQzyTp06VecAw5H76epr8KRLpryHVa2Z22e63rhGT7ZXr16tMpsV1+FZu39jwyN0NyCfxkiZ5v7T5fPv6h7gWZZo6kpLy5jBIyIioiZJGno0b968UtCUm5uLjRs31uq5pE2/BBnDhg2zuF6CMiHNVlxhP119DZ6sQxw4cKAKXA8fPmzRSbOsrEw1kwkKCkL//v3N148cOVK997///jumTJli8XyyPlG/T2PFFohuwrgOT7RqHoAgUyfMunTRrJjByy82zsBjgEdERERNhwQP6enpqhulTkojH3zwQaSkpNT6+aSbpYxL0B07dgxvvPGGapJy9dVXu8R+yho8CZRsPckAcWeRzqO7d++uVF4poyPEo48+qvZB9/7776tB59ddd50KBHU33XSTKm2VTKfxuWTdoswh7NKlS6XguDFhBs9NxBlm4dW1g2alEs2C8gDPWAbKAI+IiIiaknvvvVdlfeTg/8orr1TDySUAOn78uMpa1aYhiTQ4kflsPXv2xIUXXqi2v/32W6SlpanZdta6YDbEfjrTv//9bxWwCcmo6ddJ1lBcfPHF6qSTAO7TTz9Vg8qnTp1qvv7GG2/EN998o4KzQ4cOqezb/v378cMPP6Bt27Z4/vnnLV63Y8eOKhB94okn0KtXL1x22WXIyspSnUv1wenW1kc2Fo13z6nKUQl1Lc+srkRTX38n/H0Y4BEREVHTMWnSJHz//fdq3dfs2bPx5ZdfonPnzvj7778rDdmuiYxHkPJBCUY+//xzfPTRR6ojpjynBGiusp/O9Ntvv6mATU579+41l0jq10lGzRYSjP38888qaEtJScF//vMfrFy5ErfccosKHKOioio95vHHH1fvjdz27rvvquBaOphKg5qKZbONjUeZMY/pBuQHQb5BMgtEaoxlAav84lT1SYXcf86cOeoXTFK4kqaVT0zOO+889Y2v7acn0nlH78xjrdORs8zZcAzTvytfMPvG1b1xUR0avazan4prP1yrtu8a1R4Pn9dZbe9JzsKE/y5T21f2j8fLl/eq874TERGR68vPz1fZEcmISEaI7JeQkKDOa9O8hBrn70RmA8QGbleiKa1fZ8yYoT4VkfSrBHjVufPOO7F27Vq1OFNqnaXmWS5LJP/dd9+pha7yiUdjW4PntAyeqcGKCPR1ux8fIiIiIqJGze2O0K+44gpMnjwZPXr0UDXMNQ1wlEWXkp7t0KGDxfUvvfQSHnnkEUyfPh3z5s2DqzPOwvP29ED7Og5aD65iTEJuYfk2u2gSEREREbkWt1uD161bN/Tt2xc+PuUZqOpIjXPF4E5IlyHptlPbtrANJTbMH16eHmq7bWQQfL3r9q2tag6ecQ1eINfgERERERG5FLcL8Bw5W06CRGmh2hhIQHfbiHYI9ffGnSPb1/n5jAFetkUGrzzAYwaPiIiIqPZk7R3X35GzNI7opQFI5yFZFCkln9UpKChQJ508pqE8cn5nPHxeJxWc1pWft5cKGguLS5FZRRdNrsEjIiIiInItzOBZcfToUdx3332qRPNf//pXtfeVhi7SGUc/tWrVCg3JEcGdTrKB1a/B448PEREREZErcckUjDQ2MWbFajJt2jQkJiY65LWlMcvEiRNx+vRpfPbZZ+jUqVO195eBiw888IBFBq+hgzxHkU6aqdmFFbpolpq3A3xc8seHiIiIiKjJcskj9Pfffx85OTk23//yyy93SIAnwd3YsWOxY8cONSbh+uuvr/ExMlZBTu4o2E/78cguKIaMS5TsYJ4hgxfINXhERERERC7FJQO87Ozsen9NPbjbsmUL3n77bdxxxx1o6vRGK6VlWnOVID9viyYrDPCIiIiIiFwLF1FVCO7eeust3H333Q29Sy7B2qiEXMOgc3bRJCIiIiJyLU0+wDtz5gzOPfdcFdy98cYbuOeeexp6l1xqDZ5OX4fHLppERERERK7L7Y7Qd+/ejX//+99qOy8vz3zd1KlTzff55JNPzNuXXnopNm/ejM6dO6tg75lnnqn0nP/85z/RrFkzNOUMXqaewTN20eSgcyIiIiIil+J2AV5ycjI+/fRTi+tOnTplcZ0xwNOHTEoQ+Oyzz1p9TgkOm2aAZyWDZ+yiyRJNIiIiIiKX4nYlmqNGjVIdH6s7GUmAV9P9ExIS0BSFmLpoGtfgsYsmERERkW2WLFmiupBbqxCrDXm8PI88H1GTC/DIOSWaMipB6F00fbw84OPFHx8iIiIist/ChQsxcuRIhISEIDQ0FKNHj8Zff/1lVwBc1SnJVLHnjNd2RW5Xokn102SF6++IiIiIqC5mz56NG264AVFRUeZ+Gd988w3GjRuHb7/9Vs26ro0bb7zRauWdtaVWjn5tV8IAj2o3JsEU4LGDJhERERHZKz09Hffeey8iIyOxceNGxMfHq+sffvhh9OnTB3fddRcmTJigsmu2kkBt1KhRDfLaroQ1dlTLAE87Z4MVIiIiamoKCwvVzGQ5+G/VqhX8/PwQHR2turJv2rTJ5ueRLJOczp49izvuuAOxsbHw9/dXwcVXX31V7WO//PJL9O7dGwEBAWjRogWmTZtm7hzv6P10pu+++059/RJo6QGWkG0ZW5aamooff/zR7V67PjDAIxvHJGglmvmmLpos0SQiIqKmRkZqyfisgoICTJw4Effff7/KGM2fPx9Dhw7FunXrbH4uCcJkFvPSpUtVqeDNN9+Mo0eP4tprr1XBmTUzZ87E7bffjm7duqksU3h4ON58803ceuutTttPZ9EbxowfP77SbRKYCnlvamPZsmV46aWX8Morr+Cnn35CdnZ2vb22K2GdHdm4Bq8YxSWlKCzRAjx20CQiIqKmRgKqI0eOIC4uzuL6HTt2YPDgwXjsscfwxx9/2PRcJ0+eRGJiIlatWgVfX191nTxesngPPfSQyrZVfJ0///wTGzZsQKdOndTlF154QWXzvv76axXUtGzZ0uH7KePFqmpSYo0EkraUSe7bt0+dy3tQkX6dfh9bPf3005XW3r3xxhuYMmWK01/blTDAI9u6aOYXI7dIW38nWKJJREREFt4fCWSfhksLjgbusD8zI6WOFYMmIRk16cAoXRmLiorg41P+IXl1XnzxRXNwp5cISsnlk08+qYK26dOnW9xfbtODOyFlmtdcc42a5SyBnx7gOXI/JcCrbTbLlgAvIyNDnYeFhVW6TTpaGu9Tk169euGjjz5Sr9uiRQs1F3vu3Ll46qmnzPOsJ0+e7JTXdkUM8KhKUobp5emBktIyZBUUmTtoCmbwiIiIyIIEd1kn4O42b96Ml19+GStWrFCBhARKRrJ+S4KMmnh7e2PIkCGVrh8xYoQ6t7ZWrl+/fpWu09eQyZoyZ+xnY5i9d8kll1hcTkhIUGvpunTporpiPvHEExYBnrtjgEdVkrkhksU7m1ukSjT1DpqCXTSJiIioUnbMzfdRyinHjBljXr8l5XzBwcHqmEnWfG3ZskWte7OFdHD09KzcDiMmJqbKDJKeXaoYKIqSkhKn7Kez6Nkz+TojIiIsbsvMzLS4j73Gjh2L9u3bY9u2beo59fevPl67IfEonaplGeBpHTSFP5usEBERkVEdSh8bC1nzJoHR8uXLMXz4cIvb1qxZowInW0kGrbS0tFKQd+rUqToHGI7cT2etwZOgc/369WqtW8Ugq7o1crUVGRmJ/fv3Izc31xzg1ddrNxQGeFStYD+pzc5Tg85ZoklERERN2YEDB9C8efNKQZMEDzJPrTaKi4uxevVqDBs2zOJ6CcqENFtxhf101hq8kSNHqpEQv//+u2r8YiRrBPX71EVOTo5qLBMUFKQCvfp87YbEMQlkU6OVopIylcnTMcAjIiKipqZNmzZqSLYEDTopjXzwwQeRkpJS6+eTbpYyLkF37Ngx1fVRmqRcffXVLrGfsgavrKzM5tMzzzxj0/NeeeWVKkspIyHk69bJtoyDkICs4to66Qy6e/duFajqsrKysHfv3krPn5eXh9tuu03dLq+ll7La+9qNCTN4VK1QQyfN01nltdrsoklERERNjQzGlqyPZMYkSJDh5BIAHT9+XGWtatOQRBqcSIapZ8+euPDCC9X2t99+i7S0NDXbzloXzIbYT2eRUQ4STMkMwL59++Kqq65S13/zzTfqPZDzkJAQi8fIuAPJJi5evNicJZT7du7cGQMGDFBNVWJjY1WZq4yUkICtR48eaoREXV+7MWEGj2yehXcqM9+8Hcg1eERERNTETJo0Cd9//z3atWuH2bNn48svv1TBxd9//62yZrUh4xFkFp2UAn7++eeqzb90xJTnlADNVfbTma6//nosWLBA7dvHH3+sykG7du2qgtMrrrjCpueQUtS7775bZQ9lkPtrr72GOXPmqJER0kV07dq1ldbZOeq1XZVHmbwb5DDSeUdSvtKVx1qno8bmqZ+347PVh9X2NQNb4au/j6rtly/riSsHtGrgvSMiIqL6kp+fj0OHDqFt27YqI0T2kzb+ojbNS6hx/k5kNkBswAwe2Tzs/FRmeYmmP0s0iYiIiIhcDgM8sqGLpoYlmkREREREro0BHtmcwTM2WWEXTSIiIiIi18MummRzgJeWzS6aRERERHXFtXfkTMzgUbVCDV00Sw3teAJ9+dkAEREREZGrYYBHNmfwjFiiSURERETkehjgUbWCqwjwWKJJREREROR6GOCRzYPOjQLYRZOIiIiIyOUwwCO7SjQZ4BERERERuR4GeFStYF9veHhYXufv4wlPzwpXEhERERFRg2OAR9WSQE6CPCN20CQiIiIick0M8KjWZZoszyQiIiIick0M8KjWnTQ5IoGIiIiIyDUxwKNad9LkiAQiIiKimi1ZsgQeHh545pln6vQ88nh5Hnk+oiYX4G3evBmPPfYYJkyYgKioKPXLMGrUqFo9x8SJE9Xj/P39nbafjQlLNImIiIjIGRYuXIiRI0ciJCQEoaGhGD16NP766y+bH19UVIQ5c+bgxhtvRJcuXRAcHKyea9CgQXj33XdRUlJS6TFJSUnqWL+qU10D8obmdt0yfvrpJ8yYMQO+vr7o2LEjUlNTa/X4Dz74QP2gSXBXVlbmtP1szBk8lmgSERERUV3Nnj0bN9xwg0rKTJ06VV33zTffYNy4cfj2229x+eWX1/gcBw4cUPeTwG7s2LGYPHkyMjIy8Ouvv+Luu+/G/Pnz8csvv6jAraJevXrh4osvrnR9bZNDrsbtArwrrrhCfWN79OiBtLQ0tGjRwubHSjQ/ffp0PPDAA/juu++QnJzs1H1trBk8dtEkIiIiorpIT0/Hvffei8jISGzcuBHx8fHq+ocffhh9+vTBXXfdpSryJBtXHbn97bffVhm8oKAg8/WvvfaaCtTmzp2L77//XsUIFfXu3bvRZ+uaRIlmt27d0LdvX/j4WGadaiLZuptvvlkFhM8995zT9s8tSjSZwSMiIqImqLCwEG+99ZYKPFq1agU/Pz9ER0fj0ksvxaZNm2x+noSEBHU6e/Ys7rjjDsTGxqrqMQlsvvrqq2of++WXX6rAJCAgQB23Tps2DXl5eU7ZT2eSZIp8/RLk6cGdkO177rlHVeH9+OOPNT5PXFycytQZgzshlyVpI5YuXYqmxO0CPHvJL4F88z/66CP1C0PlQvzYRZOIiIjozJkz+Oc//4mCggLVs+H+++9XWSIpAxw6dCjWrVtn83NJEHbuueeq408pU5REw9GjR3Httdeq41JrZs6cidtvv10lNCTDFR4ejjfffBO33nqr0/bTWfSGMePHj690mwSmjgjMfEwJH29v69VnJ06cUNm/F198Ef/73/9Uuac7YK0dgH379uHRRx/Ffffdh2HDhjX07rh+F002WSEiIqIKrpp7FVLzatf7oL5FBkTim0nf2P14CaiOHDmiskZGO3bswODBg1Wjvz/++MOm5zp58iQSExOxatUq1TtCyOMli/fQQw+pbFvF1/nzzz+xYcMGdOrUSV1+4YUXVDbv66+/xiuvvIKWLVs6fD8/+eQTtYzJVhJI2rKGTY6/hbwHFenX6fex10cffVRlECnkPTC+D7JO77rrrsN7771XKSPYmDT5AK+0tFTV7EqKW35Jaks+GZGTLjMzE+6GJZpERERUEwnuTueehjuTUseKQZOQjJp0f5RGfdLV0dalQpI50oM7vTxRSi6ffPJJFbRJbwgjuU0P7oRUnV1zzTV49tlnVeCnB3iO3E8J8GqbSbMlwJNGKCIsLKzSbdJN03gfe8yaNQsLFizAmDFjVBbTKDAwUL3H0mClffv2Kh6QdYCPP/64avySm5urOnM2Vi4Z4MkPszFoqon8sFuL/m0hn3asWbMGixcvVt/s2pKOnfJL5c7YRZOIiIhsyY41hX2UkVwvv/wyVqxYoRrySaBkJGvHbGnyJ2WDQ4YMqXT9iBEj1Lm1tXL9+vWrdJ2+fk3WszljPxvj7L25c+eqdXxt2rRRAVtFsh6xYs8N6cAp3w/p5fHDDz+ogE+2GyOXDPDef/995OTk2Hx/aY1qT4C3d+9ePP3002phpszfsIeUduoLOPUMnixmde8Mnkv+2BAREVEDqkvpY2Mh5ZSSEdLL/uT4U9rzS2mfjOrasmWLzUkK6R7p6Vm5HUZMTEyV2Ss9s2Wkry8zzntz5H46i565k68zIiLC4ja9Is5adq8m8+fPV7GBvI+LFi2qVUd9SfbIesgnnngCK1euZIDnSNnZ2fXyOjt37lQ/3LK4Uk7W6DMzpJVrs2bNKt0uKXA5ubPgik1WuAaPiIiImiBZziPHjsuXL8fw4cMtbpOKMAmcbCUZNCkNrBjknTp1yu7gxhn76aw1eBJ0rl+/Xq2zqxjgVbc+rzrz5s3DZZddpoJnqc5r164dakseK2qTbHI1Lhng1RdpT3vLLbdYvU2GLErLWX3oorsHcdX5//buBDjG+3/g+CciIo6EOIoQR1UdpWipoqi2aGlLldCJ+6zqtG5a5UenRauGHtPOVAfVcbSOFkMddRvUqKpBRxFHHXW0xBUinv98vv7PzibZSHaT7GYf79dMPJvnebL7Xflk9/ns9/v9fCMZogkAAGCqLEZHR6dLmnTOlg7p88bt27dl+/bt6Qr8aVKmtNhKXmhnbs3B09FzuiTEmjVrTOEXdzpH0D7H2+QuOjraJHdVq1YVX+zcudOVJwSr+zrB06pDM2fO9HhMqxTpeOWMjt9P0g7RLEiCBwAA7kM6p0un+Gg1Si1YYg+NHD58uJw/f97r+7OrWdqFVv7++2+ZMWOG6Vjo0qVLnmhnbs3B69y5s1nUXJeE0CUi7LmE+n+gy0FoT1qHDh1S/YxWBtUkNTY2NlXtDC2mosmdVg/dsGFDpj1/Or9R8wB7pJ5N597NmTPH3M/zzz8vwcpxCd6ff/4pkydPNrftRR91n90TZ38SgawrkibBY4gmAAC4H+mi3NrjpD1jmqDo4uSaAJ06dcr0WnmTDOncMB0GWKdOHXnxxRfN7e+//14uXrxo1rbzVAUzEO3MLZpEaSKnc950rltcXJxrFJ3+H+i2aNGiqX6me/fupjdRkzi7l1Cv8zUR1CGpum++h4XitTfOPRfQdQG1l1OLqmhiqcmv9mxqQRpNrjVXyM4Q2UBzXIKnvW6aeacdy+y+jwTPO2Gh+czadzeS707eLUSRFQAAcB9q166dLFq0yCxvoNUZtRdJi5ksXbo0XVXGzGivnfbejR49WubOnWuqYFavXt30aOnSB3mlnbkpPj7e9NRpO2fNmmV61LRSqBY50UXgs3rtbxeM0aUlPNGhnu4Jnj6uLoOg8xHtuZCaUOuC8VrNX38PwSzEsiwr0I1wEq36oxm/VgTyVOkoWDX8YJ2cu3L3j2fd0OZStXSRQDcJAAD4UVJSkiQkJEjlypVNjxB8Z8/v8qZ4CYLzbyIxALlB+tqsQCbDNCmyAgAAAORNJHjwerFzEjwAAAAgbyLBQ5ZULXV3SGbJIgXSrYsHAAAAIG/gSh1ZMrLNw1K+eIQ0q1ZS8ofyuQAAAICvmHuH3ESChyx5ILKgDHmuWqCbAQAAAOAe6IoBAAAAAIcgwQMAAECWscIWkLf/FkjwAAAAkKnQ0LtVtJOTkwPdFCBPSP7/vwX7byOvIMEDAABApsLCwiQ8PNws2JxXey4Af9G/Af1b0L8J/dvISyiyAgAAgCwpWbKknDp1Sv7++2+JiooyF7YhISGBbhbg18QuOTnZJHdXr16VmJgYyWtI8AAAAJAlkZGRZnvhwgWT6AH3q/DwcJPc2X8TeQkJHgAAALJML2j1S3sxUlJSAt0cwO9CQ0Pz3LBMdyR4AAAA8Jpe4Obli1zgfkWRFQAAAABwCBI8AAAAAHAIEjwAAAAAcAgSPAAAAABwCBI8AAAAAHAIEjwAAAAAcAiWSciF1e1VYmJioJsCAAAAIIDsnMDOEfyBBC+HXbx40WwrVKgQ6KYAAAAAyCM5QlRUlF8eiwQvh0VHR5vtiRMn/PZLxP37iZB+kHDy5EmJjIwMdHPgYMQa/IVYg78Qa/CXy5cvS2xsrCtH8AcSvByWL9/daY2a3PGCAX/QOCPW4A/EGvyFWIO/EGvwd47gl8fy2yMBAAAAAHIVCR4AAAAAOAQJXg4LDw+X8ePHmy2Qm4g1+AuxBn8h1uAvxBqcHGshlj9rdgIAAAAAcg09eAAAAADgECR4AAAAAOAQJHgAAAAA4BAkeAAAAADgECR4OWjXrl3ywgsvSLFixaRw4cLSqFEj+f777wPdLASZU6dOyfTp06VVq1YSGxsrBQoUkDJlykjHjh1l586dHn8mMTFRhg4dKhUrVjRVmipVqiQjRoyQq1ev+r39CH5TpkyRkJAQ87Vjx450x4k3ZMfSpUvlueeekxIlSkjBggWlcuXK0rVrVzl58mSq84gz+ErrBy5ZskSefvppKVu2rBQqVEgefvhhGTBggBw9ejTd+cQaMvPdd9+Z+Hn88cdNjOj74+zZszM839uYunPnjnz22WdSu3ZtiYiIkFKlSpnXRU/xmiVaRRPZt379eissLMwqWrSo1a9fP2vo0KFWxYoVtUKpNXXq1EA3D0Fk1KhRJm4efPBBq0+fPtbo0aOtjh07WqGhoVa+fPmsBQsWpDr/6tWrVt26dc3PtGrVyvy8bvX7Bg0aWDdu3AjYc0Hw2bdvnxUeHm4VLlzYxND27dtTHSfe4Ks7d+5Y/fv3d72+DRo0yMRPt27drNjYWGvLli2uc4kzZIdeg2mslC1b1ho4cKA1cuRIq3Xr1lZISIi5TtPXORuxhqywr+lLlizpuj1r1iyP5/oSU3379jXHa9WqZeI1Pj7eKlCggBUdHW0dOnTI8hYJXg5ITk42b1Z6UbRnzx7X/kuXLlnVqlUzv6Bjx44FtI0IHosXL7Y2btyYbv/mzZvNhwjFixe3kpKSXPvHjRtnXhT0BcRTovjhhx/6pd0Ifrdu3bLq169vPfHEE+bNxVOCR7zBV9OnTzcxoond7du3Pb6X2ogz+OrMmTPmw1C9CNfrMHfTpk0z8dOrVy/XPmINWbF27VrXtfykSZPumeB5G1PaSaT7mzVrZt28edO1f+XKla4k0VskeDlg9erV6V4wbLNnzzbHJkyYEJC2wVnsT4B27drl+kS8XLlyVpEiRcwnRu70e91fpUqVALUWwWb8+PHmg6r9+/dbPXr0SJfgEW/w1fXr182HUxof7omcJ8QZskNfs/S167XXXkt3THtC9Fi7du3M98QafHGvBM+XmOratau5v02bNqW7vxYtWphjx48f96qNzMHLARs3bjRbnTOVVuvWrc1206ZNfm8XnCcsLMxs8+fPb7Z//fWXnD59Wpo0aWLmfbrT73W/jt9OO7cFSOu3336TDz74QMaPHy81a9b0eA7xBl+tWbNG/vvvP2nfvr2kpKSY+VGTJ0+Wr776Sg4fPpzqXOIM2fHQQw+Zuevbtm0z86DcrVixwmyfeeYZsyXWkNN8iSnNI+xjOZVHkODl0C/TflFJS4tjFClSxHUO4KsTJ07IunXrzIRxnYSbWey57yf+cC83b96U7t27S926dWXkyJEZnke8wVe7d+8229DQUKlTp44pGjVmzBh5/fXXTfGL4cOHu84lzpAdWrxHPzzQ98zq1aubGBs1apS0adPGbAcNGiSDBw825xJryGnextS1a9fkzJkzptiUvj5mdn5W3e0GQLZcvnzZbKOiojwej4yMdJ0D+CI5OVm6detmLsS1wqH9IpCV2HM/D/Bk3Lhx5s1DL8I9vcHYiDf46ty5c2Y7bdo0qV+/vvz6669So0YN2bNnj/Tv318++eQTefDBB83FOHGG7BoyZIjExMRI3759TS+xrWnTpvLaa6+5RsEQa8hp3sZUbsUgPXhAHqelc3v27CmbN2+Wfv36mUQPyCnbt2+XqVOnytixY+WRRx4JdHPg4NcxpUPnfvzxR2nQoIEZ3fLUU0/JDz/8IPny5TNJHpATJk6cKPHx8fLOO++YoXBXrlyRLVu2SFJSkrRo0UKWLVsW6CYCuYoELwfYWXdG2bWOAc8oMwcyuyjq3bu3zJs3z7xZuX8SmdXYcz8PcHf79m3p0aOHGTI3evToTM8n3uArOyZ0Daly5cqlOqYfLFSpUkWOHDkily5dIs6QLTqVQecS6zBMfV0rX768+TBBe++WL19u5rIPGzbMnEusIad5G1O5FYMM0cwB7uNjH3vssVTHzp49axY1bNiwYYBah2BO7nr16iXffvutWexSF9TUT7m9GZud2Vhw3N/0tcmOEe1Z8eTJJ590LU5tF18h3uAtnWenihUr5vG4vf/GjRu8riFbVq1aZba6yLmnugg6L0+HBuvrH7GGnOZtTGlxFa2tkJCQYApQpZ0m4WsMkuDlgObNm8ukSZNMlbAuXbqkOrZ69WrXOYAvyV1cXJzMnTs3w8m3+mm4VgvTibruFZv0e92vE3crVKjg52eAYBAeHi59+vTxeEyHBOsby0svvSSlSpWSSpUqEW/wmX2xffDgQY9zjLWSpsaTxppehBNn8NWtW7fM9vz58x6P6379sFR78nhNQ07zJaY0R1iwYIE51qxZM495RNr9mfJqUQV4pGv66JoW91roPCEhIaBtRPBISUlxrUHWqVOnTNeMYpFW5AZP6+Ap4g3ZXcfz66+/TrV/4sSJZn98fLxrH3EGX82fP9/ESK1atdItdP7ll1+aY02aNHHtI9bgrWBY6DxE/8lutgqRDRs2mLUqChYsaHrxihYtKosXL5bjx4+bAgb2eG8gM//73/9kwoQJZs7AW2+95ar25U7XktKS9vYnQrp2yt69e81ajFqhTtc00x5lLWSga6dEREQE4JkgmGlhnzlz5pgiLI0aNXLtJ97gK51j17hxY1NRs23btq6hcuvXr5eKFSvKjh07TO+dIs7gKx3m1rJlSzMKoXTp0mYUgg4B1vjRWNO40XXH7KkzxBqyYubMmbJ161Zze9++fSZGNG6qVq1q9ukcT63a6mtMaRE9fYxatWqZ10ddOmHhwoXmWlDfh6tVqyZe8TolRIZ27txptWnTxoqMjLQiIiKshg0bWgsWLAh0sxCkPSf3+kr7qZF+Svn2229bFSpUsMLCwqzY2Fhr2LBhVmJiYsCeB5zZg6eIN/jqxIkTVs+ePa0yZcqY2NEYeuONN6x//vkn3bnEGXyVlJRkelnq1atnFSpUyMqfP78VExNjeokPHDiQ7nxiDdm9NtPj2YkpHb01Y8YM0/OsIwJLlChhxcXFWYcPH7Z8QQ8eAAAAADgEyyQAAAAAgEOQ4AEAAACAQ5DgAQAAAIBDkOABAAAAgEOQ4AEAAACAQ5DgAQAAAIBDkOABAAAAgEOQ4AEAAACAQ5DgAQCCwrFjxyQkJER69uwpTjB79mzzfHQLAEBOIcEDAAStFi1amCQpL3JaQgoACA75A90AAACyIiYmRg4ePChRUVHiBB06dJBGjRpJ2bJlA90UAICDkOABAIJCWFiYVK9eXZxCE1WnJKsAgLyDIZoAgKCQdsij3t60aZPrtv2VdkjkH3/8IV26dDE9ZQUKFJCKFSvKm2++KRcvXszw/rWnUHvYSpQoYfbpMbV06VLp2rWrVK1aVQoVKmQStKeeekoWL16c6r50Xl3lypXN7Tlz5qRq38aNGzOdg7dt2zZp27atREdHS8GCBU1iO378eLl+/Xq6c/U+dKjqP//8Iz169JCSJUtKRESE6R20H8vdmTNn5K233pKHHnrInFesWDGpUaOGDBw4UC5fvuz17wUAkLfQgwcACEqa8GhydPz4cXPbVrduXdftZcuWSefOnSVfvnzy8ssvS4UKFeTAgQPy+eefy+rVq2Xnzp1SvHjxVPd7+PBhkxzVrl3bJHuaCGpiqMaMGWNuN23a1CSM58+fN4/x6quvyqeffmoSR7sNmkTNmDFDHn30UWnfvr3r/itVqnTP5/XDDz+YJDI8PFzi4uKkdOnSsmbNGpk4caJpsyZtmvS5u3TpkmmTJpzdunWTc+fOycKFC6V169aye/dueeSRR8x5miA2adLEJKytWrUySeytW7ckISFB5s6dK8OHD6dXEQCCnQUAQBBISEiw9G2rR48ern3Nmzc3+zy5cOGCFRkZacXExFjHjh1LdWz+/Pnm5wYPHpzu/vVr3LhxHu/zyJEj6fZduXLFql27thUVFWVdu3btnu11N2vWLHNct7bLly+b+wkPD7f27t3r2p+SkmLFxcWZ8ydOnJjqfuw2Dxo0yJxnmzlzptk/YMAA175ly5aZfW+//bbH55GUlOSxrQCA4MEQTQCAI3377beSmJgokyZNMsMy3emQzfr168uCBQvS/VyZMmXk3Xff9XifVapUSbevSJEipqdPhzfu2rUrW23+6aefzP307t1b6tSp49qvPZAfffSR5M+f3+OQzsKFC8uUKVPMeTYdrqnne2qTDs309Dy01xAAENwYogkAcKQdO3aYrQ7DPHLkSLrjSUlJcuHCBfOl89ZsOqTSHpKZlg59nDx5sqxatcoMDb1x40aq46dPn85Wm/fs2WO2OqcurdjYWJNgHjp0SK5cuSJFixZ1HatWrZpJ0NxpcvfAAw+Y4Zu2Zs2amaGl+hz27t0r7dq1k+bNm5s5eHl1uQkAgHdI8AAAjvTvv/+a7RdffHHP865du5YqwdOkKKP7a9CggZw4ccLMY3v22WdNgZLQ0FD5/fffTe/bzZs3s9Vm7XG8Vxs0OdMET89zT/AiIyM9nq9JXkpKiut7nV+nie+4ceNk+fLlsnLlSrNf5yaOHj1aBg0alK32AwACjwQPAOBIdtKzb98+V5GRrMioJ+ubb74xyd37778vY8eOTXVMe8Q0wcupNmtFTE/Onj2b6jxfaE+gDvO8c+eOqTCqBVy0QMwbb7xhCs5ogRcAQPBiDh4AIGhp75ly76WyPfHEE2a7ffv2HHkse5inVuNMa8uWLV61LSP16tUzW0/LG5w8edK0QYdpuvfe+Urn62m1z5EjR8r8+fPNPq0ICgAIbiR4AICgpevE2clPWr169TKJkBZM2b9/f7rjumSAPU8vK+xCLVu3bk21f968ea6hju60N0x7Az21LSOaPOowylmzZqVqsxbLHDVqlNy+fTvdOn/e0Pv01Dto70u7/AIAIPgwRBMAELRatmwpixYtko4dO8rzzz9vEhQtkvLiiy9KqVKlTM9Up06dzL42bdqYBcN1npyuA6eLpDdu3Fh+/vnnLD2Wri+nlSp1rbsNGzaYhE8Llfzyyy/yyiuvyJIlS1Kdr0VPdM7e5s2bzc/qwuLaa6a301b1tOnQy6+//toMk9QeSF0HT5/HunXrzHp2DRs2lBEjRvj8/7V27Vrz8zqHUAuz6ELuR48eNT13+n+nwzQBAMGNBA8AELT69etnkjVd7kCTL+3h0uUBNMFTbdu2NZUpP/74Y5MkaYKjSwqUL1/e9PDFx8dn+bH0ZzQp1CGNel/6WLrUgs5h0166tAme0sXDhwwZIitWrDDLH2hPnC5InlGCpzQh1aUadHkHvU/tadTF0d977z3Ti5edXjZd+Fz/vzTp1Pu+evWqxMTEmERSn1fNmjV9vm8AQN4QoovhBboRAAAAAIDsYw4eAAAAADgECR4AAAAAOAQJHgAAAAA4BAkeAAAAADgECR4AAAAAOAQJHgAAAAA4BAkeAAAAADgECR4AAAAAOAQJHgAAAAA4BAkeAAAAADgECR4AAAAAOAQJHgAAAAA4BAkeAAAAAIgz/B+e/8YkuXcRXgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot resulting history of objective values\n", "plt.figure(figsize=(10, 5))\n", "plt.plot([0, maxiter], [opt_result.fval, opt_result.fval], \"r--\", linewidth=2, label=\"optimum\")\n", "for alpha in alphas:\n", " plt.plot(objectives[alpha], label=\"alpha = %.2f\" % alpha, linewidth=2)\n", "plt.legend(loc=\"lower right\", fontsize=14)\n", "plt.xlim(0, maxiter)\n", "plt.xticks(fontsize=14)\n", "plt.xlabel(\"iterations\", fontsize=14)\n", "plt.yticks(fontsize=14)\n", "plt.ylabel(\"objective value\", fontsize=14)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "id": "1597d82d-7c67-4515-8a94-dd7bc149d52d", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "optimal probability (alpha = 1.0): [0.]\n", "optimal probability (alpha = 0.5): [0.00097656]\n", "optimal probability (alpha = 0.25): [0.00683594]\n" ] } ], "source": [ "# evaluate and sort all objective values\n", "objective_values = np.zeros(2**n)\n", "for i in range(2**n):\n", " x_bin = (\"{0:0%sb}\" % n).format(i)\n", " x = [0 if x_ == \"0\" else 1 for x_ in reversed(x_bin)]\n", " objective_values[i] = qp.objective.evaluate(x)\n", "ind = np.argsort(objective_values)\n", "\n", "# evaluate final optimal probability for each alpha\n", "for alpha in alphas:\n", " counts = results[alpha].min_eigen_solver_result.eigenstate\n", " shots = 0\n", " for key, val in counts.items():\n", " shots += val\n", " quasi_dist = QuasiDistribution({outcome: freq / shots for outcome, freq in counts.items()})\n", " \n", " probabilities = np.fromiter(\n", " #results[alpha].min_eigen_solver_result.eigenstate.binary_probabilities().values(),\n", " quasi_dist.binary_probabilities().values(),\n", " dtype=float,\n", " )\n", "\n", " # Fix, because, zero or close to zero states may not be present in the binary_probabilities\n", " # causing a mismatch with the number of items in ind.\n", " \n", " if ( len(probabilities) < len(ind)):\n", " probabilities = np.append(probabilities, [0] * (len(ind) - len(probabilities)))\n", "\n", " print(f\"optimal probability (alpha = {alpha}): {probabilities[ind][-1:]}\")\n", " " ] }, { "cell_type": "code", "execution_count": 15, "id": "ff0676aa-2b90-467d-835e-48f71bdc31f5", "metadata": {}, "outputs": [ { "data": { "text/html": [ "

Version Information

SoftwareVersion
qiskit2.2.1
qiskit_algorithms0.4.0
qiskit_optimization0.7.0
qiskit_aer0.17.1
qiskit_ibm_runtime0.40.1
System information
Python version3.12.9
OSWindows
Tue Oct 21 15:40:21 2025 Mountain Daylight Time
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

Quantum Rings Version Information

SoftwareVersion
QuantumRingsLib0.11.0
quantumrings-toolkit-qiskit0.2.0
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "

This code is a part of a Qiskit project

© Copyright IBM 2017, 2025.

This code is licensed under the Apache License, Version 2.0. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

Modifications (c) Copyright Quantum Rings Inc, 2025
Modified from the originals
Added support for Quantum Rings toolkit for Qiskit.

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import tutorial_magics\n", "\n", "%qiskit_version_table\n", "%quantumrings_version_table\n", "%qiskit_copyright" ] } ], "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.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }