diff --git a/.github/workflows/Test-CI-main.yml b/.github/workflows/Test-CI-main.yml index 2b1fa1e62..e3e9df488 100644 --- a/.github/workflows/Test-CI-main.yml +++ b/.github/workflows/Test-CI-main.yml @@ -90,7 +90,7 @@ jobs: # The caching we do follows from # https://stackoverflow.com/questions/59127258/how-can-i-use-pip-cache-in-github-actions - - uses: actions/cache@v2 + - uses: actions/cache@v4 id: cache-pip with: path: ~/.cache/pip @@ -107,7 +107,6 @@ jobs: mask-aws-account-id: true - name: Install dependencies - if: steps.cache-pip.outputs.cache-hit != 'true' run: | set -e python -m pip install -U pip diff --git a/algorithms/differential_equations/hhl_lanchester/hhl_lanchester.ipynb b/algorithms/differential_equations/hhl_lanchester/hhl_lanchester.ipynb index 3ad347285..46938f4b6 100644 --- a/algorithms/differential_equations/hhl_lanchester/hhl_lanchester.ipynb +++ b/algorithms/differential_equations/hhl_lanchester/hhl_lanchester.ipynb @@ -669,7 +669,7 @@ }, "source": [ "## Defining HHL Algorithm for the Quantum Solution\n", - "This section is based on Classiq HHL in the user guide, [here](https://github.com/Classiq/classiq-library/blob/main/tutorials/technology_demonstrations/hhl/hhl.ipynb) and [here](https://github.com/Classiq/classiq-library/blob/main/algorithms/hhl/hhl/hhl.ipynb).\n", + "This section is based on Classiq HHL in the user guide, [here](https://github.com/Classiq/classiq-library/blob/main/tutorials/technology_demonstrations/hhl/hhl_example.ipynb) and [here](https://github.com/Classiq/classiq-library/blob/main/algorithms/hhl/hhl/hhl.ipynb).\n", "\n", "Note the rescaling in `simple_eig_inv` based on the matrix rescaling." ] diff --git a/algorithms/qaoa/knapsack/qaoa_knapsack.ipynb b/algorithms/qaoa/knapsack/qaoa_knapsack.ipynb new file mode 100644 index 000000000..8c67bed30 --- /dev/null +++ b/algorithms/qaoa/knapsack/qaoa_knapsack.ipynb @@ -0,0 +1,467 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ce6c42a8-f6da-4a61-9484-e27ac056d999", + "metadata": {}, + "source": [ + "# QAOA Algorithm for Constrained Optimization: Knapsack Problem" + ] + }, + { + "cell_type": "markdown", + "id": "c8374048-2ead-45c4-ada1-724c73532cf7", + "metadata": {}, + "source": [ + "The following demonstration will show how to use Classiq for optimizing combinatorial optimization problems with constraints, using the QAOA algotrithm [[1](#QAOA)]. The main point is how to combine digital and analog quantum operations for such problems. The specific problem to optimize will be the knapsack problem [[2](#knapsack)]." + ] + }, + { + "cell_type": "markdown", + "id": "dbc23626-e131-42d0-87cf-e88282999609", + "metadata": {}, + "source": [ + "## Introduction\n", + "\n", + "### The Knapsack Problem\n", + "Given a set of items, determine how many items to put in the knapsack to maximize their summed value.\n", + "\n", + "* **Input:**\n", + " - Items: A set of item types counts $x_i$, where each $x_i \\in [0, d_i]$ .\n", + " - Weights: A set of item weights, denoted as $w_i$.\n", + " - Values: A set of item values, denoted as $v_i$.\n", + " - Weight constraint $C$.\n", + " \n", + "\n", + "* **Output:** Item assignment $\\overline{x}$ that maximizes the value: $$\\max_{x_i \\in D} \\Sigma_i v_i x_i$$\n", + " subject to a weight constraint: $$\\Sigma_i w_i x_i\\leq C$$\n", + "\n", + "The knapsack is known to be an NP-complete problem." + ] + }, + { + "cell_type": "markdown", + "id": "72cd4088-3ebb-4952-a9d4-ea00ca43cc1f", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Set a specific problem instance to optimize:\n", + "\n", + "Here we choose a small toy instance:\n", + "* 2 item types:\n", + " * $a \\in [0, 7]$ with $w_a=2$, $v_a=3$\n", + " * $b \\in [0, 3]$ with $w_b=3$, $v_b=5$\n", + "* $C=12$\n", + "* The optimal solution is $a=3, b=2$" + ] + }, + { + "cell_type": "markdown", + "id": "d1744ab9-4a21-4377-8dc5-de2d475a3f87", + "metadata": {}, + "source": [ + "## Algorithm description" + ] + }, + { + "cell_type": "markdown", + "id": "fd97859c-643a-4c76-a614-0358a340ce67", + "metadata": {}, + "source": [ + "In this problem, there are additional constraints on the search space. One way to address it is to add a penalty term for the constraints. Here we take a different approach, and take advantage of the quantum nature of the algorithm. \n", + "\n", + "A quantum state $|x\\rangle$ will hold the optimziation variables. We will use two different transformations on this variable:\n", + "1. Objective Phase (analog): a phase rotation in the Z direction according to the objective value, as done in the vanilla QAOA $$|x\\rangle \\xrightarrow{U_{\\text{o}}(\\theta)} e^{i\\theta f_{\\text{obj}}(x)}|x\\rangle$$\n", + " The transformation is done easily with the `phase` statement.\n", + " \n", + "3. Constraints Predicate (digital): the constraints are verified digitally, with quantum arithmetics $$|x\\rangle|0\\rangle \\xrightarrow{U_{\\text{c}}(\\theta)} |x\\rangle|c(x)\\rangle$$\n", + " The transformation is done with the numeric assignment transformation, such as `assign` (`|=`).\n", + "\n", + "The transformations are combined in the following manner; For each QAOA cost layer, the objective phase transformation is applied conditioned on the constraints predicate value, such that effectively each infeasible solution will be given a 0 phase.\n", + "\n", + "This way we can bypass the need to choose a penalty constant, on the expense of additional arithmetic gates for each layer. Notice that the method as we presented here is relevant for positive maximization problems." + ] + }, + { + "cell_type": "markdown", + "id": "fa4b3f95-b7e8-4c60-bd93-08940f494d52", + "metadata": {}, + "source": [ + "## Algorithm Implementation using Classiq" + ] + }, + { + "attachments": { + "221924cc-5658-485a-a9dd-423a0a79e26a.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2EAAAIrCAYAAABmuJGBAAAKrmlDQ1BJQ0MgUHJvZmlsZQAASImVlwdUU1kTgOe99JAQICECUkJvgnQCSAk9gIJ0EJWQBAglxEBQsSuLK7gWRESwrOiqiIJrAWStWLCi2LAvyKKgrosFG5Z9wCHs7t/OP+/cc783b+7M3HvunDMPgM4SyGRZqBpAtjRPHhnky4lPSOSQeoECOKCDLZAEwlwZLyIiDDAZnf8u724DMjTfsBny9a/f/6uoi8S5QgAkAuMUUa4wG+ND2HgplMnzAHA7ML3x7DzZEJ/HmCXHEsT4wRCnjXD/EKcMMx4/bBMd6YexFgCZJhDI0wBoJpieky9Mw/zQ/DG2k4okUoyxd/DKzs4RYYzFBQvMRobxkH9uyl/8pP3NZ4rSp0CQpuSRvQwL2V+SK8sSzP0/j+N/S3aWYjSGGTZo6fLgSGxmY2d2JzMnVMnSlCnhoywRDdsPc7oiOGaUhbl+iaMsEviHKtdmTQkb5VRJIF/pJ48fPcri3ICoUZbnRCpjpcr9eKMskI/FVWTGKPXpYr7Sf0F6dNwo50tip4xybmZU6JiNn1IvV0Qq8xdLg3zH4gYq956d+5f9SvjKtXnp0cHKvQvG8hdLeWM+c+OVuYnE/gFjNjFKe1merzKWLCtCaS/OClLqc/OjlGvzsAs5tjZCeYYZgpCIUQZ/CIAw7OFABDiAKzYcAMs2Tzxn6I6CX45srlySlp7H4WFVJubwpULbCRwHOwcngKGaHbkSbyKHaxFhHx/T5WA1xH2H1cnaMV1KGUBjEYDWvTGdyRYARiFAQ4tQIc8f0Q2VExCACgxggTbogzFYgA2WmQt4gA+WcQiEQzQkwAwQQjpkgxxmw3xYAkVQAmtgPVTCVtgOu2EfHIBGOAqn4BxcgmtwC+5DJ/TAc+iHdzCIIAgJoSNMRBsxQEwRa8QB4SJeSAAShkQiCUgykoZIEQUyH1mGlCClSCWyDalBfkaOIKeQC0g7chfpQvqQ18gnFIfSUBaqh5qhE1EuykND0Wh0OpqGzkIL0EJ0FVqBVqN70Qb0FHoJvYV2os/RARzgVHBsnCHOBsfF+eHCcYm4VJwctxBXjCvHVePqcM24VtwNXCfuBe4jnohn4jl4G7wHPhgfgxfiZ+EX4lfiK/G78Q34M/gb+C58P/4rgU7QJVgT3Al8QjwhjTCbUEQoJ+wkHCacJdwi9BDeEYlENtGc6EoMJiYQM4jziCuJm4n1xJPEdmI3cYBEImmTrEmepHCSgJRHKiJtJO0lnSBdJ/WQPpBVyAZkB3IgOZEsJS8ll5P3kI+Tr5OfkgcpahRTijslnCKizKWspuygNFOuUnoog1R1qjnVkxpNzaAuoVZQ66hnqQ+ob1RUVIxU3FSmqkhUFqtUqOxXOa/SpfKRpkGzovnRkmgK2iraLtpJ2l3aGzqdbkb3oSfS8+ir6DX00/RH9A+qTFVbVb6qSHWRapVqg+p11ZcMCsOUwWPMYBQwyhkHGVcZL9QoamZqfmoCtYVqVWpH1DrUBtSZ6vbq4erZ6ivV96hfUO/VIGmYaQRoiDQKNbZrnNboZuKYxkw/ppC5jLmDeZbZwyKyzFl8VgarhLWP1cbq19TQdNKM1ZyjWaV5TLOTjWObsfnsLPZq9gH2bfancXrjeOPE41aMqxt3fdx7rfFaPlpirWKteq1bWp+0OdoB2pnaa7UbtR/q4HWsdKbqzNbZonNW58V41niP8cLxxeMPjL+ni+pa6UbqztPdrntZd0BPXy9IT6a3Ue+03gt9tr6PfoZ+mf5x/T4DpoGXgcSgzOCEwTOOJofHyeJUcM5w+g11DYMNFYbbDNsMB43MjWKMlhrVGz00phpzjVONy4xbjPtNDEwmm8w3qTW5Z0ox5Zqmm24wbTV9b2ZuFme23KzRrNdcy5xvXmBea/7Agm7hbTHLotripiXRkmuZabnZ8poVauVslW5VZXXVGrV2sZZYb7Zun0CY4DZBOqF6QocNzYZnk29Ta9Nly7YNs11q22j7cqLJxMSJaye2Tvxq52yXZbfD7r69hn2I/VL7ZvvXDlYOQocqh5uOdMdAx0WOTY6vnKydxE5bnO44M50nOy93bnH+4uLqInepc+lzNXFNdt3k2sFlcSO4K7nn3Qhuvm6L3I66fXR3cc9zP+D+h4eNR6bHHo/eSeaTxJN2TOr2NPIUeG7z7PTieCV7/ejV6W3oLfCu9n7sY+wj8tnp85Rnycvg7eW99LXzlfse9n3v5+63wO+kP84/yL/Yvy1AIyAmoDLgUaBRYFpgbWB/kHPQvKCTwYTg0OC1wR18Pb6QX8PvD3ENWRByJpQWGhVaGfo4zCpMHtY8GZ0cMnnd5AdTTKdIpzSGQzg/fF34wwjziFkRv0wlTo2YWjX1SaR95PzI1ihm1MyoPVHvon2jV0ffj7GIUcS0xDJik2JrYt/H+ceVxnXGT4xfEH8pQSdBktCUSEqMTdyZODAtYNr6aT1JzklFSbenm0+fM/3CDJ0ZWTOOzWTMFMw8mExIjkvek/xZEC6oFgyk8FM2pfQL/YQbhM9FPqIyUZ/YU1wqfprqmVqa2pvmmbYurS/dO708/YXET1IpeZURnLE1431meOauzG9ZcVn12eTs5OwjUg1ppvRMjn7OnJx2mbWsSNY5y33W+ln98lD5zlwkd3puUx4La44uKywU3ym68r3yq/I/zI6dfXCO+hzpnMtzreaumPu0ILDgp3n4ecJ5LfMN5y+Z37WAt2DbQmRhysKWRcaLChf1LA5avHsJdUnmkitL7ZaWLn27LG5Zc6Fe4eLC7u+CvqstUi2SF3Us91i+9Xv895Lv21Y4rti44muxqPhiiV1JecnnlcKVF3+w/6Hih2+rUle1rXZZvWUNcY10ze213mt3l6qXFpR2r5u8rqGMU1Zc9nb9zPUXyp3Kt26gblBs6KwIq2jaaLJxzcbPlemVt6p8q+o36W5asen9ZtHm61t8ttRt1dtasvXTj5If72wL2tZQbVZdvp24PX/7kx2xO1p/4v5Us1NnZ8nOL7ukuzp3R+4+U+NaU7NHd8/qWrRWUdu3N2nvtX3++5rqbOq21bPrS/bDfsX+Zz8n/3z7QOiBloPcg3WHTA9tOsw8XNyANMxt6G9Mb+xsSmhqPxJypKXZo/nwL7a/7DpqeLTqmOax1cepxwuPfztRcGLgpOzki1Npp7pbZrbcPx1/+uaZqWfazoaePX8u8NzpVl7rifOe549ecL9w5CL3YuMll0sNl50vH77ifOVwm0tbw1XXq03X3K41t09qP37d+/qpG/43zt3k37x0a8qt9tsxt+90JHV03hHd6b2bdffVvfx7g/cXPyA8KH6o9rD8ke6j6l8tf63vdOk81uXfdflx1OP73cLu57/l/va5p/AJ/Un5U4OnNb0OvUf7AvuuPZv2rOe57Pngi6Lf1X/f9NLi5aE/fP643B/f3/NK/urb65VvtN/seuv0tmUgYuDRu+x3g++LP2h/2P2R+7H1U9ynp4OzP5M+V3yx/NL8NfTrg2/Z377JBHLBcCuAwwaamgrwehcAPQGAeQ2AOm2kpx4WZOQ/YJjgP/FI3z0sLgDbOwCi5wGEXQHYWIm1tJh/RhJABAPTewDq6Kgco/3vcK8+JGp7AXx9HJyC/s0/CcBIH/+XvP85w5BXJ/jn/Cf4AgW4axDyuAAAAFZlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA5KGAAcAAAASAAAARKACAAQAAAABAAADYaADAAQAAAABAAACKwAAAABBU0NJSQAAAFNjcmVlbnNob3QEEdunAAAB1mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj41NTU8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+ODY1PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6VXNlckNvbW1lbnQ+U2NyZWVuc2hvdDwvZXhpZjpVc2VyQ29tbWVudD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg8HBPoAAEAASURBVHgB7N0JYBTl3fjxX26O5QyQgOEKoNyJHArijYDHv9Ybr7dW0Zfa1r766qttfVvt+761r8db6vFWsddri7VQFbUVagFvBFQ04b4RiBKuhCMhISHJ//kNTDpJdrObzexmd+c7uuzsPDPPPM9nJrPzm+eZ2aTevXvXCQMCCCCAAAIIIIAAAggggEBUBJKjshZWggACCCCAAAIIIIAAAgggYAkQhLEjIIAAAggggAACCCCAAAJRFEjtPyQtiqtjVQgggAACCCCAAAIIIICAtwVSD5bUeluA2iOAAAIIIIAAAggggAACURRITkulJSyK3qwKAQQQQAABBBBAAAEEPC6QOnBwL9l/YI/HGag+AggggAACCCCAAAIIIBAdgdSvdhyXPXuOR2dtrAUBBBBAAAEEEEAAAQQQ8LhAaqD6d+6WLCPGpcmAIZ0DzSJpqemyY2P4D1hMSkqSbl17Snn5ETlWVRFwPa1NSJIk6d6tl5Qe2i+1tTVy6HCpHD9e1dpsWR4BBBBAAAEEEEAAAQQSSOCQeV7Grq2Rb6AKGIT1HZQiP3lmQlDSb164Keg8gWZIT0+XWx/6nrwy/xVZs+aTQLO1errP55OHHnhc7vred6WktERKS49LVVXkcVtdcDJAAAEEEEAAAQQQQACBqAkMzU+JyroCBmEtWfuIESPkzpnflu7dM2XdurXyy+f+V/7p5m/I4MFDpGvXrrJt21b56SP/Jff+633i6+iTvv36ydtvL5E/vvSimEYqycjIkF/N/rU88T+Py8ZNG+XfH/yRrFy5Uhb+bUGDYqSkpMiVV1wll3/t6+Y+tv3yiyd/Lu0y2skD939f0k0eb731N3nxj3PkvPPOl2/ecqtoS9u8eX+SYcOGy8CBuXLbbTPkf3/5vyYIK22Qr/3h5u/0l1Hju9gfeW8jgQe+uaqN1sxq41mgpnNXqe47sNkq+Nq1k/S06D+MqOTIkWbLRWLLBM4bPEj6d+/esoWYO2SB338cuYuiIReCGUMSSNu1XVIOHwxpXmZyV4BzRnc9w83txf/dIas+ORTu4m26XKuDMA2yplw0Vb7Y8YX89c2/yL987x4reNLAp2uXLvLKq6/I7TPukJtuvFlycvpKdna2vPbafLn++hvk888/syp/7Ngx8XXqJOecc658tfsrufDCyfLGG683gcnqlSW3fvM2E2j9QSaddbZ8/fIrZcCAAaZVq0qWfrTUCvw2btwoN0y/QT799BM5fPiwnHHGBHnvvXfl/132NXn7nbfl2LHKJvnqhNEm+Lrp2/38pjkn/u7JdfLF5sPOSYy7KHDBpTmiB7Y55o+KAYGWCFSNGiNV51/U7CIpu4sk881Xmp2nucRRI0fJ+PFnyG9/95vmZpOOHTvK3xb8XW686XrZVbRLju7h4UfNgrUw8dyLpwZd4uDBg1JQUBB0PmZoKKDfqZO7dDTfqR82TOBTTApUjjhdUtZ+HpNlS+RChXrO+O6CInnHvBgiJ3DTd4bJqji9eN/qIOzo0aOyatUq09o0TMacPtZSTk5Olrq6Olm2fJn8+eV5pkVssAm+eltpv//9C/KXv74hY8eOk4svvqR+q/zud7+VCy64QK43AdS+vftkzdo19Wn2yFlnnSWffb5SXp3/qixYuFAmTJhgArdz5M47Z0rpwVIZNWq0aSW7XLZs3SJnnjlBPvnkY1OGj2Td+rVSU1MjO3fuMPeE+f9dtNFndLVXw3sbCujB6upbhrVhCVh1vArUdAn9b3jggIFy7rnnWceDDz78wDo2TJ58kfTr20/Kj5bLm2++KQPNyWhubq50Mfnq8UwvMl1yyaWSn3e6rF6zWnpkZkrPnr2kurpKNI/zz7vAatVfvXqVbNiw4QRjUlK8clJujwpo8MqAAAIIIBB5gZCCsI/f3yOffLC3QWm+8+Ao67O2Tn3961eYVqdD8rppvRo0aJA1XU89tDugDu3bt5eKihMP3tCTGX0lJyeZVqljVrr+s3zFMtOS9U+iV5r/MOcPfoOl9PQMkTrzv1k+JSVZhg0dZroWpUuNCaxO5JlsHrpxSBYseFM+NCdFV115tZxpWsL279tXv56WjGi9dTjj3KyWLMa8CCAQwwI9evSQb3/7u5Jpgqhdu3bKOHNB6EXTNfrbd37HunBzwfkXmgf5dDcP7zkuN95wk3y49ANzXBtsdWnev3+/Od7UyNHycrn5e3dLkrngtGHDesnLyzddr7vJl19+KVOnTpPHHn80hgXcKVq7jI5y0yU/lt+89oDfDIcNPHFP8frty/2muz1xwYIFcumll7qdLfkhgAACIQnY58r2+XFICzGTpwVCerShBiG6Uzlftlqqub+iY4cO1slLqrlnS++9StUfgDYB2GjTMjVt2sVWILRt2zZrkZtvutkKjnqblrG//W2hnY0VpG3ZssXqlqitZ/6GDz54X4aawOuC8y+Qh370sAnEUmTb9m3ynz/5T9M18Qo5pc8p8t7775mWse9I//795c+v/Flq62rNlepqE/SZpz0OH2HKFlLcaa2+ceDpr0xMQwCB+BLQCz3aOj/j9lvlqaefMt2nF8ptppuztpw/8rOfymNPPCrDzbEiM7OHeXJrufz7jx6UZR99JKedepps3rLJajXbtHmTXg+Sp59+Uv770Z/JcNP9+rnnfik/+++fyhHTDbpnj57xhdKC0urFtZ7d+spdNzwr54y9JuCSV06+R6IVgAUsBAkIIIAAAgjEqECqnmS0ZvjyyyKZ/fxzMnHiWZKVlS3P/2q2lJQcsFqm9F6tU4ecKr/57a/ljb+8YXX/KVxVKL1795bnZj9rTmg2y+LFi+Wrr760rjrrQzlS01L9toJpGfV+sed/PdsKpj4x93wtXrJYOnXyWd2A+pmHfcz+1XPWvWBlZWVyrrm/TFvBtDxrzcNCXvj9/1kPDtEnMgYb7KsZdkuYBmNc2QimRjoCsSNQ+carDQqTetow0ZcOHcz9WskmkNDW84qKo7J//z7paJ6garfM79ixw7rAo63teizRocp0OdTPzqHaHN+qTWuZDtXVx83PbByz8iw13bnsXgDO+RNlPDkpRXp0y5HVm9+XEYMm+a2W3QrmN9HlidoCpsOmTSee1DtkyBDRFwMCCCAQDQH7nFHXZZ83jj+nF72oooEf5+tItU8ywq2HBloaEH1e8Ll135We2FiDeS8094pp0KT3Y9ktUHrVubCwwJqm8y15e7E1+7/ec6+cNXGSeULiY9a8115znWlVG2il2f+sXr3aup/sHfOADe0qpMPu3SKbN2+2Wrp0PTqsX79ONm7cYJ0I2dP+74XfWfMEuifMWvDkP9ryZ3dB5A/JKcM4AvEh0O7yqwIWdOfOnea+r6NyycWXWvd/6ZNcly9fLnmjR1st+d+7619k3769J5+ievJ4ZudmPuo9Ynoxx0oxxzk95ulxRe8VqzleI0NPG2ruWX3TXiLh3mtqj8vGLz6Wr/Ztkesv/oHf+mkr2Pwls/ymuT3R2QXROe72esgPAQQQ8CdgnzPaARgX7f0pMc2fQLN980J55KMGYTrY7/ZKnvnlM3LkyOH6e8G0S+CLL86xHmFv3x9mz6vvH3+8QlasWGE9zENPaLZ/sV0qK0/cR2bPt9Pcv6HrabwuO513BBBAIJiAPjhjvnm4zy3fuEWOmws3eoHm3XffkUd/9pj10t4BP5/1hLlXbLy5Z2yXlV1JSYl5ymGR7NlTLB3MPa4aqGkvAD2W6QWhZ83Pctx26wy54utXWgHYZ5+ttI5h2lqWiIP+6L2+mhui3RWR1q/mtgZpCCAQDQG9cM+AQKgCzQZhrfm9Jv0dsMbD/NcadhFypuuj7J3D66+/5vzYJuNczWgTdlaKQMQF9L5TPR5pC31l5Ymfrbjv/nulg7m/1e6irfexzvvzXKss+m6P3/mdb1n3mTpb1fXnLz5c+qHVjdG+yPSNW26OeD3aagXa3TIlWX/MMsn0MEiROn040om2QYlmV0Rn/QnCnBqMI4BAtAXsHlTRXi/ri1+BZoOw+K0WJUcAAQSaF9AWLLtbs86p3QrtAKy5Je17xxrPk2gt9FPy77GqmJt14imHiwpnybbiE086HJ57ltx02UMmEEuWB2+fJ3PefFi2f7namj+aXREbbwM+I4AAAgggEC8CBGGOLcUPMTswGEUgzgRSd2wX34LAre12dU788IT9iffGArnZE2RK3j2i785hZvZcKwib/dZ0Wbt1qfzwKf8/mLzBPJI+0l0R+SFm55ZhHAEE2kKAH2JuC/XEWmfDx30lVt2oDQIIIIBACwX8BWB2FlaAdrKFzJ7mfNeuiENP/j6YczrjCCCAAAIIINBQgCCsoQefEEAAAc8KaJDVuAWsMcZFeXcHnIeuiI21+IwAAggggIB/Aboj+ndhKgIIIOA5gesm/U9Iddb7xez7w5wLDDJBXE6XiZKTP9E5OQLjRyOQJ1naAt18OWLfE2hPa+17RdUhaZ/epUE2W4uX+d2PGszEBwQQQCBBBVLz8/P9Vi3Dt0Py8hr+TpffGRNkYlZWhnkE9ZYEqU18V8Nnfjg3L8//fhnfNaP0kRRY284nI9hvwiIelX2DjMq+PuRl9WEd9gM77IUyOogcOSCiLWWRHrbII5Fehafz75s1VAb0vtVVg71la6SXb2SDPO19RdNWF78ke8w7Q8sEOO61zMutuXMH69NhS9zKjnxaIRCJc8Y033bJz+/filKFtmhqQUGB3zlHjEuTDeZHlb0yjDo78thesWxtPfUHxAsLV7U2G5b3mEDliNOlcK13jllubF5t7bBPhFuSX2lZkejLOZwxfoIUrF0uVdFopMpxrplxtwXKystkW/mJJ2G6lXdpeZHosd052F1fNTibPPinog998dfC6lyG8YYCHPcaekTrU51p1T11TPdorY71NCMQiXPGofkpsjZAfNRMUVqcRHfEFpOxAAIIIBD/AnoC7AzAFhf+wqqUc1qgWs5bem+Tk+XMvnPl6fnTAy3i6vQ7Zsx0NT8yayiggdDSj55oODFCn3Q/nDntxO/x6TuBWISgyRYBBGJOgAdzxNwmoUAIIIBA5AXsE1894X7ghf6yqGCW9Qq2Zp2/cWuFPhVx/pJZwRatT+/dc5BMyr9KBvRp2D2tfgZGPCOg+5Iz8LL3S88AUFEEEPCsAEGYZzc9FUcAAa8KOB+6oD/C7BycJ8TO6TqurWWa7m8I9bfBunXJln+5cbbknXaB3Hndk6L3HzF4W0ADMed+6Nw/vS1D7RFAIJEFCMISeetSNwQQQMCPgP1QDX+tWnbLhB2M6WcNvvSlrWX+hkABWFJSsnTx9ZQ+PQdL7x650i69o0w+45+keP92+eXcu2R70SqZNuk2f1kyzWMC9n6m1bb3T48RUF0EEPCYAPeEeWyDU10EEPC2gN6DYz8Qwdn60FjFCsaK/bd6NZ430OdunbPkuqkPyMEje2XkoHPkjfeesVq+NmxfZi2iwdt540J/KmOg9TA9MQT0kfV6T6K9fyZGragFAggg4F+AljD/LkxFAAEEEl5AA61IDmOHTzMB2B55edHjpvVrm7TP8ElqappUVR+zVnusukJSkvVRzwwISIN7DQnE2CMQQCDRBQjCEn0LUz8EEECgjQR87btKecVhqa2tkbS0DKsUe0t2yqC++Sb4SpV+2cNkX8muNiodq0UAAQQQQKDtBAjC2s6eNSOAAAIJLfDZ+kUypN9YuXrKfTK47xirrm+vmCMDThkl1017QEYOPkcWfPh8QhtQOQQQQAABBPwJcE+YPxWmIYAAAgi0WqBoz0Z5aeFPpUP7TpLT6zQrv117NsiTL/6zdOrYXd755I+mm+IXrV4PGSCAAAIIIBBvAgRh8bbFKC8CCCAQJwI1tcdl9/6tVmlLDu0WvQdMhz0HvrBe1gf+QQABBBBAwIMCBGEe3OhUGQEEEIi2wMKlz0vFsbJor5b1IYAAAgggEJMCBGExuVkoFAIIIJBYAvpADgYEEEAAAQQQOCHAgznYExBAAAEEEEAAAQQQQACBKAoQhEURm1UhgAACCCCAAAIIIIAAAgRh7AMIIIAAAggggAACCCCAQBQFCMKiiM2qEEAAAQQQQAABBBBAAAGCMPYBBBBAAAEEEEAAAQQQQCCKAgRhUcRmVQgggAACCCCAAAIIIIAAQRj7AAIIIIAAAggggAACCCAQRQGCsChisyoEEEAAAQQQQAABBBBAgCCMfQABBBBAAAEEEEAAAQQQiKIAQVgUsVkVAggggAACCCCAAAIIIEAQxj6AAAIIIIAAAggggAACCERRgCAsitisCgEEEEAAAQQQQAABBBAgCGMfQAABBBBAAAEEEEAAAQSiKEAQFkVsVoUAAggggAACCCCAAAIIEISxDyCAAAIIIIAAAggggAACURQgCIsiNqtCAAEEEEAAAQQQQAABBAjC2AcQQAABBBBAAAEEEEAAgSgKEIRFEZtVIYAAAggggAACCCCAAAIEYewDCCCAAAIIIIAAAggggEAUBQjCoojNqhBAAAEEEEAAAQQQQAABgjD2AQQQQAABBBBAAAEEEEAgigIEYVHEZlUIIIAAAggggAACCCCAAEEY+wACCCCAAAIIIIAAAgggEEUBgrAoYrMqBBBAAAEEEEAAAQQQQIAgjH0AAQQQQAABBBBAAAEEEIiiAEFYFLFZFQIIIIAAAggggAACCCBAEMY+gAACCCDQYoF2GR1lxhWPBlxu2MAJoi8GBBBAAAEEEGgqQBDW1IQpCCCAAAIBBJKSkqRnt75y1w3Pyjljrwkwl8iVk++R9duXB0wnAQEEEEAAAS8LEIR5eetTdwQQQKCFAslJKdKjW46s3vx+wCVpAQtIQwICCCCAAAKWAEEYOwICCCCAQMgCNbXHZeMXH8uyVa8HXEZbweYvmRUwnQQEEEAAAQS8LkAQ5vU9gPojgAACLRSora0RfTU30BWxOR3SEEAAAQS8LkAQ5vU9gPojgAACLRTQ+8JSklPMUkmSbN6TzH/2QFdEW4J3BBBAAAEEAgukBk4iBQEEEEDAqwJT8u+xqp6bdeIJh4sKZ8m24hMP2hiee5bcdNlDJhBLlgdvnydz3nxYtn+52pqfrohe3WOoNwIIIIBASwQIwlqixbwIIIBAggvkZk+QKXn3iL47h5nZc60gbPZb02Xt1qXyw6emOpPrxzeYJyLSFbGegxEEEEAAAQT8CtAd0S8LExFAAAFvCvgLwGwJK0A72UJmT3O+a1fEofw2mJOEcQQQQAABBPwKEIT5ZWEiAggg4D0BDbIat4A1Vrgo7+6A89AVsbEWnxFAAAEEEPAvQHdE/y5MRQABBDwncN2k/wmpznq/mH1/mHOBQSaIy+kyUXLyJzonR2D8aATyJEtboJsvR+x7Au1prX2vqDok7dO7NMhma/Eyv/tRg5n4gAACCCSoQGp+fr7fqmX4dkhe3kC/aYk4MSsrQ3YVbUnEqsVdnXw+n9n3/O+XcVcZChw1gbXtfDKC/Saod5ZvcP089t/ZqOwbZFT29fXTg43owzrsB3bY82Z0EDlyQERbyiI9bJFHIr0KT+ffN2uoDOh9q6sGe8vWSC/fyAZ52vuKpq0ufkn2mHd7GDxosHTKqrQ/8h5AgONeAJgIT84drE+HLYnwWsg+FIFInDOm+bZLfn7/UFbfqnlSCwoK/GYwYlyabCj0n+Z3gTifOOrsyGPHOVHUil9WViaFhauitj5WlBgClSNOl8K13jlmhbvVcrPbyeSTcVivpAvCCppKy4pEX87hjPETpGDtcqmKRiNVjnPNjLstUFZeJtvKTzwJ0628S8uLRI/tzsHu+qrB2eTBPxV96Is9bNm6xbSS8fdsewR657gXSCay0+tMq+6pY7pHdiXkHpJAJM4Zh+anyNoA8VFIhQpxJrojhgjFbAgggECiCdgtEVqvxYW/sKrnnBaovvOW3tukG1lm37ny9Px/nEQHWtaN6XfMmOlGNuQRQEC7mi796IkAqe5O1kBs5rS5Vqb2u7trIDcEEEAgNgV4MEdsbhdKhQACCERFQE+4H3ihvywqmGW9gq1U5298P5g+FXH+klnBFq1PT0lOldyc0dKhXaf6aYx4U0D3JW0Ba7xPeVODWiOAgJcECMK8tLWpKwIIINBIQH+E2Tk0d0KsrWXOLmPO5Vry22Dnjr1O7rz2KenaKcuZBeMeFdAArPF+6FEKqo0AAh4SoDuihzY2VUUAAQScAnry27gFQj/PLp5uPYZefzNMh217TtwfpK1l/oZAAVhSUrJ07pgpHdt3kbq6Wik9vEcG9c2XiyZ8Qw6W7RVNZ0BABXS/0yA/lO6wiCGAAAKJIEAQlghbkToggAACYQg01/pgB2NhZFu/SLfOWXLd1Afk4JG9MnLQOfLGe8/I5xsWyS/m3CHXTLmvfj5GEFABfWQ9QRj7AgIIeEWAIMwrW5p6IoAAAo0EGreCNUpu9cexw6eZAGyPvLzoCenR5RRpn+GT6uNVUl5xqNV5k0HiCUR6f0w8MWqEAALxLEBfkHjeepQdAQQQiGEBX/uuJuA6LLW1NZKWllFf0qSkJGvcfq9PYAQBBBBAAAGPCBCEeWRDU00EEEAg2gKfrV8kQ/qNlatN18PBfcdYq08294Fdft53pV/2MJky4RbJPWV0tIvF+hBAAAEEEGhzAbojtvkmoAAIIIBAYgoU7dkoLy38qXRo30lyep1mVbKurk7e/+zP1ksnaHdFBgQQQAABBLwmQBDmtS1OfRFAAIEoCdTUHpfd+7daays5tFuOVVdInfnvy72bolQCVoMAAggggEBsChCExeZ2oVQIIIBAQgksXPq8VBwrS6g6URkEEEAAAQTCFSAIC1eO5RBAAAEEQhbYW7Iz5HmZEQEEEEAAgUQX4MEcib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS5AEJboW5j6IYAAAggggAACCCCAQEwJEITF1OagMAgggAACCCCAAAIIIJDoAgRhib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS5AEJboW5j6IYAAAggggAACCCCAQEwJEITF1OagMAgggAACCCCAAAIIIJDoAgRhib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS5AEJboW5j6IYAAAggggAACCCCAQEwJEITF1OagMAgggAACCCCAAAIIIJDoAgRhib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS5AEJboW5j6IYAAAggggAACCCCAQEwJEITF1OagMAgggAACCCCAAAIIIJDoAgRhib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS5AEJboW5j6IYAAAggggAACCCCAQEwJEITF1OagMAgggAACCCCAAAIIIJDoAgRhib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS5AEJboW5j6IYAAAggggAACCCCAQEwJEITF1OagMAgggAACCCCAAAIIIJDoAgRhib6FqR8CCCCAAAIIIIAAAgjElABBWExtDgqDAAIIIIAAAggggAACiS6Q2pIKZmUOkEn5V0n7DJ98uXezfFT4mlRVVzTI4qrJ98j6bctk/fblDabzAQEEwheYMuEW6dW9v5XBmx/MloNH9jTIbNjACTIsd6K8umRWg+l8QCBSAu0yOspNl/xYfvPaA35XofukDnwX+OVhYhwJpKakyeQzvyE9up4ix2uq5G9Lfy2HyvY3qAHH4AYcbfpBz1MH9BlplWHxij/IngPbm5RHz1X5vmzCwoQgApNOv1JyTxltzbVo+R+keP+2JktcPeVf5ZVFP28y3d+EFrWEndJriIwecp5UVpVbwVddXW2T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EEAAAQQQQAABBBBwChCEOTUYRwABBBBAAAEEEEAAAQQiLEAQFmFgskcAAQQQQAABBBBAAAEEnAIEYU4NxhFAAAEEEEAAAQQQQACBCAsQhEUYmOwRQAABBGJPoHfv3nL//ffL2LFjQyqcc37neEgLR2GmK664Qp599lnp169f/douu+wya9rw4cPrpzGCAAIIIBAbAqmxUQxKgQACCCCAQGQEUlNTZcqUKXLaaafJ4cOH5YMPPpDLL79cxowZI7W1tZKdnS25ublSWVkppaWlsmTJErn22mulQ4cOsmPHDlm8eLHceOON1vxJSUnWdM1Ll9X0Cy+8UPr06SMlJSXyxz/+UUaNGmUFd7r8unXr5O2337bmtWuXnJws+fn5MnHiRNHxTz75RFasWCHf/e535dNPP5Vly5bJXXfdJStXrpRevXpJ//797UWteTXQKioqko8//liuvPJK2b17t2i5dPD5fFY+u3btstZZU1Mjx48fr1+eEQQQQACB2BAgCIuN7UApEEAAAQQiJDBkyBC59dZbrQCsU6dO0rVrV+nZs6cVAOm7BmkakNXV1VkB2GOPPSY6n34+88wzrcCme/fu1vxZWVlWEKbBky57zTXXyAUXXCDHjh2TtLQ06dy5sxWYTZ061QqCNKjTYM05aHB22223WUGfrmfo0KHy5Zdfytlnny0HDx60gjB7XNc3evRoq4xazuLiYhk/frx07NhRPv/8c2t848aNsn//fisQ0+BNy7BmzRorgNNxnZcBAQQQQCC2BOiOGFvbg9IggAACCLgsoK1e2lr00EMPyTPPPCMffvihFehUVVXJG2+8YQU2Oq7d+d555x0riNHpt9xyixVAadCmLVQ6zyuvvGItYy+rgZgGYH/6059k7969MnLkSKv0GnjNmDFD5syZ06Q2Gtxpq5vmu379enn55ZetZZvMaCY88cQT8uSTT0p1dbXVCvbXv/7V32zWNA0UMzMzrVayd999N+B8JCCAAAIItL0ALWFtvw0oAQIIIIBABAW0hUoDH31p8JSRkWG1aukq7W582m1v3759VmuWzqefdV4NplJSUurns+e3l9X5tFUsJydHvvjii/pgSpctLy/3WysNwDTI01Y2beUaNmyYbN++3ZpX82/fvn39ctrt8Vvf+pbs3LlTXnjhhfrpWiedNz09vX6allvXqYHhoEGD6qczggAC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jAgQhMXIhqAYCCCAQKIJaKvXSwt/alq7OklOr9MaVO+L3WvluZfvbjCNDwgggAACCHhFgCDMK1uaeiKAAAJRFqipPS6792+11lpyaLccq66oL0GVGd9Xuqv+MyMIIIAAAgh4SYAgzEtbm7oigAACbSSwcOnzUnGsrI3WzmoRQAABBBCILQGCsNjaHpQGAQQQSEiBvSU7E7JeVAoBBBBAAIFwBHhEfThqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YyCCCAAAIIIIAAAggggECYAgRhYcKxGAIIIIAAAggggAACCCAQjgBBWDhqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YyCCCAAAIIIIAAAggggECYAgRhYcKxGAIIIIAAAggggAACCCAQjgBBWDhqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YyCCCAAAIIIIAAAggggECYAgRhYcKxGAIIIIAAAggggAACCCAQjgBBWDhqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YyCCCAAAIIIIAAAggggECYAgRhYcKxGAIIIIAAAggggAACCCAQjgBBWDhqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YyCCCAAAIIIIAAAggggECYAgRhYcKxGAIIIIAAAggggAACCCAQjgBBWDhqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YyCCCAAAIIIIAAAggggECYAgRhYcKxGAIIIIAAAggggAACCCAQjgBBWDhqLIMAAggggAACCCCAAAIIhClAEBYmHIshgAACCCCAAAIIIIAAAuEIEISFo8YybSKQmpImUyfeatad5Hf9wwZOkKsm3+M3jYkIIIAAAggggAACCMSKAEFYrGwJytGsQHJyqlxx4b/I9Gk/CBCCiVxpArD125Y1mw+JCCCAAAIIIIAAAgi0tQBBWFtvAdYfkkB6WoYkJ6XIruL1AeffsH25rDcvBgQQQAABBBBAAAEEYlmAICyWtw5lqxeoPFYub37wnBwuP1A/zTmiXRGHmhcDAggg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BQUFflcyYlyabCj0n+Z3gTifOOrsyGPHOVHUil9WViaFhauitj5WhAACCCCAAAIIhCpQl95FTh3TPdTZmS+CApE4ZxyanyJrA8RHblaF7ohuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqSFwIIIIAAAggggAACCCAQRIAgLAgQyQgggAACCCCAAAIIIICAmwIEYW5qkhcCCCCAAAIIIIAAAgggEESAICwIEMkIIIAAAggggAACCCCAgJsCBGFuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqSFwIIIIAAAggggAACCCAQRIAgLAgQyQgggAACCCCAAAIIIICAmwIEYW5qkhcCCCCAAAIIIIAAAgggEESAICwIEMkIIIAAAggggAACCCCAgJsCBGFuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqSFwIIIIAAAggggAACCCAQRIAgLAgQyQgggAACCCCAAAIIIICAmwIEYW5qkhcCCCCAAAIIIIAAAgggEESAICwIEMkIIIAAAggggAACCCCAgJsCBGFuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqSFwIIIIAAAggggAACCCAQRIAgLAgQyQgggAACCCCAAAIIIICAmwIEYW5qkhcCCCCAAAIIIIAAAgggEESAICwIEMkIIIAAAggggAACCCCAgJsCBGFuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqSFwIIIIAAAggggAACCCAQRIAgLAgQyQgggAACCCCAAAIIIICAmwIEYW5qkhcCCCCAAAIIIIAAAgggEESAICwIEMkIIIAAAggggAACCCCAgJsCBGFuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqSFwIIIIAAAggggAACCCAQRIAgLAgQyQgggAACCCCAAAIIIICAmwIEYW5qkhcCCCCAAAIIIIAAAgggEESAICwIEMkIIIAAAggggAACCCCAgJsCBGFuapIXAggggAACCCCAAAIIIBBEgCAsCBDJCCCAAAIIIIAAAggggICbAgRhbmqS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mp+fn/AgvQemycqCxHUJv1DPN/bJq3vsek500k6/pKRECgqWnrTjcSAEEEAAAQQQQKC2AuXpWdJ9QKva7s5+dShQF33GnrGILE+Sj0JeCssRQ2rSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgESCEeYCoRgABBBBAAAEEEEAAAQRCChDCQmrSFgIIIIAAAggggAACCCDgEUiNxWIJd8mIbpB+/TonrGuIG7OzM2TT5jUN8dLq3TVFo1H97SX+Xda7i+GEEUAAAQQQQKBBCXTpFtHrKWxQ11RfL6Yu+oxp0XUSi+XWOUlqfn5+woP0HpgmKwsS1yX8Qj3f2Cev7rHrOdFJO/2SkhIpKFh60o7HgRBAAAEEEEAAgdoKlKdnSfcBrWq7O/vVoUBd9Bl7xiKyPEk+CnkpLEcMqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBHgBDmAaIaAQQQQAABBBBAAAEEEAgpQAgLqUlbCCCAAAIIIIAAAggggIBH4F/9y5fvDlOw1AAAAABJRU5ErkJggg==" + } + }, + "cell_type": "markdown", + "id": "76ebeade-0b96-4f34-8abd-299d76abd19c", + "metadata": {}, + "source": [ + "![image.png](attachment:221924cc-5658-485a-a9dd-423a0a79e26a.png)" + ] + }, + { + "cell_type": "markdown", + "id": "460cb69a-9b84-4755-b8de-b6a27cdf8fd7", + "metadata": {}, + "source": [ + "### Define the knapsack problem\n", + "\n", + "A `QStruct` is used to represent the state of optimization variables. The `objective` and `constraint` functions will be used both quantumly, and classicaly in the post-processing.\n", + "\n", + "Notice that the optimization variable are defined as unsigned integers, with the `QNum` type." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "95dbcd81-aea4-4cdb-8f22-96915415196f", + "metadata": {}, + "outputs": [], + "source": [ + "from classiq import *\n", + "\n", + "\n", + "class KnapsackVars(QStruct):\n", + " a: QNum[3]\n", + " b: QNum[2]\n", + "\n", + "\n", + "def objective(v: KnapsackVars):\n", + " return v.a * 3 + v.b * 5\n", + "\n", + "\n", + "def constraint(v: KnapsackVars):\n", + " return v.a * 2 + v.b * 3 <= 12\n", + "\n", + "\n", + "# assign a negative value to the objective to get maximization\n", + "def cost(v: KnapsackVars):\n", + " return -objective(v) if constraint(v) else 0" + ] + }, + { + "cell_type": "markdown", + "id": "594ff6c3-90ec-427a-8290-6fc67e2a8dcc", + "metadata": {}, + "source": [ + "## Apply Objective Phase controlled on the Contraint predicate result\n", + "\n", + "We wrap the objective `phase` statement with the constraint predicate, so the allocated auxilliary will be release afterwards.\n", + "The effective phase will be:\n", + "$$\n", + "|x\\rangle \\xrightarrow{U_{\\text{o}}(\\theta)} \n", + "\\begin{cases}\n", + "e^{i\\theta f_{\\text{obj}}(x)} |x\\rangle & \\text{if } \\text{constraint}(x) = 1, \\\\\n", + "|x\\rangle & \\text{if } \\text{constraint}(x) = 0.\n", + "\\end{cases}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d29d66cb-9bca-48eb-951b-c5361145225c", + "metadata": {}, + "outputs": [], + "source": [ + "@qfunc\n", + "def apply_cost(gamma: CReal, v: KnapsackVars) -> None:\n", + " aux = QBit(\"aux\")\n", + " within_apply( # Rotate states per their objective value, if they satisfy the constraint\n", + " within=lambda: assign(\n", + " constraint(v), aux\n", + " ), # use the digital constraint function\n", + " apply=lambda: control(aux, lambda: phase(-objective(v), gamma)),\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "f3d86f42-3a3b-4311-ad38-db53e93b2f95", + "metadata": {}, + "source": [ + "## Assemble to the full QAOA algorithm" + ] + }, + { + "cell_type": "markdown", + "id": "32903984-f50b-4580-909a-413823932c90", + "metadata": {}, + "source": [ + "As in the vanilla QAOA, the cost and mixer layers are applied sequentially with varying parameters, that will be set by the classical optimization loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "fb2ad242-4ac2-4fc1-befd-65f8c8aca582", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Opening: https://platform.classiq.io/circuit/2scHnzuFWJo2PfEWdT1UzR7J91G?version=0.67.0\n" + ] + } + ], + "source": [ + "NUM_LAYERS = 3\n", + "\n", + "\n", + "@qfunc\n", + "def main(params: CArray[CReal, NUM_LAYERS * 2], v: Output[KnapsackVars]):\n", + " allocate(v.size, v)\n", + " hadamard_transform(v)\n", + " repeat(\n", + " NUM_LAYERS,\n", + " lambda i: [\n", + " apply_cost(params[2 * i], v),\n", + " apply_to_all(lambda q: RX(params[2 * i + 1], q), v), # mixer layer\n", + " ],\n", + " )\n", + "\n", + "\n", + "qmod = create_model(main)\n", + "write_qmod(qmod, \"qaoa_knapsack\")\n", + "qprog = synthesize(qmod)\n", + "show(qprog)" + ] + }, + { + "cell_type": "markdown", + "id": "9d7d03b2-ffdf-42a5-84e1-a998a0d1c02e", + "metadata": {}, + "source": [ + "## Classical Optimization\n", + "\n", + "Now we have a parameteric circuit, that we can sample by providing it the expected parameters, which are an array of size `NUM_LAYERS*2`.\n", + "The `ExecutionSession` object is used in order to execute the circuit with given pararmeters. the method `ExecutionSession.estimate_cost` should be provided with the execution parameters and a `cost_func` for evaluating the cost of a given sample. Notice that the same `objective` function that was use in the quantum `phase` application is used here in the classical post-processing.\n", + "\n", + "For the classical optimizer we use `scipy.optimize.minimize` with the `COBYLA` optimization method, that will be called with the `evaluate_params` function." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "ba3e0e6d-1c88-45e9-a3e9-1fc7301b70a3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Optimization Progress: 61it [05:18, 5.21s/it] " + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimized parameters: [-0.13389423163905886, 1.7328863464952615, 4.137934419051026, 3.6594808771984453, 1.55742085923953, -0.1139168692012947]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Cost convergence')" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHHCAYAAABHp6kXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACFQElEQVR4nO3dd3hUdfY/8Pedml5IQkIJhN5BKSIIooJiXdsq67qu2LG31R+suyvuuuLavpZ1rbvWVRF7Z1EUO1IEpXeIEALpZZKp9/fHzOfOTDLl3pk7mUzyfj1Pnkcyk5mbETIn55zPOZIsyzKIiIiIUpwh2RdAREREpAcGNURERNQlMKghIiKiLoFBDREREXUJDGqIiIioS2BQQ0RERF0CgxoiIiLqEhjUEBERUZfAoIaIiIi6BAY1RERE1CUwqCFKITt37sRVV12FgQMHIi0tDTk5OTjmmGPwyCOPoKWlRffns9lsWLhwIb744gvdH5uISG+mZF8AEanz4Ycf4rzzzoPVasXvf/97jB49Gg6HA19//TVuu+02bNy4EU8//bSuz2mz2XDXXXcBAI477jhdH5uISG8MaohSwO7du/Gb3/wG/fv3x/Lly9GrVy/ltmuvvRY7duzAhx9+mMQr7Pqam5uRmZmZ7MsgoghYfiJKAffddx+amprw73//OyigEQYPHowbb7xR+bPL5cLf/vY3DBo0CFarFWVlZfjjH/8Iu90e9HWrV6/G7NmzUVhYiPT0dAwYMACXXnopAGDPnj0oKioCANx1112QJAmSJGHhwoURr7Wurg4333wzysrKYLVa0bdvX/z+979HVVWVcp9Dhw7hsssuQ3FxMdLS0jBu3Di88MILQY+zZ88eSJKEBx54AE8//bTyvUyaNAmrVq1S7vfAAw9AkiTs3bu33bUsWLAAFosFtbW1yudWrlyJk08+Gbm5ucjIyMCMGTPwzTffBH3dwoULIUkSNm3ahN/+9rfIz8/HtGnTAAAejwcLFy5E7969kZGRgeOPPx6bNm1CWVkZ5s6d2+61uOmmm1BaWgqr1YrBgwfjH//4Bzwej+bvU9iyZQvOP/98FBUVIT09HcOGDcMdd9wRdJ/9+/fj0ksvRXFxMaxWK0aNGoX//Oc/4f6XEXUZzNQQpYD3338fAwcOxNSpU1Xd//LLL8cLL7yAX//617j11luxcuVKLFq0CJs3b8bbb78NwBtYnHTSSSgqKsL8+fORl5eHPXv24K233gIAFBUV4YknnsDVV1+Ns88+G+eccw4AYOzYsWGft6mpCdOnT8fmzZtx6aWXYvz48aiqqsJ7772HX375BYWFhWhpacFxxx2HHTt24LrrrsOAAQOwZMkSzJ07F3V1dUHBGQC88soraGxsxFVXXQVJknDffffhnHPOwa5du2A2m3H++efj9ttvx+uvv47bbrst6Gtff/11nHTSScjPzwcALF++HKeccgomTJiAO++8EwaDAc899xxOOOEEfPXVVzjqqKOCvv68887DkCFDcM8990CWZQDeQOm+++7DGWecgdmzZ2P9+vWYPXs2Wltbg77WZrNhxowZ2L9/P6666ir069cP3377LRYsWICKigo8/PDDmr5PAPjpp58wffp0mM1mXHnllSgrK8POnTvx/vvv4+9//zsAoLKyEkcffTQkScJ1112HoqIifPzxx7jsssvQ0NCAm266KeLfHaKUJhNRp1ZfXy8DkM8880xV91+3bp0MQL788suDPv+HP/xBBiAvX75clmVZfvvtt2UA8qpVq8I+1uHDh2UA8p133qnquf/yl7/IAOS33nqr3W0ej0eWZVl++OGHZQDyyy+/rNzmcDjkKVOmyFlZWXJDQ4Msy7K8e/duGYBcUFAg19TUKPd99913ZQDy+++/r3xuypQp8oQJE4Ke74cffpAByC+++KLy/EOGDJFnz56tXIssy7LNZpMHDBggn3jiicrn7rzzThmAfMEFFwQ95sGDB2WTySSfddZZQZ9fuHChDEC++OKLlc/97W9/kzMzM+Vt27YF3Xf+/Pmy0WiU9+3bp/n7PPbYY+Xs7Gx57969IV9bWZblyy67TO7Vq5dcVVUVdJ/f/OY3cm5urmyz2WSirorlJ6JOrqGhAQCQnZ2t6v4fffQRAOCWW24J+vytt94KAErvTV5eHgDggw8+gNPp1ONS8eabb2LcuHE4++yz290mSZJyfSUlJbjggguU28xmM2644QY0NTVhxYoVQV83Z84cJdMCANOnTwcA7Nq1K+g+a9aswc6dO5XPLV68GFarFWeeeSYAYN26ddi+fTt++9vforq6GlVVVaiqqkJzczNmzpyJL7/8MqgsBADz5s0L+vNnn30Gl8uFa665Jujz119/fbvvd8mSJZg+fTry8/OV56qqqsKsWbPgdrvx5Zdfavo+Dx8+jC+//BKXXnop+vXrF/S14rWVZRlvvvkmzjjjDMiyHPS8s2fPRn19PdauXdvuWom6CgY1RJ1cTk4OAKCxsVHV/ffu3QuDwYDBgwcHfb6kpAR5eXlK78mMGTNw7rnn4q677kJhYSHOPPNMPPfcc+36brTYuXMnRo8eHfX6hgwZAoMh+MfPiBEjlNsDtX0DF2/8gX0y5513HgwGAxYvXgzA++a+ZMkSnHLKKcrrt337dgDAxRdfjKKioqCPZ599Fna7HfX19UHPNWDAgHbXDqDda9ujR4+ggEQ83yeffNLuuWbNmgXAW/7T8n2K4CbS63v48GHU1dXh6aefbve8l1xyScjnJepK2FND1Mnl5OSgd+/e2LBhg6avE7+9R7r9jTfewPfff4/3338fS5cuxaWXXooHH3wQ33//PbKysuK5bN0YjcaQn5d9PS4A0Lt3b0yfPh2vv/46/vjHP+L777/Hvn378I9//EO5j8jC3H///TjiiCNCPmbb7zk9PT3m6/Z4PDjxxBNx++23h7x96NChQX9W832qeU4A+N3vfoeLL7445H0i9UQRpToGNUQp4PTTT8fTTz+N7777DlOmTIl43/79+8Pj8WD79u1K9gPwNpDW1dWhf//+Qfc/+uijcfTRR+Pvf/87XnnlFVx44YV47bXXcPnll0cNjNoaNGhQ1OCrf//++Omnn+DxeIKyNVu2bFFuj8WcOXNwzTXXYOvWrVi8eDEyMjJwxhlnBF0b4A0SRbZEK3FtO3bsCMriVFdXB2WOxPM1NTXF/FxtDRw4EAAivr5FRUXIzs6G2+3W7XmJUgnLT0Qp4Pbbb0dmZiYuv/xyVFZWtrt9586deOSRRwAAp556KgC0O13z0EMPAQBOO+00AN6yRtssgMhgiBJURkYGAO/RZDXOPfdcrF+/XjlhFUg816mnnoqDBw8qpSLAewT9scceQ1ZWFmbMmKHquUI9t9FoxKuvvoolS5bg9NNPD5orM2HCBAwaNAgPPPAAmpqa2n394cOHoz7HzJkzYTKZ8MQTTwR9/p///Ge7+55//vn47rvvsHTp0na31dXVweVyqfm2FEVFRTj22GPxn//8B/v27Qu6Tby2RqMR5557Lt58882QwY+a75EolTFTQ5QCBg0ahFdeeQVz5szBiBEjgiYKf/vtt8qRaAAYN24cLr74Yjz99NOoq6vDjBkz8MMPP+CFF17AWWedheOPPx4A8MILL+Bf//oXzj77bAwaNAiNjY145plnkJOTowRG6enpGDlyJBYvXoyhQ4eiR48eGD16dNi+jttuuw1vvPEGzjvvPFx66aWYMGECampq8N577+HJJ5/EuHHjcOWVV+Kpp57C3LlzsWbNGpSVleGNN97AN998g4cfflh1Q3RbPXv2xPHHH4+HHnoIjY2NmDNnTtDtBoMBzz77LE455RSMGjUKl1xyCfr06YP9+/fj888/R05ODt5///2Iz1FcXIwbb7wRDz74IH71q1/h5JNPxvr16/Hxxx+jsLAwKLN122234b333sPpp5+OuXPnYsKECWhubsbPP/+MN954A3v27EFhYaGm7/HRRx/FtGnTMH78eFx55ZUYMGAA9uzZgw8//BDr1q0DANx77734/PPPMXnyZFxxxRUYOXIkampqsHbtWnz66aeoqanR9JxEKSV5B6+ISKtt27bJV1xxhVxWViZbLBY5OztbPuaYY+THHntMbm1tVe7ndDrlu+66Sx4wYIBsNpvl0tJSecGCBUH3Wbt2rXzBBRfI/fr1k61Wq9yzZ0/59NNPl1evXh30nN9++608YcIE2WKxqDreXV1dLV933XVynz59ZIvFIvft21e++OKLg44YV1ZWypdccolcWFgoWywWecyYMfJzzz0X9DjiqPP999/f7jnCXcczzzwjA5Czs7PllpaWkNf3448/yuecc45cUFAgW61WuX///vL5558vf/bZZ8p9xJHuw4cPt/t6l8sl//nPf5ZLSkrk9PR0+YQTTpA3b94sFxQUyPPmzQu6b2Njo7xgwQJ58ODBssVikQsLC+WpU6fKDzzwgOxwOGL6Pjds2CCfffbZcl5enpyWliYPGzZM/vOf/xx0n8rKSvnaa6+VS0tLZbPZLJeUlMgzZ86Un3766ZCvCVFXIcmyhi40IiJqp66uDvn5+bj77rvbTfcloo7DnhoiIg1CbUMX/Utc+kmUXOypISLSYPHixXj++edx6qmnIisrC19//TVeffVVnHTSSTjmmGOSfXlE3RqDGiIiDcaOHQuTyYT77rsPDQ0NSvPw3XffnexLI+r22FNDREREXQJ7aoiIiKhLYFBDREREXUK36qnxeDw4cOAAsrOzNY9/JyIiouSQZRmNjY3o3bt3u2W4gbpVUHPgwAGU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c3Nz5S+++EKuqKhQPmw2m3KfefPmyf369ZOXL18ur169Wp4yZYo8ZcqUJF51cs2fP19esWKFvHv3bvmnn36S58+fL0uSJP/vf/+TZZmvlxqBp59kma9ZW7feeqv8xRdfyLt375a/+eYbedasWXJhYaF86NAhWZb5erX1ww8/yCaTSf773/8ub9++Xf7vf/8rZ2RkyC+//LJyn0T+7GdQo4PHHntM7tevn2yxWOSjjjpK/v7775N9SZ3C559/LgNo93HxxRfLsuw92vfnP/9ZLi4ulq1Wqzxz5kx569atyb3oJAr1WgGQn3vuOeU+LS0t8jXXXCPn5+fLGRkZ8tlnny1XVFQk76KT7NJLL5X79+8vWywWuaioSJ45c6YS0MgyXy812gY1fM2CzZkzR+7Vq5dssVjkPn36yHPmzJF37Nih3M7Xq733339fHj16tGy1WuXhw4fLTz/9dNDtifzZL8myLMef7yEiIiJKLvbUEBERUZfAoIaIiIi6BAY1RERE1CUwqCEiIqIugUENERERdQkMaoiIiKhLYFBDREREXQKDGiLq0srKyvDwww8n+zKIqAMwqCEi3cydOxdnnXUWAOC4447DTTfd1GHP/fzzzyMvL6/d51etWoUrr7yyw66DiJLHlOwLICKKxOFwwGKxxPz1RUVFOl4NEXVmzNQQke7mzp2LFStW4JFHHoEkSZAkCXv27AEAbNiwAaeccgqysrJQXFyMiy66CFVVVcrXHnfccbjuuutw0003obCwELNnzwYAPPTQQxgzZgwyMzNRWlqKa665Bk1NTQCAL774Apdccgnq6+uV51u4cCGA9uWnffv24cwzz0RWVhZycnJw/vnno7KyUrl94cKFOOKII/DSSy+hrKwMubm5+M1vfoPGxkblPm+88QbGjBmD9PR0FBQUYNasWWhubk7Qq0lEajGoISLdPfLII5gyZQquuOIKVFRUoKKiAqWlpairq8MJJ5yAI488EqtXr8Ynn3yCyspKnH/++UFf/8ILL8BiseCbb77Bk08+CQAwGAx49NFHsXHjRrzwwgtYvnw5br/9dgDA1KlT8fDDDyMnJ0d5vj/84Q/trsvj8eDMM89ETU0NVqxYgWXLlmHXrl2YM2dO0P127tyJd955Bx988AE++OADrFixAvfeey8AoKKiAhdccAEuvfRSbN68GV988QXOOecccI0eUfKx/EREusvNzYXFYkFGRgZKSkqUz//zn//EkUceiXvuuUf53H/+8x+UlpZi27ZtGDp0KABgyJAhuO+++4IeM7A/p6ysDHfffTfmzZuHf/3rX7BYLMjNzYUkSUHP19Znn32Gn3/+Gbt370ZpaSkA4MUXX8SoUaOwatUqTJo0CYA3+Hn++eeRnZ0NALjooovw2Wef4e9//zsqKirgcrlwzjnnoH///gCAMWPGxPFqEZFemKkhog6zfv16fP7558jKylI+hg8fDsCbHREmTJjQ7ms//fRTzJw5E3369EF2djYuuugiVFdXw2azqX7+zZs3o7S0VAloAGDkyJHIy8vD5s2blc+VlZUpAQ0A9OrVC4cOHQIAjBs3DjNnzsSYMWNw3nnn4ZlnnkFtba36F4GIEoZBDRF1mKamJpxxxhlYt25d0Mf27dtx7LHHKvfLzMwM+ro9e/bg9NNPx9ixY/Hmm29izZo1ePzxxwF4G4n1Zjabg/4sSRI8Hg8AwGg0YtmyZfj4448xcuRIPPbYYxg2bBh2796t+3UQkTYMaogoISwWC9xud9Dnxo8fj40bN6KsrAyDBw8O+mgbyARas2YNPB4PHnzwQRx99NEYOnQoDhw4EPX52hoxYgTKy8tRXl6ufG7Tpk2oq6vDyJEjVX9vkiThmGOOwV133YUff/wRFosFb7/9tuqvJ6LEYFBDRAlRVlaGlStXYs+ePaiqqoLH48G1116LmpoaXHDBBVi1ahV27tyJpUuX4pJLLokYkAwePBhOpxOPPfYYdu3ahZdeeklpIA58vqamJnz22WeoqqoKWZaaNWsWxowZgwsvvBBr167FDz/8gN///veYMWMGJk6cqOr7WrlyJe655x6sXr0a+/btw1tvvYXDhw9jxIgR2l4gItIdgxoiSog//OEPMBqNGDlyJIqKirBv3z707t0b33zzDdxuN0466SSMGTMGN910E/Ly8mAwhP9xNG7cODz00EP4xz/+gdGjR+O///0vFi1aFHSfqVOnYt68eZgzZw6KioraNRoD3gzLu+++i/z8fBx77LGYNWsWBg4ciMWLF6v+vnJycvDll1/i1FNPxdChQ/GnP/0JDz74IE455RT1Lw4RJYQk8xwiERERdQHM1BAREVGXwKCGiIiIugQGNURERNQlMKghIiKiLoFBDREREXUJDGqIiIioS2BQQ0RERF0CgxoiIiLqEhjUEBERUZfAoIaIiIi6BAY1RERE1CUwqCEiIqIu4f8DqenoQ/oMNbcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import math\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import scipy\n", + "from tqdm import tqdm\n", + "\n", + "from classiq.execution import *\n", + "\n", + "NUM_SHOTS = 1000\n", + "MAX_ITERATIONS = 60\n", + "\n", + "# start with a linear scheduling guess\n", + "initial_params = (\n", + " np.concatenate((np.linspace(0, 1, NUM_LAYERS), np.linspace(1, 0, NUM_LAYERS)))\n", + " * math.pi\n", + ")\n", + "\n", + "cost_trace = []\n", + "\n", + "\n", + "def evaluate_params(es, params):\n", + " cost_estimation = es.estimate_cost(\n", + " cost_func=lambda state: cost(state[\"v\"]), parameters={\"params\": params.tolist()}\n", + " )\n", + " cost_trace.append(cost_estimation)\n", + " return cost_estimation\n", + "\n", + "\n", + "es = ExecutionSession(\n", + " qprog, execution_preferences=ExecutionPreferences(num_shots=NUM_SHOTS)\n", + ")\n", + "\n", + "with tqdm(total=MAX_ITERATIONS, desc=\"Optimization Progress\", leave=True) as pbar:\n", + "\n", + " def progress_bar(xk: np.ndarray) -> None:\n", + " pbar.update(1) # increment progress bar\n", + "\n", + " final_params = scipy.optimize.minimize(\n", + " fun=lambda params: evaluate_params(es, params),\n", + " x0=initial_params,\n", + " method=\"COBYLA\",\n", + " options={\"maxiter\": MAX_ITERATIONS},\n", + " callback=progress_bar,\n", + " ).x.tolist()\n", + "\n", + "print(f\"Optimized parameters: {final_params}\")\n", + "plt.plot(cost_trace)\n", + "plt.xlabel(\"Iterations\")\n", + "plt.ylabel(\"Cost\")\n", + "plt.title(\"Cost convergence\")" + ] + }, + { + "cell_type": "markdown", + "id": "b7b2d99c-0136-4330-a0f9-57fc060fecf3", + "metadata": {}, + "source": [ + "After the optimization, we sample the the circuit with the optimized parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9181681c-682f-4393-bd36-3d2643935030", + "metadata": {}, + "outputs": [], + "source": [ + "res = es.sample({\"params\": final_params})\n", + "es.close()" + ] + }, + { + "cell_type": "markdown", + "id": "6ee36326-ed17-4e03-89fb-b4be84faab51", + "metadata": {}, + "source": [ + "Print the resulting solutions according to the probability:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "40dbfa82-e7c9-40e2-800a-f8e60defccc4", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "solution={'a': 3, 'b': 2} probability=0.146 objective=19 constraint=True\n", + "solution={'a': 1, 'b': 3} probability=0.061 objective=18 constraint=True\n", + "solution={'a': 6, 'b': 0} probability=0.009 objective=18 constraint=True\n", + "solution={'a': 4, 'b': 1} probability=0.015 objective=17 constraint=True\n", + "solution={'a': 2, 'b': 2} probability=0.017 objective=16 constraint=True\n", + "solution={'a': 0, 'b': 3} probability=0.063 objective=15 constraint=True\n", + "solution={'a': 5, 'b': 0} probability=0.014 objective=15 constraint=True\n", + "solution={'a': 3, 'b': 1} probability=0.091 objective=14 constraint=True\n", + "solution={'a': 1, 'b': 2} probability=0.046 objective=13 constraint=True\n", + "solution={'a': 4, 'b': 0} probability=0.07 objective=12 constraint=True\n", + "solution={'a': 2, 'b': 1} probability=0.001 objective=11 constraint=True\n", + "solution={'a': 0, 'b': 2} probability=0.021 objective=10 constraint=True\n", + "solution={'a': 3, 'b': 0} probability=0.006 objective=9 constraint=True\n", + "solution={'a': 1, 'b': 1} probability=0.018 objective=8 constraint=True\n", + "solution={'a': 2, 'b': 0} probability=0.052 objective=6 constraint=True\n", + "solution={'a': 0, 'b': 1} probability=0.032 objective=5 constraint=True\n", + "solution={'a': 1, 'b': 0} probability=0.017 objective=3 constraint=True\n", + "solution={'a': 3, 'b': 3} probability=0.09 objective=24 constraint=False\n", + "solution={'a': 6, 'b': 1} probability=0.048 objective=23 constraint=False\n", + "solution={'a': 7, 'b': 3} probability=0.039 objective=36 constraint=False\n", + "solution={'a': 5, 'b': 1} probability=0.026 objective=20 constraint=False\n", + "solution={'a': 4, 'b': 2} probability=0.022 objective=22 constraint=False\n", + "solution={'a': 6, 'b': 2} probability=0.019 objective=28 constraint=False\n", + "solution={'a': 7, 'b': 0} probability=0.016 objective=21 constraint=False\n", + "solution={'a': 6, 'b': 3} probability=0.014 objective=33 constraint=False\n", + "solution={'a': 7, 'b': 1} probability=0.012 objective=26 constraint=False\n", + "solution={'a': 5, 'b': 2} probability=0.011 objective=25 constraint=False\n", + "solution={'a': 2, 'b': 3} probability=0.01 objective=21 constraint=False\n", + "solution={'a': 0, 'b': 0} probability=0.009 objective=0 constraint=True\n", + "solution={'a': 4, 'b': 3} probability=0.003 objective=27 constraint=False\n", + "solution={'a': 7, 'b': 2} probability=0.002 objective=31 constraint=False\n" + ] + } + ], + "source": [ + "sorted_counts = sorted(res.parsed_counts, key=lambda sampled: cost(sampled.state[\"v\"]))\n", + "for sampled in sorted_counts:\n", + " v = sampled.state[\"v\"]\n", + " print(\n", + " f\"solution={v} probability={sampled.shots/NUM_SHOTS} objective={objective(v)} constraint={constraint(v)}\"\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "228e42ae-130c-4a57-a3d9-db52acb1a783", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "[1]: [Farhi, Edward, Jeffrey Goldstone, and Sam Gutmann. \"A quantum approximate optimization algorithm.\" arXiv preprint arXiv:1411.4028 (2014).](https://arxiv.org/abs/1411.4028)\n", + "\n", + "[2]: [Knapsack problem (Wikipedia)](https://en.wikipedia.org/wiki/Knapsack_problem)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/algorithms/qaoa/knapsack/qaoa_knapsack.metadata.json b/algorithms/qaoa/knapsack/qaoa_knapsack.metadata.json new file mode 100644 index 000000000..7d84c4a8e --- /dev/null +++ b/algorithms/qaoa/knapsack/qaoa_knapsack.metadata.json @@ -0,0 +1,7 @@ +{ + "friendly_name": "Constrained QAOA: Knapsack", + "description": "Optimizing the Knapsack problem using the QAOA Algorithm", + "problem_domain_tags": ["optimization"], + "qmod_type": ["algorithms"], + "level": ["demos"] +} diff --git a/algorithms/qaoa/knapsack/qaoa_knapsack.qmod b/algorithms/qaoa/knapsack/qaoa_knapsack.qmod new file mode 100644 index 000000000..ef497e892 --- /dev/null +++ b/algorithms/qaoa/knapsack/qaoa_knapsack.qmod @@ -0,0 +1,26 @@ +qstruct KnapsackVars { + a: qnum<3>; + b: qnum<2>; +} + +qfunc apply_cost(gamma: real, v: KnapsackVars) { + aux: qbit; + within { + aux = ((v.a * 2) + (v.b * 3)) <= 12; + } apply { + control (aux) { + phase (-((v.a * 3) + (v.b * 5)), gamma); + } + } +} + +qfunc main(params: real[6], output v: KnapsackVars) { + allocate(v.size, v); + hadamard_transform(v); + repeat (i: 3) { + apply_cost(params[2 * i], v); + apply_to_all(lambda(q) { + RX(params[(2 * i) + 1], q); + }, v); + } +} diff --git a/algorithms/qaoa/knapsack/qaoa_knapsack.synthesis_options.json b/algorithms/qaoa/knapsack/qaoa_knapsack.synthesis_options.json new file mode 100644 index 000000000..38a94eebd --- /dev/null +++ b/algorithms/qaoa/knapsack/qaoa_knapsack.synthesis_options.json @@ -0,0 +1,44 @@ +{ + "constraints": { + "max_gate_count": {}, + "optimization_parameter": "no_opt" + }, + "preferences": { + "machine_precision": 8, + "custom_hardware_settings": { + "basis_gates": [ + "id", + "cy", + "sx", + "z", + "cx", + "u", + "rx", + "y", + "r", + "t", + "u1", + "tdg", + "rz", + "cz", + "x", + "s", + "sxdg", + "h", + "u2", + "sdg", + "ry", + "p" + ], + "is_symmetric_connectivity": true + }, + "debug_mode": true, + "synthesize_all_separately": false, + "optimization_level": 3, + "output_format": ["qasm"], + "pretty_qasm": true, + "transpilation_option": "auto optimize", + "timeout_seconds": 300, + "random_seed": 695440439 + } +} diff --git a/algorithms/qpe/qpe_for_matrix/qpe_for_matrix.ipynb b/algorithms/qpe/qpe_for_matrix/qpe_for_matrix.ipynb index bd810c39d..39cf4e637 100644 --- a/algorithms/qpe/qpe_for_matrix/qpe_for_matrix.ipynb +++ b/algorithms/qpe/qpe_for_matrix/qpe_for_matrix.ipynb @@ -870,7 +870,7 @@ "## References\n", "\n", "[1]: [Michael A. Nielsen and Isaac L. Chuang. 2011. Quantum Computation and Quantum Information: 10th Anniversary Edition, Cambridge University Press, New York, NY, USA.\n", - "](http://mmrc.amss.cas.cn/tlb/201702/W020170224608149940643.pdf)\n" + "](https://archive.org/details/QuantumComputationAndQuantumInformation10thAnniversaryEdition)\n" ] } ], diff --git a/applications/chemistry/qpe_for_molecules/qpe_for_molecules.ipynb b/applications/chemistry/qpe_for_molecules/qpe_for_molecules.ipynb index 8f66551c1..998b58dd1 100644 --- a/applications/chemistry/qpe_for_molecules/qpe_for_molecules.ipynb +++ b/applications/chemistry/qpe_for_molecules/qpe_for_molecules.ipynb @@ -967,7 +967,7 @@ "## References\n", "\n", "[1]: [Michael A. Nielsen and Isaac L. Chuang. 2011. Quantum Computation and Quantum Information: 10th Anniversary Edition, Cambridge University Press, New York, NY, USA.\n", - "](http://mmrc.amss.cas.cn/tlb/201702/W020170224608149940643.pdf)\n" + "](https://archive.org/details/QuantumComputationAndQuantumInformation10thAnniversaryEdition)\n" ] } ], diff --git a/applications/optimization/knapsack_integer/knapsack_integer.ipynb b/applications/optimization/knapsack_integer/knapsack_integer.ipynb deleted file mode 100644 index fd682877a..000000000 --- a/applications/optimization/knapsack_integer/knapsack_integer.ipynb +++ /dev/null @@ -1,649 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "13d83b59-57f7-48ee-8bff-deda7d28edc5", - "metadata": { - "tags": [] - }, - "source": [ - "\n", - "# Integer Knapsack\n" - ] - }, - { - "cell_type": "markdown", - "id": "6d56bb6d-9f3b-45db-8e98-b50f27af7505", - "metadata": {}, - "source": [ - "## Background\n", - "\n", - "Given a set of items, determine how many items to put in the knapsack to maximize their summed value.\n", - "\n", - "#### Define:\n", - "\n", - "- $x_i$ is the number of items from each type.\n", - "\n", - "- $v_i$ is the value of each item.\n", - "\n", - "- $w_i$ is the weight of each item.\n", - "\n", - "- $D$ is the range of $x$.\n", - "\n", - "Find $x$ that maximizes the value: $\\begin{aligned}\n", - "\\max_{x_i \\in D} \\Sigma_i v_i x_i\\\\\n", - "\\end{aligned}$\n", - "\n", - "and constrained by the weight: $\\begin{aligned}\n", - "\\Sigma_i w_i x_i = C\n", - "\\end{aligned}$\n" - ] - }, - { - "cell_type": "markdown", - "id": "064a5428-2587-44b4-8f59-fc46773e20c0", - "metadata": { - "tags": [] - }, - "source": [ - "## Problem Versions\n" - ] - }, - { - "cell_type": "markdown", - "id": "b3cec06e-609c-4223-a959-72b518155491", - "metadata": {}, - "source": [ - "**Binary Knapsack**\n", - "\n", - "Range: $D = \\{0, 1\\}$\n", - "\n", - "**Integer Knapsack**\n", - "\n", - "Range: $D = [0, b]$\n" - ] - }, - { - "cell_type": "markdown", - "id": "fdbcef63-3c8e-4f0a-a4fb-9058807fa3a8", - "metadata": { - "tags": [] - }, - "source": [ - "## Knapsack with integer variables and inequality constraint\n" - ] - }, - { - "cell_type": "markdown", - "id": "0bdc4e6a-199b-44b3-bd3f-fd24722b616b", - "metadata": {}, - "source": [ - "### Define the optimization problem" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "83ddbd07-f7ab-4d80-b357-3890622d395f", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:54.368809Z", - "iopub.status.busy": "2024-05-07T15:47:54.368590Z", - "iopub.status.idle": "2024-05-07T15:47:54.786404Z", - "shell.execute_reply": "2024-05-07T15:47:54.785613Z" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pyomo.environ as pyo\n", - "\n", - "\n", - "def define_knapsack_model(weights, values, max_weight, item_bound):\n", - " model = pyo.ConcreteModel(\"knapsack\")\n", - " num_items = len(weights)\n", - "\n", - " model.x = pyo.Var(\n", - " range(num_items), domain=pyo.NonNegativeIntegers, bounds=(0, item_bound)\n", - " )\n", - "\n", - " x_variables = np.array(list(model.x.values()))\n", - "\n", - " model.weight_constraint = pyo.Constraint(expr=x_variables @ weights <= max_weight)\n", - "\n", - " model.value = pyo.Objective(expr=x_variables @ values, sense=pyo.maximize)\n", - "\n", - " return model" - ] - }, - { - "cell_type": "markdown", - "id": "3496c5d6-7df6-49fb-b5b9-5ba48d2b7d62", - "metadata": {}, - "source": [ - "### Initialize the model with parameters" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "62a98e1c-5dbe-42f9-989e-83ee1df7196b", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:54.791476Z", - "iopub.status.busy": "2024-05-07T15:47:54.790333Z", - "iopub.status.idle": "2024-05-07T15:47:54.796335Z", - "shell.execute_reply": "2024-05-07T15:47:54.795653Z" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "knapsack_model = define_knapsack_model(\n", - " weights=[2, 3], values=[3, 5], max_weight=12, item_bound=3\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "35588b31-eba4-445b-bb39-e1c74ba6c71f", - "metadata": { - "tags": [] - }, - "source": [ - "## Setting Up the Classiq Problem Instance\n", - "\n", - "In order to solve the Pyomo model defined above, we use the Classiq combinatorial optimization engine. For the quantum part of the QAOA algorithm (`QAOAConfig`) - define the number of repetitions (`num_layers`):" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "726424db-c61a-465f-af29-3f739d379989", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:54.800925Z", - "iopub.status.busy": "2024-05-07T15:47:54.799768Z", - "iopub.status.idle": "2024-05-07T15:47:57.354442Z", - "shell.execute_reply": "2024-05-07T15:47:57.353785Z" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "from classiq import *\n", - "from classiq.applications.combinatorial_optimization import OptimizerConfig, QAOAConfig\n", - "\n", - "qaoa_config = QAOAConfig(num_layers=5, penalty_energy=20.0)" - ] - }, - { - "cell_type": "markdown", - "id": "14d12f81-d8fc-4e48-9ddc-59dd63f4c6be", - "metadata": {}, - "source": [ - "For the classical optimization part of the QAOA algorithm we define the maximum number of classical iterations (`max_iteration`) and the $\\alpha$-parameter (`alpha_cvar`) for running CVaR-QAOA, an improved variation of the QAOA algorithm [[3](#cvar)]:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "2a0c7071-ec6c-4309-a01a-da7e9d3e9161", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:57.357511Z", - "iopub.status.busy": "2024-05-07T15:47:57.356995Z", - "iopub.status.idle": "2024-05-07T15:47:57.360426Z", - "shell.execute_reply": "2024-05-07T15:47:57.359833Z" - }, - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "optimizer_config = OptimizerConfig(max_iteration=60, alpha_cvar=0.7)" - ] - }, - { - "cell_type": "markdown", - "id": "82520e92-4e1a-438c-ae33-1d3fa51a8fb6", - "metadata": {}, - "source": [ - "Lastly, we load the model, based on the problem and algorithm parameters, which we can use to solve the problem:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "393de0f0-704f-4240-a2de-50fb647470b3", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:57.362661Z", - "iopub.status.busy": "2024-05-07T15:47:57.362484Z", - "iopub.status.idle": "2024-05-07T15:47:58.414397Z", - "shell.execute_reply": "2024-05-07T15:47:58.413306Z" - }, - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "qmod = construct_combinatorial_optimization_model(\n", - " pyo_model=knapsack_model,\n", - " qaoa_config=qaoa_config,\n", - " optimizer_config=optimizer_config,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "9b0c18d8-9ea0-45b1-b6f2-70ea87996bf7", - "metadata": {}, - "source": [ - "We also set the quantum backend we want to execute on:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e5993972-bbc0-4350-ae3f-201b10f3e538", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:58.418644Z", - "iopub.status.busy": "2024-05-07T15:47:58.417642Z", - "iopub.status.idle": "2024-05-07T15:47:58.443050Z", - "shell.execute_reply": "2024-05-07T15:47:58.442289Z" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "from classiq.execution import ClassiqBackendPreferences\n", - "\n", - "qmod = set_execution_preferences(\n", - " qmod, backend_preferences=ClassiqBackendPreferences(backend_name=\"simulator\")\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "e04769db-fb88-4fcf-aa9a-baf252e1b1fd", - "metadata": {}, - "source": [ - "## Synthesizing the QAOA Circuit and Solving the Problem\n", - "\n", - "We can now synthesize and view the QAOA circuit (ansatz) used to solve the optimization problem:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "83d3d505-c96e-480a-b977-9dd643968033", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:58.448233Z", - "iopub.status.busy": "2024-05-07T15:47:58.447033Z", - "iopub.status.idle": "2024-05-07T15:47:58.483802Z", - "shell.execute_reply": "2024-05-07T15:47:58.483056Z" - } - }, - "outputs": [], - "source": [ - "write_qmod(qmod, \"knapsack_integer\")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "47db129e-2770-413d-b17d-bef2a2797802", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:47:58.488712Z", - "iopub.status.busy": "2024-05-07T15:47:58.487503Z", - "iopub.status.idle": "2024-05-07T15:48:04.356184Z", - "shell.execute_reply": "2024-05-07T15:48:04.355488Z" - }, - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Opening: https://platform.classiq.io/circuit/d59e237b-8d26-436d-b53f-4f363c0becb5?version=0.41.0.dev39%2B79c8fd0855\n" - ] - } - ], - "source": [ - "qprog = synthesize(qmod)\n", - "show(qprog)" - ] - }, - { - "cell_type": "markdown", - "id": "ed67ddd7-0d0a-4c28-b39d-a9cc7540ac12", - "metadata": {}, - "source": [ - "We now solve the problem by calling the `execute` function on the quantum program we have generated:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "a1dc0d76-169b-44df-a97f-e7f607d97735", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:48:04.358992Z", - "iopub.status.busy": "2024-05-07T15:48:04.358466Z", - "iopub.status.idle": "2024-05-07T15:48:14.982899Z", - "shell.execute_reply": "2024-05-07T15:48:14.982199Z" - }, - "tags": [] - }, - "outputs": [], - "source": [ - "result = execute(qprog).result_value()" - ] - }, - { - "cell_type": "markdown", - "id": "a84dd23b-4a3c-48ed-8cee-ec673ae9774a", - "metadata": {}, - "source": [ - "We can check the convergence of the run:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "4234b965-602a-4087-a6d8-05c2f5407df2", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:48:14.987797Z", - "iopub.status.busy": "2024-05-07T15:48:14.986659Z", - "iopub.status.idle": "2024-05-07T15:48:15.063315Z", - "shell.execute_reply": "2024-05-07T15:48:15.062610Z" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAHgAoADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA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f7W0oXEDXA0qW9tbyPT7m1UbSFI2ynLfeUhlb8qm0y/1SDQPBMmqvYajJfXNuqStbOHiBtZG37mkbMvy4L8ZDNxzQB6HRXAx+Ldba0g8QNBY/wBhT6gLMQBX+0KjTeQspfdtPzYOzb0PXNRXPi7xDBb63qoh0z+zNK1JrV4iknnTRhkBYNuwrAN6HOO1AHodFcVN4n1GPxfJplxc2Gm2y3EcUEd5bS77xCqktHNuEYOSyhcMcrz1rtaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5Ww8EWelT6fNYajqFu9pELdirRn7REJDJskDIeMs3K7TgnmuqooA5qz8Jx6ddK1jquqW9ks5mGnxyJ5CsW3EDKbwpJPyhsc9MVN/wimnNomp6RKZ5LXUpp5p9zgMGlYs20gDGCeP61v0UAcxZeDba31ZtTudS1LULp7J7FmvJEIMTMrEYRVAOV6j1Oc8YWz8H29pa6XbNqWoXMOl3CT2iztH+72xNEqZVASu1z1ycgc101FAHKr4I0+O+SQXl8bKO7N6mmmVfs6zbt+4Dbu+8d23dtB5xVifwhYXGj6rpjTXIg1O4a5mYFdysxUkL8uAPlHUGuiooA52+8Kx6ne+bd6tqctp56TmxMieRvRgy/wb8BlBxuxxXRUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//Z", - "image/png": "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", - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result.convergence_graph" - ] - }, - { - "cell_type": "markdown", - "id": "51a8a8a9-dbe5-433f-a8c0-f7adb959b27e", - "metadata": { - "tags": [] - }, - "source": [ - "# Optimization Results" - ] - }, - { - "cell_type": "markdown", - "id": "60ed540c-35ae-499a-b682-458e69d79652", - "metadata": {}, - "source": [ - "We can also examine the statistics of the algorithm:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5a25edea-7281-4255-a6ff-38c8cecf280a", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:48:15.067119Z", - "iopub.status.busy": "2024-05-07T15:48:15.066871Z", - "iopub.status.idle": "2024-05-07T15:48:15.558582Z", - "shell.execute_reply": "2024-05-07T15:48:15.557874Z" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
probabilitycostsolutioncount
380.00819.0[3, 2]8
1010.00318.0[1, 3]3
740.00416.0[2, 2]4
160.01215.0[0, 3]12
70.01714.0[3, 1]17
\n", - "
" - ], - "text/plain": [ - " probability cost solution count\n", - "38 0.008 19.0 [3, 2] 8\n", - "101 0.003 18.0 [1, 3] 3\n", - "74 0.004 16.0 [2, 2] 4\n", - "16 0.012 15.0 [0, 3] 12\n", - "7 0.017 14.0 [3, 1] 17" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "from classiq.applications.combinatorial_optimization import (\n", - " get_optimization_solution_from_pyo,\n", - ")\n", - "\n", - "solution = get_optimization_solution_from_pyo(\n", - " knapsack_model, vqe_result=result, penalty_energy=qaoa_config.penalty_energy\n", - ")\n", - "optimization_result = pd.DataFrame.from_records(solution)\n", - "optimization_result.sort_values(by=\"cost\", ascending=False).head(5)" - ] - }, - { - "cell_type": "markdown", - "id": "2d654d5e-f064-4820-82e8-2b090a4bd72f", - "metadata": {}, - "source": [ - "And the histogram:" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "1f8e36b4-a949-475b-b415-5a27a84037f7", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:48:15.561275Z", - "iopub.status.busy": "2024-05-07T15:48:15.560724Z", - "iopub.status.idle": "2024-05-07T15:48:15.748757Z", - "shell.execute_reply": "2024-05-07T15:48:15.748036Z" - }, - "tags": [] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[]], dtype=object)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGzCAYAAAD9pBdvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqw0lEQVR4nO3df1TVdZ7H8RcX4eLNSI0EI2bwR6VmygwsDE7t1BmEyql1ZqelH5vGaWmm5OTZ25ixkyBZg6lL7nGcqFaq02Q6NXNy9sigDOXslJQTaubPxgrJH6COKQbj5cb97B8dbrKAclH8fIHn4xwO8/18P9/v9/39vsFec7/fewkzxhgBAABY4rJdAAAAGNgIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwgiAPmXjxo2aP3++jh8/brsUAOcJYQRAn7Jx40YVFRURRoB+hDACAACsIowAOC8OHDig++67T5dffrncbrdGjRqlBx54QC0tLZKkTz75RLfffruGDx8uj8ej73znO1q7dm2H/SxbtkzXXHONPB6Phg0bppSUFK1cuVKSNH/+fM2ZM0eSNGrUKIWFhSksLEy1tbUX7DwBnH+DbBcAoO87ePCgUlNTdfz4cd1///0aN26cDhw4oNdff13Nzc36/PPPNWXKFDU3N+uhhx7SpZdeqpdeekm33XabXn/9df3whz+UJD3//PN66KGH9OMf/1izZ8/WqVOntG3bNr333nu666679KMf/UgfffSRXn31VT399NOKiYmRJF122WU2Tx/AOQozxhjbRQDo22bOnKlf//rXeu+995SSktJunTFGXq9XS5cu1Z///Gddd911kqQvvvhCkyZNkjFGH3/8sVwul6ZPn669e/dq+/btXR5ryZIlmjNnjj799FMlJib25mkBuEC4TQPgnAQCAb3xxhu69dZbOwQRSQoLC1N5eblSU1ODQUSShgwZovvvv1+1tbXauXOnJGno0KHav3+//vKXv1yw+gHYRxgBcE6OHDmixsZGTZw4scs5+/bt09VXX91hfPz48cH1kjR37lwNGTJEqampuvLKKzVr1iy98847vVM4AMcgjABwjPHjx2vPnj1atWqVrrvuOv32t7/Vddddp8LCQtulAehFhBEA5+Syyy5TdHT0GZ/z+OY3v6k9e/Z0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x39UZGRkcCwrK0t79uzR559/HpyTkZHRbrusrCxVV1dLkj799FPV19e3m3PJJZcoLS0tOAcdHTt2TK+88oqmTJmiiIgISfTDCU6cOKHhw4cHl+mJs1RXV+vaa68NflK39NW1bmxs1I4dO4JzztSPlpYW1dTUtJvjcrmUkZFBP0LkxGtJGHEYY4zuvfde/fSnP1VKSkqnc+rr69v9UksKLtfX159xzunrT9+uszn42ty5c3XRRRfp0ksvVV1dndasWRNcRz/s2rt3r5YtW6af/OQnwTF64izn0o/Gxkb9/e9/19GjR9Xa2ko/zgMnXkvCyAXy6KOPKiws7Ixfu3fv1rJly3Ty5Enl5+fbLrlf624/2syZM0dbtmzR+vXrFR4erhkzZsjwlxTOq1B7IkkHDhzQTTfdpNtvv125ubmWKu+fetIPoKdC/kN56JmHH35Y99577xnnjB49Wm+++aaqq6s7/OGilJQU3X333XrppZcUFxenhoaGduvbluPi4oLfO5tz+vq2sZEjR7abk5SUFPL59TXd7UebmJgYxcTE6KqrrtL48eOVkJCgd999V+np6fTjPAm1JwcPHtSNN96oKVOmdPgr4PTk3IXajzOJi4vr8E6N7vYjOjpagwcPVnh4uMLDw8/YM3RPTEyM866llSdV0KV9+/aZDz/8MPi1bt06I8m8/vrr5rPPPjPGfP1wXtsDlMYYk5+f3+HhvB/84Aft9p2ent7h4bwlS5YE1584cYKH87ph3759RpJ56623jDH0w4b9+/ebK6+80txxxx3myy+/7LCenthxtgdYT3+nxrPPPmuio6PNqVOnjDFfPcA6ceLEdtvdeeedHR5gzcvLCy63traa+Ph4HmDtAaddS8KIw3366acd3k1z/PhxExsba+655x6zfft2s2rVKuPxeDq8bXHQoEFmyZIlZteuXaawsLDTty0OHTrUrFmzxmzbts380z/9E29b/H/effdds2zZMrNlyxZTW1trqqqqzJQpU8yYMWOC/4jSjwtr//79ZuzYseb73/++2b9/vzl06FDwqw09ubD27dtntmzZYoqKisyQIUPMli1bzJYtW8zJkyeNMV+/tTczM9Ns3brVVFRUmMsuu6zTt/bOmTPH7Nq1yyxfvrzTt/a63W7z4osvmp07d5r777/fDB06tN27dNA9TruWhBGH6yyMGGPMBx98YK677jrjdrtNfHy8WbhwYYdtf/Ob35irrrrKREZGmmuuucasXbu23fpAIGDmzZtnYmNjjdvtNt///vfNnj17evN0+pxt27aZG2+80QwfPty43W6TmJhofvrTn5r9+/e3m0c/LpwXXnjBSOr063T05MKZOXNmp/1oe/XQGGNqa2vNzTffbAYPHmxiYmLMww8/bPx+f7v9vPXWWyYpKclERkaa0aNHmxdeeKHDsZYtW2a+8Y1vmMjISJOammrefffdXj67/stJ1zLMGJ7CAwAA9vBuGgAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFb9H0Fp55YdEaW5AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "optimization_result.hist(\"cost\", weights=optimization_result[\"probability\"])" - ] - }, - { - "cell_type": "markdown", - "id": "7ef94f22-e503-464c-b996-773c989511b4", - "metadata": {}, - "source": [ - "Lastly, we can compare to the classical solution of the problem:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "f3d175f1-ce3b-4a00-8e53-ea6220e9e4ff", - "metadata": { - "execution": { - "iopub.execute_input": "2024-05-07T15:48:15.751313Z", - "iopub.status.busy": "2024-05-07T15:48:15.750925Z", - "iopub.status.idle": "2024-05-07T15:48:15.791538Z", - "shell.execute_reply": "2024-05-07T15:48:15.790837Z" - }, - "pycharm": { - "name": "#%%\n" - }, - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model knapsack\n", - "\n", - " Variables:\n", - " x : Size=2, Index=x_index\n", - " Key : Lower : Value : Upper : Fixed : Stale : Domain\n", - " 0 : 0 : 3.0 : 3 : False : False : NonNegativeIntegers\n", - " 1 : 0 : 2.0 : 3 : False : False : NonNegativeIntegers\n", - "\n", - " Objectives:\n", - " value : Size=1, Index=None, Active=True\n", - " Key : Active : Value\n", - " None : True : 19.0\n", - "\n", - " Constraints:\n", - " weight_constraint : Size=1\n", - " Key : Lower : Body : Upper\n", - " None : None : 12.0 : 12.0\n" - ] - } - ], - "source": [ - "from pyomo.opt import SolverFactory\n", - "\n", - "solver = SolverFactory(\"couenne\")\n", - "solver.solve(knapsack_model)\n", - "\n", - "knapsack_model.display()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/applications/optimization/knapsack_integer/knapsack_integer.metadata.json b/applications/optimization/knapsack_integer/knapsack_integer.metadata.json deleted file mode 100644 index 2fa4d57f2..000000000 --- a/applications/optimization/knapsack_integer/knapsack_integer.metadata.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "friendly_name": "Knapsack: Integer Variables", - "description": "Solving Knapsack with Integer Variables Using the QAOA Algorithm", - "problem_domain_tags": ["optimization"], - "qmod_type": ["application"], - "level": ["demos"] -} diff --git a/applications/optimization/knapsack_integer/knapsack_integer.qmod b/applications/optimization/knapsack_integer/knapsack_integer.qmod deleted file mode 100644 index df11dee04..000000000 --- a/applications/optimization/knapsack_integer/knapsack_integer.qmod +++ /dev/null @@ -1,504 +0,0 @@ -hamiltonian: PauliTerm[] = [ - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=588.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=-150.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I - ], - coefficient=-87.5 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=-175.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z - ], - coefficient=-58.5 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I - ], - coefficient=-117.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=-30.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=-60.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=-120.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I - ], - coefficient=150.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=300.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=20.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z - ], - coefficient=20.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=40.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I - ], - coefficient=40.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z - ], - coefficient=40.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=80.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I - ], - coefficient=80.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z - ], - coefficient=80.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::Z - ], - coefficient=80.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I - ], - coefficient=160.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I - ], - coefficient=30.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=60.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I - ], - coefficient=60.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::Z - ], - coefficient=60.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=120.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I - ], - coefficient=120.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::Z - ], - coefficient=120.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::Z, - Pauli::I - ], - coefficient=120.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=240.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::Z, - Pauli::I - ], - coefficient=240.0 - }, - PauliTerm { - pauli=[ - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::Z, - Pauli::I, - Pauli::I - ], - coefficient=180.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=50.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=100.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z - ], - coefficient=100.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I - ], - coefficient=200.0 - }, - PauliTerm { - pauli=[ - Pauli::Z, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::I, - Pauli::Z, - Pauli::I - ], - coefficient=200.0 - } -]; - -qfunc main(params_list: real[10], output target: qbit[8]) { - allocate(target.len, target); - qaoa_penalty(target.len, params_list, hamiltonian, target); -} - -cscope ``` -vqe_result = vqe( -hamiltonian=hamiltonian, -maximize=True, -initial_point=[0.0, 0.003090659340659341, 0.0007726648351648352, 0.002317994505494506, 0.0015453296703296705, 0.0015453296703296705, 0.002317994505494506, 0.0007726648351648352, 0.003090659340659341, 0.0], -optimizer=Optimizer.COBYLA, -max_iteration=60, -tolerance=0.0, -step_size=0.0, -skip_compute_variance=False, -alpha_cvar=0.7 -) - -save({"vqe_result": vqe_result, "hamiltonian": hamiltonian}) -``` diff --git a/applications/optimization/knapsack_integer/knapsack_integer.synthesis_options.json b/applications/optimization/knapsack_integer/knapsack_integer.synthesis_options.json deleted file mode 100644 index 0967ef424..000000000 --- a/applications/optimization/knapsack_integer/knapsack_integer.synthesis_options.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/community/paper_implementation/sparse_state_preparation/sparse_state_preparation.ipynb b/community/paper_implementation/sparse_state_preparation/sparse_state_preparation.ipynb new file mode 100644 index 000000000..193bfe22c --- /dev/null +++ b/community/paper_implementation/sparse_state_preparation/sparse_state_preparation.ipynb @@ -0,0 +1,554 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# An Efficient Algorithm for Sparse Quantum State Preparation\n", + "\n", + "Implementation of the [paper from Niels Gleinig & Torsten Hoefler](https://htor.inf.ethz.ch/publications/img/quantum_dac.pdf) using Classiq's python SDK." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Classiq related (algorithmic part)\n", + "from classiq import *\n", + "import numpy as np\n", + "from typing import List, Tuple\n", + "from classiq.qmod import control, unitary\n", + "from classiq.execution import ClassiqBackendPreferences, ExecutionPreferences\n", + "from classiq.synthesis import set_execution_preferences, SerializedQuantumProgram\n", + "\n", + "\n", + "# Qiskit related (end of computation)\n", + "from qiskit import QuantumCircuit\n", + "from qiskit.circuit.controlledgate import ControlledGate\n", + "from qiskit.quantum_info import Operator\n", + "from qiskit.circuit.library import *\n", + "from math import log2, ceil\n", + "from qiskit.qasm2 import dumps\n", + "import qiskit" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def gate_matrix(alpha: float, beta: float) -> List[float]:\n", + " \"\"\" Implementation of the gate G as described in the paper (II.A)\n", + "\n", + " Args:\n", + " alpha (float): Probability of ket 0\n", + " beta (float): Probability of ket 1\n", + "\n", + " Returns:\n", + " List[float]: List representing the G matrix\n", + " \"\"\"\n", + " alpha = np.sqrt(alpha)\n", + " beta = np.sqrt(beta)\n", + " a11 = np.sin(beta)\n", + " a12 = np.exp(1j * alpha) * np.cos(beta)\n", + " a21 = np.exp(- 1j * alpha) * np.cos(beta)\n", + " a22 = - np.sin(beta)\n", + "\n", + " return np.array([[a11, a12], [a21, a22]]).tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def state_to_bitwise(state: List[float]) -> List[List[int]]:\n", + " \"\"\" Converts an array of coefficients into a set of bitwise indexes, removing empty ones\n", + "\n", + " Args:\n", + " state (List[float]): State to convert\n", + "\n", + " Returns:\n", + " List[List[int]]: List of bitwise indexes\n", + " \"\"\"\n", + " size = 1\n", + " length = 2\n", + " state_len = len(state)\n", + " while state_len > length:\n", + " size += 1\n", + " length *= 2\n", + " result = []\n", + " for i in range(state_len):\n", + " if state[i] != 0:\n", + " bitwise = []\n", + " while i > 0:\n", + " bitwise.append(i%2)\n", + " i = i//2\n", + " while len(bitwise) < size:\n", + " bitwise.append(0)\n", + " bitwise.reverse()\n", + " result.append(bitwise)\n", + " return result" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "<>:2: SyntaxWarning: invalid escape sequence '\\i'\n", + "<>:2: SyntaxWarning: invalid escape sequence '\\i'\n", + "/tmp/ipykernel_267880/2247158695.py:2: SyntaxWarning: invalid escape sequence '\\i'\n", + " \"\"\" Finds a bit such that it splits T into two sets as unequal as possible but neither are empty and:\n" + ] + } + ], + "source": [ + "def optimal_split(T: List[str]) -> Tuple[int, List[str], List[str]]:\n", + " \"\"\" Finds a bit such that it splits T into two sets as unequal as possible but neither are empty and:\n", + " .. math::\n", + " b \\in \\{1, 2, ..., n\\}\n", + " T_0 := \\{x \\in T | x[b] == 0\\}\n", + " T_1 := \\{x \\in T | x[b] == 1\\}\n", + " \n", + " Args:\n", + " T (List[str]): Set T\n", + "\n", + " Raises:\n", + " IndexError: State should not be empy\n", + " RuntimeError: No split for the given state\n", + "\n", + " Returns:\n", + " Tuple[int, List[str], List[str]]: b, T0, T1 as desribed above\n", + " \"\"\"\n", + " if T == []:\n", + " raise IndexError(\"State should not be empy\")\n", + " append_T0 = False\n", + " append_T1 = False\n", + " for bit_nb in range(len(T[0])):\n", + " T0, T1 = [], []\n", + " for state in T:\n", + " if state[bit_nb] == 0:\n", + " T0.append(state)\n", + " append_T0 = True\n", + " else:\n", + " T1.append(state)\n", + " append_T1 = True\n", + " if append_T0 and append_T1:\n", + " return bit_nb, T0, T1\n", + " raise RuntimeError(\"No split for the given state\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def bitwise_to_int(bitwise : List[int]) -> int:\n", + " \"\"\" Converts a list of bits to its decimal representation\n", + "\n", + " Args:\n", + " bitwise (List[int]): List of bits\n", + "\n", + " Returns:\n", + " int: Decimal representation of bitwise\n", + " \"\"\"\n", + " res = 0\n", + " for i in bitwise:\n", + " res *= 2\n", + " res += i\n", + " return res" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def build_T_prime(T: List[str], dif_qubits: List[int], dif_values: List[int]) -> List[str]:\n", + " \"\"\" Builds T' according to the paper:\n", + " Let T' ⊂ S denote the set of strings that have the values in dif_values on the bits dif_qubits;\n", + "\n", + " Args:\n", + " T (List[str]): State s represented in bits\n", + " dif_qubits (List[int]): Stack of bits b ∈ {1, 2, . . . , n} that will hold in the end the bits that we use as control for the “merging” step\n", + " dif_values (List[int]): Stack of boolean values\n", + "\n", + " Returns:\n", + " List[str]: List of bits T' as described above\n", + " \"\"\"\n", + " T_prime = []\n", + " for state in T:\n", + " matches = True\n", + " for qubit, value in zip(dif_qubits, dif_values):\n", + " matches = int(state[qubit]) == value\n", + " if not matches:\n", + " break\n", + " if matches:\n", + " T_prime.append(state)\n", + " return T_prime" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def translate_circuit(full_circuit: list[QuantumProgram], state: List[int]) -> QuantumCircuit:\n", + " \"\"\" Translates the circuit from a list of QuantumProgram of Classiq to a QuantumCircuit in Qiskit.\n", + " It reverses the order of gates while inversing them and adding the required X gates (from Algorithm 2)\n", + "\n", + " Args:\n", + " full_circuit (list[QuantumProgram]): List of Classiq QuantumPrograms to concatenate\n", + " state (List[int]): List of amplitudes required for the state\n", + "\n", + " Returns:\n", + " QuantumCircuit: Final Qiskit circuit for sparse state preparation\n", + " \"\"\"\n", + "\n", + " nb_qubits : int = ceil(log2(len(state)))\n", + " gates = []\n", + "\n", + " for circ in full_circuit:\n", + "\n", + " for gate in circ.debug_info:\n", + " if \"XGate\" in gate.name:\n", + " target = list(map(lambda x: nb_qubits - 1 - x, next(reg for reg in gate.registers if reg.name == \"TARGET\").qubit_indexes_absolute))\n", + " gates.append((XGate(), target))\n", + "\n", + " for child in gate.children:\n", + " if child.generated_function.name == \"control\":\n", + " ctrl = list(map(lambda x: nb_qubits - 1 - x, next(reg for reg in child.registers if reg.name == \"control_group\").qubit_indexes_absolute))\n", + " target = list(map(lambda x: nb_qubits - 1 - x, next(reg for reg in child.registers if reg.name == \"TARGET\").qubit_indexes_absolute))\n", + " strip_and_replace = lambda x: complex(x.replace(\" \", \"\").replace(\"*I\", \"j\").strip(']['))\n", + " i = np.array(list(map(strip_and_replace, child.parameters[0].value.strip('][').split(',')))).reshape(2, 2).tolist()\n", + "\n", + " UC = UnitaryGate(i).control(1)\n", + " gates.append((UC, [ctrl, target]))\n", + "\n", + " elif \"CXGate\" in child.generated_function.name:\n", + " ctrl = list(map(lambda x: nb_qubits - 1 - x, next(reg for reg in child.registers if reg.name == \"CTRL\").qubit_indexes_absolute))\n", + " target = list(map(lambda x: nb_qubits - 1 - x, next(reg for reg in child.registers if reg.name == \"TARGET\").qubit_indexes_absolute))\n", + "\n", + " gates.append((CXGate(), [ctrl, target]))\n", + "\n", + " T = state_to_bitwise(state)\n", + " for i in range(len(T[0])):\n", + " if T[0][i] == 1:\n", + " gates.append((XGate(), [i]))\n", + "\n", + " # reverse QC and inverse gates\n", + " rev_qc = QuantumCircuit(nb_qubits)\n", + "\n", + " for i in range(len(gates) - 1, -1, -1):\n", + " gate, trgts = gates[i]\n", + " if isinstance(gate, ControlledGate) and not isinstance(gate, CXGate):\n", + " rev_qc.append(Operator(gate.inverse()), trgts)\n", + " else:\n", + " rev_qc.append(gate.inverse(), trgts)\n", + "\n", + " return rev_qc" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def algo1_classic_part(state : list[float]) -> Tuple[int, list[int], list[int], list[int]]:\n", + " \"\"\" Classical part of the algorithm (not requiring any Classiq) for easier understanding\n", + " Basically lines 1 to 28 of Algorithm 1\n", + " Called by main\n", + "\n", + " Args:\n", + " state (list[float]): State we want to prepare\n", + "\n", + " Returns:\n", + " Tuple[int, list[int], list[int], list[int]]: dif, x1, x2, dif_qubits as they are needed for the quantum part of the algorithm\n", + " \"\"\"\n", + " dif_qubits = []\n", + " dif_values = []\n", + " T = state_to_bitwise(state)\n", + " T_copy = T.copy()\n", + " while len(T) > 1:\n", + " bit_nb, T0, T1 = optimal_split(T)\n", + " dif_qubits.append(bit_nb)\n", + " if (len(T0) < len(T1)):\n", + " T = T0\n", + " dif_values.append(0)\n", + " else:\n", + " T = T1\n", + " dif_values.append(1)\n", + " \n", + " dif = dif_qubits.pop()\n", + " dif_values.pop()\n", + " x1 = T[0]\n", + " T_prime = build_T_prime(T_copy, dif_qubits, dif_values)\n", + " T_prime.remove(x1)\n", + "\n", + " while len(T_prime) > 1:\n", + " bit_nb, T0, T1 = optimal_split(T_prime)\n", + " dif_qubits.append(bit_nb)\n", + " if (len(T0) < len(T1)):\n", + " T_prime = T0\n", + " dif_values.append(0)\n", + " else:\n", + " T_prime = T1\n", + " dif_values.append(1)\n", + " \n", + " x2 = T_prime[0]\n", + " return (dif, x1, x2, dif_qubits)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "<>:3: SyntaxWarning: invalid escape sequence '\\ '\n", + "<>:3: SyntaxWarning: invalid escape sequence '\\ '\n", + "/tmp/ipykernel_267880/3025597175.py:3: SyntaxWarning: invalid escape sequence '\\ '\n", + " \"\"\" Quantum part of Algorithm 1\n" + ] + } + ], + "source": [ + "@qfunc(generative=True)\n", + "def algo1(quantum_circuit : QArray[QBit], dif : int, x1 : list[int], x2 : list[int], dif_qubits : list[int], state : list[float]):\n", + " \"\"\" Quantum part of Algorithm 1\n", + " Called by main\n", + "\n", + " Args:\n", + " quantum_circuit (QArray[QBit]): Quantum circuit as required by Classiq\n", + " dif (int): last value appended to dif_qubit\n", + " x1 (list[int]): Single element of T\n", + " x2 (list[int]): Single element of T'\n", + " dif_qubits (list[int]): Stack of bits\n", + " state (list[float]): State to prepare /!\\ Global variable\n", + " \"\"\"\n", + "\n", + " qdif=quantum_circuit[dif]\n", + " size_n = len(x1)\n", + "\n", + " if x1[dif] != 1:\n", + " X(qdif)\n", + "\n", + " for b in range(size_n):\n", + " if b != dif and x1[b] != x2[b]:\n", + " CX(ctrl=qdif, target=quantum_circuit[b])\n", + "\n", + " for b in dif_qubits:\n", + " if x2[b] != 1:\n", + " X(quantum_circuit[b])\n", + "\n", + " if dif == 0:\n", + " target_qbit : QArray[QBit] = QArray(\"traget_qbit\", length=1)\n", + " control_group : QArray[QBit] = QArray(\"control_group\",length=size_n-1)\n", + " bind(quantum_circuit, [target_qbit, control_group])\n", + "\n", + " control(ctrl=control_group, stmt_block=lambda: unitary(gate_matrix(state[bitwise_to_int(x1)], state[bitwise_to_int(x2)]), target=target_qbit))\n", + "\n", + " bind([target_qbit, control_group], quantum_circuit)\n", + " elif dif == size_n - 1:\n", + " target_qbit : QArray[QBit] = QArray(\"traget_qbit\", length=1)\n", + " control_group : QArray[QBit] = QArray(\"control_group\",length=size_n-1)\n", + " bind(quantum_circuit, [control_group, target_qbit])\n", + "\n", + " control(ctrl=control_group, stmt_block=lambda: unitary(gate_matrix(state[bitwise_to_int(x1)], state[bitwise_to_int(x2)]), target=target_qbit))\n", + "\n", + " bind([control_group, target_qbit], quantum_circuit)\n", + " else:\n", + " target_qbit : QArray[QBit] = QArray(\"traget_qbit\", length=1)\n", + " before_target : QArray[QBit] = QArray(\"before\",length=max(0,dif-1))\n", + " after_target : QArray[QBit] = QArray(\"after\", length=size_n-dif-1)\n", + " bind(quantum_circuit, [before_target, target_qbit, after_target])\n", + " control_group : QArray[QBit] = QArray(\"control_group\",length=size_n-1)\n", + " bind([before_target,after_target], control_group)\n", + "\n", + " control(ctrl=control_group, stmt_block=lambda: unitary(gate_matrix(state[bitwise_to_int(x1)], state[bitwise_to_int(x2)]), target=target_qbit))\n", + "\n", + " bind(control_group, [before_target, after_target])\n", + " bind([before_target, target_qbit, after_target], quantum_circuit)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "@qfunc\n", + "def main(quantum_circuit: Output[QArray[QBit]]) -> None:\n", + " \"\"\" Basically Algorithm 2 but it **needs** to be called main\n", + " The while loop will call this every iteration\n", + "\n", + " Args:\n", + " quantum_circuit (Output[QArray[QBit]]): Quantum circuit on which the gates will be added\n", + " \"\"\"\n", + " T = state_to_bitwise(state)\n", + " size_n = len(T[0])\n", + " allocate(size_n, quantum_circuit)\n", + " if len(T)>1:\n", + " dif, x1, x2, dif_qubits = algo1_classic_part(state)\n", + " algo1(quantum_circuit, dif, x1, x2, dif_qubits, state)\n", + " kept_state = bitwise_to_int(x1)\n", + " merged_state = bitwise_to_int(x2)\n", + " state[kept_state] += state[merged_state]\n", + " state[merged_state] = 0." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def algo1_iter() -> SerializedQuantumProgram :\n", + " \"\"\" Driver code for an iteration of algo1 to leverage Classiq\n", + "\n", + " Returns:\n", + " SerializedQuantumProgram: Synthetized program from Classiq\n", + " \"\"\"\n", + " quantum_program = create_model(main)\n", + " backend_preferences = ClassiqBackendPreferences(backend_name=\"simulator_statevector\")\n", + " qmod_b_load = set_execution_preferences(\n", + " quantum_program,\n", + " execution_preferences=ExecutionPreferences(\n", + " num_shots=1, backend_preferences=backend_preferences\n", + " ),\n", + " )\n", + " qprog_b_load = synthesize(qmod_b_load)\n", + " return qprog_b_load" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# State to prepare" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# BELL STATE\n", + "# state = [0.5, 0, 0, 0.5]\n", + "# GHZ STATE 4 Qbits\n", + "# state : List[float] = [0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5]\n", + "state = [0 for _ in range(8)]\n", + "state[1] = 2 / np.sqrt(168)\n", + "state[4] = 8 / np.sqrt(168)\n", + "state[7] = 10 / np.sqrt(168)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "T = state_to_bitwise(state)\n", + "full_circuit : List[QuantumProgram] = []\n", + "while len(T) > 1:\n", + " qprog_b_load = algo1_iter()\n", + " full_circuit.insert(0, QuantumProgram.from_qprog(qprog_b_load))\n", + " T = state_to_bitwise(state)\n", + "qprog_b_load = algo1_iter()\n", + "full_circuit.append(QuantumProgram.from_qprog(qprog_b_load))" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
           ┌───┐    ┌──────────┐                 ┌──────────┐┌───┐ ░ ┌─┐      \n",
+       "   q_0: ───┤ X ├────┤0         ├─────────────────┤0         ├┤ X ├─░─┤M├──────\n",
+       "        ┌──┴───┴───┐│          │┌───┐┌──────────┐│          │└─┬─┘ ░ └╥┘┌─┐   \n",
+       "   q_1: ┤0         ├┤  Unitary ├┤ X ├┤0         ├┤  Unitary ├──┼───░──╫─┤M├───\n",
+       "        │  Unitary ││          │└─┬─┘│  Unitary ││          │  │   ░  ║ └╥┘┌─┐\n",
+       "   q_2: ┤1         ├┤1         ├──■──┤1         ├┤1         ├──■───░──╫──╫─┤M├\n",
+       "        └──────────┘└──────────┘     └──────────┘└──────────┘      ░  ║  ║ └╥┘\n",
+       "meas: 3/══════════════════════════════════════════════════════════════╩══╩══╩═\n",
+       "                                                                      0  1  2 
" + ], + "text/plain": [ + " ┌───┐ ┌──────────┐ ┌──────────┐┌───┐ ░ ┌─┐ \n", + " q_0: ───┤ X ├────┤0 ├─────────────────┤0 ├┤ X ├─░─┤M├──────\n", + " ┌──┴───┴───┐│ │┌───┐┌──────────┐│ │└─┬─┘ ░ └╥┘┌─┐ \n", + " q_1: ┤0 ├┤ Unitary ├┤ X ├┤0 ├┤ Unitary ├──┼───░──╫─┤M├───\n", + " │ Unitary ││ │└─┬─┘│ Unitary ││ │ │ ░ ║ └╥┘┌─┐\n", + " q_2: ┤1 ├┤1 ├──■──┤1 ├┤1 ├──■───░──╫──╫─┤M├\n", + " └──────────┘└──────────┘ └──────────┘└──────────┘ ░ ║ ║ └╥┘\n", + "meas: 3/══════════════════════════════════════════════════════════════╩══╩══╩═\n", + " 0 1 2 " + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rev_qc = translate_circuit(full_circuit, state)\n", + "rev_qc.measure_all()\n", + "rev_qc.draw()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "qasm_str = dumps(rev_qc)\n", + "with open(\"circuit.qasm\", \"w\") as text_file:\n", + " text_file.write(qasm_str)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv_classiq", + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tests/notebooks/test_3_sat_grover.py b/tests/notebooks/test_3_sat_grover.py new file mode 100644 index 000000000..7c2401138 --- /dev/null +++ b/tests/notebooks/test_3_sat_grover.py @@ -0,0 +1,30 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook( + "3_sat_grover", + timeout_seconds=36, +) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod")) + validate_quantum_model(tb.ref("qmod_large")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog"), + expected_width=10, # actual width: 10 + expected_depth=450, # actual depth: 429 + ) + validate_quantum_program_size( + tb.ref("qprog_large"), + expected_width=20, # actual width: 19 + expected_depth=2500, # actual depth: 2375 + ) + + # test notebook content + pass # TODO diff --git a/tests/notebooks/test_bernstein_vazirani.py b/tests/notebooks/test_bernstein_vazirani.py index 601200a66..0979ab55a 100644 --- a/tests/notebooks/test_bernstein_vazirani.py +++ b/tests/notebooks/test_bernstein_vazirani.py @@ -7,7 +7,7 @@ @wrap_testbook("bernstein_vazirani", timeout_seconds=20) -def test_bernstein_vazirani(tb: TestbookNotebookClient) -> None: +def test_notebook(tb: TestbookNotebookClient) -> None: # test models validate_quantum_model(tb.ref("qmod")) # test quantum programs diff --git a/tests/notebooks/test_deutsch_jozsa.py b/tests/notebooks/test_deutsch_jozsa.py new file mode 100644 index 000000000..c49d7d935 --- /dev/null +++ b/tests/notebooks/test_deutsch_jozsa.py @@ -0,0 +1,19 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("deutsch_jozsa", timeout_seconds=48) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog"), expected_width=None, expected_depth=None + ) + + # test notebook content + pass diff --git a/tests/notebooks/test_discrete_poisson_solver.py b/tests/notebooks/test_discrete_poisson_solver.py new file mode 100644 index 000000000..0bb461428 --- /dev/null +++ b/tests/notebooks/test_discrete_poisson_solver.py @@ -0,0 +1,21 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("discrete_poisson_solver", timeout_seconds=300) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog"), + expected_width=16, # actual width: 16 + expected_depth=12000, # actual depth: 11538 + ) + + # test notebook content + pass # TODO diff --git a/tests/notebooks/test_glued_trees.py b/tests/notebooks/test_glued_trees.py new file mode 100644 index 000000000..46eaf7477 --- /dev/null +++ b/tests/notebooks/test_glued_trees.py @@ -0,0 +1,12 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("glued_trees", timeout_seconds=500) +def test_notebook(tb: TestbookNotebookClient) -> None: + # everything in this test is inside a function, storing results in a file + pass # TODO: need to rewrite the notebook in order to test it diff --git a/tests/notebooks/test_grover_max_cut.py b/tests/notebooks/test_grover_max_cut.py new file mode 100644 index 000000000..a6326af00 --- /dev/null +++ b/tests/notebooks/test_grover_max_cut.py @@ -0,0 +1,24 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook( + "grover_max_cut", + timeout_seconds=220, +) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog"), + expected_width=None, # actual width: ??? + expected_depth=None, # actual depth: ??? + ) + + # test notebook content + pass # TODO diff --git a/tests/notebooks/test_hidden_shift.py b/tests/notebooks/test_hidden_shift.py index a1424fa2b..648f75c4e 100644 --- a/tests/notebooks/test_hidden_shift.py +++ b/tests/notebooks/test_hidden_shift.py @@ -10,7 +10,7 @@ "hidden_shift", timeout_seconds=272, # we may lower this value ) -def test_hidden_shift(tb: TestbookNotebookClient) -> None: +def test_notebook(tb: TestbookNotebookClient) -> None: # test models validate_quantum_model(tb.ref("qmod_simple")) validate_quantum_model(tb.ref("qmod_complex")) @@ -31,5 +31,6 @@ def test_hidden_shift(tb: TestbookNotebookClient) -> None: expected_width=20, # actual width: 20 expected_depth=1700, # actual depth: 1685 ) + # test notebook content pass # TODO diff --git a/tests/notebooks/test_hybrid_qnn_for_subset_majority.py b/tests/notebooks/test_hybrid_qnn_for_subset_majority.py new file mode 100644 index 000000000..a56cb2c3f --- /dev/null +++ b/tests/notebooks/test_hybrid_qnn_for_subset_majority.py @@ -0,0 +1,22 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook( + "hybrid_qnn_for_subset_majority", + timeout_seconds=120, +) +def test_notebook(tb: TestbookNotebookClient) -> None: + """ + A notebook for a hybrid classical quantum neural network. + The test verifies that the pre-trained model is indeed well trained. + """ + + assert ( + tb.ref("accuracy") > 0.85 + ), "The network is not trained, although we load a pre-trained model." + pass diff --git a/tests/notebooks/test_qmc_user_defined.py b/tests/notebooks/test_qmc_user_defined.py new file mode 100644 index 000000000..460c99b05 --- /dev/null +++ b/tests/notebooks/test_qmc_user_defined.py @@ -0,0 +1,33 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("qmc_user_defined", timeout_seconds=176) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("model")) + validate_quantum_model(tb.ref("model_2")) + validate_quantum_model(tb.ref("model_3")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog"), + expected_width=4, # actual width: 4 + expected_depth=150, # actual depth: 104 + ) + validate_quantum_program_size( + tb.ref("qprog_2"), + expected_width=5, # actual width: 4 + expected_depth=350, # actual depth: 236 + ) + validate_quantum_program_size( + tb.ref("qprog_3"), + expected_width=7, # actual width: 7 + expected_depth=2500, # actual depth: 2008 + ) + + # test notebook content + pass # TODO diff --git a/tests/notebooks/test_quantum_counting.py b/tests/notebooks/test_quantum_counting.py new file mode 100644 index 000000000..f9136356a --- /dev/null +++ b/tests/notebooks/test_quantum_counting.py @@ -0,0 +1,27 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("quantum_counting", timeout_seconds=300) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod_qpe")) + validate_quantum_model(tb.ref("qmod_iqae")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog_qpe"), + expected_width=11, # actual width: 11 + expected_depth=8100, # actual depth: 8058 + ) + validate_quantum_program_size( + tb.ref("qprog_iqae"), + expected_width=6, # actual width: 6 + expected_depth=500, # actual depth: 486 + ) + + # test notebook content + pass # TODO diff --git a/tests/notebooks/test_shor.py b/tests/notebooks/test_shor.py new file mode 100644 index 000000000..afae17f56 --- /dev/null +++ b/tests/notebooks/test_shor.py @@ -0,0 +1,42 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("shor", timeout_seconds=104) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog"), + expected_width=12, # actual width: 12 + expected_depth=1111, # actual depth: 1099 + ) + + # test notebook content + pass # TODO + + +@wrap_testbook("shor_modular_exponentiation", timeout_seconds=300) +def test_notebook(tb: TestbookNotebookClient) -> None: + # test models + validate_quantum_model(tb.ref("qmod_1")) + validate_quantum_model(tb.ref("qmod_2")) + # test quantum programs + validate_quantum_program_size( + tb.ref("qprog_1"), + expected_width=8, # actual width: 8 + expected_depth=300, # actual depth: 296 + ) + validate_quantum_program_size( + tb.ref("qprog_2"), + expected_width=22, # actual width: 22 + expected_depth=30000, # actual depth: 26607 + ) + + # test notebook content + pass # TODO diff --git a/tests/notebooks/test_sparse_state_programmation.py b/tests/notebooks/test_sparse_state_programmation.py new file mode 100644 index 000000000..5263aa9ea --- /dev/null +++ b/tests/notebooks/test_sparse_state_programmation.py @@ -0,0 +1,12 @@ +from tests.utils_for_testbook import ( + validate_quantum_program_size, + validate_quantum_model, + wrap_testbook, +) +from testbook.client import TestbookNotebookClient + + +@wrap_testbook("sparse_state_preparation", timeout_seconds=500) +def test_notebook(tb: TestbookNotebookClient) -> None: + # everything in this test is inside a function, storing results in a file + pass # TODO: Not sure how to test a notebook diff --git a/tests/resources/timeouts.yaml b/tests/resources/timeouts.yaml index ab1e16a85..cbff7476a 100644 --- a/tests/resources/timeouts.yaml +++ b/tests/resources/timeouts.yaml @@ -118,8 +118,8 @@ integer_linear_programming.ipynb: 400 integer_linear_programming.qmod: 400 ising_model.ipynb: 300 ising_model.qmod: 300 -knapsack_integer.ipynb: 116 -knapsack_integer.qmod: 116 +qaoa_knapsack.ipynb: 300 +qaoa_knapsack.qmod: 300 learning_optimization.ipynb: 80 linear_combination_of_unitaries.ipynb: 20 linear_combination_of_unitaries.qmod: 10 diff --git a/tests/test_links.py b/tests/test_links.py index 7cb92cb6c..72a81ea38 100644 --- a/tests/test_links.py +++ b/tests/test_links.py @@ -3,6 +3,7 @@ import httpx import nbformat +import pytest from utils_for_tests import iterate_notebooks # the regex below is taken from this stackoverflow: @@ -12,22 +13,14 @@ URL_REGEX = r"https?:\/\/[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b[-a-zA-Z0-9@:%_\+.~#?&//=]*" # urls come in `[title](url)` URL_IN_MARKDOWN_REGEX = re.compile(r"(?<=\]\()%s(?=\s*\))" % URL_REGEX) -SKIPPED_URLS = [ - "https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud", # From date: 09.01.25, notebook: credit_card_fraud.ipynb - "https://journals.aps.org/rmp/abstract/10.1103/RevModPhys.69.607", # From date: 19.12.24, notebook: hamiltonian_simulation_guide.ipynb - "https://doi.org/10.1137/S0036144598336745", # From date: 5.1.25, notebook: algorithms/differential_equations/discrete_poisson_solver/discrete_poisson_solver.ipynb - "https://journals.aps.org/prresearch/pdf/10.1103/PhysRevResearch.6.033246", # From 15/1. notebook algorithms/differential_equations/advection/advection.ipynb (QInnovision 2025 challenge) - "https://short.classiq.io/join-slack", # from date 21/1/25. notebook: tutorials/documentation_materials/classiq_101/whats_classiq/whats_classiq.ipynb - "https://journals.aps.org/prxquantum/abstract/10.1103/PRXQuantum.2.040203", -] -def test_links() -> None: - for notebook_path in iterate_notebooks(): - for cell_index, url in iterate_links_from_notebook(notebook_path): - assert _test_single_url( - url - ), f'Broken link found! in file "{notebook_path}", cell number {cell_index} (counting only markdown cells), broken url: "{url}"' +@pytest.mark.parametrize("notebook_path", iterate_notebooks()) +def test_links(notebook_path: str) -> None: + for cell_index, url in iterate_links_from_notebook(notebook_path): + assert _test_single_url( + url + ), f'Broken link found! in file "{notebook_path}", cell number {cell_index} (counting only markdown cells), broken url: "{url}"' def iterate_links_from_notebook(filename: str) -> Iterable[tuple[int, str]]: @@ -41,9 +34,9 @@ def iterate_links_from_notebook(filename: str) -> Iterable[tuple[int, str]]: yield cell_index, url -def _test_single_url(url: str, retry: int = 3) -> bool: - if url in SKIPPED_URLS: - return True +def _test_single_url( + url: str, retry: int = 3, use_head: bool = True, follow_redirects: bool = True +) -> bool: if retry == 0: return False @@ -52,11 +45,34 @@ def _test_single_url(url: str, retry: int = 3) -> bool: } try: - response = httpx.head(url, headers=headers, follow_redirects=True) + if use_head: + response = httpx.head(url, headers=headers, follow_redirects=True) + else: + response = httpx.get(url, headers=headers, follow_redirects=True) + # we don't check cloudflare links + if (not response.is_success) and response.headers.get( + "server", "" + ).lower() == "cloudflare": + return True + + # Method not allowed + if response.status_code == 405: + return _test_single_url( + url, retry, use_head=False, follow_redirects=follow_redirects + ) + # give another retry with GET + if (not response.is_success) and use_head: + return _test_single_url( + url, retry - 1, use_head=False, follow_redirects=follow_redirects + ) + if (not response.is_success) and follow_redirects: + return _test_single_url( + url, retry - 1, use_head=use_head, follow_redirects=False + ) + # Some flaky error with "doi.org" links if response.status_code == 403: - # Some flaky error with "doi.org" links - return _test_single_url(url, retry - 1) + return _test_single_url(url, retry - 1, use_head=use_head) return response.is_success except httpx.HTTPError: