{ "cells": [ { "cell_type": "markdown", "id": "ea3f4d79", "metadata": {}, "source": [ "# Quantum Computing Quantum Monte Carlo: ground state energy of H$_2$\n", "\n", "In this notebook, we demonstrate how to augment classical QMC calculations using quantum computers (QC) using auxiliary-field QMC (AFQMC) [1]. Compared to the variational quantum eigensolver (VQE) [2], a popular quantum algorithm for solving the electronic structure problem, QC‑AFQMC does not require an expensive optimization loop. The circuit depth of both methods is similar. This notebook presents an example AFQMC calculation to find the ground state of H$_2$ molecule. The code can be run on both classical simulators and quantum computers. For more details about the algorithm, see this [example notebook](https://github.com/aws/amazon-braket-examples/blob/feature/quantum-monte-carlo/examples/hybrid_quantum_algorithms/Quantum_Monte_Carlo_Chemistry/Quantum_Monte_Carlo_Chemistry.ipynb) in Amazon Braket Examples.\n", "\n", "\n", "[1] Motta, Mario, and Shiwei Zhang. \"Ab initio computations of molecular systems by the auxiliary‐field quantum Monte Carlo method.\" [Wiley Interdisciplinary Reviews: Computational Molecular Science 8.5 (2018): e1364](https://doi.org/10.1002/wcms.1364).\n", "\n", "[2] Peruzzo, Alberto, et al. \"A variational eigenvalue solver on a photonic quantum processor.\" [Nature Communications 5.1 (2014): 1-7](https://www.nature.com/articles/ncomms5213?ref=https://githubhelp.com).\n", "\n", "
\n", "Note: The code in this notebook has option to use multiprocessing for computations. A notebook instance with multiple CPU cores is required to use multiprocessing. With a ml.m5.24xlarge notebook instance, the code takes about 10 minutes in total to run in this notebook, which will incur charge for about \\$1.0 USD.\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "id": "48def801", "metadata": {}, "outputs": [], "source": [ "import pennylane as qml\n", "from pennylane import numpy as np\n", "\n", "from braket.experimental.algorithms.qc_qmc.classical_qmc import (\n", " chemistry_preparation,\n", " greens_pq,\n", " local_energy,\n", ")\n", "from braket.experimental.algorithms.qc_qmc.qc_qmc import qc_qmc\n", "\n", "np.set_printoptions(precision=4, edgeitems=10, linewidth=150, suppress=True)" ] }, { "cell_type": "markdown", "id": "aabc6167", "metadata": {}, "source": [ "## Prepare the operators for AFQMC calculations of the ground state of H$_2$\n", "\n", "Here we demonstrate the performance of the quantum assisted AFQMC algorithm on the example of H$_2$ molecule. We begin by preparing the Hamiltonian of the H$_2$ molecule, and determining the energy of a classical trial state corresponding to the Hartree-Fock state." ] }, { "cell_type": "code", "execution_count": 2, "id": "6dc685ec", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The Hartree-Fock energy computed from local_energy is -1.1161514492.\n" ] } ], "source": [ "symbols = [\"H\", \"H\"]\n", "geometry = np.array([[0.0, 0.0, 0.0], [0.0, 0.0, 1.41729459]], requires_grad=False)\n", "mol = qml.qchem.Molecule(symbols, geometry, basis_name=\"sto-3g\")\n", "trial = np.array([[1, 0], [0, 1], [0, 0], [0, 0]])\n", "prop = chemistry_preparation(mol, geometry, trial)\n", "\n", "\n", "# Separate the spin up and spin down channel of the trial state\n", "trial_up = trial[::2, ::2]\n", "trial_down = trial[1::2, 1::2]\n", "\n", "# compute its one particle Green's function\n", "green_funcs = [greens_pq(trial_up, trial_up), greens_pq(trial_down, trial_down)]\n", "e_hf = local_energy(prop.h1e, prop.eri, green_funcs, prop.nuclear_repulsion)\n", "print(f\"The Hartree-Fock energy computed from local_energy is {np.round(e_hf, 10)}.\")" ] }, { "cell_type": "markdown", "id": "f6deb86e-4b40-4f2a-9d23-439dbf72be67", "metadata": {}, "source": [ "We use the UCCSD circuit to prepare the trial wavefunction." ] }, { "cell_type": "code", "execution_count": 3, "id": "2f584722-5976-4793-95de-ce67ac511616", "metadata": {}, "outputs": [], "source": [ "def trial_state_circuit() -> None:\n", " \"\"\"Define the trial state through UCCSD circuit.\"\"\"\n", " qml.RX(np.pi / 2.0, wires=0)\n", " for i in range(1, 4):\n", " qml.Hadamard(wires=i)\n", "\n", " for i in range(3):\n", " qml.CNOT(wires=[i, i + 1])\n", "\n", " qml.RZ(0.12, wires=3)\n", " for i in range(3)[::-1]:\n", " qml.CNOT(wires=[i, i + 1])\n", "\n", " qml.RX(-np.pi / 2.0, wires=0)\n", " for i in range(1, 4):\n", " qml.Hadamard(wires=i)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "3f9deedb", "metadata": {}, "source": [ "### Run Quantum AFQMC on local Lightning simulator\n", "\n", "Now, We are ready to carry out the QAEE calculation in the next two cells and find the ground state of H$_2$.\n", "\n", "
\n", "Note: The following cell of quantum AFQMC calculation will take about 10 mins with 64 core parallelization. You may need to execute the notebook on a notebook instance with 64 or more CPU cores to utilize 64 core parallelization. We executed this notebook on a m5.24xlarge instance.\n", "
" ] }, { "cell_type": "code", "execution_count": 4, "id": "7c534bab", "metadata": {}, "outputs": [], "source": [ "dtau = 0.005\n", "num_steps = 600\n", "num_walkers = 2000\n", "quantum_evaluations_every_n_steps = 50\n", "\n", "dev = qml.device(\"lightning.qubit\", wires=4)" ] }, { "cell_type": "code", "execution_count": 5, "id": "de04f775", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 3.72 s, sys: 1.75 s, total: 5.47 s\n", "Wall time: 10min 45s\n" ] } ], "source": [ "%%time\n", "\n", "quantum_energies, energies = qc_qmc(\n", " num_walkers,\n", " num_steps,\n", " dtau,\n", " quantum_evaluations_every_n_steps,\n", " trial,\n", " prop,\n", " trial_state_circuit,\n", " max_pool=64,\n", " dev=dev,\n", ")" ] }, { "cell_type": "code", "execution_count": 6, "id": "93d1bf49", "metadata": {}, "outputs": [ { "data": { "image/png": "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EdGTmLSRRWlrbSsVQFbePQtEREREZJ2YtJHF9Wwm11ju4si3JxERkQKvimRxRY80r/9371GpmSMhIiKyXkzayOKCvFxhp2Fg29ncO+YPhoiIyEoxaSOLk8ukmNY9VK189o403oxARET0X0zayCpoWtaqFMD8/ZfMHwwREZEVYtJGVkHbslZrTmRjUXK62eMhIiKyNkzayCpom/oDAGbvZDcpERERkzayGtom2uWcbUREREzayIrIZVK8FROscdvuc1fMHA0REZF1YdJGViWqoZfG8hXH/+LYNiIiqtaYtJFV0XZDAgDM4hQgRERUjTFpI6sil0mR0EN9zjYAEACSjmSZNR4iIiJrwaSNrM7o6GCMjdU8tm3pkQy2thERUbXEpI2s0pS4UAxu66dWzjtJiYioumLSRlZrQKR60gYARy/dMHMkRERElsekjaxW0aMSjeULD6azi5SIiKodJm1ktbTdSSrANUmJiKj6YdJGVkvXnaRck5SIiKobJm1k1UZHB2u8IQHgmqRERFS9MGkjqze+c0OuSUpERNUekzayetq6SSUAAr1czB8QERGRBTBpI5vQq0V9tdY2YZFIiIiILINJG9mEzLwijUkal7UiIqLqgkkb2QRt038sSeGyVkREVD0waSObIJdJMbJjkFo5F5EnIqLqgkkb2Yz4DkEaW9u4iDwREVUHTNrIZmhrbePUH0REVB0waSObEt8hCHZPNbfZgVN/EBFR1cekjWyKXCZFYt9wlW5SASD54g1LhURERGQWTNrI5nQK8YbkiaxNAJi+OZXj2oiIqEpj0kY2JzOvCKVPTdpWCt5FSkREVRuTNrI52uZsW5ySgTM5t80eDxERkTkwaSObo+0uUgDovfAY1p/MNnNERERElY9JG9kkbXO2CQDTt3B8GxERVT1M2sgm6Wpt47xtRERUFTFpI5sV30Fz0gYALo58axMRUdXCKxvZLLlMilFaWtvWn/zbzNEQERFVLiZtZNO0jW1bcyIbi5LTzR4PERFRZWHSRjZN19i22TvTeEMCERFVGUzayOZpa23jDQlERFSVMGkjmyeXSZHQI1TjtrO5d8wcDRERUeVg0kZVwujoYIyNDVYr/3TnH+wiJSKiKoFJG1UZUQ281MpKhGAXKRERVQlM2qjKcHW011h+9NINM0dCRERkekzaqMooelSisXzhwXR2kRIRkc1j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PWnWrBkdOnTgww8/bKCeup4z92rz5s0oimLxlZWV1YA9do2MjAzuueceIiIiUBSFr7/+utrXeOpz5ey98uTnasaMGfTu3ZsWLVpw8803c++99/LLL79U+zpPfLZqcq88+dn64IMP6N69O0FBQQQFBZGYmMi6devsvqahnysJ2gTLli3jueee45VXXmH//v0kJSUxbNgwcnNzrbbPzs5m+PDhJCUlsX//fl5++WWeeeYZli9f3sA9b3jO3iujX375Bb1eb/rq1KlTA/XYdYqLi0lISGDOnDkOtffk58rZe2Xkic/Vli1bmDJlCt9//z3ffPMN169f5+6776a4uNjmazz12arJvTLyxGerXbt2pKWlsWfPHvbs2cNdd93F6NGj+emnn6y2d8lzpQqP16dPH3XSpElmx+Li4tSUlBSr7V966SU1Li7O7NjEiRPVvn371lsfGwtn71V6eroKqBcvXmyI7jVagPrVV1/ZbePJz1Vljtwrea4qnDt3TgXULVu22Gwjz5bGkXslz5a5kJAQdf78+VbPueK5kpE2D1dWVsbevXu5++67zY7ffffd7Nixw+prdu7cadF+yJAh7Nmzh2vXrtVbX12tJvfKqEePHoSHhzN48GDS09Prs5tuy1Ofq9qQ5woKCwsBaNmypc028mxpHLlXRp7+bJWXl7N06VKKi4tJTEy02sYVz5UEbR4uPz+f8vJyWrdubXa8devWnDlzxuprzpw5Y7X99evXyc/Pr7e+ulpN7lV4eDgfffQRy5cvZ8WKFXTp0oXBgweTkZHREF12K576XNWEPFcaVVX57//+b/r370/Xrl1ttpNny/F75enPVmZmJs2bN8fPz49Jkybx1VdfER8fb7WtK54rqT0qACyqKKiqareygrX21o43Rc7cqy5dutClSxfT94mJieTl5fHWW28xYMCAeu2nO/Lk58oZ8lxppk6dysGDB9m2bVu1bT392XL0Xnn6s9WlSxcOHDhAQUEBy5cvZ9y4cWzZssVm4NbQz5WMtHm40NBQvLy8LEaKzp07Z/EvCKM2bdpYbe/t7U2rVq3qra+uVpN7ZU3fvn05evRoXXfP7Xnqc1VXPO25evrpp1m1ahXp6enV1mv09GfLmXtljSc9W76+vnTs2JFevXoxY8YMEhISeOedd6y2dcVzJUGbh/P19aVnz5588803Zse/+eYb+vXrZ/U1iYmJFu03btxIr1698PHxqbe+ulpN7pU1+/fvJzw8vK675/Y89bmqK57yXKmqytSpU1mxYgWbNm0iJiam2td46rNVk3tljac8W9aoqsrVq1etnnPJc1VvWxyE21i6dKnq4+Ojfvzxx+rhw4fV5557Tg0MDFRzcnJUVVXVlJQU9ZFHHjG1P3HihBoQEKD+5S9/UQ8fPqx+/PHHqo+Pj/rll1+66kdoMM7eq//93/9Vv/rqK/XIkSPqoUOH1JSUFBVQly9f7qofocFcunRJ3b9/v7p//34VUN9++211//796smTJ1VVleeqMmfvlSc/V0899ZQaHBysbt68WdXr9aavkpISUxt5tjQ1uVee/GylpqaqGRkZanZ2tnrw4EH15ZdfVnU6nbpx40ZVVRvHcyVBm1BVVVXfe+89NTo6WvX19VVvv/12sy3h48aNU5OTk83ab968We3Ro4fq6+urtm/fXv3ggw8auMeu48y9mjlzphobG6s2a9ZMDQkJUfv376+uWbPGBb1ueMbUAVW/xo0bp6qqPFeVOXuvPPm5snafAHXBggWmNvJsaWpyrzz52frzn/9s+t0eFhamDh482BSwqWrjeK4UVb2xak4IIYQQQjRasqZNCCGEEMINSNAmhBBCCOEGJGgTQgghhHADErQJIYQQQrgBCdqEEEIIIdyABG1CCCGEEG5AgjYhhBBCCDcgQZsQQgghhBuQoE0IIYQQwg1I0CaEEEII4QYkaBNCCCGEcAMStAkhhBBCuAEJ2oQQohHq0qULiqI49LVo0SJXd1cI0QC8Xd0BIYQQ5kpLS2ndujVhYWGmYydOnECv19O+fXvatm1r1j4pKamhuyiEcAFFVVXV1Z0QQghh35gxY1ixYgWfffYZf/rTn1zdHSGEC8j0qBBCuIGDBw8C0K1bNxf3RAjhKjLSJoQQjVxJSQktWrRAp9NRXFyMr6+vq7skhHABGWkTQohG7qeffsJgMNC5c2cJ2ITwYBK0CSFEI2ecGu3atauLeyKEcCUJ2oQQopHLzMwEZD2bEJ5OgjYhhGjksrKyALj11ltd3BMhhCtJ0CaEEI3cqVOnAIiKinJxT4QQriRBmxBCNHI+Pj4AnDx50sU9EUK4kgRtQgjRyBkrHvzxj3+kR48e/POf/3Rxj4QQriBBmxBCNHL/+te/ePjhhwkMDOTAgQN4eXm5uktCCBeQ5LpCCCGEEG5ARtqEEEIIIdyABG1CCCGEEG5AgjYhhBBCCDcgQZsQQgghhBuQoE0IIYQQwg1I0CaEEEII4QYkaBNCCCGEcAMStAkhhBBCuAEJ2oQQQggh3IAEbUIIIYQQbkCCNiGEEEIINyBBmxBCCCGEG5CgTQghhBDCDUjQJoQQQgjhBv4/wKcNoP2kAQAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline\n", "plt.plot(\n", " dtau * np.arange(num_steps),\n", " energies,\n", " linestyle=\"dashed\",\n", " marker=\".\",\n", " color=\"tab:blue\",\n", " linewidth=0,\n", " label=\"classical\",\n", ")\n", "plt.plot(\n", " dtau * np.arange(0, num_steps, quantum_evaluations_every_n_steps),\n", " quantum_energies,\n", " linestyle=\"dashed\",\n", " marker=\"o\",\n", " color=\"tab:orange\",\n", " linewidth=1,\n", " label=\"quantum\",\n", ")\n", "plt.axhline(-1.137117067345732, linestyle=\"dashed\", color=\"black\")\n", "plt.title(r\"Ground state estimation of H$_2$ using AFQMC\", fontsize=16)\n", "plt.legend(fontsize=14, loc=\"upper right\")\n", "plt.xlabel(r\"$\\tau$\", fontsize=16)\n", "plt.ylabel(\"Energy\", fontsize=16)\n", "plt.yticks(fontsize=14)\n", "plt.tick_params(direction=\"in\")\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "0e6457bd", "metadata": {}, "source": [ "In the plot, the computed ground-state energy of the H$_2$ molecule against imaginary time $\\tau$ above, the blue curve labeled \"classical\" denotes the ground-state energy computed by using the classical trial state, i.e., the Hartree-Fock state. The orange curve labeled \"quantum\" denotes the ground-state energy computed using the QAEE-AFQMC algorithm on the PennyLane Lightning simulator. The black dashed line represents the true ground state energy. We see that both classical and quantum methods converge to the correct value. However, the energies computed using QAEE-AFQMC have a smaller variance, demonstrating one of the main benefits of this approach." ] }, { "cell_type": "markdown", "id": "0c40bbba", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "conda_braket", "language": "python", "name": "conda_braket" }, "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.7.15" }, "vscode": { "interpreter": { "hash": "5904cb9a2089448a2e1aeb5d493d227c9de33e591d7c07e4016fb81e71061a5d" } } }, "nbformat": 4, "nbformat_minor": 5 }