{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "dc0db886", "metadata": {}, "source": [ "# Quantum Approximation Optimization Algorithm (QAOA)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "aecf6615", "metadata": {}, "source": [ "## Overview" ] }, { "attachments": {}, "cell_type": "markdown", "id": "eaf8cd3f", "metadata": {}, "source": [ "QAOA is a hybrid classical-quantum algorithm that combines quantum circuits, and classical optimization of those circuits. In this tutorial, we utilize QAOA to solve the maximum cut (Max-Cut) combinatorial optimization problem, as proposed by [Farhi, Goldstone, and Gutmann (2014)](https://arxiv.org/abs/1411.4028)." ] }, { "attachments": {}, "cell_type": "markdown", "id": "16ad937f", "metadata": {}, "source": [ "## Max-Cut Problem" ] }, { "attachments": {}, "cell_type": "markdown", "id": "197d6df4", "metadata": {}, "source": [ "In graph theory, a graph is composed of $n$ nodes, also known as vertices, and $m$ edges that connect the nodes. Note that there is not necessarily a link between any pair of nodes. Those $n$ nodes are divided into two sets. The number of edges that are cut by a partition/partitions of the nodes is what is going to be maximized." ] }, { "attachments": { "16c7f2fb-b981-4798-8346-da54e3bcbaeb.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAB6wAAAJgCAIAAACx3QrqAAAEuGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjE5NjQiCiAgIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI2MDgiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIxOTY0IgogICB0aWZmOkltYWdlTGVuZ3RoPSI2MDgiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC8xIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQvMSIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMy0wNC0yMVQxMzozMDoyOSswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMy0wNC0yMVQxMzozMDoyOSswMTowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAxLjEwLjUiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDQtMjFUMTM6MzA6MjkrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PpKdWA8AAAGAaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWR3yuDURjHP7aJmKZQLqglXG2aqcWNMmnUkmbKr5vt3S+1H2/vO0lulVtFiRu/LvgLuFWulSJScss1ccN6Pe+22pI9p+c8n/M953k65zlgCaeVjG7zQCab10IBv3N+YdHZ8IqNDux0Q0TR1bGZmSA17euBOjPeuc1atc/9a82xuK5AXaPwqKJqeeFJ4eBaXjV5V7hdSUViwufCLk0uKHxv6tESv5mcLPGPyVo4NA6WVmFnsoqjVayktIywvJzeTHpVKd/HfIk9np2bldgj3oVOiAB+nEwxwTg+BhmR2YcbLwOyoka+p5g/TU5yFZlV1tFYIUmKPC5RV6V6XGJC9LiMNOtm///2VU8MeUvV7X6ofzGMjz5o2IHCtmF8HxtG4QSsz3CVreTnjmD4U/TtitZ7CI5NuLiuaNE9uNyCzic1okWKklXckkjA+xm0LEDbLTQtlXpW3uf0EcIb8lU3sH8A/XLesfwLC4tnvJTYXoMAAAAJcEhZcwAAFiUAABYlAUlSJPAAACAASURBVHic7N15fFz1ee/x58yZfdHiRd7lBRtjjDcpGBOPgkm6xMEpThOWXMgN0NxmARK4aUmgLTi5DYSEBgLclm4hyS1pIUkDqYPTpA0mGrOYSN4QYPAi29h41zIzGs1y5tw/RpZlWbZG0jlzzpz5vP/gNTOac37Py2Dx01fPPD9F13UBAAAAAAAAAMCJXFYXAAAAAAAAAACAWQjBAQAAAAAAAACORQgOAAAAAAAAAHAsQnAAAAAAAAAAgGMRggMAAAAAAAAAHIsQHAAAAAAAAADgWITgAAAAAAAAAADHIgQHAAAAAAAAADgWITgAAAAAAAAAwLEIwQEAAAAAAAAAjkUIDgAAAAAAAABwLEJwAAAAAAAAAIBjEYIDAAAAAAAAAByLEBwAAAAAAAAA4FiE4AAAAAAAAAAAxyIEBwAAAAAAAAA4FiE4AAAAAAAAAMCxCMEBAAAAAAAAAI5FCA4AAAAAAAAAcCxCcAAAAAAAAACAYxGCAwAAAAAAAAAcixAcAAAAAAAAAOBYhOAAAAAAAAAAAMciBAcAAAAAAAAAOBYhOAAAAAAAAADAsQjBAQAAAAAAAACORQgOAAAAAAAAAHAsQnAAAAAAAAAAgGMRggMAAAAAAAAAHIsQHAAAAAAAAADgWITgAAAAAAAAAADHIgQHAAAAAAAAADgWITgAAAAAAAAAwLEIwQEAAAAAAAAAjkUIDgAAAAAAAABwLEJwAAAAAAAAAIBjEYIDAAAAAAAAAByLEBwAAAAAAAAA4FiE4AAAAAAAAAAAxyIEBwAAAAAAAAA4FiE4AAAAAAAAAMCxCMEBAAAAAAAAAI5FCA4AAAAAAAAAcCxCcAAAAAAAAACAYxGCAwAAAAAAAAAcixAcAAAAAAAAAOBYhOAAAAAAAAAAAMciBAcAAAAAAAAAOBYhOAAAAAAAAADAsQjBAQAAAAAAAACORQgOAAAAAAAAAHAsQnAAAAAAAAAAgGMRggMAAAAAAAAAHIsQHAAAAAAAAADgWITgAAAAAAAAAADHIgQHAAAAAAAAADgWITgAAAAAAAAAwLEIwQEAAAAAAAAAjkUIDgAAAAAAAABwLEJwAAAAAAAAAIBjEYIDAAAAAAAAAByLEBwAAAAAAAAA4FiE4AAAAAAAAAAAxyIEBwAAAAAAAAA4FiE4AAAAAAAAAMCxCMEBAAAAAAAAAI5FCA4AAAAAAAAAcCxCcAAAAAAAAACAYxGCAwAAAAAAAAAcixAcAAAAAAAAAOBYhOAAAAAAAAAAAMciBAcAAAAAAAAAOBYhOAAAAAAAAADAsQjBAQAAAAAAAACORQgOAAAAAAAAAHAsQnAAAAAAAAAAgGMRggMAAAAAAAAAHIsQHAAAAAAA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" } }, "cell_type": "markdown", "id": "10c267f3", "metadata": {}, "source": [ "As illustrated in the graph on the left below, a graph consists of 4 nodes (or vertices) represented by grey circles, and 4 edges, which are black lines that connect the nodes. Max-Cut problem is to find the maximum number of cut when nodes are divided into two set. \n", "\n", "For instance, in the right graph, nodes 0 and 1 are in set 0 (light blue), and nodes 2 and 3 are in set 1 (red). If we partition the nodes between these two sets, it will cut two edges (colored pink). Therefore, the number of cut edges in this case is 2. Basically, to find the maximum cut, we need to find the maximum number of edges where the corresponding nodes belong to different sets.\n", "\n", "If we write down the set numbers that follow the node sequence (from 0 to 3), we can represent this instance as a bit string \"0011\". Since switching the names of the sets doesn't influence the results, the bit string \"1100\" gives the same number of edge cut. In general, we can use a binary string of length $n$ to represent a partition of $n$ nodes into two disjoint sets. This representation is commonly used in graph theory and combinatorial optimization, and it enables us to apply various computational techniques, including classical and quantum algorithms, to solve problems such as Max-Cut.\n", "\n", "![network1.png](attachment:16c7f2fb-b981-4798-8346-da54e3bcbaeb.png)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "2908c43d", "metadata": {}, "source": [ "The Max-Cut problem is a NP-complete problem. Classically, one way to approach this problem is to brutally test every possible bit string, which takes an exponential amount of time as the number of nodes, denoted by $n$, grows. Specifically, for $n$ nodes, there are $2^n$ combinations to test. However, QAOA offers a more efficient way to solve this problem, where $n$ qubits are used to represent $n$ nodes. Nodes are divided according to the energy level of the qubits." ] }, { "attachments": {}, "cell_type": "markdown", "id": "4d28f719", "metadata": {}, "source": [ "A cost (objective) function of the $\\alpha$-th edge (which connects $j$-th and $k$-th nodes) is defined\n", "\n", "$$\n", "C_\\alpha=\\frac12(1-\\sigma_z^j\\sigma_z^k)\n", "$$\n", "\n", "When $C_\\alpha = 1$, the $\\alpha$-th is accounted a cut edge. It will happen if and only if $j$-th and $k$-th nodes are in different set. The total number of edge cut is written as\n", "\n", "$$ \n", "C(z)=\\sum_\\alpha^mC_\\alpha(z)\n", "$$\n", "\n", "where $z = z_1z_2 . . . z_n$ is the bit string. Max-Cut asks for a string $z$ for which $C(z)$ is maximized. This problem is equivlant to finding the ground state of a cost Hamiltonian\n", "\n", "$$\n", "H_C = \\frac{1}{2} \\sum_{i,j} \\sigma^{j}_{z} \\sigma^{k}_{z}\n", "$$" ] }, { "attachments": {}, "cell_type": "markdown", "id": "871bff2e", "metadata": {}, "source": [ "## QAOA for Max-Cut" ] }, { "attachments": {}, "cell_type": "markdown", "id": "598dc69e", "metadata": {}, "source": [ "The Quantum Approximate Optimization Algorithm (QAOA) utilizes a parameterized quantum circuit ([PQC](https://tensorcircuit.readthedocs.io/en/latest/textbook/chap5.html?highlight=变分)) to generate a quantum state that represents a potential solution to the Max Cut problem. The initial state, denoted as $|s\\rangle$, is a uniform superposition over computational basis states.\n", "\n", "$$\n", "|s\\rangle=\\frac{1}{\\sqrt{2^n}}\\sum_z|z\\rangle\n", "$$\n", "\n", "This state is then evolved by a unitary operator that consists of $q$ layers, denoted as\n", "\n", "$$\n", "U(\\vec{\\beta}, \\vec{\\gamma}) = V_{p}U_{p} \\cdots V_{1}U_{1},\n", "$$\n", "\n", "where $U_{j}= e^{-i\\gamma_{j}H_{C}}$ and $V_{j}= e^{-i \\beta_{j} H_m}$. $H_C$ is the cost Hamiltonian introduced in previous section and the mixer Hamiltonian $H_m=\\sum_j\\sigma^j_x$ is used to mix the quantum state to explore different solutions. The unitary operator is parameterized by $2p$ angle parameters $\\gamma_1, \\gamma_2, \\dots, \\gamma_p$ and $\\beta_1, \\beta_2, \\dots ,\\beta_p$. It is worth noting that every $\\gamma$ is restricted to lie between $0$ and $2\\pi$, and every $\\beta$ is restricted to lie between $0$ and $\\pi$ due to the integer eigenvalues of $H_C$.\n", "\n", "It is important and also tricky to find a proper $p$. As introduced by [Farhi, Goldstone, and Gutmann (2014)](https://arxiv.org/abs/1411.4028), $p$ should be equal to the maximum steps between any pair of nodes. For example, in the graph above, the max steps are found between node 3 and node 1 or 0, and this number is 2. Therefore, a 2-layer PQC should be used.\n", "\n", "Begin with a set of initial parameters, the quantum state is obtained from the PQC and then the expected value of the cost Hamiltonian is calculated. A classical optimizer is then used to vary the parameters until a lower exptected value is found. This process is iterated a certain number of times, and the lowest expected value is approximated as the ground state energy of the cost Hamiltonian. By using the parameters that correspond to the lowest expected value, an approximate solution to the Max-Cut problem can be obtained.\n", "\n", "In summary, a general QAOA algorithm follows these steps:\n", "\n", "1. Define the cost fucntion according to the problem.\n", "\n", "2. Define the parameterized quantum circuit with cost Hamiltonian and mixer Hamiltonian.\n", "\n", "3. Define a group of initial parameters.\n", "\n", "4. calculate the cost function of this group of parameters.\n", "\n", "5. If a lower cost is found, accept it. Otherwise, keep the previously found cost.\n", "\n", "6. Find a new group of parameters with an optimizer.\n", "\n", "7. Repreat procedures 4-6 for given times. Then output the lowest cost and corresponding parameters." ] }, { "attachments": {}, "cell_type": "markdown", "id": "940fa22b", "metadata": {}, "source": [ "## The code" ] }, { "cell_type": "code", "execution_count": 103, "id": "b0def04d", "metadata": {}, "outputs": [], "source": [ "import tensorcircuit as tc\n", "import tensorflow as tf\n", "import networkx as nx\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from IPython.display import clear_output\n", "import random\n", "\n", "K = tc.set_backend(\"tensorflow\")\n", "\n", "nlayers = 3 # the number of layers\n", "ncircuits = 6 # six circuits with different initial parameters are going to be optimized at the same time\n", "nnodes = 8 # the number of nodes" ] }, { "attachments": {}, "cell_type": "markdown", "id": "6e407437", "metadata": {}, "source": [ "### Define the Graph" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c82972a4", "metadata": {}, "source": [ "The degree of a graph is defined as the maximum number of edges connected to single nodes. For example, the graph below has a fixed degree of 3." ] }, { "cell_type": "code", "execution_count": 104, "id": "f1532831", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# a graph instance\n", "# each node is connected to three nodes\n", "# for example, node 0 is connected to nodes 1,7,3\n", "example_graph_dict = {\n", " 0: {1: {\"weight\": 1.0}, 7: {\"weight\": 1.0}, 3: {\"weight\": 1.0}},\n", " 1: {0: {\"weight\": 1.0}, 2: {\"weight\": 1.0}, 3: {\"weight\": 1.0}},\n", " 2: {1: {\"weight\": 1.0}, 3: {\"weight\": 1.0}, 5: {\"weight\": 1.0}},\n", " 3: {1: {\"weight\": 1.0}, 2: {\"weight\": 1.0}, 0: {\"weight\": 1.0}},\n", " 4: {7: {\"weight\": 1.0}, 6: {\"weight\": 1.0}, 5: {\"weight\": 1.0}},\n", " 5: {6: {\"weight\": 1.0}, 4: {\"weight\": 1.0}, 2: {\"weight\": 1.0}},\n", " 6: {7: {\"weight\": 1.0}, 4: {\"weight\": 1.0}, 5: {\"weight\": 1.0}},\n", " 7: {4: {\"weight\": 1.0}, 6: {\"weight\": 1.0}, 0: {\"weight\": 1.0}},\n", "}\n", "pos = nx.spring_layout(nx.to_networkx_graph(example_graph_dict))\n", "colors = [\"c\" for key in example_graph_dict.items()]\n", "\n", "# convert to a NetworkX graph\n", "example_graph = nx.to_networkx_graph(example_graph_dict)\n", "nx.draw_networkx(example_graph, with_labels=True, node_color=colors, pos=pos)\n", "ax = plt.gca()\n", "ax.set_facecolor(\"w\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c944f6dd", "metadata": {}, "source": [ "### Parameterized Quantum Circuit (PQC)" ] }, { "cell_type": "code", "execution_count": 105, "id": "055d1257", "metadata": {}, "outputs": [], "source": [ "def QAOAansatz(params, g=example_graph, return_circuit=False):\n", " n = len(g.nodes) # the number of nodes\n", " c = tc.Circuit(n)\n", " for i in range(n):\n", " c.H(i)\n", "\n", " # PQC\n", " for j in range(nlayers):\n", " # U_j\n", " for e in g.edges:\n", " c.exp1(\n", " e[0],\n", " e[1],\n", " unitary=tc.gates._zz_matrix,\n", " theta=g[e[0]][e[1]].get(\"weight\", 1.0) * params[2 * j],\n", " )\n", " # V_j\n", " for i in range(n):\n", " c.rx(i, theta=params[2 * j + 1])\n", "\n", " # whether to return the circuit\n", " if return_circuit is True:\n", " return c\n", "\n", " # calculate the loss function\n", " loss = 0.0\n", " for e in g.edges:\n", " loss += c.expectation_ps(z=[e[0], e[1]]) * g[e[0]][e[1]].get(\"weight\", 1.0)\n", "\n", " return K.real(loss)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "5b159920", "metadata": {}, "source": [ "### Optimization" ] }, { "attachments": {}, "cell_type": "markdown", "id": "6d07ee61", "metadata": {}, "source": [ "Here, several circuits with different initial parameters are optimized/trained at the same time.\n", "\n", "Optimizers are used to find the minimum value." ] }, { "cell_type": "code", "execution_count": 106, "id": "b8d63c5d", "metadata": {}, "outputs": [], "source": [ "# use vvag to get the losses and gradients with different random circuit instances\n", "QAOA_vvag = K.jit(\n", " tc.backend.vvag(QAOAansatz, argnums=0, vectorized_argnums=0), static_argnums=(1, 2)\n", ")" ] }, { "cell_type": "code", "execution_count": 107, "id": "c51b17a7", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "params = K.implicit_randn(\n", " shape=[ncircuits, 2 * nlayers], stddev=0.1\n", ") # initial parameters\n", "opt = K.optimizer(tf.keras.optimizers.Adam(1e-2))\n", "\n", "list_of_loss = [[] for i in range(ncircuits)]\n", "\n", "for i in range(300):\n", " loss, grads = QAOA_vvag(params, example_graph)\n", " params = opt.update(grads, params) # gradient descent\n", "\n", " # visualise the progress\n", " clear_output(wait=True)\n", " list_of_loss = np.hstack((list_of_loss, K.numpy(loss)[:, np.newaxis]))\n", " plt.xlabel(\"Iteration\")\n", " plt.ylabel(\"Cost\")\n", " for index in range(ncircuits):\n", " plt.plot(range(i + 1), list_of_loss[index])\n", " legend = [\"circuit %d\" % leg for leg in range(ncircuits)]\n", " plt.legend(legend)\n", " plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "98a6b152", "metadata": {}, "source": [ "### Results" ] }, { "attachments": {}, "cell_type": "markdown", "id": "fc1c257d", "metadata": {}, "source": [ "After inputing the optimized parameters back to the ansatz circuit, we can measure the probablitiy distribution of the quantum states. The states with highest probability are supposed to be the ones corresponding to Max Cut." ] }, { "cell_type": "code", "execution_count": 108, "id": "843c0ad3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Circuit #0\n", "cost: -6.011465 \n", "bit strings: ['01010101', '10101010'] \n", "\n", "Circuit #1\n", "cost: -6.0114813 \n", "bit strings: ['01010101', '10101010'] \n", "\n", "Circuit #2\n", "cost: -6.0113897 \n", "bit strings: ['01010101', '10101010'] \n", "\n", "Circuit #3\n", "cost: -6.001644 \n", "bit strings: ['01010101', '10101010'] \n", "\n", "Circuit #4\n", "cost: -6.011491 \n", "bit strings: ['01010101', '10101010'] \n", "\n", "Circuit #5\n", "cost: -5.1607475 \n", "bit strings: ['01010101', '10101010'] \n", "\n" ] } ], "source": [ "# print all results\n", "for num_circuit in range(ncircuits):\n", " c = QAOAansatz(params=params[num_circuit], g=example_graph, return_circuit=True)\n", " loss = QAOAansatz(params=params[num_circuit], g=example_graph)\n", "\n", " # find the states with max probabilities\n", " probs = K.numpy(c.probability()).round(decimals=4)\n", " index = np.where(probs == max(probs))[0]\n", " states = []\n", " for i in index:\n", " states.append(f\"{bin(i)[2:]:0>{c._nqubits}}\")\n", " print(\"Circuit #%d\" % num_circuit)\n", " print(\"cost:\", K.numpy(loss), \"\\nbit strings:\", states, \"\\n\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c27fb3f6", "metadata": {}, "source": [ "Based on the results, quantum states with the highest probabilities are $\\ket{01010101}$ and $\\ket{10101010}$. This outcome aligns with our intuition, as swapping the labels of the groups would have an impact on the final result.\n", "\n", "The network plot corresponding to $\\ket{01010101}$ is:" ] }, { "cell_type": "code", "execution_count": 109, "id": "fb183e97", "metadata": {}, "outputs": [ { "data": { "image/png": "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qlatysqVK3P1mhs2bGD48OGMHDmSL774IlevLYTIeUOGDEGv1zN48GCMRiM//fST7CsirILd/iutVq0aV69e5eHDh7i5ueX49fbu3Uvfvn3p0aMH8+bNk0FGQtio/v37o9fr6d+/P0ajkV9++QW9Xq92WUJkyG47tZ6eUZDTTpw4QdeuXfHx8WHJkiXSdCiEjevVqxerV69m/fr19O7dm4SEBLVLEiJDdhsGqlSpApDjgwjPnTtH+/btqVGjBmvXrsXJySlHryeEsAzdunVj/fr1bN++nZ49exIfH692SUKky27DgJubG15eXjk6iPDKlSv4+vpSvHhxtmzZgqura45dSwhheTp27MimTZvYs2cP3bp149GjR2qXJESa7DYMQM7uUXDr1i3atm2Ls7MzO3bsIH829lIXQli/tm3bsnXrVg4ePEjnzp2JjY1VuyQhnmPXYSCnphfev3+fdu3aERsby65du/D09DT7NYQQ1qNly5bs2LGD48eP06FDB2JiYtQuSYhU7DoMVK1alStXrpg1qT969IjOnTsTFhbGrl27KFu2rNnOLYSwXk2bNmXXrl388ccftGvXjgcPHqhdkhAp7DoMVKtWDTDfjAKDwUCvXr04ffo0W7duTTm/EEIANG7cmD179nDhwgXatGlDVFSU2iUJAdh5GDDnjIKkpCSGDBnCnj17WL9+vWp7HgghLFv9+vUJCgri8uXLtGrVijt37qhdkhD2HQbc3d0pXbr0S4cBRVEYP348q1atYvny5bRp08ZMFQohbFHt2rXZt28fN27coGXLlty+fVvtkoSds+swAOYZRPjBBx8wf/58Fi5cSI8ePcxUmRDCllWvXp19+/Zx9+5dWrRoQUREhNolCTtm92HgZacXfvXVV3z++ed8++23DBs2zIyVCSFsnbe3N8HBwcTExODj40N4eLjaJQk7ZfdhoFq1aly+fDlbi4EsXLiQd955hw8//JDJkyfnQHVCCFtXsWJFgoODMRgM+Pj4cPXqVbVLEnbI7sOAt7c3SsGC/PjXX2y4c4etd+9yPjaWJEXJ8H2rV69m9OjRjBs3jmnTpuVStUIIW1SuXDmCg4MBaN68OaGhoSpXJOyNBsj4rodpoF10dHQulJN7TsbEMPv6dTZERnIvKem51/NotTTLm5dxJUrQqUABHLT/5qadO3fSuXNnevfuzZIlS9Bq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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "colors = [\"r\" if states[0][i] == \"0\" else \"c\" for i in range(nnodes)]\n", "nx.draw_networkx(example_graph, with_labels=True, node_color=colors, pos=pos)\n", "ax = plt.gca()\n", "ax.set_facecolor(\"w\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "4ae99ab9", "metadata": {}, "source": [ "## Classical Method" ] }, { "attachments": {}, "cell_type": "markdown", "id": "720dd1a4", "metadata": {}, "source": [ "In classial method, all situation will be checked one-by-one (brutal force). " ] }, { "cell_type": "code", "execution_count": 110, "id": "2115bb6d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bit string: ['01010101', '10101010'] \n", "max cut: 10.0\n" ] } ], "source": [ "def classical_solver(graph):\n", " num_nodes = len(graph)\n", " max_cut = [0]\n", " best_case = [0] # \"01\" series with max cut\n", " for i in range(2**num_nodes):\n", " case = f\"{bin(i)[2:]:0>{num_nodes}}\"\n", " cat1, cat2 = [], []\n", " for j in range(num_nodes):\n", " if str(case)[j] == \"0\":\n", " cat1.append(j)\n", " else:\n", " cat2.append(j)\n", "\n", " # calculate the cost function\n", " cost = 0\n", " for node1 in cat1:\n", " for node2 in cat2:\n", " if graph[node1].get(node2):\n", " cost += graph[node1][node2][\"weight\"]\n", " cost = round(cost, 4) # elimate minor error\n", " if max_cut[-1] <= cost:\n", " max_cut.append(cost)\n", " best_case.append(case)\n", "\n", " # optimal cases maybe more than 1, but they are all at the end\n", " index = max_cut.index(max_cut[-1])\n", "\n", " return max_cut[-1], best_case[index:]\n", "\n", "\n", "max_cut, best_case = classical_solver(example_graph_dict)\n", "print(\"bit string:\", best_case, \"\\nmax cut:\", max_cut)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "e9b8619b", "metadata": {}, "source": [ "## Weighted Max-Cut Problem" ] }, { "attachments": {}, "cell_type": "markdown", "id": "9f8cb1da", "metadata": {}, "source": [ "When an edge is cut, the total cost increase a certain number instead of 1, we say that this edge has a \"weight\".\n", "\n", "Let's define a graph with random weights:" ] }, { "cell_type": "code", "execution_count": 111, "id": "b0a1f778", "metadata": {}, "outputs": [], "source": [ "weighted_graph_dict = {\n", " 0: {1: {\"weight\": 0.1756}, 7: {\"weight\": 2.5664}, 3: {\"weight\": 1.8383}},\n", " 1: {0: {\"weight\": 0.1756}, 2: {\"weight\": 2.2142}, 3: {\"weight\": 4.7169}},\n", " 2: {1: {\"weight\": 2.2142}, 3: {\"weight\": 2.0984}, 5: {\"weight\": 0.1699}},\n", " 3: {1: {\"weight\": 4.7169}, 2: {\"weight\": 2.0984}, 0: {\"weight\": 1.8383}},\n", " 4: {7: {\"weight\": 0.9870}, 6: {\"weight\": 0.0480}, 5: {\"weight\": 4.2509}},\n", " 6: {7: {\"weight\": 4.7528}, 4: {\"weight\": 0.0480}, 5: {\"weight\": 2.2879}},\n", " 5: {6: {\"weight\": 2.2879}, 4: {\"weight\": 4.2509}, 2: {\"weight\": 0.1699}},\n", " 7: {4: {\"weight\": 0.9870}, 6: {\"weight\": 4.7528}, 0: {\"weight\": 2.5664}},\n", "}\n", "\n", "weighted_graph = nx.to_networkx_graph(weighted_graph_dict)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "264289c1", "metadata": {}, "source": [ "The classical algorithm is used to find the corresponding maximum cut" ] }, { "cell_type": "code", "execution_count": 112, "id": "f9f5ce41", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bit string: ['00010101', '11101010'] \n", "max cut: 23.6685\n" ] } ], "source": [ "max_cut, best_case = classical_solver(weighted_graph_dict)\n", "print(\"bit string:\", best_case, \"\\nmax cut:\", max_cut)" ] }, { "cell_type": "code", "execution_count": 113, "id": "35dea0fb", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "colors = [\"r\" if best_case[0][i] == \"0\" else \"c\" for i in range(nnodes)]\n", "weighted_graph = nx.to_networkx_graph(weighted_graph_dict)\n", "nx.draw_networkx(weighted_graph, with_labels=True, node_color=colors, pos=pos)\n", "ax = plt.gca()\n", "ax.set_facecolor(\"w\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "d62faa79", "metadata": {}, "source": [ "The quantum algorithm is then used, and the same result is supposed to be found." ] }, { "cell_type": "code", "execution_count": 114, "id": "22db40be", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "QAOA_vvag = K.jit(\n", " tc.backend.vvag(QAOAansatz, argnums=0, vectorized_argnums=0), static_argnums=(1, 2)\n", ")\n", "params = K.implicit_randn(\n", " shape=[ncircuits, 2 * nlayers], stddev=0.1\n", ") # initial parameters\n", "opt = K.optimizer(tf.keras.optimizers.Adam(1e-2))\n", "\n", "list_of_loss = [[] for i in range(ncircuits)]\n", "\n", "for i in range(300):\n", " loss, grads = QAOA_vvag(params, weighted_graph)\n", " params = opt.update(grads, params) # gradient descent\n", "\n", " # visualise the progress\n", " clear_output(wait=True)\n", " list_of_loss = np.hstack((list_of_loss, K.numpy(loss)[:, np.newaxis]))\n", " plt.xlabel(\"Iteration\")\n", " plt.ylabel(\"Cost\")\n", " for index in range(ncircuits):\n", " plt.plot(range(i + 1), list_of_loss[index])\n", " legend = [\"circuit %d\" % leg for leg in range(ncircuits)]\n", " plt.legend(legend)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 115, "id": "d2cf1b57", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Circuit #0\n", "cost: -15.938664 \n", "bit strings: ['00110101', '11001010'] \n", "\n", "Circuit #1\n", "cost: -17.461643 \n", "bit strings: ['00010101', '11101010'] \n", "\n", "Circuit #2\n", "cost: -16.610685 \n", "bit strings: ['00010101', '11101010'] \n", "\n", "Circuit #3\n", "cost: -16.61402 \n", "bit strings: ['00010101', '11101010'] \n", "\n", "Circuit #4\n", "cost: -14.814039 \n", "bit strings: ['00010101', '11101010'] \n", "\n", "Circuit #5\n", "cost: -14.7950735 \n", "bit strings: ['00010101', '11101010'] \n", "\n" ] } ], "source": [ "# print all results\n", "for num_circuit in range(ncircuits):\n", " c = QAOAansatz(params=params[num_circuit], g=weighted_graph, return_circuit=True)\n", " loss = QAOAansatz(params=params[num_circuit], g=weighted_graph)\n", "\n", " # find the states with max probabilities\n", " probs = K.numpy(c.probability()).round(decimals=4)\n", " index = np.where(probs == max(probs))[0]\n", " states = []\n", " for i in index:\n", " states.append(f\"{bin(i)[2:]:0>{c._nqubits}}\")\n", " print(\"Circuit #%d\" % num_circuit)\n", " print(\"cost:\", K.numpy(loss), \"\\nbit strings:\", states, \"\\n\")" ] }, { "cell_type": "code", "execution_count": 116, "id": "492d215f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OS info: macOS-13.3.1-arm64-arm-64bit\n", "Python version: 3.10.10\n", "Numpy version: 1.23.2\n", "Scipy version: 1.10.1\n", "Pandas version: 2.0.1\n", "TensorNetwork version: 0.4.6\n", "Cotengra is not installed\n", "TensorFlow version: 2.12.0\n", "TensorFlow GPU: [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]\n", "TensorFlow CUDA infos: {'is_cuda_build': False, 'is_rocm_build': False, 'is_tensorrt_build': False}\n", "Jax is not installed\n", "JaxLib is not installed\n", "PyTorch is not installed\n", "Cupy is not installed\n", "Qiskit version: 0.23.3\n", "Cirq is not installed\n" ] } ], "source": [ "tc.about()" ] } ], "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.10.10" } }, "nbformat": 4, "nbformat_minor": 5 }