{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Train Variational Quantum Circuits by using evovaq and Qiskit" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## 1) Training a Variational Quantum Classifier through a Memetic Algorithm" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Importing modules" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "from sklearn.datasets import load_iris\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import log_loss\n", "from sklearn.preprocessing import MinMaxScaler\n", "from sklearn.metrics import accuracy_score\n", "from qiskit.circuit.library import ZZFeatureMap, RealAmplitudes\n", "from qiskit import Aer, execute\n", "from evovaq.problem import Problem\n", "from evovaq.GeneticAlgorithm import GA\n", "from evovaq.HillClimbing import HC\n", "from evovaq.MemeticAlgorithm import MA\n", "import evovaq.tools.operators as op\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Uploading the classical data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "iris = load_iris()\n", "\n", "# For the sake of simplicity, we consider all the four features but only two classes\n", "iris_data = iris.data[:100, :4]\n", "iris_target = iris.target[:100] # 0 or 1\n", "\n", "# Split into train and test subsets\n", "train_data, test_data, train_labels, test_labels = train_test_split(iris_data, iris_target, test_size=0.2,\n", " random_state=42)\n", "\n", "# Pre-process data\n", "scaler = MinMaxScaler()\n", "scaler.fit(train_data)\n", "\n", "train_data = scaler.transform(train_data)\n", "test_data = scaler.transform(test_data)" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Building the Variational Quantum Classifier" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Encode classical data in a quantum system through a FeatureMap\n", "dim = train_data.shape[1]\n", "feature_map = ZZFeatureMap(dim, reps=1, entanglement='linear')\n", "\n", "# Define an Ansatz to be trained\n", "ansatz = RealAmplitudes(num_qubits=dim, reps=1, entanglement='circular')\n", "\n", "# Put together our quantum classifier\n", "circuit = feature_map.compose(ansatz)\n", "\n", "# Measure all the qubits to retrieve label information\n", "circuit.measure_all()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "def get_label_prediction(circuit, features, params):\n", " # Bind the parameters to our quantum classifier\n", " bound_circuit = circuit.bind_parameters(np.concatenate((features,params)))\n", " backend = Aer.get_backend('qasm_simulator')\n", " counts = execute(bound_circuit, backend).result().get_counts()\n", " \n", " # Read the label by considering the parity mapping of the final quantum state\n", " parity_1 = 0\n", " for state, count in counts.items():\n", " if state.count('1') % 2 == 1:\n", " parity_1 += count\n", " return parity_1 / sum(counts.values())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Defining the cost function to be minimized" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "def cost_function(params):\n", " predictions = [get_label_prediction(circuit, features, params) for features in train_data]\n", " return log_loss(train_labels, predictions)" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Setting up the problem" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "problem = Problem(ansatz.num_parameters, ansatz.parameter_bounds, cost_function)" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Defining a Memetic Algorithm" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "pycharm": { "is_executing": true, "name": "#%%\n" } }, "outputs": [], "source": [ "# Define the global search method\n", "global_search = GA(selection=op.sel_tournament, crossover=op.cx_uniform, mutation=op.mut_gaussian, sigma=0.2, mut_indpb=0.15,\n", " cxpb=0.9, tournsize=5)\n", "\n", "# Create a neighbour of a possibile solution\n", "def get_neighbour(problem, current_solution):\n", " neighbour = current_solution.copy()\n", " index = np.random.randint(0, len(current_solution))\n", " _min, _max = problem.param_bounds[0]\n", " neighbour[index] = np.random.uniform(_min, _max)\n", " return neighbour\n", "\n", "# Define the local search method\n", "local_search = HC(generate_neighbour=get_neighbour)\n", "\n", "# Compose the global and local search method for a Memetic Algorithm \n", "optimizer = MA(global_search=global_search.evolve_population, sel_for_refinement=op.sel_best, local_search=local_search.stochastic_var, frequency=0.1, intensity=10)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Training our VQC" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Generations: 0%| | 0/10 [00:00 0.5 else 0 for features in test_data]\n", "test_accuracy = accuracy_score(test_labels, test_predictions)\n", "print(\"Accuracy on the test subset:\", test_accuracy)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) QAOA trained by a Particle Swarm Optimization algorithm to solve MaxCut problem" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Importing modules" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "pycharm": { "is_executing": true, "name": "#%%\n" } }, "outputs": [], "source": [ "import networkx as nx\n", "import numpy as np\n", "from qiskit import execute, Aer\n", "from qiskit.visualization import plot_histogram\n", "from qiskit_optimization.applications import Maxcut\n", "from qiskit.circuit.library import QAOAAnsatz\n", "from evovaq.problem import Problem\n", "from evovaq.ParticleSwarmOptimization import PSO" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "#### Defining the graph" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "pycharm": { "is_executing": true, "name": "#%%\n" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "num_nodes = 5\n", "edges = [(0, 1), (0, 2), (0, 3), (0, 4)]\n", "\n", "G = nx.Graph()\n", "G.add_nodes_from(range(num_nodes))\n", "G.add_edges_from(edges)\n", "nx.draw(G, with_labels=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Mapping the MaxCut problem in a QAOA circuit ansatz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### 1 - Trasforming the MaxCut instance in a quadratic problem" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "pycharm": { "is_executing": true } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Problem name: Max-cut\n", "\n", "Maximize\n", " -2*x_0*x_1 - 2*x_0*x_2 - 2*x_0*x_3 - 2*x_0*x_4 + 4*x_0 + x_1 + x_2 + x_3 + x_4\n", "\n", "Subject to\n", " No constraints\n", "\n", " Binary variables (5)\n", " x_0 x_1 x_2 x_3 x_4\n", "\n" ] } ], "source": [ "maxcut_prob = Maxcut(G)\n", "maxcut_qp = maxcut_prob.to_quadratic_program()\n", "print(maxcut_qp.prettyprint())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### 2 - Defining the Hamiltonian by mapping the QUBO problem in an Ising Model" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "pycharm": { "is_executing": true } }, "outputs": [], "source": [ "# MaxCut problem to Hamiltonian operator\n", "hamiltonian, offset = maxcut_qp.to_ising()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### 3 - Building the QAOA circuit based on the MaxCut instance" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# QAOA ansatz circuit\n", "qaoa_circuit = QAOAAnsatz(hamiltonian, reps=2)\n", "qaoa_circuit.measure_all()\n", "qaoa_circuit.decompose(reps=3).draw('mpl')" ] }, { "cell_type": "markdown", "metadata": { "pycharm": { "is_executing": true } }, "source": [ "#### Defining the cost function to be minimized" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "pycharm": { "is_executing": true } }, "outputs": [], "source": [ "def cost_function(params):\n", " backend = Aer.get_backend('qasm_simulator')\n", " # Bind the parameters to the QAOA circuit\n", " bound_qaoa_circuit = qaoa_circuit.bind_parameters(params)\n", " counts = execute(bound_qaoa_circuit, backend, shots=512).result().get_counts()\n", " cost_value = 0\n", " # Compute the cost value by using the maxcut objective function\n", " for bitstring, count in counts.items():\n", " cost_value -= count * maxcut_qp.objective.evaluate([int(bit) for bit in bitstring[::-1]])\n", " return cost_value / sum(counts.values())\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Setting up the problem" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "qaoa_problem = Problem(qaoa_circuit.num_parameters, (0, 2 * np.pi), cost_function)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Defining the Particle Swarm Optimization algorithm" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "optimizer = PSO(vmin=-0.1, vmax=0.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Training the QAOA circuit" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "Fitness Evaluations: 0%| | 0/100 [00:00" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "backend = Aer.get_backend('qasm_simulator')\n", "trained_qaoa_circuit = qaoa_circuit.bind_parameters(res.x)\n", "counts = execute(trained_qaoa_circuit, backend, shots=512).result().get_counts()\n", "plot_histogram(counts, title='Distribution of the final counts')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimal solution: [0 1 1 1 1]\n" ] } ], "source": [ "bitstring = maxcut_prob.sample_most_likely(counts)\n", "print('Optimal solution: ', bitstring)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAApjUlEQVR4nO3deZCdd33n+8/po9bWWlqyZFmStQUclrDGTmIgA2Qh3IRLXEUxyQWugUmReBiWSSAJMwQGxoGZZJLLkkCKMEWKzUwmAWeuk4EicCcQIIAxYGCwjVM+T6styQvWaq3d6j73j6O2Zbm71d1n636e16vKJal1ztM/QZX89u85v+9TazabzQAAwAIN9HsBAAAsbYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaIugBACgLYISAIC2CEoAANoiKAEAaMuyfi8AoOqazeTEieTs2WTVqmTFin6vCGB+7FAC9MGBA8k735k873nJhg3J2rWtH1euTPbsSV760uS//bdkbKzfKwW4uFqz2Wz2exEAVbFvX/LGNyaf/GRSqyWTk60dygvV68nERLJxY/KmNyVveEOyzD0lYJESlAA98uEPJ699bXL6dCsW56pWS572tOSGG5InPKFbqwNYOEEJ0ANve1ty/fULf3+9nqxenXz+88lP/mTn1gXQCYISoMve9a7Wbe52DQwkQ0PJzTcnj398+9cD6BRBCdBF3/lOcuWV87vFPZt6vXX7+2tf85lKYPFwyhugSyYnk5e//GKvOp7kbUn+jyQbk9SSfHjGV09MJN/6VvLe93ZokQAdICgBuuRzn0u++92L7U4+kOT6JLcneeqcrttsJn/4h8n4ePtrBOgEQQnQJe9731xuS29Nck+SvUn+aM7X/uEPk//xPxa8NICOEpQAXTA+nnz2s62n38xuRZLL5n39ZcuS//k/F7IygM4TlABd8P3vd/eW9NmzrYM5AIuBoATogttu6/73+Od/bh38Aeg3QQnQBSdOdP97TE4mZ850//sAXIygBOiCwcFyfR+A2QhKgC7Ys6f732PLFsPNgcVBUAJ0wdOf3t3rDwwkP/VT3f0eAHMlKAG6YN265MlPTmq17n2P5z63e9cGmA83SwC65DWvSV796rm88n1JjiQ5cO7Xf5tk37mfvy7J+ke9o16fy2MdAXqj1mw2m/1eBEAZHT+eXH55cuxY63GJM9ud1pNyplOc+/2HTcXkX/xFJ1YJ0D5BCdBFH/94cu21nbterZYMDyd33JFcemnnrgvQDp+hBOiil70s+eVfbu0qdkKzmXzwg2ISWFwEJUAX1WrJJz6R/MRPdCYq//iPkxe/uP3rAHSSoATosqGh5POfT174wtav53vye9myZPny1s7kG9/Y+fUBtEtQAvTA0FBy443JDTck688d2h64yN/AU0PLr7oq+d73kl//9e6uEWChHMoB6LGTJ5O//Mvk/e9Pbr21mcnJR29Zrl7d2tF87WuTZz2ru/MsAdolKAH6aN++Q9mx4//M61//rlx55dUZGkqe9KTkiisuvoMJsFgYbA7QR/fe20jy1Vx77bJcdVW/VwOwMP77F6CPiqJIkvzIj/xIn1cCsHCCEqCPGo1G1q9fnw0bNvR7KQALJigB+qjRaGTPnj2pOXUDLGGCEqCPiqJwuxtY8gQlQB81Gg1BCSx5ghKgTyYmJrJ3797s2bOn30sBaIugBOiTffv25ezZs3YogSVPUAL0SaPRSBI7lMCSJygB+qTRaKRWq2XXrl39XgpAWwQlQJ8URZHt27dn5cqV/V4KQFsEJUCfTM2gBFjqBCVAnxgZBJSFoAToE0PNgbIQlAB9cPz48dx///1ueQOlICgB+mBkZCRJ7FACpSAoAfpgagaloATKQFAC9EGj0cjKlStz2WWX9XspAG0TlAB9UBRF9uzZk1qt1u+lALRNUAL0gZFBQJkISoA+MNQcKBNBCdBjzWbTDEqgVAQlQI/dd999OXXqlKAESkNQAvTY1Mggt7yBshCUAD1WFEUSQQmUh6AE6LFGo5HNmzdn7dq1/V4KQEcISoAec8IbKBtBCdBjTngDZSMoAXrMUHOgbAQlQA+dOXMm+/btc8sbKBVBCdBDo6OjaTabdiiBUhGUAD1kBiVQRoISoIcajUbq9Xp27NjR76UAdIygBOihoiiya9euLFu2rN9LAegYQQnQQ2ZQAmUkKAF6yAxKoIwEJUAPmUEJlJGgBOiRw4cP58iRI255A6UjKAF6pCiKJLFDCZSOoATokakZlIISKBtBCdAjjUYja9euzcaNG/u9FICOEpQAPTJ1wrtWq/V7KQAdJSgBesQJb6CsBCVAjxhqDpSVoATogYmJiezdu9cOJVBKghKgB/bv35/x8XFBCZSSoATogamRQW55A2UkKAF6YGqo+e7du/u7EIAuEJQAPdBoNLJ9+/asXLmy30sB6DhBCdADTngDZSYoAXpgaqg5QBkJSoAesEMJlJmgBOiyEydO5L777rNDCZSWoATospGRkSQRlEBpCUqALjODEig7QQnQZY1GIytWrMjWrVv7vRSArhCUAF1WFEX27NmTgQF/5QLl5G83gC5zwhsoO0EJ0GVmUAJlJygBuqjZbKbRaAhKoNQEJUAX3X///Tl58qRb3kCpCUqALiqKIokZlEC5CUqALjKDEqgCQQnQRY1GI5dccknWrVvX76UAdI2gBOgiJ7yBKhCUAF3khDdQBYISoIsMNQeqQFACdMnY2Fj27dtnhxIoPUEJ0CWjo6OZnJwUlEDpCUqALjEyCKgKQQnQJUVRpF6vZ8eOHf1eCkBXCUqALmk0GtmxY0cGBwf7vRSArhKUAF1iZBBQFYISoEsMNQeqQlACdIkZlEBVCEqALjhy5EgOHz5shxKoBEEJ0AVFUSSJoAQqQVACdIEZlECVCEqALiiKImvWrMmmTZv6vRSArhOUAF0wNTKoVqv1eykAXScoAbrACW+gSgQlQBeYQQlUiaAE6LCJiYmMjIwISqAyBCVAhx04cCBjY2NueQOVISgBOswMSqBqBCVAh03NoNy9e3d/FwLQI4ISoMMajUa2bt2aVatW9XspAD0hKAE6zAlvoGoEJUCHTQ01B6gKQQnQYYaaA1UjKAE66OTJk7n33nvtUAKVIigBOmhkZCRJ7FAClSIoATpoamSQHUqgSgQlQAcVRZHly5dn27Zt/V4KQM8ISoAOajQa2b17dwYG/PUKVIe/8QA6yMggoIoEJUAHGWoOVJGgBOiQZrNpBiVQSYISoEN++MMf5sSJE3YogcoRlAAdUhRFEiODgOoRlAAdMjWD0i1voGoEJUCHFEWRjRs3Zv369f1eCkBPCUqADjEyCKgqQQnQIU54A1UlKAE6xAxKoKoEJUAHjI+PZ3R0VFAClSQoATpgdHQ0k5OTbnkDlSQoATrADEqgygQlQAc0Go0MDAxk586d/V4KQM8JSoAOaDQa2bFjRwYHB/u9FICeE5QAHeCEN1BlghKgAww1B6pMUAJ0gKHmQJUJSoA2HT16NIcOHbJDCVSWoARo09TIIDuUQFUJSoA2NRqNJGZQAtUlKAHaVBRFhoaGsnnz5n4vBaAvBCVAm6YO5NRqtX4vBaAvBCVAm4wMAqpOUAK0yVBzoOoEJUAbJicnUxSFE95ApQlKgDbcc889GRsbs0MJVJqgBGiDkUEAghKgLVNBuXv37v4uBKCPBCVAG4qiyGWXXZbVq1f3eykAfSMoAdpgZBCAoARoy9RQc4AqE5QAbTCDEkBQAizYqVOncuDAAUEJVJ6gBFigkZGRJHHLG6g8QQmwQEVRJDGDEkBQAixQo9HI8uXLs23btn4vBaCvBCXAAjUajezatSv1er3fSwHoK0EJsEBOeAO0CEqABTKDEqBFUAIsQLPZ9JQcgHMEJcACHDx4MMePHxeUABGUAAvSaDSSmEEJkAhKgAWZCko7lACCEmBBiqLIhg0bMjw83O+lAPSdoARYACe8AR4mKAEWwAlvgIcJSoAFMNQc4GGCEmCezp49m9HRUbe8Ac4RlADzdPfdd2diYsIOJcA5ghJgnowMAngkQQkwT41GI7VaLTt37uz3UgAWBUEJME9FUWTHjh1Zvnx5v5cCsCgISoB5MjII4JEEJcA8GWoO8EiCEmCezKAEeCRBCTAPx44dywMPPCAoAc4jKAHmoSiKJHHLG+A8ghJgHqaC0g4lwMOW9XsBvTYxkXz2s61/br45ueOO5MyZZPny5LGPTa6+Ovm5n0te+MJkWeX+1wEuptFoZPXq1bn00kv7vRSARaMyyTQxkfzZnyX/5b8k+/Ylg4PJ+PjDv3/qVPLNbybf/W7y/vcnl16a/NZvJW94Qys2AZKHT3jXarV+LwVg0ajELe8f/CB5xjOS17++FZPJI2PyfFNfv//+5M1vTp7+9OTWW3uyTGAJcMIb4NFKH5Rf/nJy5ZXJt789//c2m60Yvfrq5DOf6fzagKXHDEqARyt1UN56a/L857duZ589u7BrTEwkY2PJNdckX/pSR5cHLDGTk5N2KAGmUdqgPH06+ZVfaR24mZxs71rNZissf/VXk2PHOrM+YOm59957c+bMGUEJcIHSBuX11yd33dUKwUf7RpLXJvmxJENJdib5lSR3zni9ycnW5yp/+7e7sFhgSWg0GknMoAS4UCmD8ujR5N3vnm1n8g+TfCrJzyV5b5LfSPKPSX48yf+e8boTE8mHPpTs39/Z9QJLg6AEmF4pg/KjH23d6p7ZG5LsTfInSV6V5C1JvpTkbJI/uOj1P/jB9tcILD1FUWTLli0ZGhrq91IAFpVSBuVf//XFXvHMJBcOl7wirVvgt8/6zsnJuVwfKCMnvAGmV7qgnJxsDShvNuf7zmaS+5Jsuugrf/CD1slxoFoajYYDOQDTKF1Qjo4mJ08u5J03JNmf5Fcv+srJyeS22xbyPYClzMgggOmVLigXNtbnjiSvSfKMJK+Y0zuOHJn2+DhQUqdPn87+/fvd8gaYRume5b1s3n+ie5O8IMn6JJ9MUp/Tu37+55+bjRtvy8aNG3PJJZdk48aNj/j5hT9O/XzdunUZGChdx0Pp7d27N0nsUAJMo3RBuX37fF59NMkvJjmS1invbXN+5zvf+eoMDIzm0KFDOXjwYA4dOpTR0dHceuutOXjwYA4ePJjxaR4YPjAw8Kj4nEuIrl27NrVabT5/OKCDpkYGCUqARytdUK5fn+zalZzbTJjF6SQvTGuY+eeTPHHO32PduuTf//uXZra+azabOXny5EOxOfXj+T+f+rHRaOSWW2556Gtnp3lO5LJlyxYUokNDQ0IUOqDRaGRwcDDb5/dfrQCVULqgTJLnPje54YbZnt89kdbhm68m+X/T+uzk3NTryU//dGaNySSp1WoZGhrK0NBQdu7cOefrN5vNHD9+fE4heueddz70e4cOHcrENI8FWr58+YJCdNWqVUIUzlMURXbt2pV6fW4fiwGoklIG5atelXzkI7O94o1Jbkprh/JQko9f8Pv/94zvnJhIfuM32l3hzGq1WtauXZu1a9dm9+7dc37f5ORkHnzwwTmF6G233faIEG1OM2NpxYoVM8bmbCG6cuXKDv6vAYuHkUEAM6s1p6uJJa7ZTJ785OSOO2Z6lvdzk3xxtitM+9WBgWTr1mRkZCGHfxanycnJHD16dE4hev7vHT58eNrrrVq1ak4heuHPV6xY0eM/OczP0572tFx99dX5wAc+0O+lACw6pQzKJPnKV5J/8S8WMuB8dn/3d8kLXtDZay5FExMTOXLkyLxD9OjRo9Neb2hoaF47oVM/Hxwc7PGfnNJ78MHkxhuTr341+frXkwMH0pycTOPgwYw95Sl5wrXXJi9+cevD2gAkKXFQJskb35i8+92dicqBgeTaa5MPf7j9a1XZ+Pj4gkL0wQcfnPZ6a9eunXeIbtiwIcvKssVM59x/f/L7v5/8xV+0no4wOJhcMKlhcmCgNby32Ux+6ZeSt70t+Ymf6MtyARaTUgfl+Hjyohcln/506+k2CzUwkDzrWclnP5usWtW59TF3Y2NjOXz48LxD9MSJE9Neb/369fMO0eHhYQcyyuqv/iq57rrk+PHZTvM9Ur3e+ovlTW9K3v72xMc2gAordVAmydhY8uu/nnz0o62T2fP50069/pprkk98Ilm9unvrpDtOnz69oBA9Nc3D2mu1WoaHh+cdouvXrzfMfrFqNpO3vjV55zvn/xfElFqt9V+cn/50snZt59cIsASUPiin3HhjKyynzpLM9qeempazZk3yvve1bnWboFMtp06dmjE2ZwrRgwcPZmxs7FHXGhgYyIYNG+YdouvWrTO6qdve8Y5WULarXk+e+czkc5+zUwlUUmWCMml91v7jH0/+5E9aJ8CT1r8HpjYmpk6E79mTvO51yStekWzc2L/1srRMDbNfSIhON8y+Xq/P67T81I9r1qwRonPxpS8lz3lO507u1WrJW96SXH99Z64HsIRUKijPd889yTe/2QrL06dbmwpXXJFcdVXr8Y3+fUyvTA2zn2uInv/z6YbZDw4OzmsndOrH1atXVydET51KnvjE5O67Z5otljNJ/kOSjyU5nOQpSd6R5HmzXXdgILnlluTpT+/wggEWt8oGJSx1zWYzx44dm9dnQw8ePJjDhw9ncppTaitWrFhQiK5aiifVPvSh1hMQZvGSJJ9M8ptJrkjy4STfSPIPSX56pjfV660PXX/qU51aKcCSICihYqaG2c83RI8cOTLtU5VWrVq1oBDt2zD7ZjN56lOT739/xvEPNyf5qSR/lOS3z33tdJInJbk0yT/Ndv2BgWR0tHWrA6AiBCUwJ1PD7OcborMNs59viG7YsCHLly9v7w9SFMlFHqH4u0neldaDWded9/X/nOTNSUaT7JjpzbVa8qd/mrzmNe2tE2AJMd0ZmJN6vZ5LLrkkl1xySa644oo5v+/s2bM5fPjwnEK00Wg89PPZhtkvJEQfGmZ/yy0XXfO3k/xoHhmTSfKT5368NbMEZb3e+oA2QIUISqCrli1bls2bN2fz5s3zet/4+Pij4nO6EH3ggQdy5513PvS12YbZb9y4Mb936lReUatl2Sw3Z+5JsnWar0997cBsCz97VlAClSMogUVpcHAwW7ZsyZYtW+b1vjNnzswaorv/9m/TvO++Wa9xKsl0n/Bced7vz6Z55Egqcl4eIImgBEpmxYoV2bp1a7ZunW6PMa05YXfe+ajndJ9vVVpjgx711vN+fzbF6Gh+avPmWW/LT/ejGaLAUiUogWrZtm3G2ZNTtibZP83X75m6xCzvbSZZecUV+a1XvvIRt+fvuuuu3HzzzQ/tmE43zH5qhuh8InRqhihAPwlKoFquvHLGcUFTnpbWvMljeeTBnK+f9/szqQ0OZts11+TNb37zjK9pNpt58MEHZ3160tSPt99++yNu3U83mGPlypUzBudsB5f6NroJKB1jg4BqOXo02bSpdXhmBl9PcnUeOYfyTFpzKC9J8rWLfY9PfSp50YvaX+sFpmaIHjx4cE4xOpfRTfPdDd24cePDJ+YBzhGUQPW85CXJJz85a1T+SpK/SfJbSR6b5CNpDTz//5I8e7Zrb9yYHDjQep7rIjHd6Ka5/Hj8+PFprzd1Yn4+MTo8PJyBgYEe/8mBXhGUQPX80z8lz3rWrC85neStST6eh5/l/ftJnj/bm+r15N/9u+Qd7+jQQvtrbGxs3hF66NChnDr16HPwtVotGzZsmPet+XXr1jmoBEuAoASq6SUvSf76ry96QGfOBgaSyy5Lbr89WXfhSPRqOXXq1JwD9Pyfj09z8r5ery/ooNLQ0JAQpSvuvDP5X/+r9YyEO+5oDY5YvTp54hNbH9H++Z9P9uzp9yp7T1AC1XTwYPK4xyVHjnQuKv/+75PnPa8z16qYZrOZEydOzHs39NChQ5mY5v+/5cuXzztCL7nkkqxcuXKa1UHyd3+X/PEfJ1/8YusJq/X6Iz81MzjYmkZWqyXPf37yO7+T/OzP9m+9vSYogeq65ZbkOc9JzpxpPyrf857k3/7bjiyLuZucnJzzifnzd0WPHDky7Yn5VatWzSk8O/6MeRat++9PXv3q5MYbWxE5l78qpl73ylcm7353Mjzc7VX2n6AEqu2b30x+8ReTQ4fmH5VTp53/9E+Tf/2vO782umZiYiJHjhyZ92dEjx07Nu31pp4xP5/d0A0bNqRer/f4T858fP/7yc/8zML+ekhaYbl9e/KFL5T/NrigBDh8uLW7+LGPtSJxltPfSR7efnjyk5OPfzx5ylN6s076bnx8fE4n5i/82kzPmB8eHr7owaQLf1y/fr0T8z1w553JM57RmjTWzg2MZcuSSy9Nvv715PLLO7e+xUZQAkz5xjeSP/uz5BOfSMbGMpmkWa+nPjDQGoY+9W+V5zwned3rkmuueXiXEmYx9Yz5+d6aP3Pm0Q8BHRgYyIYNG+a1G+rRnvMzPt46YHP77Rf/78u5WLasFadf+ELr/F4ZCUqAC508mbtuvDHvvvbavOkVr8iOrVtbH4J66lNb/5bZvLnfK6QiTp48Oedd0PN/nO3RnvO9Nb9q1arKhej11ydvf3syfSF9P8nbk3wzyb1JVid5YpLfSfLCWa/7/vcn/+bfdHKli4egBJjGTTfdlGuuuSYHDhzI1q1b+70cmLNms5njx48v6MT85DSPJV2xYsWcDyid/+NSfbTnkSPJ1q2tcUDT+3SSP0nyjCTbkpxM8qkkX0ry50l+Y8Zrb9iQ3HPPonruQce4VwMwjaIosmLFimzZsqXfS4F5qdVqWbt2bdauXZvdu3fP+X2Tk5M5duzYnHZDv/Od7zz06yNHjkx7vaGhoQUdVBocHOzM/xAL9JGPtAY/zOyXzv1zvtcmuTLJuzJbUB4+3Hoy60tf2u4qFx9BCTCNkZGR7N692+EHKmNgYCDDw8MZHh7OYx7zmDm/b2JiYs6P9rzrrrse+vWDDz447fXWrVs37xmiw8PDHTsx/7GPLeRd9SQ7knxj1lcNDLSuLygBKqIoiuwp+5wP6IB6vZ5NmzZl06ZN83rf+Pj4Q7faZ/tM6H333Zfbb7/9oV+fPHnyUdeq1WoZHh6e9635Cx/tOT6efPe7M3128kInkpxKcjTJTUk+k+RXZ33H5GRy882t65ftY6mCEmAaRVHkmc98Zr+XAaU1ODiYLVu2zPtjJadPn57Tbujdd9+d73znOw/F6tjY2KOuNfVoz6nAXLbs6Rkff98cV/LGtD4zmSQDSV6U5OLvPXSo9TnKbdvm+G2WCEEJcIFms5mRkZG87GUv6/dSgAusXLky27Zty7Z5FFmz2XzEifmZIvQHP1g3j5X8ZpIXJzmQ5K+STCR5dLRO59AhQQlQeocPH86xY8fmdaABWLxqtVqGhoYyNDSUHTt2zPi6L34xee5z53rVx5/7J0lenuQX0hob9PUks9/PLtvt7qS1RwvAeUZGRpLEZyihYi69tJ13vzitQzl3dvn7LE6CEuACRVEkEZRQNT/6o8nKlQt996lzPx6d9VVbtpTz2QiCEuACRVFkaGgol1xySb+XAvRQvZ5cddXFHo94/zRfG0/y0SSr0npqzszXf9az2lriouUzlAAXGBkZyZ49eyr3uDkg+bVfS7785dlecV2SY0menWR7Wo9fvCHJHUn+nyRrZnznxETyyld2aqWLi0cvAlzgBS94Qer1em666aZ+LwXosZMnW49ePHZsplf8ZZIPJflekoNJ1qb1lJzXJfnlGa9bq7WuOzra2qksG7e8AS4w9ZQcoHpWr07+4A9me8X/leRzae1Mjic5dO7XM8dk0hpm/p73lDMmE0EJ8AhTMygdyIHquu665DnPSZZ16IOB9Xry4hcn//JfduZ6i5GgBDjP/fffn5MnT9qhhAobGEj++39PduxoPyrr9eSJT0z+63/tzNoWK0EJcB4zKIGkNd7ny19OHvvYi536nlmtlvz4jydf+EIyPNzJ1S0+ghLgPFMzKO1QAtu2Jd/6VvKGN7TicK67lcuWtf75j/8x+cpXko0bu7vOxUBQApynKIoMDw9nuOzbCcCcrFqV/NEfJd/+dvLylycrVrS+Xq+3onFgoPXj1GGb1atbn8H83veSt741GRzs39p7ydgggPNcd911+cY3vpFvfetb/V4KsAgdPZp87WvJLbckd96ZjI21nq7z+McnV16ZXH11smbmUZSlJSgBzvMLv/ALWbNmTW688cZ+LwVgyXDLG+A8RgYBzJ+gBDhncnIye/fuFZQA8yQoAc45cOBAxsbGnPAGmCdBCXCOGZQACyMoAc4xgxJgYQQlwDlFUWTz5s0ZGhrq91IAlhRBCXCOE94ACyMoAc4pisLtboAFEJQA59ihBFgYQQmQ5OzZs7n77rsFJcACCEqAJHfffXcmJibc8gZYAEEJEDMoAdohKAHy8AzKnTt39nklAEuPoARIa4dy27ZtWblyZb+XArDkCEqAtHYo3e4GWBhBCRAzKAHaISgBYgYlQDsEJVB5Z86cyYEDBwQlwAIJSqDy9u7dm2az6ZY3wAIJSqDyzKAEaI+gBCqvKIoMDAzk8ssv7/dSAJYkQQlU3sjISHbs2JHBwcF+LwVgSRKUQOWZQQnQHkEJVJ4ZlADtEZRA5ZlBCdAeQQlU2okTJ3L//fcLSoA2CEqg0vbu3ZskbnkDtEFQApVWFEUSMygB2iEogUoriiKDg4PZunVrv5cCsGQJSqDSRkZGsmvXrtTr9X4vBWDJEpRApZlBCdA+QQlUmhmUAO0TlEClmUEJ0D5BCVTW0aNHc/jwYTuUAG0SlEBljYyMJDEyCKBdghKoLDMoATpDUAKVVRRFVq1alUsvvbTfSwFY0gQlUFkjIyPZvXt3arVav5cCsKQJSqCyzKAE6AxBCVSWGZQAnSEogUpqNptmUAJ0iKAEKungwYM5fvy4HUqADhCUQCWZQQnQOYISqCQzKAE6R1AClVQURdauXZsNGzb0eykAS56gBCpp6kCOGZQA7ROUQCUZGQTQOYISqCQjgwA6R1AClWMGJUBnCUqgcu69996cPn3aLW+ADhGUQOWYQQnQWYISqJypGZR2KAE6Q1AClVMURTZu3Jh169b1eykApSAogcpxIAegswQlUDlmUAJ0lqAEKscOJUBnCUqgUiYmJjI6OiooATpIUAKVsn///oyPj7vlDdBBghKoFDMoATpPUAKVYgYlQOcJSqBSRkZGsmXLlqxatarfSwEoDUEJVEpRFG53A3SYoAQqxQxKgM4TlEClmEEJ0HmCEqiM8fHx7Nu3T1ACdJigBCpjdHQ0k5OTbnkDdJigBCrDDEqA7hCUQGUURZFarZYdO3b0eykApSIogcoYGRnJ9u3bs2LFin4vBaBUBCVQGWZQAnSHoAQqwwxKgO4QlEBlmEEJ0B2CEqiEU6dO5Z577hGUAF0gKIFK2Lt3b5K45Q3QBYISqAQzKAG6R1AClVAURer1erZv397vpQCUjqAEKmFkZCQ7d+7MsmXL+r0UgNIRlEAlmEEJ0D2CEqgEMygBukdQApVgBiVA9whKoPSOHz+eBx54wA4lQJcISqD0jAwC6C5BCZReURRJBCVAtwhKoPSKosiKFSty2WWX9XspAKUkKIHSGxkZya5duzIw4K88gG7wtytQemZQAnSXoARKzwxKgO4SlEDpmUEJ0F2CEii1w4cP5+jRo3YoAbpIUAKlZgYlQPcJSqDUzKAE6D5BCZRaURRZvXp1Nm3a1O+lAJSWoARKbepATq1W6/dSAEpLUAKlZgYlQPcJSqDURkZGnPAG6DJBCZRWs9m0QwnQA4ISKK0f/vCHOXnypB1KgC4TlEBpmUEJ0BuCEigtMygBekNQAqVVFEXWr1+f4eHhfi8FoNQEJVBaUzMoAeguQQmUVlEUDuQA9ICgBErLDiVAbwhKoJQmJycFJUCPCEqglO65556MjY255Q3QA4ISKCUzKAF6R1ACpTQ1g9IOJUD3CUqglIqiyKZNm7JmzZp+LwWg9AQlUEoO5AD0jqAESskMSoDeEZRAKdmhBOgdQQmUztmzZzM6OiooAXpEUAKls2/fvkxMTLjlDdAjghIoHTMoAXpLUAKlMzWDcteuXX1eCUA1CEqgdEZGRrJ169asXLmy30sBqARBCZROURRudwP0kKAESscMSoDeEpRA6ZhBCdBbghIolTNnzmT//v2CEqCHBCVQKqOjo2k2m255A/SQoARKxQxKgN4TlECpFEWRgYGB7Nixo99LAagMQQmUysjISC6//PIMDg72eykAlSEogVIxgxKg9wQlUCpmUAL0nqAESsUMSoDeE5RAaZw8eTL33XefoAToMUEJlMbevXuTxC1vgB4TlEBpFEWRxAxKgF4TlEBpFEWRwcHBbNu2rd9LAagUQQmUxsjISHbu3Jl6vd7vpQBUiqAESsMMSoD+EJRAaZhBCdAfghIoDTMoAfpDUAKlcOzYsRw6dMgOJUAfCEqgFEZGRpIYGQTQD4ISKAUzKAH6R1ACpVAURVauXJktW7b0eykAlSMogVIYGRnJ7t27U6vV+r0UgMoRlEApmEEJ0D+CEigFMygB+kdQAktes9k0gxKgjwQlsOQdOnQoDz74oB1KgD4RlMCSZwYlQH8JSmDJM4MSoL8EJbDkFUWRNWvWZOPGjf1eCkAlCUpgyZs6kGMGJUB/CEpgyTMyCKC/BCWw5BkZBNBfghJY0sygBOi/Zf1eAMB83XNP8u1vJwcPJkePHs2pU8/O8PCP9ntZAJVVazabzX4vAuBiiiL58z9PPvKR5N57p3/N9u3Jv/pXyXXXJZdf3tv1AVSZoAQWtePHk9/93eQDH0gGBpKJidlfX68nzWbym7+ZvOMdyapVPVkmQKUJSmDR+ta3kmuuSQ4cSCYn5/fegYFk9+7kppuSH/uxriwPgHMEJbAo3Xxz8jM/k5w5c/FdyZnU68maNck//mPylKd0dn0APExQAovO/v2tXcXjxxcek1Pq9WTDhuT225NNmzqzPgAeydggYFFpNpNXvSo5cWKuMfnOJLUkT5r2dycmksOHk9e+toOLBOAR7FACi8rf/E3yohfN9dX7kjwuraDcneR/z/rqv//75HnPa2d1AEzHDiWwqLz73a3b1HPz20muTnLVRV+5bFny3ve2sTAAZmSHElg07rwzedzj5vrqf0zys0m+neR1SR7IxXYoa7VkdNSMSoBOs0MJLBpf/OJcXzmRVkS+KsmT53z9ZjP5ylfmvy4AZicogUXjm99s3Zq+uA8k2Zvk9+d1/cHB1vcAoLMEJbBo3HVXcvbsxV51MMl/SPLWJJvndf2zZ1uPcASgswQlsGiMjc3lVW9JsjGtW97z02zO9XsAMB9zurkE0Atr17YOzsx8VPCfk3wwyXuSHDjv66eTjCcZSbIureB8tHo9GRrq0GIBeIgdSmDReNKTLvYZyv1JJpO8Psme8/75epI7z/38+lm/h+d6A3SeHUpg0bjyymR8fLZXPCnJ30zz9bckeTDJe5M8ZsZ3T0y0vgcAnWUOJbBoHDqUbN26kM85PjdzmUM5NJTce2+yZs3C1gfA9NzyBhaNjRuTl750rqOD5mfZsuTXfk1MAnSDHUpgUfne95KnP711e7qTli9PbrsteczMd8QBWCA7lMCi8uQnJ7/3e63T3p30n/6TmAToFjuUwKIzNpY8+9nJLbe0v1NZr7eu9bnPtX4OQOfZoQQWneXLk898Jnna09qLwIGB5Oqrk5tuEpMA3SQogUVpw4bkC19IXvGK1q8H5vG31dRrX/3q1s6kgzgA3SUogUVrzZrkQx9q7VY+4Qmtr812Anzq95761OQf/iF53/uSVau6v06AqvMZSmBJaDaTr30tueGG5KtfbZ0GnxqCvnx58pSnJM98ZnLttclVV/V3rQBVIyiBJWliIjlxonUafPVqn5EE6CdBCQBAW3yGEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtghKAADaIigBAGiLoAQAoC2CEgCAtvz/miTXr1EmMF8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "maxcut_prob.draw(bitstring)" ] } ], "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.9.12" } }, "nbformat": 4, "nbformat_minor": 4 }