From 4c57ee11906a2de3fe02f8dfa64b4471ca4787e5 Mon Sep 17 00:00:00 2001 From: gonfeco Date: Wed, 17 Jan 2024 13:22:42 +0100 Subject: [PATCH] Ending PH notebook documentation --- requirements.txt | 170 + .../02_BTC_03_QPE_for_rzn_Procedure.ipynb | 10 +- .../01_ParentHamiltonianBencmark.ipynb | 173 + .../{01_Ansatzes.ipynb => 02_Ansatzes.ipynb} | 18 + .../PH/notebooks/02_Using_PH_Class.ipynb | 3518 ----------------- .../PH/notebooks/03_Using_PH_Class.ipynb | 1032 +++++ ...b => 04_ParentHamiltonian_execution.ipynb} | 83 +- ...rkflow.ipynb => 05_CompleteWorkflow.ipynb} | 41 +- ...nb => 06_ParentHamiltonian_with_MPS.ipynb} | 61 +- ...6_Ansatz_MPS.ipynb => 07_Ansatz_MPS.ipynb} | 43 +- ...=> 08_ReducedDensityMatriceswithMPS.ipynb} | 23 +- .../PH/notebooks/parent_hamiltonian.svg | 622 +++ 12 files changed, 2197 insertions(+), 3597 deletions(-) create mode 100644 requirements.txt create mode 100644 tnbs/BTC_04_PH/PH/notebooks/01_ParentHamiltonianBencmark.ipynb rename tnbs/BTC_04_PH/PH/notebooks/{01_Ansatzes.ipynb => 02_Ansatzes.ipynb} (96%) delete mode 100644 tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb create mode 100644 tnbs/BTC_04_PH/PH/notebooks/03_Using_PH_Class.ipynb rename tnbs/BTC_04_PH/PH/notebooks/{03_ParentHamiltonian_execution.ipynb => 04_ParentHamiltonian_execution.ipynb} (77%) rename tnbs/BTC_04_PH/PH/notebooks/{04_CompleteWorkflow.ipynb => 05_CompleteWorkflow.ipynb} (82%) rename tnbs/BTC_04_PH/PH/notebooks/{05_ParentHamiltonian_with_MPS.ipynb => 06_ParentHamiltonian_with_MPS.ipynb} (98%) rename tnbs/BTC_04_PH/PH/notebooks/{06_Ansatz_MPS.ipynb => 07_Ansatz_MPS.ipynb} (99%) rename tnbs/BTC_04_PH/PH/notebooks/{07_ReducedDensityMatriceswithMPS.ipynb => 08_ReducedDensityMatriceswithMPS.ipynb} (99%) create mode 100755 tnbs/BTC_04_PH/PH/notebooks/parent_hamiltonian.svg diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..514a3e8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,170 @@ +anyio==4.2.0 +anytree==2.8.0 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==2.4.1 +async-lru==2.0.4 +attrs==23.2.0 +Babel==2.14.0 +beautifulsoup4==4.12.2 +bitarray==2.9.2 +bitstring==4.1.4 +bleach==6.1.0 +Brotli==1.1.0 +cached-property==1.5.2 +certifi==2023.11.17 +cffi==1.16.0 +charset-normalizer==3.3.2 +clarabel==0.6.0 +colorama==0.4.6 +comm==0.2.1 +contourpy==1.2.0 +cryptography==41.0.7 +cvxpy==1.4.1 +cycler==0.12.1 +debugpy==1.8.0 +decorator==5.1.1 +defusedxml==0.7.1 +dill==0.3.7 +ecos==2.0.11 +entrypoints==0.4 +exceptiongroup==1.2.0 +executing==2.0.1 +fastjsonschema==2.19.1 +fonttools==4.47.2 +fqdn==1.5.1 +idna==3.6 +importlib-metadata==7.0.1 +importlib-resources==6.1.1 +iniconfig==2.0.0 +ipykernel==6.28.0 +ipython==8.20.0 +ipywidgets==8.1.1 +isoduration==20.11.0 +jax==0.4.23 +jaxlib==0.4.23 +jedi==0.19.1 +Jinja2==3.1.3 +joblib==1.3.2 +json5==0.9.14 +jsonpointer==2.4 +jsonschema==4.20.0 +jsonschema-specifications==2023.12.1 +jupyter==1.0.0 +jupyter_client==8.6.0 +jupyter-console==6.6.3 +jupyter_core==5.7.1 +jupyter-events==0.9.0 +jupyter-lsp==2.2.1 +jupyter_server==2.12.4 +jupyter_server_terminals==0.5.1 +jupyterlab==4.0.10 +jupyterlab_pygments==0.3.0 +jupyterlab_server==2.25.2 +jupyterlab-widgets==3.0.9 +kiwisolver==1.4.5 +MarkupSafe==2.1.3 +matplotlib==3.8.2 +matplotlib-inline==0.1.6 +mistune==3.0.2 +ml-dtypes==0.3.2 +munkres==1.1.4 +myqlm==1.9.5 +myqlm-clinalg==0.1.3 +myqlm-contrib==1.9.2 +myqlm-fermion==1.1.1 +myqlm-simulators==1.9.3 +nb-conda-kernels==2.3.1 +nbclient==0.8.0 +nbconvert==7.14.1 +nbformat==5.9.2 +nest-asyncio==1.5.8 +networkx==3.2.1 +notebook==7.0.6 +notebook_shim==0.2.3 +numpy==1.26.3 +opt-einsum==3.3.0 +osqp==0.6.3 +overrides==7.4.0 +packaging==23.2 +pandas==2.1.4 +pandocfilters==1.5.0 +parso==0.8.3 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==10.2.0 +pip==23.3.2 +pkgutil_resolve_name==1.3.10 +platformdirs==4.1.0 +pluggy==1.3.0 +ply==3.11 +prettytable==3.9.0 +prometheus-client==0.19.0 +prompt-toolkit==3.0.42 +psutil==5.9.7 +ptyprocess==0.7.0 +pure-eval==0.2.2 +pycparser==2.21 +pyDOE==0.3.8 +Pygments==2.17.2 +pyOpenSSL==23.3.0 +pyparsing==3.1.1 +PyQt5==5.15.9 +PyQt5-sip==12.12.2 +PySocks==1.7.1 +pytest==7.4.4 +python-dateutil==2.8.2 +python-json-logger==2.0.7 +pytz==2023.3.post1 +PyYAML==6.0.1 +pyzmq==25.1.2 +qat-comm==1.4.5 +qat-core==1.8.3 +qat-devices==0.2.3 +qat-hardware==1.3.3 +qat-lang==3.0.3 +qat-quops==1.3.2 +qat-variational==1.4.3 +qdldl==0.1.5.post2 +qlmaas==1.9.3 +qtconsole==5.5.1 +QtPy==2.4.1 +qutip==4.7.3 +referencing==0.32.1 +requests==2.31.0 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.17.1 +SciPy==1.11.4 +scs==3.2.3 +Send2Trash==1.8.2 +setuptools==69.0.3 +sip==6.7.12 +six==1.16.0 +sniffio==1.3.0 +soupsieve==2.5 +stack-data==0.6.2 +svgwrite==1.4.3 +terminado==0.18.0 +thrift==0.16.0 +tinycss2==1.2.1 +toml==0.10.2 +tomli==2.0.1 +tornado==6.3.3 +tqdm==4.66.1 +traitlets==5.14.1 +types-python-dateutil==2.8.19.20240106 +typing_extensions==4.9.0 +typing-utils==0.1.0 +tzdata==2023.4 +uri-template==1.3.0 +urllib3==2.1.0 +Wand==0.6.13 +wcwidth==0.2.13 +webcolors==1.13 +webencodings==0.5.1 +websocket-client==1.7.0 +wheel==0.42.0 +widgetsnbextension==4.0.9 +zipp==3.17.0 diff --git a/tnbs/BTC_03_QPE/QPE/notebooks/02_BTC_03_QPE_for_rzn_Procedure.ipynb b/tnbs/BTC_03_QPE/QPE/notebooks/02_BTC_03_QPE_for_rzn_Procedure.ipynb index 3985331..19c13ca 100644 --- a/tnbs/BTC_03_QPE/QPE/notebooks/02_BTC_03_QPE_for_rzn_Procedure.ipynb +++ b/tnbs/BTC_03_QPE/QPE/notebooks/02_BTC_03_QPE_for_rzn_Procedure.ipynb @@ -422,7 +422,7 @@ "\n", "Once the files from a complete benchmark execution are generated the information should be formated following the **NEASQC JSON schema**. For doing this the **neasqc_benchmark.py** module can be used. At the end of the file the path to the folder where all the files from benchmark are stored should be provided to the variable **folder**.\n", "\n", - "For creating the JSON file following command should eb executed:\n", + "For creating the JSON file following command should be executed:\n", "\n", " python neasqc_benchmark.py" ] @@ -438,6 +438,14 @@ "\n", " bash benchmark_exe.sh" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6073fc94-ffa5-447a-bc88-3fe771a2d0f0", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/tnbs/BTC_04_PH/PH/notebooks/01_ParentHamiltonianBencmark.ipynb b/tnbs/BTC_04_PH/PH/notebooks/01_ParentHamiltonianBencmark.ipynb new file mode 100644 index 0000000..dce9f7e --- /dev/null +++ b/tnbs/BTC_04_PH/PH/notebooks/01_ParentHamiltonianBencmark.ipynb @@ -0,0 +1,173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "abc0ec77-a62e-47fd-9780-b6002e237eb5", + "metadata": {}, + "source": [ + "# Parent Hamiltonian Benchmark\n", + "\n", + "Present notebook documents the **Parent Hamiltonian** (**PH**) **kernel** and its associated **Benchmark Test Case**. Additionally, explains how the benchmark can be executed.\n", + "\n", + "$$\\newcommand{\\braket}[2]{\\left\\langle{#1}\\middle|{#2}\\right\\rangle}$$\n", + "$$\\newcommand{\\ket}[1]{\\left|{#1}\\right\\rangle}$$\n", + "$$\\newcommand{\\bra}[1]{\\left\\langle{#1}\\right|}$$" + ] + }, + { + "cell_type": "markdown", + "id": "3b7ed307-b41f-4d76-9467-c73047f583d8", + "metadata": {}, + "source": [ + "## 1. PH Kernel\n", + "\n", + "Given an ansatz with a state $\\ket{\\Psi \\left(\\theta\\right)}$, where $\\theta$ is a vector of parameters, the **PH kernel** aims to compute a Hamiltonian, $\\mathcal{H}$, such that the ansatz is its ground state with a fixed energy of 0. Such Hamiltonian is called the **Parent Hamiltonian**^of the ansatz (or of the state $\\ket{\\Psi \\left(\\theta\\right)}$)\n", + "\n", + "$$\\mathcal{H}\\ket{\\Psi \\left(\\theta\\right)} = 0 \\tag{1}$$\n", + "\n", + "In the **TNBS** it is expected to use the **PH kernel** for evaluating the performance of quantum architectures for running typical **VQE** circuits (or ansatzes).\n", + "\n", + "This kernel is based on the original *Parent Hamiltonian* paper:\n", + "\n", + "* Kobayashi, F., Mitarai, K., & Fujii, K. (2022). Parent Hamiltonian as a benchmark problem for variational quantum eigensolvers. Phys. Rev. A, 105, 052415 (https://doi.org/10.1103%2Fphysreva.105.052415)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "69e54053-190f-431b-b3da-5342a480f21f", + "metadata": {}, + "source": [ + "## 2. BTC\n", + "\n", + "As a **BTC** for the **PH kernel** we are going to use the proposed ansatz on the original *Parent Hamiltonian* paper that is depicted in the following figure:\n", + "\n", + "\n", + "![alternatvie text](./parent_hamiltonian.svg)\n", + "\n", + "\n", + "The ansatz is the circuit inside the rectangle solid line and it can be composed of several layers. Each layer (rectangle dashed line) is composed of a $R_X(\\theta_i)$ gate by qubit, followed by a ladder of $CNOT$ gates and finally a $R_Z(\\theta_{i+1})$ by qubit.\n", + "\n", + "The angles of the different gates will be set to, follow the TNBS guidelines:\n", + "\n", + "$$\\delta \\theta = \\frac{\\pi}{4*(n_l+1)}$$ $$\\theta_i = (i+1) \\delta \\theta \\; i=0, 1, \\cdots 2n_l-1$$ where $n_l$ is the number of layers of the ansatz (the **depth** of the ansatz)\n", + "\n", + "For a fixed **number of qubits** and **depth** the corresponding **PH** of the ansatz should be computed and decomposed as linear decomposition following $(2)$: $$\\mathcal{H} = \\sum_{I=0}^{4^n-1} a_I P_{I}^n\\tag{2}$$ where $P_I^n$ is a generalized Pauli string: $$P_I^n=\\sigma_{i_0} \\otimes \\sigma_{i_1} \\cdots \\otimes \\sigma_{i_{n-1}}$$ where $i_j={0, 1, 2, 3}$.\n", + "\n", + "For each possible **Pauli** string the complete ansatz circuit should be executed and the corresponding expected value of the **Pauli** string should be computed (this is depicted in the figure with *Rotation to $P_i$ measurement basis* and the *$\\langle P_i \\rangle$* boxes). Finally, all the computed expected values ($\\langle P_i \\rangle$) should be gathered and the ground state energy ($E_0$) of the ansatz under the **PH** should be computed using $(3)$:$$E_0 = \\sum_{I=0}^{4^n-1} a_I \\langle P_i \\rangle \\tag{3}$$\n", + "\n", + "If all properly works the obtained $E_0$ should be as close to 0 as possible." + ] + }, + { + "cell_type": "markdown", + "id": "b14f7f06-162c-4934-b8ac-cbad1696b29d", + "metadata": {}, + "source": [ + "## 3 Benchmark execution.\n", + "\n", + "In the present repository, we have computed the Pauli decomposition for ansatz circuits from 3 to 30 qubits and for 1 to 4 depths. The mandatory files are stored inside the **BTC_04_PH/configuration_files/**. There are 2 kinds of files:\n", + "\n", + "* *_parameters.csv* files: where the different parameters of the ansatz circuit are stored.\n", + "* _pauli.csv* files: where the corresponding Pauli decomposition is stored.\n", + "\n", + "These files are mandatory for executing the **BTC** using the code of the repository." + ] + }, + { + "cell_type": "markdown", + "id": "2c8bd9ad-672e-48dc-91ba-66d10b969ce1", + "metadata": {}, + "source": [ + "## 4. my_benchmark_execution.py\n", + "\n", + "The **my_benchmark_execution.py** module executes the benchmark for the **PH BTC**. This module needs the files stored in the **BTC_04_PH/configuration_files/** folder. \n", + "\n", + "The benchmark can be configured using the *kernel_configuration* and the *benchmark_arguments* dictionary at the end of the **my_benchmark_execution.py** module. \n", + "\n", + "For selecting the depths to execute the key *depth* from the *kernel_configuration* dictionary should be modified (a list with the different depths should be provided). Only depths from 1 to 4 can be provided (are the precomputed ansatz depths).\n", + "For selecting the number of qubits to execute the key *list_of_qbits* from the *benchmark_arguments* should be modified (a list with different number of qubits should be provided). Only qubits from 3 to 30 can be provided (are the precomputed ansatz qubits).\n", + "\n", + "**NOTE** \n", + "The bechmark will be executed for each number of qubits and depths. So if you provide:\n", + "* depth : [2, 3]\n", + "* list_of_qbits: [15, 18]\n", + "\n", + "then the ansatzes for 15 qubits and 2 and 3 depths, and for 18 and 2 of 3 ansatzes will be executed (4 different executions will be done).\n" + ] + }, + { + "cell_type": "markdown", + "id": "69adb7fb-cf82-4e2a-976d-00c020a6302e", + "metadata": {}, + "source": [ + "## 5. Generating the JSON file.\n", + "\n", + "Once the files from a complete benchmark execution are generated the information should be formated following the **NEASQC JSON schema**. For doing this the **neasqc_benchmark.py** module can be used. At the end of the file the path to the folder where all the files from benchmark are stored should be provided to the variable **folder**.\n", + "\n", + "For creating the JSON file following command should eb executed:\n", + "\n", + " python neasqc_benchmark.py" + ] + }, + { + "cell_type": "markdown", + "id": "0bdc2b52-0e67-4ad6-81fe-ee2e67ebcba7", + "metadata": {}, + "source": [ + "## 6. Complete Workflow.\n", + "\n", + "The bash script **benchmark_exe.sh** allows to automatize the execution of the benchmark and the JSON file generation (once the *my_benchmark_execution.py* and the *neasqc_benchmark.py* are properly configured).\n", + "\n", + " bash benchmark_exe.sh" + ] + }, + { + "cell_type": "markdown", + "id": "7f94c0d3-3e96-49b8-86f7-686e3235ef5b", + "metadata": {}, + "source": [ + "## 7. About the other notebooks.\n", + "\n", + "The other notebooks presented in the **BTC_04_PH/PH/notebooks/* folder gives more information about the **Parent Hamiltonian** and about the code used for generating the configuration files. The user can check it and can use for creating different ansatzes and its corresponding Pauli decomposition even can be used for creating **BTC** with higher depths (or even higher numbers of qubits). The notebooks are:\n", + "\n", + "* **02_Ansatzes.ipynb**: in this notebook the code for computing different ansatzes and their corresponding states are explained.\n", + "* **03_Using_PH_Class.ipynb**: in this notebook the internal details of the **Parent Hamiltonian** computation are provided. Additionally, the mandatory code for creating the Pauli decomposition of the **PH** is described.\n", + "* **04_ParentHamiltonian_execution.ipynb**: in this notebook the code used for, giving the ansatz and its corresponding **PH** Pauli decomposition, execute **VQE** step is explained.\n", + "* **05_CompleteWorkflow.ipynb**: in this notebook the code for a complete workflow (creating the ansatz, computing the PH and executing the **VQE** step) is provided and explained.\n", + "* **06_ParentHamiltonian_with_MPS.ipynb**: the main problem of the **PH** case is the need to compute the state of the ansatz for obtaining the **PH**. Using vector state simulators for this task can be very inefficient (and even unaffordable) when the number of qubits (or even the depth) increases. For this case techniques like *Matrix Product State* from **Tensor Networks** can be used. In this notebook, we explain how to use or naive implementation of these computations for obtaining the **PH** Pauli decomposition.\n", + "* **07_Ansatz_MPS.ipynb**: this notebook explains how to use our **MPS** implementation for computing the state of the **BTC** ansatz.\n", + "* **08_ReducedDensityMatriceswithMPS.ipynb**: this notebook shows how to use our **MPS** implementation for computing the **PH** Pauli decomposition." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b0d83731-ddea-495d-842e-776fea3640bd", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:tnbs2c] *", + "language": "python", + "name": "conda-env-tnbs2c-py" + }, + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb b/tnbs/BTC_04_PH/PH/notebooks/02_Ansatzes.ipynb similarity index 96% rename from tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb rename to tnbs/BTC_04_PH/PH/notebooks/02_Ansatzes.ipynb index 14d2a02..8d77c34 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/02_Ansatzes.ipynb @@ -895,6 +895,24 @@ "* *_state.csv*: complete state of the ansatz.\n" ] }, + { + "cell_type": "markdown", + "id": "b3379ba1-7a68-45ea-ac17-512bbbf0b609", + "metadata": {}, + "source": [ + "**Example**\n", + "\n", + "The following command will execute an ansatz computation for the simple ansatz with random angles for all the gates (*simple_02* ansatz) of 6 **qubits**, with 2 layers (**depth**) using the **c lineal algebra myqlm QPU** and the files will be saved into the folder **Saves**:\n", + "\n", + " python ansatzes.py -nqubits 6 -ansatz simple02 -depth 2 -qpu_ansatz c -folder Saves --solve --save\n", + "\n", + "In the Saves folder, you should find the following files:\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_parameters.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_state.csv\n", + "* \n", + "ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_solve_ansatz_time.csv" + ] + }, { "cell_type": "markdown", "id": "f22d21b1", diff --git a/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb b/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb deleted file mode 100644 index d059787..0000000 --- a/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb +++ /dev/null @@ -1,3518 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "9cf68804", - "metadata": {}, - "source": [ - "# Using Parent Hamiltonian Class\n", - "\n", - "$$\\newcommand{\\braket}[2]{\\left\\langle{#1}\\middle|{#2}\\right\\rangle}$$\n", - "$$\\newcommand{\\ket}[1]{\\left|{#1}\\right\\rangle}$$\n", - "$$\\newcommand{\\bra}[1]{\\left\\langle{#1}\\right|}$$\n", - "\n", - "Here we explain how to use the **Parent Hamiltonian** class of the module *parent_hamiltonian* of the library **PH** that can be used for computing Parent Hamiltonians of an input state\n", - "\n", - "The main idea of the parent Hamiltonian is the following:\n", - "\n", - "Given an ansatz represented by its state: $\\ket{\\Psi \\left(\\theta\\right)}$, where $\\theta$ is a vector of parameters, the parent Hamiltonian problem looks for a Hamiltonian $\\mathcal{H}$ for the proposed ansatz which fundamental state and correspondent energy is 0. This is:\n", - "\n", - "$$\\mathcal{H}\\ket{\\Psi \\left(\\theta\\right)} = 0 \\tag{1}$$" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "558430a5", - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.basicConfig(\n", - " format='%(asctime)s-%(levelname)s: %(message)s',\n", - " datefmt='%m/%d/%Y %I:%M:%S %p',\n", - " #level=logging.INFO\n", - " level=logging.DEBUG\n", - ")\n", - "logger = logging.getLogger('__name__')" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "3449a43c", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "19de4d79", - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "sys.path.append(\"../../\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "ac5e510f", - "metadata": {}, - "outputs": [], - "source": [ - "# myQLM qpus\n", - "from get_qpu import get_qpu" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "a5ac6e2f", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:45:17 PM-DEBUG: Import real module qat.qpus (path: ['/home/gferro/WP3_Benchmark/tnbs/BTC_04_PH/PH/notebooks', '/home/gferro/anaconda3/envs/tnbs2c/lib/python311.zip', '/home/gferro/anaconda3/envs/tnbs2c/lib/python3.11', '/home/gferro/anaconda3/envs/tnbs2c/lib/python3.11/lib-dynload', '', '/home/gferro/anaconda3/envs/tnbs2c/lib/python3.11/site-packages', '../../'])\n", - "01/16/2024 12:45:17 PM-DEBUG: Submodules: {'qat.qpus.hook_clinalg': , 'qat.qpus.hook_core': , 'qat.qpus.hook_lang': , 'qat.qpus.hook_pylinalg': }\n", - "01/16/2024 12:45:17 PM-INFO: Initializing CPU statevector with Double precision\n" - ] - } - ], - "source": [ - "# myQLM qpus\n", - "qpu_c = get_qpu(\"c\")\n", - "qpu_p = get_qpu(\"python\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "060c0f1f", - "metadata": {}, - "outputs": [], - "source": [ - "sys.path.append(\"../\")\n", - "from parent_hamiltonian import PH" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "04163a3b", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Folder 'Saving' created.\n" - ] - } - ], - "source": [ - "# For saving Stuff\n", - "from utils_ph import create_folder\n", - "folder = \"Saving\"\n", - "folder = create_folder(folder)" - ] - }, - { - "cell_type": "markdown", - "id": "1fb58dea", - "metadata": {}, - "source": [ - "## 1. Input Ansatz\n", - "\n", - "To create a Parent Hamiltonian (**PH**) with our software we need, given an input ansatz, the complete state of the ansatz. This is the amplitudes of the state of the ansatz in the computational $n$ qubit basis. In the module *ansatzes* of the **PH** library several ansatzes are defined and a *SolveCircuit* class for simulating and getting results using **Atos myqlm** is provided (see notebook **01_Ansatzes.ipynb** for an explanation and use of this module). Here we use the **ansatz_qlm_01** that is the **Atos myqlm** implementation of the ansatz in the github:\n", - "\n", - "https://github.com/FumiKobayashi/Parent_Hamiltonian_as_a_benchmark_problem_for_variational_quantum_eigensolvers\n", - "\n", - "from the original Parent Hamiltonian Papper:\n", - "\n", - "* Kobayashi, F., Mitarai, K., & Fujii, K. (2022). Parent hamiltonian as a benchmark problem for variational quantum eigensolvers. Phys. Rev. A, 105, 052415 (https://doi.org/10.1103%2Fphysreva.105.052415)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "766e53bc", - "metadata": {}, - "outputs": [], - "source": [ - "from ansatzes import ansatz_selector, SolveCircuit, angles_ansatz01" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "c01e6ebc", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:46:06 PM-INFO: Generating circuit.\n", - "01/16/2024 12:46:06 PM-INFO: Instantiating a Linker.\n", - "01/16/2024 12:46:06 PM-INFO: Linking libraries to circuit.\n", - "01/16/2024 12:46:06 PM-INFO: Found 0 ancillae\n" - ] - }, - { - "data": { - "text/html": [ - "Q0Q1Q2Q3Q4Q5Q6Q7RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:46:06 PM-INFO: Found 0 ancillae\n" - ] - } - ], - "source": [ - "# Ansatz Configuration\n", - "nqubits = 8\n", - "depth = 3\n", - "ansatz_conf = {\n", - " 'nqubits' : nqubits,\n", - " 'depth' : depth\n", - "}\n", - "ansatz = \"simple01\"\n", - "circuit = ansatz_selector(ansatz, **ansatz_conf)\n", - "%qatdisplay circuit --svg\n", - "\n", - "# Solving Ansatz Configuration\n", - "filename = \"ansatz_{}_dept_{}_nqubits_{}\".format(ansatz, ansatz_conf[\"depth\"], ansatz_conf[\"nqubits\"])\n", - "# We use the angles_ansatz01 for fixing parameters\n", - "circuit, parameters_pdf = angles_ansatz01(circuit)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "c8ef35f9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "Q0Q1Q2Q3Q4Q5Q6Q7RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "%qatdisplay circuit --svg" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "4775319f", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:46:09 PM-INFO: New batch of length 1 submitted\n", - "01/16/2024 12:46:09 PM-DEBUG: Batch(jobs=[Job(circuit=Circuit(ops=[Op(gate='_0', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[7], type=0, cbits=None, formula=None, remap=None)], name=None, gateDic={'X': GateDefinition(name='X', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='X', parameters=[]), nbctrls=None, circuit_implementation=None), 'Y': GateDefinition(name='Y', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.0, im=-1.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Y', parameters=[]), nbctrls=None, circuit_implementation=None), 'Z': GateDefinition(name='Z', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Z', parameters=[]), nbctrls=None, circuit_implementation=None), 'H': GateDefinition(name='H', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=-0.7071067811865475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='H', parameters=[]), nbctrls=None, circuit_implementation=None), 'CNOT': GateDefinition(name='CNOT', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='X', syntax=GSyntax(name='CNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'CSIGN': GateDefinition(name='CSIGN', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='Z', syntax=GSyntax(name='CSIGN', parameters=[]), nbctrls=1, circuit_implementation=None), 'ISWAP': GateDefinition(name='ISWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='ISWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'SQRTSWAP': GateDefinition(name='SQRTSWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SQRTSWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'I': GateDefinition(name='I', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='I', parameters=[]), nbctrls=None, circuit_implementation=None), 'SWAP': GateDefinition(name='SWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'CCNOT': GateDefinition(name='CCNOT', arity=3, matrix=Matrix(nRows=8, nCols=8, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='CNOT', syntax=GSyntax(name='CCNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'S': GateDefinition(name='S', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='S', parameters=[]), nbctrls=None, circuit_implementation=None), 'T': GateDefinition(name='T', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7071067811865476, im=0.7071067811865475)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='T', parameters=[]), nbctrls=None, circuit_implementation=None), '_0': GateDefinition(name='_0', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9951847266721969, im=0.0), ComplexNumber(re=0.0, im=-0.0980171403295606), ComplexNumber(re=0.0, im=-0.0980171403295606), ComplexNumber(re=0.9951847266721969, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.19634954084936207, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_1': GateDefinition(name='_1', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9807852804032304, im=-0.19509032201612825), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9807852804032304, im=0.19509032201612825)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.39269908169872414, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_2': GateDefinition(name='_2', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9569403357322088, im=0.0), ComplexNumber(re=0.0, im=-0.29028467725446233), ComplexNumber(re=0.0, im=-0.29028467725446233), ComplexNumber(re=0.9569403357322088, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.5890486225480862, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_3': GateDefinition(name='_3', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9238795325112867, im=-0.3826834323650898), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9238795325112867, im=0.3826834323650898)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.7853981633974483, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_4': GateDefinition(name='_4', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.881921264348355, im=0.0), ComplexNumber(re=0.0, im=-0.47139673682599764), ComplexNumber(re=0.0, im=-0.47139673682599764), ComplexNumber(re=0.881921264348355, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.9817477042468103, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_5': GateDefinition(name='_5', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8314696123025452, im=-0.5555702330196022), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.8314696123025452, im=0.5555702330196022)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1780972450961724, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None)}, nbqbits=8, nbcbits=8, _gate_set=GSet(gate_signatures={'X': GSignature(name='X', parameters=[], arity=1), 'Y': GSignature(name='Y', parameters=[], arity=1), 'Z': GSignature(name='Z', parameters=[], arity=1), 'H': GSignature(name='H', parameters=[], arity=1), 'CNOT': GSignature(name='CNOT', parameters=[], arity=2), 'CSIGN': GSignature(name='CSIGN', parameters=[], arity=2), 'ISWAP': GSignature(name='ISWAP', parameters=[], arity=2), 'SQRTSWAP': GSignature(name='SQRTSWAP', parameters=[], arity=2), 'I': GSignature(name='I', parameters=[], arity=1), 'SWAP': GSignature(name='SWAP', parameters=[], arity=2), 'CCNOT': GSignature(name='CCNOT', parameters=[], arity=3), 'S': GSignature(name='S', parameters=[], arity=1), 'T': GSignature(name='T', parameters=[], arity=1), 'PH': GSignature(name='PH', parameters=[1], arity=1), 'RZ': GSignature(name='RZ', parameters=[1], arity=1), 'RX': GSignature(name='RX', parameters=[1], arity=1), 'RY': GSignature(name='RY', parameters=[1], arity=1), 'LOCK': GSignature(name='LOCK', parameters=[], arity=1), 'RELEASE': GSignature(name='RELEASE', parameters=[], arity=1)}), has_matrices=False, var_dic={}, qregs=[DefaultRegister(length=8, start=0, msb=None, _subtype_metadata=None, key=None)], ancilla_map=, _serialized_gate_set=b\"\\x80\\x04\\x95r\\x05\\x00\\x00\\x00\\x00\\x00\\x00\\x8c\\x11qat.core.gate_set\\x94\\x8c\\x07GateSet\\x94\\x93\\x94)\\x81\\x94}\\x94\\x8c\\x0fgate_signatures\\x94}\\x94(\\x8c\\x01X\\x94h\\x00\\x8c\\rGateSignature\\x94\\x93\\x94)\\x81\\x94}\\x94(\\x8c\\x04name\\x94h\\x07\\x8c\\nparameters\\x94]\\x94\\x8c\\x05arity\\x94K\\x01\\x8c\\x07nb_args\\x94K\\x00\\x8c\\targ_types\\x94]\\x94\\x8c\\x0farity_generator\\x94N\\x8c\\x10matrix_generator\\x94\\x8c$qat.core.circuit_builder.matrix_util\\x94\\x8c\\x05gen_x\\x94\\x93\\x94\\x8c\\x11circuit_generator\\x94Nub\\x8c\\x01Y\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\\x19h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_y\\x94\\x93\\x94h\\x18Nub\\x8c\\x01Z\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_z\\x94\\x93\\x94h\\x18Nub\\x8c\\x01H\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch'h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_h\\x94\\x93\\x94h\\x18Nub\\x8c\\x04CNOT\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch.h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x08gen_cnot\\x94\\x93\\x94h\\x18Nub\\x8c\\x05CSIGN\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch5h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\tgen_csign\\x94\\x93\\x94h\\x18Nub\\x8c\\x05ISWAP\\x94h\\t)\\x81\\x94}\\x94(h\\x0chQ0Q1Q2Q3Q4Q5Q6Q7RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RX [Ï€/16]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RZ [Ï€/8]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RZ [Ï€/4]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# The attribute circuit of the *SolveCircuit* object has now the proper parameters\n", - "c= solv_ansatz01.circuit\n", - "%qatdisplay c --svg" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "a19f30b3", - "metadata": {}, - "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", - " \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", - " \n", - " \n", - " \n", - " \n", - " \n", - "
StatesInt_lsbProbabilityAmplitudeInt
0|00000000>00.0270110.084186+0.141151j0
128|10000000>1280.009596-0.018682+0.096160j1
64|01000000>640.009596-0.018682+0.096160j2
192|11000000>1920.010734-0.021159-0.101423j3
32|00100000>320.009596-0.018682+0.096160j4
..................
223|11011111>2230.0004910.001495+0.022099j251
63|00111111>630.0007170.002587-0.026658j252
191|10111111>1910.0004910.001495+0.022099j253
127|01111111>1270.0004910.001495+0.022099j254
255|11111111>2550.0002170.008261+0.012208j255
\n", - "

256 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " States Int_lsb Probability Amplitude Int\n", - "0 |00000000> 0 0.027011 0.084186+0.141151j 0\n", - "128 |10000000> 128 0.009596 -0.018682+0.096160j 1\n", - "64 |01000000> 64 0.009596 -0.018682+0.096160j 2\n", - "192 |11000000> 192 0.010734 -0.021159-0.101423j 3\n", - "32 |00100000> 32 0.009596 -0.018682+0.096160j 4\n", - ".. ... ... ... ... ...\n", - "223 |11011111> 223 0.000491 0.001495+0.022099j 251\n", - "63 |00111111> 63 0.000717 0.002587-0.026658j 252\n", - "191 |10111111> 191 0.000491 0.001495+0.022099j 253\n", - "127 |01111111> 127 0.000491 0.001495+0.022099j 254\n", - "255 |11111111> 255 0.000217 0.008261+0.012208j 255\n", - "\n", - "[256 rows x 5 columns]" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "solv_ansatz01.state" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "186e7e6b", - "metadata": {}, - "outputs": [], - "source": [ - "amplitudes = list(solv_ansatz01.state['Amplitude'])" - ] - }, - { - "cell_type": "markdown", - "id": "5d810255", - "metadata": {}, - "source": [ - "## 2. Parent Hamiltonian Class\n", - "\n", - "The main step is to instantiate the **PH** python class from the *parent_hamiltonian* module of the **PH** library. For this, we need to provide the amplitudes of the ansatz state as a Python list. Additionally, a configuration dictionary can be provided with the following keys:\n", - "\n", - "* save: for saving or not the results\n", - "* filename: complete base filename for saving the results of the class" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "c1acd64e", - "metadata": {}, - "outputs": [], - "source": [ - "ph_conf = {\n", - " \"filename\": folder + filename,\n", - " \"save\": True \n", - "}\n", - "ph_object = PH(amplitudes, **ph_conf)" - ] - }, - { - "cell_type": "markdown", - "id": "666a098b", - "metadata": {}, - "source": [ - "### 2.1 Naive Approach\n", - "\n", - "The naive approach to this problem is the following:\n", - "\n", - "1. Compute the density matrix of the ansatz:\n", - "\n", - "$$\\rho\\left(\\theta\\right) = \\ket{\\Psi \\left(\\theta\\right)}\\bra{\\Psi \\left(\\theta\\right)}$$\n", - "\n", - "2. Compute the **Kernel** or **null space** of the density matrix. This:\n", - "\n", - "$$\\text{Kernel}(\\rho) = \\{ \\ket{v^i} / \\rho \\ket{v^i} = 0, i=0, 1, \\cdots m \\, \\text{with} \\; m \\leq dim(\\rho)\\}$$\n", - "\n", - "3. Additionally the vectors of the kernel will be chosen that conform a basis of this null space. \n", - "\n", - "$$\\braket{v^i}{v^j}= \\delta_{ij}$$\n", - "\n", - "4. The vectors belonging to the **Kernel** of $\\rho$ will satisfy following condition:\n", - "\n", - "$$\\rho \\ket{v^i} = 0 = \\ket{\\Psi}\\braket{\\Psi}{v^i} = 0 \\rightarrow \\braket{\\Psi}{v^i} = 0 \\tag{2}$$\n", - "\n", - "5. Now using the vector of the basis of the **Kernel** of $\\rho$ we can compute the correspondent projectors $h^i$:\n", - "\n", - "$$h^i = \\ket{v^i}\\bra{v^i}$$\n", - "\n", - "6. By the condition (2) we can write:\n", - "\n", - "$$h^i \\ket{\\Psi} = \\ket{v^i} \\braket{v^i}{\\Psi} = 0 \\tag{3}$$\n", - "\n", - "7. We can join all the projectors' terms for computing or desired parent Hamiltonian:\n", - "\n", - "$$H^{PH} = \\sum_{i=0}^{m} h^i \\tag{4}$$\n", - "\n", - "\n", - "By construction, this Hamiltonian verify the parent Hamiltonian property (1). \n", - "\n", - "In order to use the computed **parent Hamiltonian** $H^{PH}$ in a **VQE** step a mandatory step is decompose it in *n*-generalized Pauli matrices:\n", - "\n", - "$$H^{PH} = \\sum_{I=0}^{4^n-1} a_I \\sigma_{I}^n = \\sum_{i_0, i_1, \\cdots ,i_{n-1}=0}^{3} a_{i_0, i_1, \\cdots ,i_{n-1}} \\sigma_{i_0} \\otimes \\sigma_{i_1} \\cdots \\otimes \\sigma_{i_{n-1}} \\tag{5}$$\n", - "\n", - "The coefficients $a_I$ of the linear combination decomposition can be obtained by computing the Frobenius norm of the product of the $H^{PH}$ with the corresponding $\\sigma_I^n$ as can be seen in the following equation:\n", - "\n", - "$$a_I = \\frac{\\text{Tr}(H^{PH} \\sigma_I^n)}{2^n} \\tag{6}$$\n", - "\n", - "In the naive case, the generated Parent Hamiltonian will represent an all-to-all interaction between all the qubits of the ansatz.\n", - "\n", - "The **PH** class allows to computation of the naive parent Hamiltonian by invoking the **naive_ph** method. This method populates the following attributes:\n", - "\n", - "* *rho*: the density matrix of the input state\n", - "* *naive_parent_hamiltonian*: the parent Hamiltonian matrix (projector over null space)\n", - "* *pauli_strings*: list with the pauli strings obtained\n", - "* *pauli_coeficients*: list with the pauli coeficcient of the correspondient *pauli_strings*\n", - "* *qubits_list*: list with the qubits affected by the correspondient *pauli_strings* (will be all the qubits of the ansatz).\n", - "* *pauli_pdf*: Pandas DataFrame with the Pauli decomposition complete information. \n", - "\n", - "**BE AWARE**\n", - "\n", - "A pruning process was done over the Pauli decomposition. Only coefficients with absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpreted as zero and were removed (the associated Pauli strings were removed too).\n", - "\n", - "Additionally, results for naive computing will not be stored!!!" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "3fdeb6f0", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:47:44 PM-DEBUG: Computing Naive Parent Hamiltonian\n", - "01/16/2024 12:47:44 PM-DEBUG: Computing Density Matrix\n", - "01/16/2024 12:47:44 PM-DEBUG: Computing Projectors on Null space\n", - "01/16/2024 12:47:45 PM-DEBUG: Computing Decomposition in Pauli Matrices\n", - "01/16/2024 12:48:45 PM-INFO: Number Pauli Coefficients: 65536. Number of prunned coefs: 65536\n" - ] - } - ], - "source": [ - "ph_object.naive_ph()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "a28ec339", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(256, 256)" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Should be a 2^n x 2^n\n", - "ph_object.rho.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "2ea62925", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(256, 256)" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Naive Parent Hamiltonian\n", - "ph_object.naive_parent_hamiltonian.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "6431bacd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2.220446049250313e-16" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Float precision. Only higher absolute values were conserved\n", - "ph_object.float_precision" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "b7e57e21", - "metadata": { - "scrolled": true - }, - "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", - " \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", - "
PauliCoefficientsPauliStringsQbits
00.996094IIIIIIII[0, 1, 2, 3, 4, 5, 6, 7]
1-0.000036IIIIIIIX[0, 1, 2, 3, 4, 5, 6, 7]
2-0.00109IIIIIIIY[0, 1, 2, 3, 4, 5, 6, 7]
3-0.000839IIIIIIIZ[0, 1, 2, 3, 4, 5, 6, 7]
4-0.000036IIIIIIXI[0, 1, 2, 3, 4, 5, 6, 7]
............
65531-0.000008ZZZZZZYZ[0, 1, 2, 3, 4, 5, 6, 7]
65532-0.000067ZZZZZZZI[0, 1, 2, 3, 4, 5, 6, 7]
65533-0.00024ZZZZZZZX[0, 1, 2, 3, 4, 5, 6, 7]
65534-0.000008ZZZZZZZY[0, 1, 2, 3, 4, 5, 6, 7]
65535-0.000112ZZZZZZZZ[0, 1, 2, 3, 4, 5, 6, 7]
\n", - "

65536 rows × 3 columns

\n", - "
" - ], - "text/plain": [ - " PauliCoefficients PauliStrings Qbits\n", - "0 0.996094 IIIIIIII [0, 1, 2, 3, 4, 5, 6, 7]\n", - "1 -0.000036 IIIIIIIX [0, 1, 2, 3, 4, 5, 6, 7]\n", - "2 -0.00109 IIIIIIIY [0, 1, 2, 3, 4, 5, 6, 7]\n", - "3 -0.000839 IIIIIIIZ [0, 1, 2, 3, 4, 5, 6, 7]\n", - "4 -0.000036 IIIIIIXI [0, 1, 2, 3, 4, 5, 6, 7]\n", - "... ... ... ...\n", - "65531 -0.000008 ZZZZZZYZ [0, 1, 2, 3, 4, 5, 6, 7]\n", - "65532 -0.000067 ZZZZZZZI [0, 1, 2, 3, 4, 5, 6, 7]\n", - "65533 -0.00024 ZZZZZZZX [0, 1, 2, 3, 4, 5, 6, 7]\n", - "65534 -0.000008 ZZZZZZZY [0, 1, 2, 3, 4, 5, 6, 7]\n", - "65535 -0.000112 ZZZZZZZZ [0, 1, 2, 3, 4, 5, 6, 7]\n", - "\n", - "[65536 rows x 3 columns]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_object.pauli_pdf" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "d2fa156b", - "metadata": {}, - "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", - "
PauliCoefficientsPauliStringsQbits
1-0.000036IIIIIIIX[0, 1, 2, 3, 4, 5, 6, 7]
2-0.00109IIIIIIIY[0, 1, 2, 3, 4, 5, 6, 7]
3-0.000839IIIIIIIZ[0, 1, 2, 3, 4, 5, 6, 7]
4-0.000036IIIIIIXI[0, 1, 2, 3, 4, 5, 6, 7]
\n", - "
" - ], - "text/plain": [ - " PauliCoefficients PauliStrings Qbits\n", - "1 -0.000036 IIIIIIIX [0, 1, 2, 3, 4, 5, 6, 7]\n", - "2 -0.00109 IIIIIIIY [0, 1, 2, 3, 4, 5, 6, 7]\n", - "3 -0.000839 IIIIIIIZ [0, 1, 2, 3, 4, 5, 6, 7]\n", - "4 -0.000036 IIIIIIXI [0, 1, 2, 3, 4, 5, 6, 7]" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_object.pauli_pdf.iloc[1:5]" - ] - }, - { - "attachments": { - "image.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABmkAAAKqCAIAAABeti0dAAAgAElEQVR4AeydCVSUV5r3+bpPnznTM+f7Zpzu6ent6/l62nQ6mU5PukInYowaY4xGE01commNS9z3uBu3KO64IgoIKgoKAiIiKAqKsgkU+77vO8W+U8X9TtULty61UctbRVXxvydn5tZ9n/s8z/291QL/u9kQFBAAARAAARAAARAAARAAARAAARAAARAAARAAAVUEbFQ1og0EQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQIBAO8OXAARAAARAAARAAARAAARAAARAAARAAARAAARUE4B2ppoLWkEABEAABEAABEAABEAABEAABEAABEAABEAA2hm+AyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiCgmgC0M9Vc0AoCIAACIAACIAACIAACIAACIAACIAACIAAC0M7wHQABEAABEAABEAABEAABEAABEAABEAABEAAB1QSgnanmglYQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQgHaG7wAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIqCYA7Uw1F7SCAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAALQzfAdAAARAAARAAARAAARAAARAAARAAARAAARAQDUBaGequaAVBEAABEAABEAABEAABEAABEAABEAABEAABKCd4TsAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAqoJQDtTzQWtIAACIAACIAACIAACIAACIAACIAACIAACIADtDN8BEAABEAABEAABEAABEAABEAABEAABEAABEFBNANqZai5oBQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAFoZ/gOgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgIBqAtDOVHNBKwiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAhAO8N3AARAAARAAARAAARAAARAAARAAARAAARAAARUE4B2ppoLWkEABEAABEAABEAABEAABEAABEAABEAABEAA2hm+AyAAAiAAAiAAAiAAAiAAAiBghQSuVBL/eiscF4YEAiBgGgIf+235InBPS0+7acKZcxRoZ+b8dpAbCIAACIAACIAACIAACIAACOhD4GgJEQil//nU6dMdfUAABEY5gejKNBsHOxsHu63PL4xyFIQQ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AARAAARAAARAAARAAARAAARAAATslUBpey3VfRycHb9OuCitTO+Wx//w7DyawvOeHyc9zLN8Cl/EnpvlveVS7l3LuzarR/vRznJzc1ntrLm52azgYBwEQAAEQAAEQAAEQAAEQAAEQAAEQMA+CIRUJlPhycHZ0bc4UkJ5OaddZ4PfGnF8YHjy7UQSStDqodqPdtbY2MhqZ2VldrU/0Oq/KAgABEAABEAABEAABEAABEAABEAABOyVwEmlNys/RdakSyLTnsG+taEH2cgv5tjbni9b+BD2o52NjIyw2plSqbQFvogBBEAABEAABEAABEAABEAABEAABEDAlgk097YvCPicVaDqHkuglC2tsXC651oa9ss3NqY1FtoyZ+nGZlfa2ezZs6l8Fh8fL92vgshBAARAAARAAARAAARAAARAAARAAAQsQ8A99x5VoBycHV+6sdEyfk3x4lkQysb8WdTpUTJqikFCyMjoiIkW7HW6/Whn2dnZVDiTyWTt7e32+s2QFwiAAAiAAAiAAAiAAAiAAAiAAAiAgFgE2AsiHZwd3bJvi2XZTHb2xp+nwtnfH3/ZI/++6Y5uFkc4ODvmtpSbbsr+LNiPdtbf3798+XKZTLZs2bK8PCtcJ2F/vxzICARAAARAAARAAARAAARAAARAAATsnkB1Z+PTl5ZxatTf4txsOd+B4cF3AvdQ4ez1m9uym0tFCTinpeyzqNP9uGRAG0370c4IIf39/TU1NdrSxDMQAAEQAAEQAAEQAAEQAAEQAAEQAAEQ0E6gd6g/qiajoLVS+2vbeDowPPii1zoqnO2OPWsbcdl/FHalndn/50KGIAACIAACIAACIAACIAACIAACIAACU5JAcGUSJ5z9k8vrNwrDpyQD6yQN7cw63OEVBEAABEAABEAABEAABEAABEAABEAABAwisD3KZWP40dL2WoNmYbCJBKCdmQgQ00EABEAABEAABEAABEAABEAABEAABEAABOyWALQzu/20SAwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMBEAtDOTASI6SAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAnZLANqZ3X5aJAYCIAACIAACIAACIAACIAACIAACIAACIGAiAWhnJgLEdBAAARAAARAAARAAARAAARAAARAAARAAAbslAO3Mbj8tEgMBEAABEAABEAABEAABEAABEAABEAABEDCRALQzEwFiOgiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAgN0SgHZmt58WiYEACIAACIAACIAACIAACIAACIAACIAACJhIANqZiQAxHQRAAARAAARAAARAAARAAARAAARAAARAwG4JQDuz20+LxEAABEAABEAABEAABEAABEAABEAABEAABEwkAO3MRICYDgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgYLcEoJ3Z7adFYiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiYSgHZmIkBMBwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQsFsC0M7s9tMiMRAAARAAARAAARAAARAAARAAARAAARAAARMJQDszESCmgwAIgAAIgAAIgAAIgAAIgAAIgAAIgAAI2C0BaGd2+2mRGAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAgIkEoJ2ZCBDTQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAE7JYAtDO7/bRIDARAAARAAARAAARAAARAAARAAARAAARAwEQC0M5MBIjpIAACIAACIAACIAACIAACIAACIAACIAACdksA2pndflokBgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgYCKB/x941GrjSVbCawAAAABJRU5ErkJggg==" - } - }, - "cell_type": "markdown", - "id": "fd90f895", - "metadata": {}, - "source": [ - "### 2.2. Local Parent Hamiltonian\n", - "\n", - "The main problem of the naive parent Hamiltonian is that the number of Pauli terms will scale with $4^n$ where $n$ is the number of qubits of the ansatz. Even with a pruning process the naive procedure has a terrible computing performance. In the original paper, this issue was avoided by computing **local parent Hamiltonians** for each qubit of the ansatz. The main idea is that the local Hamiltonian for each qubit will affect only to the nearest qubits and the Pauli decomposition will be computationally affordable. \n", - "\n", - "This situation is depicted in the following figure:\n", - "\n", - "\n", - "![image.png](attachment:image.png)\n", - "\n", - "\n", - "As can be seen, each qubit will have its own Hamiltonian that affects only to qubits near to it. For computing the local parent Hamiltonian following ingredients are needed:\n", - "\n", - "1. The complete state of the ansatz should be computed and organized as a *n*-rank tensor:\n", - "\n", - "$$\\ket{\\Psi} = \\Psi_{i_0 i_1 \\cdots i_{n-1}} \\ket{i_0 i_1 \\cdots i_{n-1}}$$\n", - "\n", - "2. Computation of the reduced density matrix for $m$ consecutive qubits from a fixed qubit $i_k$: $\\rho_{k}^m$. All the qubits except the consecutive set of qubits, $\\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}$, should be traced out:\n", - "\n", - "$$\\rho_{k}^m = \\text{Tr}_{i_l \\notin \\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}} (\\rho) = \n", - " \\rho_{i_{k} i_{k+1} \\cdots i_{k+m}}^{j_{k} j_{k+1} \\cdots j_{k+m}} = \\\\\n", - " =\\Psi_{\\color{red}{i_0i_1} \\cdots i_{k} i_{k+1} \\cdots i_{k+m} \\color{red}{i_{k+m+1} \\cdots i_{n-1}}}\n", - " \\Psi^{*\\;\\color{red}{i_0i_1}\\cdots j_{k} j_{k+1} \\cdots j_{k+m} \\color{red}{i_{k+m+1} \\cdots i_{n-1}}}$$\n", - "\n", - "\n", - "The procedure is the following: for each qubit $i_j$ of the ansatz, begining with $j=0$, the nex steps should be exectured by starting with $m_j=1$:\n", - "\n", - "1. Compute the reduced density matrix for qubit $i_j$ and $m_j$, $\\rho_{j}^{m_j}$\n", - "2. Compute the **rank** of the reduced density matrix $\\rho_{j}^{m_j}$: $rank(\\rho_{j}^{m_j})$.\n", - "3. Determine if the Kernel of the reduced density matrix can be computed:\n", - " 1. If $dim(\\rho_{j}^{m_j}) = rank(\\rho_{j}^{m_j})$, then, the Kernel cannot be computed. Go to step 1 with $m_j = m_j+1$.\n", - " 2. If $dim(\\rho_{j}^{m_j}) > rank(\\rho_{j}^{m_j})$, then, the Kernel can be computed go to step 4.\n", - "4. Compute the Kernel of the reduced density matrix, $\\text{Kernel}(\\rho_{j}^{m_j})$\n", - "5. Compute the corresponding projectors from the computed Kernel and sum them all to get the **local parent Hamiltonian**: $H_{j}^{m_j}$.\n", - "6. Compute the linear combination decomposition of $H_{j}^{m_j}$ in the basis of $m_j$-generalized Pauli matrices. For a $H_{j}^{m_j}$, a list of $4^{m_j}$ tuples $(\\sigma_I^{j, m_j}, a_I^{j, m_j})$ should be obtained, where $\\sigma_I^{j, m_j}$ are all the $m_j$ generalized Pauli matrices and $a_I^{j, m_j}$, the corresponding decomposition coefficients ($I=0, 1, \\cdots 4^{m_j}-1$)\n", - "7. Repeat the complete process for qubit, $i_{j+1}$ (setting the corresponding $m_{j+1} = 1$) until all qubits are processed.\n", - "\n", - "\n", - "The **PH** class allows to computation of the local Parent Hamiltonian by invoking the **local_ph** method. The following attributes will be populated by this method:\n", - "\n", - "* *reduced_rho*: The reduced local density matrices for each qubit (all the $\\rho_{k}^m$).\n", - "* *local_free_qubits*: the qubits affected for each reduced local density matrices (a consecutive set of qubits: $\\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}$)\n", - "* *local_parent_hamiltonians*: Local parent hamiltonian matrix for each qubit ($H_{j}^{m_j}$)\n", - "* *pauli_strings*: pauli strings decomposition of the local Parent Hamiltonian ($\\sigma_I^{j, m_j}$)\n", - "* *pauli_coeficients*: pauli coeficients for each correspondient Pauli string ($a_I^{j, m_j}$)\n", - "* *qubits_list*: list of affected qubits for each corresponding Pauli string ($\\{i_{j}, i_{j+1}, \\cdots, i_{j+m}\\}$)\n", - "* *pauli_pdf*: Pandas DataFrame with the Pauli decomposition complete information. \n", - "\n", - "**BE AWARE**\n", - "\n", - "A pruning process was done over the Pauli decomposition. Only coefficients with absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpreted as zero and were removed (the associated Pauli strings were removed too)." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "732b3a83", - "metadata": {}, - "outputs": [], - "source": [ - "ph_conf = {\n", - " \"filename\": folder + filename,\n", - " \"save\": True \n", - "}\n", - "ph_object = PH(amplitudes, **ph_conf)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "d32cf1dc", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:53:17 PM-DEBUG: Computing Local Parent Hamiltonian\n", - "01/16/2024 12:53:17 PM-DEBUG: Computing local reduced density matrix: qb_pos: 0\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1, 2]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [3, 4, 5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1, 2, 3]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [4, 5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1, 2, 3, 4]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:17 PM-DEBUG: \t Grouped Qubits: [0, 1, 2, 3, 4]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:17 PM-DEBUG: Computing Null Projectors: qb_pos: 0\n", - "01/16/2024 12:53:17 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 0\n", - "01/16/2024 12:53:17 PM-DEBUG: Computing local reduced density matrix: qb_pos: 1\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 3, 4, 5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2, 3]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 4, 5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2, 3, 4]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 5, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2, 3, 4, 5]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 6, 7]\n", - "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:17 PM-DEBUG: \t Grouped Qubits: [1, 2, 3, 4, 5]\n", - "01/16/2024 12:53:17 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:17 PM-DEBUG: Computing Null Projectors: qb_pos: 1\n", - "01/16/2024 12:53:17 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 1\n", - "01/16/2024 12:53:18 PM-DEBUG: Computing local reduced density matrix: qb_pos: 2\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 4, 5, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3, 4]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 5, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3, 4, 5]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3, 4, 5, 6]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:18 PM-DEBUG: \t Grouped Qubits: [2, 3, 4, 5, 6]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:18 PM-DEBUG: Computing Null Projectors: qb_pos: 2\n", - "01/16/2024 12:53:18 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 2\n", - "01/16/2024 12:53:18 PM-DEBUG: Computing local reduced density matrix: qb_pos: 3\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2, 5, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4, 5]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4, 5, 6]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4, 5, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2]\n", - "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:18 PM-DEBUG: \t Grouped Qubits: [3, 4, 5, 6, 7]\n", - "01/16/2024 12:53:18 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:18 PM-DEBUG: Computing Null Projectors: qb_pos: 3\n", - "01/16/2024 12:53:18 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 3\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing local reduced density matrix: qb_pos: 4\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 6, 7]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5, 6]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 7]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5, 6, 7]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5, 6, 7, 0]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [1, 2, 3]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:19 PM-DEBUG: \t Grouped Qubits: [4, 5, 6, 7, 0]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing Null Projectors: qb_pos: 4\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 4\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing local reduced density matrix: qb_pos: 5\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 4, 7]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6, 7]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 4]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6, 7, 0]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [1, 2, 3, 4]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6, 7, 0, 1]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [2, 3, 4]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:19 PM-DEBUG: \t Grouped Qubits: [5, 6, 7, 0, 1]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing Null Projectors: qb_pos: 5\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 5\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing local reduced density matrix: qb_pos: 6\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 4, 5]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7, 0]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [1, 2, 3, 4, 5]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7, 0, 1]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7, 0, 1, 2]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [3, 4, 5]\n", - "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:19 PM-DEBUG: \t Grouped Qubits: [6, 7, 0, 1, 2]\n", - "01/16/2024 12:53:19 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing Null Projectors: qb_pos: 6\n", - "01/16/2024 12:53:19 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 6\n", - "01/16/2024 12:53:20 PM-DEBUG: Computing local reduced density matrix: qb_pos: 7\n", - "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0]\n", - "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [1, 2, 3, 4, 5, 6]\n", - "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:53:20 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:53:20 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0, 1]\n", - "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5, 6]\n", - "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:53:20 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:53:20 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0, 1, 2]\n", - "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [3, 4, 5, 6]\n", - "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:53:20 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:53:20 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0, 1, 2, 3]\n", - "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [4, 5, 6]\n", - "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:53:20 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:53:20 PM-DEBUG: \t Grouped Qubits: [7, 0, 1, 2, 3]\n", - "01/16/2024 12:53:20 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:53:20 PM-DEBUG: Computing Null Projectors: qb_pos: 7\n", - "01/16/2024 12:53:20 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 7\n", - "01/16/2024 12:53:21 PM-INFO: Number Pauli Coefficients: 8192. Number of prunned coefs: 8192\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 2.41 s, sys: 460 ms, total: 2.87 s\n", - "Wall time: 3.75 s\n" - ] - } - ], - "source": [ - "%%time\n", - "ph_object.local_ph()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "61881c0d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "8" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Number of reduced density matrix. MUST BE one for each qubit\n", - "len(ph_object.reduced_rho)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "6905f637", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(32, 32)" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_object.reduced_rho[5].shape" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "160d8563", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "8" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Affected qubits for each reduced density matrix. MUST BE one for each qubit\n", - "len(ph_object.local_free_qubits)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "id": "2a072459", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[[0, 1, 2, 3, 4],\n", - " [1, 2, 3, 4, 5],\n", - " [2, 3, 4, 5, 6],\n", - " [3, 4, 5, 6, 7],\n", - " [4, 5, 6, 7, 0],\n", - " [5, 6, 7, 0, 1],\n", - " [6, 7, 0, 1, 2],\n", - " [7, 0, 1, 2, 3]]" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_object.local_free_qubits" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "022b6ece", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "8" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# The local parent hamiltonians for each qubit\n", - "len(ph_object.local_parent_hamiltonians)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "9c020d93", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(32, 32)" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_object.local_parent_hamiltonians[0].shape" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "fb070de6", - "metadata": {}, - "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", - " \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", - "
PauliCoefficientsPauliStringsQbits
00.75IIIII[0, 1, 2, 3, 4]
1-0.008964IIIIX[0, 1, 2, 3, 4]
2-0.023025IIIIY[0, 1, 2, 3, 4]
3-0.000654IIIIZ[0, 1, 2, 3, 4]
4-0.002252IIIXI[0, 1, 2, 3, 4]
............
81870.00837ZZZYZ[7, 0, 1, 2, 3]
8188-0.0091ZZZZI[7, 0, 1, 2, 3]
81890.002337ZZZZX[7, 0, 1, 2, 3]
81900.000079ZZZZY[7, 0, 1, 2, 3]
8191-0.015186ZZZZZ[7, 0, 1, 2, 3]
\n", - "

8192 rows × 3 columns

\n", - "
" - ], - "text/plain": [ - " PauliCoefficients PauliStrings Qbits\n", - "0 0.75 IIIII [0, 1, 2, 3, 4]\n", - "1 -0.008964 IIIIX [0, 1, 2, 3, 4]\n", - "2 -0.023025 IIIIY [0, 1, 2, 3, 4]\n", - "3 -0.000654 IIIIZ [0, 1, 2, 3, 4]\n", - "4 -0.002252 IIIXI [0, 1, 2, 3, 4]\n", - "... ... ... ...\n", - "8187 0.00837 ZZZYZ [7, 0, 1, 2, 3]\n", - "8188 -0.0091 ZZZZI [7, 0, 1, 2, 3]\n", - "8189 0.002337 ZZZZX [7, 0, 1, 2, 3]\n", - "8190 0.000079 ZZZZY [7, 0, 1, 2, 3]\n", - "8191 -0.015186 ZZZZZ [7, 0, 1, 2, 3]\n", - "\n", - "[8192 rows x 3 columns]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_object.pauli_pdf" - ] - }, - { - "cell_type": "markdown", - "id": "bb27d645", - "metadata": {}, - "source": [ - "Due to the symmetries of the **ansatz_qlm_01** the obtained reduced density matrix is equal for all the qubits of the ansatz. But this is not necessary true for another type of ansatzes" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "fbe13f33", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.isclose(ph_object.reduced_rho[0], ph_object.reduced_rho[1]).all()" - ] - }, - { - "cell_type": "markdown", - "id": "acf74ac1", - "metadata": {}, - "source": [ - "### 2.3 Translational invariant of the ansatz\n", - "\n", - "If the ansatz is translational invariant then the computations of the reduced density matrices can be obtained only **for the first qubit** and then used the same reduced density matrix for the other qubits. In this case, the time performance of the computation can be boosted. For doing this kind of computation we have to initialize the **PH** class providing the input *t_invariant* with a **True**. \n", - "\n", - "In this case *reduced_rho*, *local_free_qubits* and *local_parent_hamiltonians* will have only one element.\n", - "\n", - "This apply for the other attributes *pauli_matrices*, *pauli_coeficients*, *qubits_list* and *pauli_pdf*. \n", - "\n", - "\n", - "**Now we are going to use the same ansatz for computing the local Parent Hamiltonian but we are going to set t_inv to True indicating that the ansatz is translational invariant. The result MUST be the same but the number of Pauli strings will be lower because only computations on the first qubit were done. The complete local Parent Hamiltonian will need to replicate all the Pauli strings (and coefficients) for all the qubits**\n" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "68fda1c2", - "metadata": {}, - "outputs": [], - "source": [ - "#setting translational invarinat\n", - "ph_conf = {\n", - " \"filename\": folder + filename+\"_invariant\",\n", - " \"save\": True \n", - "}\n", - "ph_object_in = PH(amplitudes, t_invariant=True, **ph_conf)" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "id": "f9da1502", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:55:11 PM-DEBUG: Computing Local Parent Hamiltonian\n", - "01/16/2024 12:55:11 PM-DEBUG: Computing local reduced density matrix: qb_pos: 0\n", - "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1]\n", - "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5, 6, 7]\n", - "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (4, 64)\n", - "01/16/2024 12:55:11 PM-DEBUG: \t rank: 4. Dimension: 4\n", - "01/16/2024 12:55:11 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1, 2]\n", - "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [3, 4, 5, 6, 7]\n", - "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (8, 32)\n", - "01/16/2024 12:55:11 PM-DEBUG: \t rank: 8. Dimension: 8\n", - "01/16/2024 12:55:11 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1, 2, 3]\n", - "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [4, 5, 6, 7]\n", - "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (16, 16)\n", - "01/16/2024 12:55:11 PM-DEBUG: \t rank: 16. Dimension: 16\n", - "01/16/2024 12:55:11 PM-DEBUG: \t STOP: True\n", - "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1, 2, 3, 4]\n", - "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [5, 6, 7]\n", - "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (32, 8)\n", - "01/16/2024 12:55:11 PM-DEBUG: \t rank: 8. Dimension: 32\n", - "01/16/2024 12:55:11 PM-DEBUG: \t Grouped Qubits: [0, 1, 2, 3, 4]\n", - "01/16/2024 12:55:11 PM-DEBUG: \t STOP: False\n", - "01/16/2024 12:55:11 PM-DEBUG: Computing Null Projectors: qb_pos: 0\n", - "01/16/2024 12:55:11 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 0\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Invariant Ansatz: Only First Qubit computations\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:55:11 PM-INFO: Number Pauli Coefficients: 1024. Number of prunned coefs: 1024\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 240 ms, sys: 48.6 ms, total: 289 ms\n", - "Wall time: 349 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "ph_object_in.local_ph()" - ] - }, - { - "cell_type": "markdown", - "id": "e186ed1f", - "metadata": {}, - "source": [ - "The obtained reduced density matrices, and the affected qubits, will be equal to the obtained matrices with *t_invariant=False*" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "6fe27bb9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Number of reduced density matrix. MUST BE only one\n", - "len(ph_object_in.reduced_rho)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "b43d0ae3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Affected qubits for each reduced density matrix. MUST BE only one\n", - "len(ph_object_in.local_free_qubits)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "7fa03701", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(ph_object_in.local_parent_hamiltonians)" - ] - }, - { - "cell_type": "markdown", - "id": "4e9c2c9f", - "metadata": {}, - "source": [ - "Now we compare the number of Pauli coeficients when t_inv was set to False (ph_object) and when was set to True (ph_object_in)" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "3b5151a8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(8192, 1024)" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(ph_object.pauli_coeficients),len(ph_object_in.pauli_coeficients)" - ] - }, - { - "cell_type": "markdown", - "id": "04036847", - "metadata": {}, - "source": [ - "However the the Pauli decomposition sould be the same for the first qubit" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "0491436d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Testing Pauli coefficients for the first qubit for t_inv set to False and t_inv set to True.\n", - "np.isclose(\n", - " ph_object.pauli_pdf[:len(ph_object_in.pauli_strings)][\"PauliCoefficients\"].astype(float),\n", - " ph_object_in.pauli_pdf[\"PauliCoefficients\"].astype(float)\n", - ").all()" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "ff8ef35b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Testing all the Pauli strings for the first qubit for t_inv set to False and t_inv set to True.\n", - "(ph_object.pauli_pdf[:len(ph_object_in.pauli_strings)]['PauliStrings'] == ph_object_in.pauli_pdf[\"PauliStrings\"]).all()" - ] - }, - { - "cell_type": "markdown", - "id": "eeb639aa", - "metadata": {}, - "source": [ - "## 3. Example of use with more Ansatzes \n", - "\n", - "The use of the **PH** class is independent of the ansatz (only if the ansatz is invariant can be provided to the class to boost performance, but this is not mandatory!!). The only mandatory input is the complete amplitudes of the state of the ansatz. \n", - "\n", - "So any ansatz can be used by the class." - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "21b9c51a", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:55:55 PM-INFO: Generating circuit.\n", - "01/16/2024 12:55:55 PM-INFO: Instantiating a Linker.\n", - "01/16/2024 12:55:55 PM-INFO: Linking libraries to circuit.\n", - "01/16/2024 12:55:55 PM-INFO: Found 0 ancillae\n" - ] - }, - { - "data": { - "text/html": [ - "Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10Q11RX [theta_0]RX [theta_1]RX [theta_2]RX [theta_3]RX [theta_4]RX [theta_5]RX [theta_6]RX [theta_7]RX [theta_8]RX [theta_9]RX [theta_10]RX [theta_11]RZ [theta_12]RZ [theta_13]RZ [theta_14]RZ [theta_15]RZ [theta_16]RZ [theta_17]RZ [theta_18]RZ [theta_19]RZ [theta_20]RZ [theta_21]RZ [theta_22]RZ [theta_23]RX [theta_24]RX [theta_25]RX [theta_26]RX [theta_27]RX [theta_28]RX [theta_29]RX [theta_30]RX [theta_31]RX [theta_32]RX [theta_33]RX [theta_34]RX [theta_35]RZ [theta_36]RZ [theta_37]RZ [theta_38]RZ [theta_39]RZ [theta_40]RZ [theta_41]RZ [theta_42]RZ [theta_43]RZ [theta_44]RZ [theta_45]RZ [theta_46]RZ [theta_47]RX [theta_48]RX [theta_49]RX [theta_50]RX [theta_51]RX [theta_52]RX [theta_53]RX [theta_54]RX [theta_55]RX [theta_56]RX [theta_57]RX [theta_58]RX [theta_59]RZ [theta_60]RZ [theta_61]RZ [theta_62]RZ [theta_63]RZ [theta_64]RZ [theta_65]RZ [theta_66]RZ [theta_67]RZ [theta_68]RZ [theta_69]RZ [theta_70]RZ [theta_71]" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:55:56 PM-INFO: Found 0 ancillae\n", - "01/16/2024 12:55:56 PM-INFO: New batch of length 1 submitted\n", - "01/16/2024 12:55:56 PM-DEBUG: Batch(jobs=[Job(circuit=Circuit(ops=[Op(gate='_0', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_6', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_7', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_8', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_9', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_10', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_11', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[11, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_12', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_13', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_14', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_15', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_16', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_17', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_18', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_19', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_20', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_21', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_22', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_23', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='_24', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_25', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_26', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_27', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_28', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_29', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_30', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_31', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_32', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_33', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_34', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_35', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[11, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_36', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_37', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_38', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_39', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_40', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_41', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_42', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_43', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_44', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_45', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_46', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_47', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='_48', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_49', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_50', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_51', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_52', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_53', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_54', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_55', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_56', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_57', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_58', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_59', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[11, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_60', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_61', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_62', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_63', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_64', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_65', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_66', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_67', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_68', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_69', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_70', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_71', qbits=[11], type=0, cbits=None, formula=None, remap=None)], name=None, gateDic={'X': GateDefinition(name='X', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='X', parameters=[]), nbctrls=None, circuit_implementation=None), 'Y': GateDefinition(name='Y', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.0, im=-1.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Y', parameters=[]), nbctrls=None, circuit_implementation=None), 'Z': GateDefinition(name='Z', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Z', parameters=[]), nbctrls=None, circuit_implementation=None), 'H': GateDefinition(name='H', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=-0.7071067811865475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='H', parameters=[]), nbctrls=None, circuit_implementation=None), 'CNOT': GateDefinition(name='CNOT', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='X', syntax=GSyntax(name='CNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'CSIGN': GateDefinition(name='CSIGN', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='Z', syntax=GSyntax(name='CSIGN', parameters=[]), nbctrls=1, circuit_implementation=None), 'ISWAP': GateDefinition(name='ISWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='ISWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'SQRTSWAP': GateDefinition(name='SQRTSWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SQRTSWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'I': GateDefinition(name='I', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='I', parameters=[]), nbctrls=None, circuit_implementation=None), 'SWAP': GateDefinition(name='SWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'CCNOT': GateDefinition(name='CCNOT', arity=3, matrix=Matrix(nRows=8, nCols=8, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='CNOT', syntax=GSyntax(name='CCNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'S': GateDefinition(name='S', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='S', parameters=[]), nbctrls=None, circuit_implementation=None), 'T': GateDefinition(name='T', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7071067811865476, im=0.7071067811865475)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='T', parameters=[]), nbctrls=None, circuit_implementation=None), '_0': GateDefinition(name='_0', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9827211546029561, im=0.0), ComplexNumber(re=0.0, im=-0.18509222645976522), ComplexNumber(re=0.0, im=-0.18509222645976522), ComplexNumber(re=-0.9827211546029561, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.9108538880850165, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_1': GateDefinition(name='_1', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.0441729189528509, im=0.0), ComplexNumber(re=0.0, im=-0.9990239002302121), ComplexNumber(re=0.0, im=-0.9990239002302121), ComplexNumber(re=-0.0441729189528509, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.2299672475073167, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_2': GateDefinition(name='_2', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.44619289115503774, im=0.0), ComplexNumber(re=0.0, im=-0.8949368155812502), ComplexNumber(re=0.0, im=-0.8949368155812502), ComplexNumber(re=-0.44619289115503774, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.066606157573559, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_3': GateDefinition(name='_3', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5226317998780633, im=0.0), ComplexNumber(re=0.0, im=-0.8525585034214461), ComplexNumber(re=0.0, im=-0.8525585034214461), ComplexNumber(re=-0.5226317998780633, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.241462621088741, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_4': GateDefinition(name='_4', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.29561145215555407, im=0.0), ComplexNumber(re=0.0, im=-0.9553082588120363), ComplexNumber(re=0.0, im=-0.9553082588120363), ComplexNumber(re=-0.29561145215555407, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.741783679146467, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_5': GateDefinition(name='_5', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9992351104969805, im=0.0), ComplexNumber(re=0.0, im=-0.039104909539431854), ComplexNumber(re=0.0, im=-0.039104909539431854), ComplexNumber(re=0.9992351104969805, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.07822976580502919, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_6': GateDefinition(name='_6', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7951872697593894, im=0.0), ComplexNumber(re=0.0, im=-0.6063639220901983), ComplexNumber(re=0.0, im=-0.6063639220901983), ComplexNumber(re=-0.7951872697593894, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.980225368643198, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_7': GateDefinition(name='_7', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5283025588593121, im=0.0), ComplexNumber(re=0.0, im=-0.8490561855982813), ComplexNumber(re=0.0, im=-0.8490561855982813), ComplexNumber(re=-0.5283025588593121, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.254792872701453, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_8': GateDefinition(name='_8', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8407597743699485, im=0.0), ComplexNumber(re=0.0, im=-0.541408350324774), ComplexNumber(re=0.0, im=-0.541408350324774), ComplexNumber(re=-0.8407597743699485, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.13896270691637, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_9': GateDefinition(name='_9', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9476454795910332, im=0.0), ComplexNumber(re=0.0, im=-0.31932435705827494), ComplexNumber(re=0.0, im=-0.31932435705827494), ComplexNumber(re=0.9476454795910332, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6500328628342616, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_10': GateDefinition(name='_10', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.11608600676640758, im=0.0), ComplexNumber(re=0.0, im=-0.9932391650720533), ComplexNumber(re=0.0, im=-0.9932391650720533), ComplexNumber(re=0.11608600676640758, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.908895995415293, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_11': GateDefinition(name='_11', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.899797559364478, im=0.0), ComplexNumber(re=0.0, im=-0.4363076347735949), ComplexNumber(re=0.0, im=-0.4363076347735949), ComplexNumber(re=-0.899797559364478, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.380203267144107, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_12': GateDefinition(name='_12', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6197239224960226, im=-0.7848198900933537), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.6197239224960226, im=0.7848198900933537)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.478374418643988, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_13': GateDefinition(name='_13', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9442904907598172, im=-0.32911315540492075), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9442904907598172, im=0.32911315540492075)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6707285124825335, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_14': GateDefinition(name='_14', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6976103426140422, im=-0.7164773617344227), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6976103426140422, im=0.7164773617344227)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.597479112666588, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_15': GateDefinition(name='_15', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5224260068322144, im=-0.852684623636047), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.5224260068322144, im=0.852684623636047)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.240979890992171, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_16': GateDefinition(name='_16', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.77437024715818, im=-0.6327327400381453), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.77437024715818, im=0.6327327400381453)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.913031048567518, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_17': GateDefinition(name='_17', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9996494606262122, im=-0.026475571187852178), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.9996494606262122, im=0.026475571187852178)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.2302279767827855, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_18': GateDefinition(name='_18', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.052763708370109165, im=-0.9986070253503297), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.052763708370109165, im=0.9986070253503297)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.2471690966535243, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_19': GateDefinition(name='_19', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9951010241620493, im=-0.098863298102181), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9951010241620493, im=0.098863298102181)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.19805011619897805, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_20': GateDefinition(name='_20', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3840839624775033, im=-0.9232981694813327), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.3840839624775033, im=0.9232981694813327)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.3531616908194857, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_21': GateDefinition(name='_21', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9111755907905702, im=-0.41201825535703557), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9111755907905702, im=0.41201825535703557)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.8493359148160179, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_22': GateDefinition(name='_22', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.17674282638916314, im=-0.9842570666853097), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.17674282638916314, im=0.9842570666853097)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.4969450338038652, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_23': GateDefinition(name='_23', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8173881744457135, im=-0.5760872957081277), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8173881744457135, im=0.5760872957081277)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.055317841644587, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_24': GateDefinition(name='_24', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8180833550797075, im=0.0), ComplexNumber(re=0.0, im=-0.5750996645291399), ComplexNumber(re=0.0, im=-0.5750996645291399), ComplexNumber(re=-0.8180833550797075, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.057733367787608, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_25': GateDefinition(name='_25', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8005621899531382, im=0.0), ComplexNumber(re=0.0, im=-0.5992496808655267), ComplexNumber(re=0.0, im=-0.5992496808655267), ComplexNumber(re=-0.8005621899531382, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.99805822842666, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_26': GateDefinition(name='_26', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7488794783466803, im=0.0), ComplexNumber(re=0.0, im=-0.662706214631494), ComplexNumber(re=0.0, im=-0.662706214631494), ComplexNumber(re=0.7488794783466803, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.4488533883574575, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_27': GateDefinition(name='_27', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.911901798264727, im=0.0), ComplexNumber(re=0.0, im=-0.4104084676533335), ComplexNumber(re=0.0, im=-0.4104084676533335), ComplexNumber(re=-0.911901798264727, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.437381414196505, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_28': GateDefinition(name='_28', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.02586546289075172, im=0.0), ComplexNumber(re=0.0, im=-0.9996654329471671), ComplexNumber(re=0.0, im=-0.9996654329471671), ComplexNumber(re=0.02586546289075172, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.089855957881652, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_29': GateDefinition(name='_29', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6101639268598295, im=0.0), ComplexNumber(re=0.0, im=-0.7922751935779592), ComplexNumber(re=0.0, im=-0.7922751935779592), ComplexNumber(re=-0.6101639268598295, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.454127615408423, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_30': GateDefinition(name='_30', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9999000792077098, im=0.0), ComplexNumber(re=0.0, im=-0.014136180545523317), ComplexNumber(re=0.0, im=-0.014136180545523317), ComplexNumber(re=0.9999000792077098, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.028273302794258413, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_31': GateDefinition(name='_31', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9692431838236658, im=0.0), ComplexNumber(re=0.0, im=-0.2461049585265674), ComplexNumber(re=0.0, im=-0.2461049585265674), ComplexNumber(re=0.9692431838236658, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.4973190996022366, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_32': GateDefinition(name='_32', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.37420190262146413, im=0.0), ComplexNumber(re=0.0, im=-0.927347257544053), ComplexNumber(re=0.0, im=-0.927347257544053), ComplexNumber(re=0.37420190262146413, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.374520651946741, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_33': GateDefinition(name='_33', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7221316495648751, im=0.0), ComplexNumber(re=0.0, im=-0.6917556510045382), ComplexNumber(re=0.0, im=-0.6917556510045382), ComplexNumber(re=0.7221316495648751, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.5278348738460024, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_34': GateDefinition(name='_34', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9115594091057057, im=0.0), ComplexNumber(re=0.0, im=-0.4111683884625091), ComplexNumber(re=0.0, im=-0.4111683884625091), ComplexNumber(re=-0.9115594091057057, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.435714428878451, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_35': GateDefinition(name='_35', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7584148751575955, im=0.0), ComplexNumber(re=0.0, im=-0.6517721052175284), ComplexNumber(re=0.0, im=-0.6517721052175284), ComplexNumber(re=0.7584148751575955, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.4198373767163093, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_36': GateDefinition(name='_36', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8526029940359767, im=-0.5225592163199193), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.8526029940359767, im=0.5225592163199193)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.0996996996194337, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_37': GateDefinition(name='_37', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6840132447545066, im=-0.7294695888112207), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6840132447545066, im=0.7294695888112207)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.635092379431393, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_38': GateDefinition(name='_38', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9845819674337626, im=-0.17492383886783808), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.9845819674337626, im=0.17492383886783808)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.931528479465762, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_39': GateDefinition(name='_39', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8747101569423469, im=-0.48464640857216185), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8747101569423469, im=0.48464640857216185)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.271267539187619, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_40': GateDefinition(name='_40', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8700746977524452, im=-0.4929198924074694), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.8700746977524452, im=0.4929198924074694)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.0308849702899339, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_41': GateDefinition(name='_41', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7141452430423936, im=-0.699997551309946), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.7141452430423936, im=0.699997551309946)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.732397171650385, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_42': GateDefinition(name='_42', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8253426389874685, im=-0.5646322061919611), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8253426389874685, im=0.5646322061919611)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.083210187141626, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_43': GateDefinition(name='_43', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.46868924861038963, im=-0.8833631123366135), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.46868924861038963, im=0.8833631123366135)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.165979906698012, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_44': GateDefinition(name='_44', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.21127581321200653, im=-0.9774264835534207), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.21127581321200653, im=0.9774264835534207)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.567352761525573, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_45': GateDefinition(name='_45', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.10809285137637645, im=-0.9941408026438331), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.10809285137637645, im=0.9941408026438331)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.924983733886742, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_46': GateDefinition(name='_46', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6272458951693866, im=-0.7788212805215038), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6272458951693866, im=0.7788212805215038)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7855688404427819, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_47': GateDefinition(name='_47', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4876612505844185, im=-0.8730329344752356), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.4876612505844185, im=0.8730329344752356)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.1227749263606825, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_48': GateDefinition(name='_48', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8207730545014855, im=0.0), ComplexNumber(re=0.0, im=-0.5712544030502535), ComplexNumber(re=0.0, im=-0.5712544030502535), ComplexNumber(re=0.8207730545014855, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.2160667256534976, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_49': GateDefinition(name='_49', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8751685233982871, im=0.0), ComplexNumber(re=0.0, im=-0.4838182051689061), ComplexNumber(re=0.0, im=-0.4838182051689061), ComplexNumber(re=-0.8751685233982871, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.273160706641385, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_50': GateDefinition(name='_50', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.532639993238475, im=0.0), ComplexNumber(re=0.0, im=-0.8463419153054617), ComplexNumber(re=0.0, im=-0.8463419153054617), ComplexNumber(re=-0.532639993238475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.265026280215058, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_51': GateDefinition(name='_51', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9514103165499322, im=0.0), ComplexNumber(re=0.0, im=-0.3079259806550231), ComplexNumber(re=0.0, im=-0.3079259806550231), ComplexNumber(re=-0.9514103165499322, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.657160668962643, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_52': GateDefinition(name='_52', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.08362799383560192, im=0.0), ComplexNumber(re=0.0, im=-0.9964970439730529), ComplexNumber(re=0.0, im=-0.9964970439730529), ComplexNumber(re=0.08362799383560192, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.974141095070687, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_53': GateDefinition(name='_53', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.018437117833248837, im=0.0), ComplexNumber(re=0.0, im=-0.9998300218967237), ComplexNumber(re=0.0, im=-0.9998300218967237), ComplexNumber(re=-0.018437117833248837, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.178468978669233, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_54': GateDefinition(name='_54', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9932451108819205, im=0.0), ComplexNumber(re=0.0, im=-0.11603512273945975), ComplexNumber(re=0.0, im=-0.11603512273945975), ComplexNumber(re=0.9932451108819205, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.23259419770692405, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_55': GateDefinition(name='_55', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7787014974547446, im=0.0), ComplexNumber(re=0.0, im=-0.6273945950211385), ComplexNumber(re=0.0, im=-0.6273945950211385), ComplexNumber(re=0.7787014974547446, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.3564057012411126, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_56': GateDefinition(name='_56', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3864492866315284, im=0.0), ComplexNumber(re=0.0, im=-0.9223106574587452), ComplexNumber(re=0.0, im=-0.9223106574587452), ComplexNumber(re=0.3864492866315284, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.3480353112216097, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_57': GateDefinition(name='_57', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9562651604327544, im=0.0), ComplexNumber(re=0.0, im=-0.292501184514727), ComplexNumber(re=0.0, im=-0.292501184514727), ComplexNumber(re=-0.9562651604327544, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.689502563993549, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_58': GateDefinition(name='_58', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9368792557913659, im=0.0), ComplexNumber(re=0.0, im=-0.349653056711673), ComplexNumber(re=0.0, im=-0.349653056711673), ComplexNumber(re=0.9368792557913659, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.7144015200096169, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_59': GateDefinition(name='_59', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6264988631523084, im=0.0), ComplexNumber(re=0.0, im=-0.7794223338273449), ComplexNumber(re=0.0, im=-0.7794223338273449), ComplexNumber(re=0.6264988631523084, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7874864660385974, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_60': GateDefinition(name='_60', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4978070017180662, im=-0.8672878351738074), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.4978070017180662, im=0.8672878351738074)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.099455923628504, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_61': GateDefinition(name='_61', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6491241433002811, im=-0.7606824873655736), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.6491241433002811, im=0.7606824873655736)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.554457576003495, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_62': GateDefinition(name='_62', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.5844046859317563, im=-0.8114623608406032), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5844046859317563, im=0.8114623608406032)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.8933001883271994, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_63': GateDefinition(name='_63', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6377666813509285, im=-0.7702296152178408), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6377666813509285, im=0.7702296152178408)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7584022071263359, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_64': GateDefinition(name='_64', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.15492137730094277, im=-0.9879268023771695), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.15492137730094277, im=0.9879268023771695)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.452688392231387, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_65': GateDefinition(name='_65', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.30937596282884866, im=-0.9509398054681079), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.30937596282884866, im=0.9509398054681079)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.512519193021484, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_66': GateDefinition(name='_66', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8988175915131159, im=-0.4383228686556993), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8988175915131159, im=0.4383228686556993)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.3757215234251605, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_67': GateDefinition(name='_67', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.02876843793269068, im=-0.9995861028340245), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.02876843793269068, im=0.9995861028340245)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.1991374688862533, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_68': GateDefinition(name='_68', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6766703280196926, im=-0.7362861313224103), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6766703280196926, im=0.7362861313224103)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.6551307943120903, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_69': GateDefinition(name='_69', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7895488521514445, im=-0.6136877137977722), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7895488521514445, im=0.6136877137977722)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.3214456396364567, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_70': GateDefinition(name='_70', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.03742072802306544, im=-0.9992995992765251), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.03742072802306544, im=0.9992995992765251)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.0667337196436306, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_71': GateDefinition(name='_71', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6969610390800991, im=-0.7171089945080794), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6969610390800991, im=0.7171089945080794)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.5992908025915558, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None)}, nbqbits=12, nbcbits=12, _gate_set=GSet(gate_signatures={'X': GSignature(name='X', parameters=[], arity=1), 'Y': GSignature(name='Y', parameters=[], arity=1), 'Z': GSignature(name='Z', parameters=[], arity=1), 'H': GSignature(name='H', parameters=[], arity=1), 'CNOT': GSignature(name='CNOT', parameters=[], arity=2), 'CSIGN': GSignature(name='CSIGN', parameters=[], arity=2), 'ISWAP': GSignature(name='ISWAP', parameters=[], arity=2), 'SQRTSWAP': GSignature(name='SQRTSWAP', parameters=[], arity=2), 'I': GSignature(name='I', parameters=[], arity=1), 'SWAP': GSignature(name='SWAP', parameters=[], arity=2), 'CCNOT': GSignature(name='CCNOT', parameters=[], arity=3), 'S': GSignature(name='S', parameters=[], arity=1), 'T': GSignature(name='T', parameters=[], arity=1), 'PH': GSignature(name='PH', parameters=[1], arity=1), 'RZ': GSignature(name='RZ', parameters=[1], arity=1), 'RX': GSignature(name='RX', parameters=[1], arity=1), 'RY': GSignature(name='RY', parameters=[1], arity=1), 'LOCK': GSignature(name='LOCK', parameters=[], arity=1), 'RELEASE': GSignature(name='RELEASE', parameters=[], arity=1)}), has_matrices=False, var_dic={}, qregs=[DefaultRegister(length=12, start=0, msb=None, _subtype_metadata=None, key=None)], ancilla_map=, _serialized_gate_set=b\"\\x80\\x04\\x95r\\x05\\x00\\x00\\x00\\x00\\x00\\x00\\x8c\\x11qat.core.gate_set\\x94\\x8c\\x07GateSet\\x94\\x93\\x94)\\x81\\x94}\\x94\\x8c\\x0fgate_signatures\\x94}\\x94(\\x8c\\x01X\\x94h\\x00\\x8c\\rGateSignature\\x94\\x93\\x94)\\x81\\x94}\\x94(\\x8c\\x04name\\x94h\\x07\\x8c\\nparameters\\x94]\\x94\\x8c\\x05arity\\x94K\\x01\\x8c\\x07nb_args\\x94K\\x00\\x8c\\targ_types\\x94]\\x94\\x8c\\x0farity_generator\\x94N\\x8c\\x10matrix_generator\\x94\\x8c$qat.core.circuit_builder.matrix_util\\x94\\x8c\\x05gen_x\\x94\\x93\\x94\\x8c\\x11circuit_generator\\x94Nub\\x8c\\x01Y\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\\x19h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_y\\x94\\x93\\x94h\\x18Nub\\x8c\\x01Z\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_z\\x94\\x93\\x94h\\x18Nub\\x8c\\x01H\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch'h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_h\\x94\\x93\\x94h\\x18Nub\\x8c\\x04CNOT\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch.h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x08gen_cnot\\x94\\x93\\x94h\\x18Nub\\x8c\\x05CSIGN\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch5h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\tgen_csign\\x94\\x93\\x94h\\x18Nub\\x8c\\x05ISWAP\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\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", - " \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", - "
PauliCoefficientsPauliStringsQbits
00.34375IIIIII[0, 1, 2, 3, 4, 5]
10.021462IIIIIX[0, 1, 2, 3, 4, 5]
2-0.020917IIIIIY[0, 1, 2, 3, 4, 5]
3-0.008572IIIIIZ[0, 1, 2, 3, 4, 5]
40.002326IIIIXI[0, 1, 2, 3, 4, 5]
............
491470.00281ZZZZYZ[11, 0, 1, 2, 3, 4]
491480.000183ZZZZZI[11, 0, 1, 2, 3, 4]
491490.00099ZZZZZX[11, 0, 1, 2, 3, 4]
49150-0.000801ZZZZZY[11, 0, 1, 2, 3, 4]
491510.000168ZZZZZZ[11, 0, 1, 2, 3, 4]
\n", - "

49152 rows × 3 columns

\n", - "" - ], - "text/plain": [ - " PauliCoefficients PauliStrings Qbits\n", - "0 0.34375 IIIIII [0, 1, 2, 3, 4, 5]\n", - "1 0.021462 IIIIIX [0, 1, 2, 3, 4, 5]\n", - "2 -0.020917 IIIIIY [0, 1, 2, 3, 4, 5]\n", - "3 -0.008572 IIIIIZ [0, 1, 2, 3, 4, 5]\n", - "4 0.002326 IIIIXI [0, 1, 2, 3, 4, 5]\n", - "... ... ... ...\n", - "49147 0.00281 ZZZZYZ [11, 0, 1, 2, 3, 4]\n", - "49148 0.000183 ZZZZZI [11, 0, 1, 2, 3, 4]\n", - "49149 0.00099 ZZZZZX [11, 0, 1, 2, 3, 4]\n", - "49150 -0.000801 ZZZZZY [11, 0, 1, 2, 3, 4]\n", - "49151 0.000168 ZZZZZZ [11, 0, 1, 2, 3, 4]\n", - "\n", - "[49152 rows x 3 columns]" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_anstaz02.pauli_pdf" - ] - }, - { - "cell_type": "markdown", - "id": "8e8ea6cd", - "metadata": {}, - "source": [ - "#### hwe" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "id": "de68b1e2", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:56:33 PM-INFO: Generating circuit.\n", - "01/16/2024 12:56:33 PM-INFO: Instantiating a Linker.\n", - "01/16/2024 12:56:33 PM-INFO: Linking libraries to circuit.\n", - "01/16/2024 12:56:33 PM-INFO: Found 0 ancillae\n" - ] - }, - { - "data": { - "text/html": [ - "Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10Q11RY [theta_{0}]RY [theta_{1}]RY [theta_{2}]RY [theta_{3}]RY [theta_{4}]RY [theta_{5}]RY [theta_{6}]RY [theta_{7}]RY [theta_{8}]RY [theta_{9}]RY [theta_{10}]RY [theta_{11}]RY [theta_{12}]RY [theta_{13}]RY [theta_{14}]RY [theta_{15}]RY [theta_{16}]RY [theta_{17}]RY [theta_{18}]RY [theta_{19}]RY [theta_{20}]RY [theta_{21}]RY [theta_{22}]RY [theta_{23}]RY [theta_{24}]RY [theta_{25}]RY [theta_{26}]RY [theta_{27}]RY [theta_{28}]RY [theta_{29}]RY [theta_{30}]RY [theta_{31}]RY [theta_{32}]RY [theta_{33}]RY [theta_{34}]RY [theta_{35}]RY [theta_{36}]RY [theta_{37}]RY [theta_{38}]RY [theta_{39}]RY [theta_{40}]RY [theta_{41}]RY [theta_{42}]RY [theta_{43}]RY [theta_{44}]RY [theta_{45}]RY [theta_{46}]RY [theta_{47}]RY [theta_{48}]RY [theta_{49}]RY [theta_{50}]RY [theta_{51}]RY [theta_{52}]RY [theta_{53}]RY [theta_{54}]RY [theta_{55}]RY [theta_{56}]RY [theta_{57}]RY [theta_{58}]RY [theta_{59}]RY [theta_{60}]RY [theta_{61}]RY [theta_{62}]RY [theta_{63}]RY [theta_{64}]RY [theta_{65}]RY [theta_{66}]RY [theta_{67}]RY [theta_{68}]RY [theta_{69}]RY [theta_{70}]RY [theta_{71}]RY [theta_{72}]RY [theta_{73}]RY [theta_{74}]RY [theta_{75}]RY [theta_{76}]RY [theta_{77}]" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "01/16/2024 12:56:33 PM-INFO: Found 0 ancillae\n", - "01/16/2024 12:56:33 PM-INFO: New batch of length 1 submitted\n", - "01/16/2024 12:56:33 PM-DEBUG: Batch(jobs=[Job(circuit=Circuit(ops=[Op(gate='_0', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_6', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_7', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_8', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_9', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_10', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_11', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='_12', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_13', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='_14', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_15', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='_16', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_17', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='_18', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_19', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='_20', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_21', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='_22', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_23', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='_24', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_25', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='_26', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_27', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='_28', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_29', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='_30', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_31', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='_32', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_33', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='_34', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_35', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='_36', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_37', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='_38', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_39', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='_40', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_41', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='_42', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_43', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='_44', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_45', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='_46', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_47', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='_48', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_49', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='_50', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_51', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='_52', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_53', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='_54', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_55', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='_56', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_57', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='_58', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_59', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='_60', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_61', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='_62', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_63', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='_64', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_65', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='_66', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_67', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='_68', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_69', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='_70', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_71', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='_72', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_73', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='_74', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_75', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='_76', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_77', qbits=[10], type=0, cbits=None, formula=None, remap=None)], name=None, gateDic={'X': GateDefinition(name='X', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='X', parameters=[]), nbctrls=None, circuit_implementation=None), 'Y': GateDefinition(name='Y', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.0, im=-1.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Y', parameters=[]), nbctrls=None, circuit_implementation=None), 'Z': GateDefinition(name='Z', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Z', parameters=[]), nbctrls=None, circuit_implementation=None), 'H': GateDefinition(name='H', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=-0.7071067811865475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='H', parameters=[]), nbctrls=None, circuit_implementation=None), 'CNOT': GateDefinition(name='CNOT', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='X', syntax=GSyntax(name='CNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'CSIGN': GateDefinition(name='CSIGN', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='Z', syntax=GSyntax(name='CSIGN', parameters=[]), nbctrls=1, circuit_implementation=None), 'ISWAP': GateDefinition(name='ISWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='ISWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'SQRTSWAP': GateDefinition(name='SQRTSWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SQRTSWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'I': GateDefinition(name='I', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='I', parameters=[]), nbctrls=None, circuit_implementation=None), 'SWAP': GateDefinition(name='SWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'CCNOT': GateDefinition(name='CCNOT', arity=3, matrix=Matrix(nRows=8, nCols=8, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='CNOT', syntax=GSyntax(name='CCNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'S': GateDefinition(name='S', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='S', parameters=[]), nbctrls=None, circuit_implementation=None), 'T': GateDefinition(name='T', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7071067811865476, im=0.7071067811865475)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='T', parameters=[]), nbctrls=None, circuit_implementation=None), '_0': GateDefinition(name='_0', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.12320609779284415, im=0.0), ComplexNumber(re=-0.9923811049524573, im=0.0), ComplexNumber(re=0.9923811049524573, im=0.0), ComplexNumber(re=-0.12320609779284415, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.3886325587930988, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_1': GateDefinition(name='_1', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9681271824216141, im=0.0), ComplexNumber(re=-0.2504590957749123, im=0.0), ComplexNumber(re=0.2504590957749123, im=0.0), ComplexNumber(re=-0.9681271824216141, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.776876434649495, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_2': GateDefinition(name='_2', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9987955341417067, im=0.0), ComplexNumber(re=-0.049066087867106624, im=0.0), ComplexNumber(re=0.049066087867106624, im=0.0), ComplexNumber(re=0.9987955341417067, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.09817159367765113, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_3': GateDefinition(name='_3', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9959275971524292, im=0.0), ComplexNumber(re=-0.09015664828612877, im=0.0), ComplexNumber(re=0.09015664828612877, im=0.0), ComplexNumber(re=0.9959275971524292, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.1805584654501564, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_4': GateDefinition(name='_4', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9995304337990383, im=0.0), ComplexNumber(re=-0.03064166949606995, im=0.0), ComplexNumber(re=0.03064166949606995, im=0.0), ComplexNumber(re=0.9995304337990383, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.06129293298906168, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_5': GateDefinition(name='_5', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4983572808930623, im=0.0), ComplexNumber(re=-0.866971753046703, im=0.0), ComplexNumber(re=0.866971753046703, im=0.0), ComplexNumber(re=0.4983572808930623, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.0981867268824885, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_6': GateDefinition(name='_6', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8478324768711218, im=0.0), ComplexNumber(re=-0.5302641711096259, im=0.0), ComplexNumber(re=0.5302641711096259, im=0.0), ComplexNumber(re=0.8478324768711218, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1178242381646497, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_7': GateDefinition(name='_7', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9904061347564331, im=0.0), ComplexNumber(re=-0.1381871493186761, im=0.0), ComplexNumber(re=0.1381871493186761, im=0.0), ComplexNumber(re=0.9904061347564331, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.27726153698373446, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_8': GateDefinition(name='_8', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.00595464900041087, im=0.0), ComplexNumber(re=-0.9999822709204809, im=0.0), ComplexNumber(re=0.9999822709204809, im=0.0), ComplexNumber(re=0.00595464900041087, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.1296832852081753, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_9': GateDefinition(name='_9', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6842592789478483, im=0.0), ComplexNumber(re=-0.7292388080552012, im=0.0), ComplexNumber(re=0.7292388080552012, im=0.0), ComplexNumber(re=-0.6842592789478483, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.648767590872193, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_10': GateDefinition(name='_10', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.5536618600536621, im=0.0), ComplexNumber(re=-0.8327415833990273, im=0.0), ComplexNumber(re=0.8327415833990273, im=0.0), ComplexNumber(re=0.5536618600536621, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.9680822593317773, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_11': GateDefinition(name='_11', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9183673691161047, im=0.0), ComplexNumber(re=-0.3957289164854702, im=0.0), ComplexNumber(re=0.3957289164854702, im=0.0), ComplexNumber(re=0.9183673691161047, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.8137228490008992, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_12': GateDefinition(name='_12', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.2177268237482586, im=0.0), ComplexNumber(re=-0.9760097490396777, im=0.0), ComplexNumber(re=0.9760097490396777, im=0.0), ComplexNumber(re=0.2177268237482586, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.702623029054179, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_13': GateDefinition(name='_13', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9974628190343461, im=0.0), ComplexNumber(re=-0.07118935766008352, im=0.0), ComplexNumber(re=0.07118935766008352, im=0.0), ComplexNumber(re=-0.9974628190343461, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.140686055999889, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_14': GateDefinition(name='_14', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9700085152530673, im=0.0), ComplexNumber(re=-0.24307093684054454, im=0.0), ComplexNumber(re=0.24307093684054454, im=0.0), ComplexNumber(re=0.9700085152530673, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.4910609759931124, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_15': GateDefinition(name='_15', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9687342068450224, im=0.0), ComplexNumber(re=-0.24810085950746996, im=0.0), ComplexNumber(re=0.24810085950746996, im=0.0), ComplexNumber(re=-0.9687342068450224, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.781746654305266, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_16': GateDefinition(name='_16', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.16710438030357955, im=0.0), ComplexNumber(re=-0.9859392101358768, im=0.0), ComplexNumber(re=0.9859392101358768, im=0.0), ComplexNumber(re=0.16710438030357955, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.805808616506077, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_17': GateDefinition(name='_17', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.198332072991756, im=0.0), ComplexNumber(re=-0.9801348829741715, im=0.0), ComplexNumber(re=0.9801348829741715, im=0.0), ComplexNumber(re=-0.198332072991756, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.5409044431038423, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_18': GateDefinition(name='_18', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9439485819119068, im=0.0), ComplexNumber(re=-0.3300925244632182, im=0.0), ComplexNumber(re=0.3300925244632182, im=0.0), ComplexNumber(re=0.9439485819119068, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6728031840315966, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_19': GateDefinition(name='_19', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8400582975113333, im=0.0), ComplexNumber(re=-0.5424961352695152, im=0.0), ComplexNumber(re=0.5424961352695152, im=0.0), ComplexNumber(re=-0.8400582975113333, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.136374003686506, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_20': GateDefinition(name='_20', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5317939623503336, im=0.0), ComplexNumber(re=-0.846873769583007, im=0.0), ComplexNumber(re=0.846873769583007, im=0.0), ComplexNumber(re=-0.5317939623503336, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.26302764336026, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_21': GateDefinition(name='_21', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.779364323187134, im=0.0), ComplexNumber(re=-0.626571026894047, im=0.0), ComplexNumber(re=0.626571026894047, im=0.0), ComplexNumber(re=0.779364323187134, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.3542913668157532, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_22': GateDefinition(name='_22', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9449921547420044, im=0.0), ComplexNumber(re=-0.3270929951497949, im=0.0), ComplexNumber(re=0.3270929951497949, im=0.0), ComplexNumber(re=0.9449921547420044, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6664514192905288, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_23': GateDefinition(name='_23', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7276975123529498, im=0.0), ComplexNumber(re=-0.6858981925295681, im=0.0), ComplexNumber(re=0.6858981925295681, im=0.0), ComplexNumber(re=-0.7276975123529498, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.771510755555875, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_24': GateDefinition(name='_24', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.40339630770232326, im=0.0), ComplexNumber(re=-0.9150253651851038, im=0.0), ComplexNumber(re=0.9150253651851038, im=0.0), ComplexNumber(re=-0.40339630770232326, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.9720437166248286, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_25': GateDefinition(name='_25', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8255575070545533, im=0.0), ComplexNumber(re=-0.5643179977157127, im=0.0), ComplexNumber(re=0.5643179977157127, im=0.0), ComplexNumber(re=0.8255575070545533, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1992138178521008, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_26': GateDefinition(name='_26', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.24892426222891237, im=0.0), ComplexNumber(re=-0.9685229536122475, im=0.0), ComplexNumber(re=0.9685229536122475, im=0.0), ComplexNumber(re=0.24892426222891237, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.638453859528922, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_27': GateDefinition(name='_27', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9804695973845966, im=0.0), ComplexNumber(re=-0.19667071109976447, im=0.0), ComplexNumber(re=0.19667071109976447, im=0.0), ComplexNumber(re=-0.9804695973845966, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.887263005980991, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_28': GateDefinition(name='_28', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.2639999992336852, im=0.0), ComplexNumber(re=-0.9645226800882466, im=0.0), ComplexNumber(re=0.9645226800882466, im=0.0), ComplexNumber(re=-0.2639999992336852, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.6759266374569037, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_29': GateDefinition(name='_29', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9405469295186673, im=0.0), ComplexNumber(re=-0.3396637651752203, im=0.0), ComplexNumber(re=0.3396637651752203, im=0.0), ComplexNumber(re=-0.9405469295186673, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.590066535540655, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_30': GateDefinition(name='_30', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9875598231117025, im=0.0), ComplexNumber(re=-0.15724374637988875, im=0.0), ComplexNumber(re=0.15724374637988875, im=0.0), ComplexNumber(re=-0.9875598231117025, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.967387197022784, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_31': GateDefinition(name='_31', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0318176919682391, im=0.0), ComplexNumber(re=-0.999493689063525, im=0.0), ComplexNumber(re=0.999493689063525, im=0.0), ComplexNumber(re=0.0318176919682391, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.0779465277141678, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_32': GateDefinition(name='_32', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9869120016174465, im=0.0), ComplexNumber(re=-0.161259731686014, im=0.0), ComplexNumber(re=0.161259731686014, im=0.0), ComplexNumber(re=-0.9869120016174465, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.95925139134992, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_33': GateDefinition(name='_33', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5850700650935557, im=0.0), ComplexNumber(re=-0.8109827488494576, im=0.0), ComplexNumber(re=0.8109827488494576, im=0.0), ComplexNumber(re=-0.5850700650935557, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.391525554317408, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_34': GateDefinition(name='_34', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4226951581553875, im=0.0), ComplexNumber(re=-0.9062719256779347, im=0.0), ComplexNumber(re=0.9062719256779347, im=0.0), ComplexNumber(re=0.4226951581553875, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.268758332623403, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_35': GateDefinition(name='_35', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5195259903995855, im=0.0), ComplexNumber(re=-0.8544546478891257, im=0.0), ComplexNumber(re=0.8544546478891257, im=0.0), ComplexNumber(re=-0.5195259903995855, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.234184865673725, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_36': GateDefinition(name='_36', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8142200528439706, im=0.0), ComplexNumber(re=-0.580556375855749, im=0.0), ComplexNumber(re=0.580556375855749, im=0.0), ComplexNumber(re=-0.8142200528439706, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.044361611107042, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_37': GateDefinition(name='_37', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6185581206532277, im=0.0), ComplexNumber(re=-0.7857390478867313, im=0.0), ComplexNumber(re=0.7857390478867313, im=0.0), ComplexNumber(re=-0.6185581206532277, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.475405280458877, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_38': GateDefinition(name='_38', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7504083387603192, im=0.0), ComplexNumber(re=-0.6609745268306321, im=0.0), ComplexNumber(re=0.6609745268306321, im=0.0), ComplexNumber(re=-0.7504083387603192, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.838951944439776, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_39': GateDefinition(name='_39', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.11696101433459415, im=0.0), ComplexNumber(re=-0.993136506793413, im=0.0), ComplexNumber(re=0.993136506793413, im=0.0), ComplexNumber(re=-0.11696101433459415, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.3760513299444055, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_40': GateDefinition(name='_40', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.763518167978913, im=0.0), ComplexNumber(re=-0.6457863479248569, im=0.0), ComplexNumber(re=0.6457863479248569, im=0.0), ComplexNumber(re=0.763518167978913, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.4041054719351709, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_41': GateDefinition(name='_41', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.11216196161730209, im=0.0), ComplexNumber(re=-0.9936899387465684, im=0.0), ComplexNumber(re=0.9936899387465684, im=0.0), ComplexNumber(re=0.11216196161730209, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.9167957036431575, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_42': GateDefinition(name='_42', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.4749763484030567, im=0.0), ComplexNumber(re=-0.8799985616225166, im=0.0), ComplexNumber(re=0.8799985616225166, im=0.0), ComplexNumber(re=-0.4749763484030567, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.131466962916398, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_43': GateDefinition(name='_43', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.11740116311548728, im=0.0), ComplexNumber(re=-0.9930845718764997, im=0.0), ComplexNumber(re=0.9930845718764997, im=0.0), ComplexNumber(re=-0.11740116311548728, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.376937734339999, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_44': GateDefinition(name='_44', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9300185783572881, im=0.0), ComplexNumber(re=-0.36751250850860684, im=0.0), ComplexNumber(re=0.36751250850860684, im=0.0), ComplexNumber(re=-0.9300185783572881, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.530519439343296, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_45': GateDefinition(name='_45', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9998882924106162, im=0.0), ComplexNumber(re=-0.01494666184076196, im=0.0), ComplexNumber(re=0.01494666184076196, im=0.0), ComplexNumber(re=0.9998882924106162, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.0298944368349722, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_46': GateDefinition(name='_46', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9456133605519469, im=0.0), ComplexNumber(re=-0.325292748682865, im=0.0), ComplexNumber(re=0.325292748682865, im=0.0), ComplexNumber(re=0.9456133605519469, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6626425952745728, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_47': GateDefinition(name='_47', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9996676410747746, im=0.0), ComplexNumber(re=-0.02577998037229119, im=0.0), ComplexNumber(re=0.02577998037229119, im=0.0), ComplexNumber(re=-0.9996676410747746, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.231619633537791, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_48': GateDefinition(name='_48', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.3537760342196904, im=0.0), ComplexNumber(re=-0.935330165028258, im=0.0), ComplexNumber(re=0.935330165028258, im=0.0), ComplexNumber(re=-0.3537760342196904, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.864802954918738, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_49': GateDefinition(name='_49', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.966183623447002, im=0.0), ComplexNumber(re=-0.25785500922576965, im=0.0), ComplexNumber(re=0.25785500922576965, im=0.0), ComplexNumber(re=-0.966183623447002, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.761582351842675, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_50': GateDefinition(name='_50', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8911421400593237, im=0.0), ComplexNumber(re=-0.45372424027209374, im=0.0), ComplexNumber(re=0.45372424027209374, im=0.0), ComplexNumber(re=0.8911421400593237, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.941880181588734, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_51': GateDefinition(name='_51', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8345339852760546, im=0.0), ComplexNumber(re=-0.5509564659927914, im=0.0), ComplexNumber(re=0.5509564659927914, im=0.0), ComplexNumber(re=-0.8345339852760546, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.11616548169687, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_52': GateDefinition(name='_52', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.843366093269382, im=0.0), ComplexNumber(re=-0.5373394017969836, im=0.0), ComplexNumber(re=0.5373394017969836, im=0.0), ComplexNumber(re=-0.843366093269382, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.148626926648919, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_53': GateDefinition(name='_53', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.25117736665133145, im=0.0), ComplexNumber(re=-0.9679410780011883, im=0.0), ComplexNumber(re=0.9679410780011883, im=0.0), ComplexNumber(re=-0.25117736665133145, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.649385504465377, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_54': GateDefinition(name='_54', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.863578096520728, im=0.0), ComplexNumber(re=-0.5042151041070033, im=0.0), ComplexNumber(re=0.5042151041070033, im=0.0), ComplexNumber(re=-0.863578096520728, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.226239635649993, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_55': GateDefinition(name='_55', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5854902590774881, im=0.0), ComplexNumber(re=-0.8106794412869837, im=0.0), ComplexNumber(re=0.8106794412869837, im=0.0), ComplexNumber(re=-0.5854902590774881, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.392562006858718, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_56': GateDefinition(name='_56', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9151892760667085, im=0.0), ComplexNumber(re=-0.4030243032032858, im=0.0), ComplexNumber(re=0.4030243032032858, im=0.0), ComplexNumber(re=0.9151892760667085, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.829638033818615, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_57': GateDefinition(name='_57', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6368827739948605, im=0.0), ComplexNumber(re=-0.770960655408959, im=0.0), ComplexNumber(re=0.770960655408959, im=0.0), ComplexNumber(re=0.6368827739948605, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7606962970281483, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_58': GateDefinition(name='_58', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.4017662091475502, im=0.0), ComplexNumber(re=-0.9157422744349017, im=0.0), ComplexNumber(re=0.9157422744349017, im=0.0), ComplexNumber(re=-0.4017662091475502, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.9684821546030458, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_59': GateDefinition(name='_59', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.06101460769635383, im=0.0), ComplexNumber(re=-0.9981368732030994, im=0.0), ComplexNumber(re=0.9981368732030994, im=0.0), ComplexNumber(re=0.06101460769635383, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.0194875963725, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_60': GateDefinition(name='_60', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8454789564000808, im=0.0), ComplexNumber(re=-0.5340087398953601, im=0.0), ComplexNumber(re=0.5340087398953601, im=0.0), ComplexNumber(re=0.8454789564000808, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1266697762227607, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_61': GateDefinition(name='_61', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9422317101742061, im=0.0), ComplexNumber(re=-0.3349617953471571, im=0.0), ComplexNumber(re=0.3349617953471571, im=0.0), ComplexNumber(re=0.9422317101742061, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6831293656537438, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_62': GateDefinition(name='_62', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9979254879803398, im=0.0), ComplexNumber(re=-0.06437950325375959, im=0.0), ComplexNumber(re=0.06437950325375959, im=0.0), ComplexNumber(re=-0.9979254879803398, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.154337189353802, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_63': GateDefinition(name='_63', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.0024912354189967297, im=0.0), ComplexNumber(re=-0.9999968968682289, im=0.0), ComplexNumber(re=0.9999968968682289, im=0.0), ComplexNumber(re=-0.0024912354189967297, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.1465751295815476, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_64': GateDefinition(name='_64', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.41436439000504255, im=0.0), ComplexNumber(re=-0.9101110659121495, im=0.0), ComplexNumber(re=0.9101110659121495, im=0.0), ComplexNumber(re=-0.41436439000504255, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.996081262720359, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_65': GateDefinition(name='_65', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.1784264311693813, im=0.0), ComplexNumber(re=-0.9839532553227099, im=0.0), ComplexNumber(re=0.9839532553227099, im=0.0), ComplexNumber(re=0.1784264311693813, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.7828186789439524, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_66': GateDefinition(name='_66', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3216626374057995, im=0.0), ComplexNumber(re=-0.9468543434431429, im=0.0), ComplexNumber(re=0.9468543434431429, im=0.0), ComplexNumber(re=0.3216626374057995, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.4866228060554136, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_67': GateDefinition(name='_67', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8573777790719007, im=0.0), ComplexNumber(re=-0.5146876178360374, im=0.0), ComplexNumber(re=0.5146876178360374, im=0.0), ComplexNumber(re=-0.8573777790719007, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.201898780402941, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_68': GateDefinition(name='_68', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5702922317770381, im=0.0), ComplexNumber(re=-0.8214418849649469, im=0.0), ComplexNumber(re=0.8214418849649469, im=0.0), ComplexNumber(re=-0.5702922317770381, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.355315785502922, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_69': GateDefinition(name='_69', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8434273720912646, im=0.0), ComplexNumber(re=-0.5372432112248823, im=0.0), ComplexNumber(re=0.5372432112248823, im=0.0), ComplexNumber(re=-0.8434273720912646, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.148855029434404, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_70': GateDefinition(name='_70', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8057853507905484, im=0.0), ComplexNumber(re=-0.5922077071867209, im=0.0), ComplexNumber(re=0.5922077071867209, im=0.0), ComplexNumber(re=-0.8057853507905484, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.015593483755076, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_71': GateDefinition(name='_71', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9619896883125665, im=0.0), ComplexNumber(re=-0.27308577330262224, im=0.0), ComplexNumber(re=0.27308577330262224, im=0.0), ComplexNumber(re=0.9619896883125665, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.5531985535546691, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_72': GateDefinition(name='_72', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6152861819031361, im=0.0), ComplexNumber(re=-0.7883038210988584, im=0.0), ComplexNumber(re=0.7883038210988584, im=0.0), ComplexNumber(re=-0.6152861819031361, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.467090553834928, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_73': GateDefinition(name='_73', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3603957458705549, im=0.0), ComplexNumber(re=-0.9327994995487543, im=0.0), ComplexNumber(re=0.9327994995487543, im=0.0), ComplexNumber(re=0.3603957458705549, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.404208424037177, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_74': GateDefinition(name='_74', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9904877352424343, im=0.0), ComplexNumber(re=-0.13760104045505384, im=0.0), ComplexNumber(re=0.13760104045505384, im=0.0), ComplexNumber(re=-0.9904877352424343, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.007107294170347, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_75': GateDefinition(name='_75', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9980432409609482, im=0.0), ComplexNumber(re=-0.06252750732410989, im=0.0), ComplexNumber(re=0.06252750732410989, im=0.0), ComplexNumber(re=-0.9980432409609482, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.158048661124498, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_76': GateDefinition(name='_76', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6469510642144275, im=0.0), ComplexNumber(re=-0.7625315209955715, im=0.0), ComplexNumber(re=0.7625315209955715, im=0.0), ComplexNumber(re=-0.6469510642144275, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.548751017109905, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_77': GateDefinition(name='_77', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.44144453717273135, im=0.0), ComplexNumber(re=-0.8972885380970566, im=0.0), ComplexNumber(re=0.8972885380970566, im=0.0), ComplexNumber(re=-0.44144453717273135, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.056008510659604, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None)}, nbqbits=12, nbcbits=12, _gate_set=GSet(gate_signatures={'X': GSignature(name='X', parameters=[], arity=1), 'Y': GSignature(name='Y', parameters=[], arity=1), 'Z': GSignature(name='Z', parameters=[], arity=1), 'H': GSignature(name='H', parameters=[], arity=1), 'CNOT': GSignature(name='CNOT', parameters=[], arity=2), 'CSIGN': GSignature(name='CSIGN', parameters=[], arity=2), 'ISWAP': GSignature(name='ISWAP', parameters=[], arity=2), 'SQRTSWAP': GSignature(name='SQRTSWAP', parameters=[], arity=2), 'I': GSignature(name='I', parameters=[], arity=1), 'SWAP': GSignature(name='SWAP', parameters=[], arity=2), 'CCNOT': GSignature(name='CCNOT', parameters=[], arity=3), 'S': GSignature(name='S', parameters=[], arity=1), 'T': GSignature(name='T', parameters=[], arity=1), 'PH': GSignature(name='PH', parameters=[1], arity=1), 'RZ': GSignature(name='RZ', parameters=[1], arity=1), 'RX': GSignature(name='RX', parameters=[1], arity=1), 'RY': GSignature(name='RY', parameters=[1], arity=1), 'LOCK': GSignature(name='LOCK', parameters=[], arity=1), 'RELEASE': GSignature(name='RELEASE', parameters=[], arity=1)}), has_matrices=False, var_dic={}, qregs=[DefaultRegister(length=12, start=0, msb=None, _subtype_metadata=None, key=None)], ancilla_map=, _serialized_gate_set=b\"\\x80\\x04\\x95r\\x05\\x00\\x00\\x00\\x00\\x00\\x00\\x8c\\x11qat.core.gate_set\\x94\\x8c\\x07GateSet\\x94\\x93\\x94)\\x81\\x94}\\x94\\x8c\\x0fgate_signatures\\x94}\\x94(\\x8c\\x01X\\x94h\\x00\\x8c\\rGateSignature\\x94\\x93\\x94)\\x81\\x94}\\x94(\\x8c\\x04name\\x94h\\x07\\x8c\\nparameters\\x94]\\x94\\x8c\\x05arity\\x94K\\x01\\x8c\\x07nb_args\\x94K\\x00\\x8c\\targ_types\\x94]\\x94\\x8c\\x0farity_generator\\x94N\\x8c\\x10matrix_generator\\x94\\x8c$qat.core.circuit_builder.matrix_util\\x94\\x8c\\x05gen_x\\x94\\x93\\x94\\x8c\\x11circuit_generator\\x94Nub\\x8c\\x01Y\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\\x19h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_y\\x94\\x93\\x94h\\x18Nub\\x8c\\x01Z\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_z\\x94\\x93\\x94h\\x18Nub\\x8c\\x01H\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch'h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_h\\x94\\x93\\x94h\\x18Nub\\x8c\\x04CNOT\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch.h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x08gen_cnot\\x94\\x93\\x94h\\x18Nub\\x8c\\x05CSIGN\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch5h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\tgen_csign\\x94\\x93\\x94h\\x18Nub\\x8c\\x05ISWAP\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\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", - " \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", - "
PauliCoefficientsPauliStringsQbits
00.5IIII[0, 1, 2, 3]
1-0.0IIIX[0, 1, 2, 3]
3-0.0IIIZ[0, 1, 2, 3]
4-0.007084IIXI[0, 1, 2, 3]
50.002952IIXX[0, 1, 2, 3]
............
291750.0ZZZXZ[11, 0, 1, 2, 3]
291780.0ZZZYY[11, 0, 1, 2, 3]
29180-0.0ZZZZI[11, 0, 1, 2, 3]
291810.0ZZZZX[11, 0, 1, 2, 3]
291830.0ZZZZZ[11, 0, 1, 2, 3]
\n", - "

14851 rows × 3 columns

\n", - "" - ], - "text/plain": [ - " PauliCoefficients PauliStrings Qbits\n", - "0 0.5 IIII [0, 1, 2, 3]\n", - "1 -0.0 IIIX [0, 1, 2, 3]\n", - "3 -0.0 IIIZ [0, 1, 2, 3]\n", - "4 -0.007084 IIXI [0, 1, 2, 3]\n", - "5 0.002952 IIXX [0, 1, 2, 3]\n", - "... ... ... ...\n", - "29175 0.0 ZZZXZ [11, 0, 1, 2, 3]\n", - "29178 0.0 ZZZYY [11, 0, 1, 2, 3]\n", - "29180 -0.0 ZZZZI [11, 0, 1, 2, 3]\n", - "29181 0.0 ZZZZX [11, 0, 1, 2, 3]\n", - "29183 0.0 ZZZZZ [11, 0, 1, 2, 3]\n", - "\n", - "[14851 rows x 3 columns]" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ph_hwe.pauli_pdf" - ] - }, - { - "cell_type": "markdown", - "id": "5a387ef7", - "metadata": {}, - "source": [ - "### Saving Staff\n", - "\n", - "If save is required the following two files will be generated:\n", - "\n", - "* folder + filename+*_pauli.csv*: where the pauli_pdf attribute is stored\n", - "* folder + filename+*_ph_time.csv*: where the time for computing parent Hamiltonian is stored" - ] - }, - { - "cell_type": "markdown", - "id": "e4cdf3b2", - "metadata": {}, - "source": [ - "## 4. run_parent_hamiltonian function\n", - "\n", - "Inside the **parent\\_hamiltonian.py** module there is the function **run\\_parent\\_hamiltonian**. This function takes the pre-calculated state of an ansatz (using **ansatzes.py** module) and computes its corresponding local parent Hamiltonian. The state is provided as a **CSV** file. This function takes typical keyword arguments (*kwargs*) for configuring the **PH** computations. The following keywords are the processed ones by the function:\n", - "\n", - "* *state*: complete path of the **CSV** file where the precomputed stated was stored. The format should be compatible with the format used by the **ansatzes.py** module for storing the state.\n", - "* *save*: For saving or not the computed parent Hamiltonian Pauli decomposition.\n", - "* *t_inv*: For computing **PH** for a traslational invariant ansatz.\n", - "* *base_fn*: the complete path with the base name for storing the PH Pauli decomposition. The file generated will be: *base_fn_pauli.csv*" - ] - }, - { - "cell_type": "markdown", - "id": "1cae3e40", - "metadata": {}, - "source": [ - "## 5. Command Line execution\n", - "\n", - "The **run\\_parent\\_hamiltonian** from **parent\\_hamiltonian.py** module can be executed from the command line. Several arguments can be passed for configuring the **PH** computation. Help can be obtained by:\n", - "\n", - "**python parent_hamiltonian.py -h**\n", - "\n", - "Arguments can be:\n", - "\n", - "* --save: For storing results\n", - "* --t_inv: Setting translational invariant of the ansatz\n", - "* -state STATE: Filename of the state\n", - "* -basefn BASE_FN: Base Filename for Saving Pauli Decomposition" - ] - }, - { - "cell_type": "markdown", - "id": "0d4604b0", - "metadata": {}, - "source": [ - "## 6. Massive PH computations\n", - "\n", - "As for the case of massive ansatz state computation (see Notebook 01_Ansatzes.ipynb) we can execute massive parent Hamiltonian computations for a bunch of computed ansatzes states. For this, the 2 following files can be used:\n", - "\n", - "* **parent\\_hamiltonian.json**: JSON file with the configuration for the PH computations. For each desired computation a complete dictionary should be provided. The keys are:\n", - " * save: for saving or not the results\n", - " * t_inv: for setting in the ansatz is, or not, translational invariant.\n", - " * state: CSV file with the precomputed state of the ansatz.\n", - " * base_fn: base name for storing results.\n", - "* **launch\\_parent\\_hamiltonian.py**: This script processes the before **JSON** file creating a complete list of all possible parent Hamiltonian configurations. By providing different arguments a selected configuration (or all of them can be executed). For getting help use: **python launch\\_parent\\_hamiltonian.py -h**. The following arguments can be provided:\n", - " * **--count**: Getting the number of posible parent hamiltonian configurations from the **parent\\_hamiltonian.json** JSON file.\n", - " * **--all**: for selecting all the posible parent hamiltonians configurations from the **parent\\_hamiltonian.json** JSON file.\n", - " * **-id ID**: for selecting a single (the **ID** one) parent hamiltonian configuration from the **parent\\_hamiltonian.json** JSON file.\n", - " * **--print**: for printing the parent Hamiltonian configuration.\n", - " * **--exe**: for executing the parent hamiltonian execution indicated by **--all** or by **-id ID**." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d665bba2", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tnbs/BTC_04_PH/PH/notebooks/03_Using_PH_Class.ipynb b/tnbs/BTC_04_PH/PH/notebooks/03_Using_PH_Class.ipynb new file mode 100644 index 0000000..9ee7aaa --- /dev/null +++ b/tnbs/BTC_04_PH/PH/notebooks/03_Using_PH_Class.ipynb @@ -0,0 +1,1032 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "9cf68804", + "metadata": {}, + "source": [ + "# Using Parent Hamiltonian Class\n", + "\n", + "$$\\newcommand{\\braket}[2]{\\left\\langle{#1}\\middle|{#2}\\right\\rangle}$$\n", + "$$\\newcommand{\\ket}[1]{\\left|{#1}\\right\\rangle}$$\n", + "$$\\newcommand{\\bra}[1]{\\left\\langle{#1}\\right|}$$\n", + "\n", + "Here we explain how to use the **Parent Hamiltonian** class of the module *parent_hamiltonian* of the library **PH** that can be used for computing Parent Hamiltonians of an input state\n", + "\n", + "The main idea of the parent Hamiltonian is the following:\n", + "\n", + "Given an ansatz represented by its state: $\\ket{\\Psi \\left(\\theta\\right)}$, where $\\theta$ is a vector of parameters, the parent Hamiltonian problem looks for a Hamiltonian $\\mathcal{H}$ for the proposed ansatz which fundamental state and correspondent energy is 0. This is:\n", + "\n", + "$$\\mathcal{H}\\ket{\\Psi \\left(\\theta\\right)} = 0 \\tag{1}$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "558430a5", + "metadata": {}, + "outputs": [], + "source": [ + "import logging\n", + "logging.basicConfig(\n", + " format='%(asctime)s-%(levelname)s: %(message)s',\n", + " datefmt='%m/%d/%Y %I:%M:%S %p',\n", + " #level=logging.INFO\n", + " level=logging.DEBUG\n", + ")\n", + "logger = logging.getLogger('__name__')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3449a43c", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19de4d79", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append(\"../../\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ac5e510f", + "metadata": {}, + "outputs": [], + "source": [ + "# myQLM qpus\n", + "from get_qpu import get_qpu" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5ac6e2f", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# myQLM qpus\n", + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "060c0f1f", + "metadata": {}, + "outputs": [], + "source": [ + "sys.path.append(\"../\")\n", + "from parent_hamiltonian import PH" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04163a3b", + "metadata": {}, + "outputs": [], + "source": [ + "# For saving Stuff\n", + "from utils_ph import create_folder\n", + "folder = \"Saving\"\n", + "folder = create_folder(folder)" + ] + }, + { + "cell_type": "markdown", + "id": "1fb58dea", + "metadata": {}, + "source": [ + "## 1. Input Ansatz\n", + "\n", + "To create a Parent Hamiltonian (**PH**) with our software we need, given an input ansatz, the complete state of the ansatz. This is the amplitudes of the state of the ansatz in the computational $n$ qubit basis. In the module *ansatzes* of the **PH** library several ansatzes are defined and a *SolveCircuit* class for simulating and getting results using **Atos myqlm** is provided (see notebook **01_Ansatzes.ipynb** for an explanation and use of this module). Here we use the **ansatz_qlm_01** that is the **Atos myqlm** implementation of the ansatz in the github:\n", + "\n", + "https://github.com/FumiKobayashi/Parent_Hamiltonian_as_a_benchmark_problem_for_variational_quantum_eigensolvers\n", + "\n", + "from the original Parent Hamiltonian Papper:\n", + "\n", + "* Kobayashi, F., Mitarai, K., & Fujii, K. (2022). Parent hamiltonian as a benchmark problem for variational quantum eigensolvers. Phys. Rev. A, 105, 052415 (https://doi.org/10.1103%2Fphysreva.105.052415)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "766e53bc", + "metadata": {}, + "outputs": [], + "source": [ + "from ansatzes import ansatz_selector, SolveCircuit, angles_ansatz01" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c01e6ebc", + "metadata": {}, + "outputs": [], + "source": [ + "# Ansatz Configuration\n", + "nqubits = 8\n", + "depth = 3\n", + "ansatz_conf = {\n", + " 'nqubits' : nqubits,\n", + " 'depth' : depth\n", + "}\n", + "ansatz = \"simple01\"\n", + "circuit = ansatz_selector(ansatz, **ansatz_conf)\n", + "%qatdisplay circuit --svg\n", + "\n", + "# Solving Ansatz Configuration\n", + "filename = \"ansatz_{}_dept_{}_nqubits_{}\".format(ansatz, ansatz_conf[\"depth\"], ansatz_conf[\"nqubits\"])\n", + "# We use the angles_ansatz01 for fixing parameters\n", + "circuit, parameters_pdf = angles_ansatz01(circuit)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c8ef35f9", + "metadata": {}, + "outputs": [], + "source": [ + "%qatdisplay circuit --svg" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4775319f", + "metadata": {}, + "outputs": [], + "source": [ + "solve_conf = {\n", + " \"nqubits\": nqubits,\n", + " \"qpu\" : qpu_c,\n", + " \"parameters\" : parameters_pdf,\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "# Solving Ansatz\n", + "solv_ansatz01 = SolveCircuit(circuit, **solve_conf)\n", + "solv_ansatz01.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "94ae7311", + "metadata": {}, + "outputs": [], + "source": [ + "# The attribute circuit of the *SolveCircuit* object has now the proper parameters\n", + "c= solv_ansatz01.circuit\n", + "%qatdisplay c --svg" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a19f30b3", + "metadata": {}, + "outputs": [], + "source": [ + "solv_ansatz01.state" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "186e7e6b", + "metadata": {}, + "outputs": [], + "source": [ + "amplitudes = list(solv_ansatz01.state['Amplitude'])" + ] + }, + { + "cell_type": "markdown", + "id": "5d810255", + "metadata": {}, + "source": [ + "## 2. Parent Hamiltonian Class\n", + "\n", + "The main step is to instantiate the **PH** python class from the *parent_hamiltonian* module of the **PH** library. For this, we need to provide the amplitudes of the ansatz state as a Python list. Additionally, a configuration dictionary can be provided with the following keys:\n", + "\n", + "* save: for saving or not the results\n", + "* filename: complete base filename for saving the results of the class" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1acd64e", + "metadata": {}, + "outputs": [], + "source": [ + "ph_conf = {\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "ph_object = PH(amplitudes, **ph_conf)" + ] + }, + { + "cell_type": "markdown", + "id": "666a098b", + "metadata": {}, + "source": [ + "### 2.1 Naive Approach\n", + "\n", + "The naive approach to this problem is the following:\n", + "\n", + "1. Compute the density matrix of the ansatz:\n", + "\n", + "$$\\rho\\left(\\theta\\right) = \\ket{\\Psi \\left(\\theta\\right)}\\bra{\\Psi \\left(\\theta\\right)}$$\n", + "\n", + "2. Compute the **Kernel** or **null space** of the density matrix. This:\n", + "\n", + "$$\\text{Kernel}(\\rho) = \\{ \\ket{v^i} / \\rho \\ket{v^i} = 0, i=0, 1, \\cdots m \\, \\text{with} \\; m \\leq dim(\\rho)\\}$$\n", + "\n", + "3. Additionally the vectors of the kernel will be chosen that conform a basis of this null space. \n", + "\n", + "$$\\braket{v^i}{v^j}= \\delta_{ij}$$\n", + "\n", + "4. The vectors belonging to the **Kernel** of $\\rho$ will satisfy following condition:\n", + "\n", + "$$\\rho \\ket{v^i} = 0 = \\ket{\\Psi}\\braket{\\Psi}{v^i} = 0 \\rightarrow \\braket{\\Psi}{v^i} = 0 \\tag{2}$$\n", + "\n", + "5. Now using the vector of the basis of the **Kernel** of $\\rho$ we can compute the correspondent projectors $h^i$:\n", + "\n", + "$$h^i = \\ket{v^i}\\bra{v^i}$$\n", + "\n", + "6. By the condition (2) we can write:\n", + "\n", + "$$h^i \\ket{\\Psi} = \\ket{v^i} \\braket{v^i}{\\Psi} = 0 \\tag{3}$$\n", + "\n", + "7. We can join all the projectors' terms for computing or desired parent Hamiltonian:\n", + "\n", + "$$H^{PH} = \\sum_{i=0}^{m} h^i \\tag{4}$$\n", + "\n", + "\n", + "By construction, this Hamiltonian verify the parent Hamiltonian property (1). \n", + "\n", + "In order to use the computed **parent Hamiltonian** $H^{PH}$ in a **VQE** step a mandatory step is decompose it in *n*-generalized Pauli matrices:\n", + "\n", + "$$H^{PH} = \\sum_{I=0}^{4^n-1} a_I \\sigma_{I}^n = \\sum_{i_0, i_1, \\cdots ,i_{n-1}=0}^{3} a_{i_0, i_1, \\cdots ,i_{n-1}} \\sigma_{i_0} \\otimes \\sigma_{i_1} \\cdots \\otimes \\sigma_{i_{n-1}} \\tag{5}$$\n", + "\n", + "The coefficients $a_I$ of the linear combination decomposition can be obtained by computing the Frobenius norm of the product of the $H^{PH}$ with the corresponding $\\sigma_I^n$ as can be seen in the following equation:\n", + "\n", + "$$a_I = \\frac{\\text{Tr}(H^{PH} \\sigma_I^n)}{2^n} \\tag{6}$$\n", + "\n", + "In the naive case, the generated Parent Hamiltonian will represent an all-to-all interaction between all the qubits of the ansatz.\n", + "\n", + "The **PH** class allows to computation of the naive parent Hamiltonian by invoking the **naive_ph** method. This method populates the following attributes:\n", + "\n", + "* *rho*: the density matrix of the input state\n", + "* *naive_parent_hamiltonian*: the parent Hamiltonian matrix (projector over null space)\n", + "* *pauli_strings*: list with the pauli strings obtained\n", + "* *pauli_coeficients*: list with the pauli coeficcient of the correspondient *pauli_strings*\n", + "* *qubits_list*: list with the qubits affected by the correspondient *pauli_strings* (will be all the qubits of the ansatz).\n", + "* *pauli_pdf*: Pandas DataFrame with the Pauli decomposition complete information. \n", + "\n", + "**BE AWARE**\n", + "\n", + "A pruning process was done over the Pauli decomposition. Only coefficients with absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpreted as zero and were removed (the associated Pauli strings were removed too).\n", + "\n", + "Additionally, results for naive computing will not be stored!!!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3fdeb6f0", + "metadata": {}, + "outputs": [], + "source": [ + "ph_object.naive_ph()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a28ec339", + "metadata": {}, + "outputs": [], + "source": [ + "# Should be a 2^n x 2^n\n", + "ph_object.rho.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2ea62925", + "metadata": {}, + "outputs": [], + "source": [ + "# Naive Parent Hamiltonian\n", + "ph_object.naive_parent_hamiltonian.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6431bacd", + "metadata": {}, + "outputs": [], + "source": [ + "# Float precision. Only higher absolute values were conserved\n", + "ph_object.float_precision" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7e57e21", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "ph_object.pauli_pdf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2fa156b", + "metadata": {}, + "outputs": [], + "source": [ + "ph_object.pauli_pdf.iloc[1:5]" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABmkAAAKqCAIAAABeti0dAAAgAElEQVR4AeydCVSUV5r3+bpPnznTM+f7Zpzu6ent6/l62nQ6mU5PukInYowaY4xGE01commNS9z3uBu3KO64IgoIKgoKAiIiKAqKsgkU+77vO8W+U8X9TtULty61UctbRVXxvydn5tZ9n/s8z/291QL/u9kQFBAAARAAARAAARAAARAAARAAARAAARAAARAAAVUEbFQ1og0EQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQIBAO8OXAARAAARAAARAAARAAARAAARAAARAAARAAARUE4B2ppoLWkEABEAABEAABEAABEAABEAABEAABEAABEAA2hm+AyAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiCgmgC0M9Vc0AoCIAACIAACIAACIAACIAACIAACIAACIAAC0M7wHQABEAABEAABEAABEAABEAABEAABEAABEAAB1QSgnanmglYQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQgHaG7wAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIqCYA7Uw1F7SCAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAALQzfAdAAARAAARAAARAAARAAARAAARAAARAAARAQDUBaGequaAVBEAABEAABEAABEAABEAABEAABEAABEAABKCd4TsAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAqoJQDtTzQWtIAACIAACIAACIAACIAACIAACIAACIAACIADtDN8BEAABEAABEAABEAABEAABEAABEAABEAABEFBNANqZai5oBQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAFoZ/gOgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgIBqAtDOVHNBKwiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAhAO8N3AARAAARAAARAAARAAARAAARAAARAAARAAARUE4B2ppoLWkEABEAABEAABEAABEAABEAABEAABEAABEAA2hm+AyAAAiAAAiAAAiAAAiAAAiBghQSuVBL/eiscF4YEAiBgGgIf+235InBPS0+7acKZcxRoZ+b8dpAbCIAACIAACIAACIAACIAACOhD4GgJEQil//nU6dMdfUAABEY5gejKNBsHOxsHu63PL4xyFIQQ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AARAAARAAARAAARAAARAAARAAATslUBpey3VfRycHb9OuCitTO+Wx//w7DyawvOeHyc9zLN8Cl/EnpvlveVS7l3LuzarR/vRznJzc1ntrLm52azgYBwEQAAEQAAEQAAEQAAEQAAEQAAEQMA+CIRUJlPhycHZ0bc4UkJ5OaddZ4PfGnF8YHjy7UQSStDqodqPdtbY2MhqZ2VldrU/0Oq/KAgABEAABEAABEAABEAABEAABEAABOyVwEmlNys/RdakSyLTnsG+taEH2cgv5tjbni9b+BD2o52NjIyw2plSqbQFvogBBEAABEAABEAABEAABEAABEAABEDAlgk097YvCPicVaDqHkuglC2tsXC651oa9ss3NqY1FtoyZ+nGZlfa2ezZs6l8Fh8fL92vgshBAARAAARAAARAAARAAARAAARAAAQsQ8A99x5VoBycHV+6sdEyfk3x4lkQysb8WdTpUTJqikFCyMjoiIkW7HW6/Whn2dnZVDiTyWTt7e32+s2QFwiAAAiAAAiAAAiAAAiAAAiAAAiAgFgE2AsiHZwd3bJvi2XZTHb2xp+nwtnfH3/ZI/++6Y5uFkc4ODvmtpSbbsr+LNiPdtbf3798+XKZTLZs2bK8PCtcJ2F/vxzICARAAARAAARAAARAAARAAARAAATsnkB1Z+PTl5ZxatTf4txsOd+B4cF3AvdQ4ez1m9uym0tFCTinpeyzqNP9uGRAG0370c4IIf39/TU1NdrSxDMQAAEQAAEQAAEQAAEQAAEQAAEQAAEQ0E6gd6g/qiajoLVS+2vbeDowPPii1zoqnO2OPWsbcdl/FHalndn/50KGIAACIAACIAACIAACIAACIAACIAACU5JAcGUSJ5z9k8vrNwrDpyQD6yQN7cw63OEVBEAABEAABEAABEAABEAABEAABEAABAwisD3KZWP40dL2WoNmYbCJBKCdmQgQ00EABEAABEAABEAABEAABEAABEAABEAABOyWALQzu/20SAwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMBEAtDOTASI6SAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAnZLANqZ3X5aJAYCIAACIAACIAACIAACIAACIAACIAACIGAiAWhnJgLEdBAAARAAARAAARAAARAAARAAARAAARAAAbslAO3Mbj8tEgMBEAABEAABEAABEAABEAABEAABEAABEDCRALQzEwFiOgiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAgN0SgHZmt58WiYEACIAACIAACIAACIAACIAACIAACIAACJhIANqZiQAxHQRAAARAAARAAARAAARAAARAAARAAARAwG4JQDuz20+LxEAABEAABEAABEAABEAABEAABEAABEAABEwkAO3MRICYDgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgYLcEoJ3Z7adFYiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiYSgHZmIkBMBwEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQsFsC0M7s9tMiMRAAARAAARAAARAAARAAARAAARAAARAAARMJQDszESCmgwAIgAAIgAAIgAAIgAAIgAAIgAAIgAAI2C0BaGd2+2mRGAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAgIkEoJ2ZCBDTQQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAE7JYAtDO7/bRIDARAAARAAARAAARAAARAAARAAARAAARAwEQC0M5MBIjpIAACIAACIAACIAACIAACIAACIAACIAACdksA2pndflokBgIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgYCKB/x941GrjSVbCawAAAABJRU5ErkJggg==" + } + }, + "cell_type": "markdown", + "id": "fd90f895", + "metadata": {}, + "source": [ + "### 2.2. Local Parent Hamiltonian\n", + "\n", + "The main problem of the naive parent Hamiltonian is that the number of Pauli terms will scale with $4^n$ where $n$ is the number of qubits of the ansatz. Even with a pruning process the naive procedure has a terrible computing performance. In the original paper, this issue was avoided by computing **local parent Hamiltonians** for each qubit of the ansatz. The main idea is that the local Hamiltonian for each qubit will affect only to the nearest qubits and the Pauli decomposition will be computationally affordable. \n", + "\n", + "This situation is depicted in the following figure:\n", + "\n", + "\n", + "![image.png](attachment:image.png)\n", + "\n", + "\n", + "As can be seen, each qubit will have its own Hamiltonian that affects only to qubits near to it. For computing the local parent Hamiltonian following ingredients are needed:\n", + "\n", + "1. The complete state of the ansatz should be computed and organized as a *n*-rank tensor:\n", + "\n", + "$$\\ket{\\Psi} = \\Psi_{i_0 i_1 \\cdots i_{n-1}} \\ket{i_0 i_1 \\cdots i_{n-1}}$$\n", + "\n", + "2. Computation of the reduced density matrix for $m$ consecutive qubits from a fixed qubit $i_k$: $\\rho_{k}^m$. All the qubits except the consecutive set of qubits, $\\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}$, should be traced out:\n", + "\n", + "$$\\rho_{k}^m = \\text{Tr}_{i_l \\notin \\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}} (\\rho) = \n", + " \\rho_{i_{k} i_{k+1} \\cdots i_{k+m}}^{j_{k} j_{k+1} \\cdots j_{k+m}} = \\\\\n", + " =\\Psi_{\\color{red}{i_0i_1} \\cdots i_{k} i_{k+1} \\cdots i_{k+m} \\color{red}{i_{k+m+1} \\cdots i_{n-1}}}\n", + " \\Psi^{*\\;\\color{red}{i_0i_1}\\cdots j_{k} j_{k+1} \\cdots j_{k+m} \\color{red}{i_{k+m+1} \\cdots i_{n-1}}}$$\n", + "\n", + "\n", + "The procedure is the following: for each qubit $i_j$ of the ansatz, begining with $j=0$, the nex steps should be exectured by starting with $m_j=1$:\n", + "\n", + "1. Compute the reduced density matrix for qubit $i_j$ and $m_j$, $\\rho_{j}^{m_j}$\n", + "2. Compute the **rank** of the reduced density matrix $\\rho_{j}^{m_j}$: $rank(\\rho_{j}^{m_j})$.\n", + "3. Determine if the Kernel of the reduced density matrix can be computed:\n", + " 1. If $dim(\\rho_{j}^{m_j}) = rank(\\rho_{j}^{m_j})$, then, the Kernel cannot be computed. Go to step 1 with $m_j = m_j+1$.\n", + " 2. If $dim(\\rho_{j}^{m_j}) > rank(\\rho_{j}^{m_j})$, then, the Kernel can be computed go to step 4.\n", + "4. Compute the Kernel of the reduced density matrix, $\\text{Kernel}(\\rho_{j}^{m_j})$\n", + "5. Compute the corresponding projectors from the computed Kernel and sum them all to get the **local parent Hamiltonian**: $H_{j}^{m_j}$.\n", + "6. Compute the linear combination decomposition of $H_{j}^{m_j}$ in the basis of $m_j$-generalized Pauli matrices. For a $H_{j}^{m_j}$, a list of $4^{m_j}$ tuples $(\\sigma_I^{j, m_j}, a_I^{j, m_j})$ should be obtained, where $\\sigma_I^{j, m_j}$ are all the $m_j$ generalized Pauli matrices and $a_I^{j, m_j}$, the corresponding decomposition coefficients ($I=0, 1, \\cdots 4^{m_j}-1$)\n", + "7. Repeat the complete process for qubit, $i_{j+1}$ (setting the corresponding $m_{j+1} = 1$) until all qubits are processed.\n", + "\n", + "\n", + "The **PH** class allows to computation of the local Parent Hamiltonian by invoking the **local_ph** method. The following attributes will be populated by this method:\n", + "\n", + "* *reduced_rho*: The reduced local density matrices for each qubit (all the $\\rho_{k}^m$).\n", + "* *local_free_qubits*: the qubits affected for each reduced local density matrices (a consecutive set of qubits: $\\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}$)\n", + "* *local_parent_hamiltonians*: Local parent hamiltonian matrix for each qubit ($H_{j}^{m_j}$)\n", + "* *pauli_strings*: pauli strings decomposition of the local Parent Hamiltonian ($\\sigma_I^{j, m_j}$)\n", + "* *pauli_coeficients*: pauli coeficients for each correspondient Pauli string ($a_I^{j, m_j}$)\n", + "* *qubits_list*: list of affected qubits for each corresponding Pauli string ($\\{i_{j}, i_{j+1}, \\cdots, i_{j+m}\\}$)\n", + "* *pauli_pdf*: Pandas DataFrame with the Pauli decomposition complete information. \n", + "\n", + "**BE AWARE**\n", + "\n", + "A pruning process was done over the Pauli decomposition. Only coefficients with absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpreted as zero and were removed (the associated Pauli strings were removed too)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "732b3a83", + "metadata": {}, + "outputs": [], + "source": [ + "ph_conf = {\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "ph_object = PH(amplitudes, **ph_conf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d32cf1dc", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "ph_object.local_ph()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "61881c0d", + "metadata": {}, + "outputs": [], + "source": [ + "# Number of reduced density matrix. MUST BE one for each qubit\n", + "len(ph_object.reduced_rho)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6905f637", + "metadata": {}, + "outputs": [], + "source": [ + "ph_object.reduced_rho[5].shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "160d8563", + "metadata": {}, + "outputs": [], + "source": [ + "# Affected qubits for each reduced density matrix. MUST BE one for each qubit\n", + "len(ph_object.local_free_qubits)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2a072459", + "metadata": {}, + "outputs": [], + "source": [ + "ph_object.local_free_qubits" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "022b6ece", + "metadata": {}, + "outputs": [], + "source": [ + "# The local parent hamiltonians for each qubit\n", + "len(ph_object.local_parent_hamiltonians)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c020d93", + "metadata": {}, + "outputs": [], + "source": [ + "ph_object.local_parent_hamiltonians[0].shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fb070de6", + "metadata": {}, + "outputs": [], + "source": [ + "ph_object.pauli_pdf" + ] + }, + { + "cell_type": "markdown", + "id": "bb27d645", + "metadata": {}, + "source": [ + "Due to the symmetries of the **ansatz_qlm_01** the obtained reduced density matrix is equal for all the qubits of the ansatz. But this is not necessary true for another type of ansatzes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbe13f33", + "metadata": {}, + "outputs": [], + "source": [ + "np.isclose(ph_object.reduced_rho[0], ph_object.reduced_rho[1]).all()" + ] + }, + { + "cell_type": "markdown", + "id": "acf74ac1", + "metadata": {}, + "source": [ + "### 2.3 Translational invariant of the ansatz\n", + "\n", + "If the ansatz is translational invariant then the computations of the reduced density matrices can be obtained only **for the first qubit** and then used the same reduced density matrix for the other qubits. In this case, the time performance of the computation can be boosted. For doing this kind of computation we have to initialize the **PH** class providing the input *t_invariant* with a **True**. \n", + "\n", + "In this case *reduced_rho*, *local_free_qubits* and *local_parent_hamiltonians* will have only one element.\n", + "\n", + "This apply for the other attributes *pauli_matrices*, *pauli_coeficients*, *qubits_list* and *pauli_pdf*. \n", + "\n", + "\n", + "**Now we are going to use the same ansatz for computing the local Parent Hamiltonian but we are going to set t_inv to True indicating that the ansatz is translational invariant. The result MUST be the same but the number of Pauli strings will be lower because only computations on the first qubit were done. The complete local Parent Hamiltonian will need to replicate all the Pauli strings (and coefficients) for all the qubits**\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68fda1c2", + "metadata": {}, + "outputs": [], + "source": [ + "#setting translational invarinat\n", + "ph_conf = {\n", + " \"filename\": folder + filename+\"_invariant\",\n", + " \"save\": True \n", + "}\n", + "ph_object_in = PH(amplitudes, t_invariant=True, **ph_conf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f9da1502", + "metadata": {}, + "outputs": [], + "source": [ + "%%time\n", + "ph_object_in.local_ph()" + ] + }, + { + "cell_type": "markdown", + "id": "e186ed1f", + "metadata": {}, + "source": [ + "The obtained reduced density matrices, and the affected qubits, will be equal to the obtained matrices with *t_invariant=False*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fe27bb9", + "metadata": {}, + "outputs": [], + "source": [ + "# Number of reduced density matrix. MUST BE only one\n", + "len(ph_object_in.reduced_rho)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b43d0ae3", + "metadata": {}, + "outputs": [], + "source": [ + "# Affected qubits for each reduced density matrix. MUST BE only one\n", + "len(ph_object_in.local_free_qubits)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7fa03701", + "metadata": {}, + "outputs": [], + "source": [ + "len(ph_object_in.local_parent_hamiltonians)" + ] + }, + { + "cell_type": "markdown", + "id": "4e9c2c9f", + "metadata": {}, + "source": [ + "Now we compare the number of Pauli coeficients when t_inv was set to False (ph_object) and when was set to True (ph_object_in)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b5151a8", + "metadata": {}, + "outputs": [], + "source": [ + "len(ph_object.pauli_coeficients),len(ph_object_in.pauli_coeficients)" + ] + }, + { + "cell_type": "markdown", + "id": "04036847", + "metadata": {}, + "source": [ + "However the the Pauli decomposition sould be the same for the first qubit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0491436d", + "metadata": {}, + "outputs": [], + "source": [ + "# Testing Pauli coefficients for the first qubit for t_inv set to False and t_inv set to True.\n", + "np.isclose(\n", + " ph_object.pauli_pdf[:len(ph_object_in.pauli_strings)][\"PauliCoefficients\"].astype(float),\n", + " ph_object_in.pauli_pdf[\"PauliCoefficients\"].astype(float)\n", + ").all()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff8ef35b", + "metadata": {}, + "outputs": [], + "source": [ + "# Testing all the Pauli strings for the first qubit for t_inv set to False and t_inv set to True.\n", + "(ph_object.pauli_pdf[:len(ph_object_in.pauli_strings)]['PauliStrings'] == ph_object_in.pauli_pdf[\"PauliStrings\"]).all()" + ] + }, + { + "cell_type": "markdown", + "id": "eeb639aa", + "metadata": {}, + "source": [ + "## 3. Example of use with more Ansatzes \n", + "\n", + "The use of the **PH** class is independent of the ansatz (only if the ansatz is invariant can be provided to the class to boost performance, but this is not mandatory!!). The only mandatory input is the complete amplitudes of the state of the ansatz. \n", + "\n", + "So any ansatz can be used by the class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "21b9c51a", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Ansatz Configuration\n", + "ansatz_conf = {\n", + " 'nqubits' : 12,\n", + " 'depth' : 3\n", + "}\n", + "ansatz = \"simple02\"\n", + "circuit = ansatz_selector(ansatz, **ansatz_conf)\n", + "%qatdisplay circuit --svg\n", + "\n", + "# Solving Ansatz Configuration\n", + "filename = \"ansatz_{}_dept_{}_nqubits_{}\".format(ansatz, ansatz_conf[\"depth\"], ansatz_conf[\"nqubits\"])\n", + "print(filename)\n", + "# Create the parameter values\n", + "parameters = {v_ : 2 * np.pi * np.random.rand() for i_, v_ in enumerate(circuit.get_variables())}\n", + "angles = [k for k, v in parameters.items()]\n", + "values = [v for k, v in parameters.items()]\n", + "pdf_parameters = pd.DataFrame([angles, values], index=['key', 'value']).T\n", + "\n", + "circuit, parameters_pdf = angles_ansatz01(circuit, pdf_parameters)\n", + "\n", + "\n", + "solve_conf = {\n", + " 'nqubits' : 12,\n", + " \"qpu\" : qpu_c,\n", + " \"parameters\" : parameters_pdf,\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "\n", + "# Solving Ansatz\n", + "solv_ansatz02 = SolveCircuit(circuit, **solve_conf)\n", + "solv_ansatz02.run()\n", + "amplitudes02 = list(solv_ansatz02.state['Amplitude'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "db76f5f1", + "metadata": {}, + "outputs": [], + "source": [ + "ph_conf = {\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "ph_anstaz02 = PH(amplitudes02, t_invariant=False, **ph_conf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "46226205", + "metadata": {}, + "outputs": [], + "source": [ + "# Computes local PH\n", + "ph_anstaz02.local_ph()" + ] + }, + { + "cell_type": "markdown", + "id": "8c829819", + "metadata": {}, + "source": [ + "In this case the matrices for the different qubits will be different. Even they can be of different shapes because the locality can change from qubit to qubit!!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "920d52f4", + "metadata": {}, + "outputs": [], + "source": [ + "qubit_j = 0\n", + "qubit_k = 1\n", + "Equal_Shape = ph_anstaz02.reduced_rho[qubit_j].shape == ph_anstaz02.reduced_rho[qubit_k].shape\n", + "print(\"Are shapes equal: {}\".format(Equal_Shape))\n", + "if Equal_Shape:\n", + " print(np.isclose(ph_anstaz02.reduced_rho[qubit_j], ph_anstaz02.reduced_rho[qubit_k]).all())" + ] + }, + { + "cell_type": "markdown", + "id": "552b8471", + "metadata": {}, + "source": [ + "The *local_free_qubits* give us the qubits affected for the local Hamiltonian foreach of the qubits of the ansatz" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e3959bdb", + "metadata": {}, + "outputs": [], + "source": [ + "ph_anstaz02.local_free_qubits" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "261a2fb5", + "metadata": {}, + "outputs": [], + "source": [ + "ph_anstaz02.pauli_pdf" + ] + }, + { + "cell_type": "markdown", + "id": "8e8ea6cd", + "metadata": {}, + "source": [ + "#### hwe" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de68b1e2", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Ansatz Configuration\n", + "ansatz_conf = {\n", + " 'nqubits' : 12,\n", + " 'depth' : 3\n", + "}\n", + "ansatz = \"hwe\"\n", + "circuit = ansatz_selector(ansatz, **ansatz_conf)\n", + "%qatdisplay circuit --svg\n", + "\n", + "# Solving Ansatz Configuration\n", + "filename = \"ansatz_{}_dept_{}_nqubits_{}\".format(ansatz, ansatz_conf[\"depth\"], ansatz_conf[\"nqubits\"])\n", + "print(filename)\n", + "\n", + "# Create the parameter values\n", + "parameters = {v_ : 2 * np.pi * np.random.rand() for i_, v_ in enumerate(circuit.get_variables())}\n", + "angles = [k for k, v in parameters.items()]\n", + "values = [v for k, v in parameters.items()]\n", + "pdf_parameters = pd.DataFrame([angles, values], index=['key', 'value']).T\n", + "\n", + "circuit, parameters_pdf = angles_ansatz01(circuit, pdf_parameters)\n", + "\n", + "\n", + "solve_conf = {\n", + " 'nqubits' : 12, \n", + " \"qpu\" : qpu_c,\n", + " \"parameters\" : pdf_parameters,\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "\n", + "# Solving Ansatz\n", + "solv_hwe = SolveCircuit(circuit, **solve_conf)\n", + "solv_hwe.run()\n", + "amplitudes_hwe = list(solv_hwe.state['Amplitude'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a9da2408", + "metadata": {}, + "outputs": [], + "source": [ + "ph_conf = {\n", + " \"filename\": folder + filename,\n", + " \"save\": True \n", + "}\n", + "ph_hwe = PH(amplitudes_hwe, t_invariant=False, **ph_conf)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b453fe2d", + "metadata": {}, + "outputs": [], + "source": [ + "ph_hwe.local_ph()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9dfdb8d1", + "metadata": {}, + "outputs": [], + "source": [ + "ph_hwe.pauli_pdf" + ] + }, + { + "cell_type": "markdown", + "id": "5a387ef7", + "metadata": {}, + "source": [ + "### Saving Staff\n", + "\n", + "If save is required the following two files will be generated:\n", + "\n", + "* folder + filename+*_pauli.csv*: where the pauli_pdf attribute is stored\n", + "* folder + filename+*_ph_time.csv*: where the time for computing parent Hamiltonian is stored" + ] + }, + { + "cell_type": "markdown", + "id": "e4cdf3b2", + "metadata": {}, + "source": [ + "## 4. run_parent_hamiltonian function\n", + "\n", + "Inside the **parent\\_hamiltonian.py** module there is the function **run\\_parent\\_hamiltonian**. This function takes the pre-calculated state of an ansatz (using **ansatzes.py** module) and computes its corresponding local parent Hamiltonian. The state is provided as a **CSV** file. This function takes typical keyword arguments (*kwargs*) for configuring the **PH** computations. The following keywords are the processed ones by the function:\n", + "\n", + "* *state*: complete path of the **CSV** file where the precomputed stated was stored. The format should be compatible with the format used by the **ansatzes.py** module for storing the state.\n", + "* *save*: For saving or not the computed parent Hamiltonian Pauli decomposition.\n", + "* *t_inv*: For computing **PH** for a traslational invariant ansatz.\n", + "* *base_fn*: the complete path with the base name for storing the PH Pauli decomposition. The file generated will be: *base_fn_pauli.csv*" + ] + }, + { + "cell_type": "markdown", + "id": "1cae3e40", + "metadata": {}, + "source": [ + "## 5. Command Line execution\n", + "\n", + "The **run\\_parent\\_hamiltonian** from **parent\\_hamiltonian.py** module can be executed from the command line. Several arguments can be passed for configuring the **PH** computation. Help can be obtained by:\n", + "\n", + "**python parent_hamiltonian.py -h**\n", + "\n", + "Arguments can be:\n", + "\n", + "* --save: For storing results\n", + "* --t_inv: Setting translational invariant of the ansatz\n", + "* -state STATE: Filename of the state\n", + "* -basefn BASE_FN: Base Filename for Saving Pauli Decomposition" + ] + }, + { + "cell_type": "markdown", + "id": "c142edac-e00b-4714-b362-d2581d5fb5fa", + "metadata": {}, + "source": [ + "**Example**\n", + "\n", + "We are going to use the example provided in the **01_Ansatzes.ipynb** where we have used the **ansatzes.py** module for doing computations for a **simple_02** ansatz of 6 **qubits** and **depth** 2. We need to have the following files in the folder **Saves**:\n", + "\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_parameters.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_state.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_solve_ansatz_time.csv\n", + "\n", + "Now for computing its parent Hamiltonian and the corresponding Pauli decomposition, we need to execute:\n", + "\n", + " python parent_hamiltonian.py -state Saves/ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_state.csv -basefn Saves/ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c --save\n", + "\n", + "Now in the **Saves** folder, we should find the following two files (in addition to the other ones):\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_pauli.csv (where the Pauli decomposition of the parent Hamiltonian is stored).\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_ph_time.csv (where the time used for doing parent Hamiltonian computations is stored in seconds)\n" + ] + }, + { + "cell_type": "markdown", + "id": "0d4604b0", + "metadata": {}, + "source": [ + "## 6. Massive PH computations\n", + "\n", + "As for the case of massive ansatz state computation (see Notebook 01_Ansatzes.ipynb) we can execute massive parent Hamiltonian computations for a bunch of computed ansatzes states. For this, the 2 following files can be used:\n", + "\n", + "* **parent\\_hamiltonian.json**: JSON file with the configuration for the PH computations. For each desired computation a complete dictionary should be provided. The keys are:\n", + " * save: for saving or not the results\n", + " * t_inv: for setting in the ansatz is, or not, translational invariant.\n", + " * state: CSV file with the precomputed state of the ansatz.\n", + " * base_fn: base name for storing results.\n", + "* **launch\\_parent\\_hamiltonian.py**: This script processes the before **JSON** file creating a complete list of all possible parent Hamiltonian configurations. By providing different arguments a selected configuration (or all of them can be executed). For getting help use: **python launch\\_parent\\_hamiltonian.py -h**. The following arguments can be provided:\n", + " * **--count**: Getting the number of posible parent hamiltonian configurations from the **parent\\_hamiltonian.json** JSON file.\n", + " * **--all**: for selecting all the posible parent hamiltonians configurations from the **parent\\_hamiltonian.json** JSON file.\n", + " * **-id ID**: for selecting a single (the **ID** one) parent hamiltonian configuration from the **parent\\_hamiltonian.json** JSON file.\n", + " * **--print**: for printing the parent Hamiltonian configuration.\n", + " * **--exe**: for executing the parent hamiltonian execution indicated by **--all** or by **-id ID**." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d665bba2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb b/tnbs/BTC_04_PH/PH/notebooks/04_ParentHamiltonian_execution.ipynb similarity index 77% rename from tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb rename to tnbs/BTC_04_PH/PH/notebooks/04_ParentHamiltonian_execution.ipynb index e2fd60a..6405535 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/04_ParentHamiltonian_execution.ipynb @@ -7,9 +7,9 @@ "source": [ "# Using PH_EXE class\n", "\n", - "This notebook explains how to use the **PH\\_EXE** class inside **vqe\\_step** module. \n", + "This notebook explains how to use the **PH\\_EXE** class inside the **vqe\\_step** module. \n", "\n", - "This class, given an ansatz and its parent hamiltonian, provided as a string Pauli decomposition, computes the asociated ground state energy (that should be near zero)." + "This class, given an ansatz and its parent Hamiltonian, provided as a string Pauli decomposition, computes the associated ground state energy (that should be near zero)." ] }, { @@ -63,18 +63,16 @@ { "cell_type": "code", "execution_count": null, - "id": "6b9566db", + "id": "a4011c57-f538-4913-91ab-518a7fb59cff", "metadata": {}, "outputs": [], "source": [ + "sys.path.append(\"../../\")\n", "# myQLM qpus\n", - "from qat.qpus import PyLinalg, CLinalg\n", - "qpu_c = CLinalg()\n", - "qpu_p = PyLinalg()\n", - "# QLM qpus\n", - "from qlmaas.qpus import LinAlg, MPS\n", - "qpu_qaass = LinAlg()\n", - "qpu_mps = MPS()" + "from get_qpu import get_qpu\n", + "# myQLM qpus\n", + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" ] }, { @@ -249,7 +247,7 @@ "source": [ "## 2. Parent Hamiltonian Computation\n", "\n", - "With the obtained state of the ansatz we need to compute the Parent Hamiltonian and get its Pauli string decomposition. Here we use the **parent\\_hamiltonian** module (see notebook **02_Using_PH_Class.ipynb** for more information)" + "With the obtained state of the ansatz, we need to compute the Parent Hamiltonian and get its Pauli string decomposition. Here we use the **parent\\_hamiltonian** module (see notebook **02_Using_PH_Class.ipynb** for more information)" ] }, { @@ -302,12 +300,12 @@ "Now we have all mandatory inputs so we can use **PH_EXE** class for computing the ground state energy of the parent hamiltonian of our input ansatz.\n", "We need to provide for initializing the class:\n", "\n", - "* *ansatz*: myqlm circuit of the ansatz where the parameters fixed.\n", + "* *ansatz*: myqlm circuit of the ansatz where the parameters are fixed.\n", "* *pauli_ph*: pandas DataFrame with the Pauli decomposition of the Parent Hamiltonian\n", "* *nqubits*: number of qubits of the ansatz\n", "\n", - "Additionally other parameters can be provides as keyword arguments (*kwargs*):\n", - "* *qpu*: myqlm QPU unit for simulating the ground state energ\n", + "Additionally, other parameters can be provided as keyword arguments (*kwargs*):\n", + "* *qpu*: myqlm QPU unit for simulating the ground state energy\n", "* *nb_shots*: number of shots for measuring GSE.\n", "* *t_inv*: if True for indicating that the Pauli decomposition was done using translational invariance.\n", "* *truncation*: for truncating the number of Pauli strings. It is a positive number and all the Pauli coefficients where its absolute value is lower than $10^{-\\text{truncation}}$ will be deleted\n", @@ -322,7 +320,7 @@ "source": [ "**BE AWARE**\n", "\n", - "If the local **PH** was computed using the translational invariance then the obtained Pauli decomposition was obtained for the first qubit only!! For executing the complete step we need to replicate the Pauli strings for all the qubits. This is done automatically by the class **BUT it is mandatory indicating it by the t_inv key**" + "If the local **PH** was computed using the translational invariance then the obtained Pauli decomposition was obtained for the first qubit only!! For executing the complete step we need to replicate the Pauli strings for all the qubits. This is done automatically by the class **BUT it is mandatory to indicate it by the t_inv key**" ] }, { @@ -422,19 +420,31 @@ "\n", "Inside the module **vqe_step** the **run_ph_execution** function can be found. This function uses typical **CSV** files from **ansatzes** and **parent_hamiltonian** modules for executing a **VQE** step. The input of this function is a **kwargs** (called **configuration**) where following keywords are processed:\n", "\n", - "* base_fn: Base name for the files generated by **ansatzes** and **parent_hamiltonian**. The pattern of the name must be the following: **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}**. It is mandatory that following files exist:\n", - " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_parameter.csv**: with the angles of the ansatz\n", - " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_pauli.csv**: with the Pauli decomposition of the **PH**.\n", - " * From the *base_fn* following variables are extracted: \n", + "* base_fn: Base name for the files generated by **ansatzes** and **parent_hamiltonian**. The pattern of the name can be: \n", + " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}**. From this kind of filenames the code extracts directly:\n", " * ansatz\n", " * nqubits\n", " * depth\n", - "* qpu_ph: name with the qpu for executing the **VQE** step simulation. Valid names: [qlmass, python, c].\n", - "* nb_shots: for setting the number of shots for the **VQE** step. Only valid for **nb_shots=qlmass**\n", + " * The following files must exist:\n", + " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_parameter.csv**: with the angles of the ansatz\n", + " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_pauli.csv**: with the Pauli decomposition of the **PH**.\n", + " * **nqubits\\_{}\\_depth\\_{}\\_qpu\\_{}**. From this kind of filenames the code extracts directly:\n", + " * ansatz: the ansatz will be fixed by defalut to *simple01*\n", + " * nqubits\n", + " * depth\n", + " * The following files must exist:\n", + " * **nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_parameter.csv**: with the angles of the ansatz\n", + " * **nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_pauli.csv**: with the Pauli decomposition of the **PH**.\n", + " * Additionally filenames without the **\\\n", + " * _qpu_ansatz** can be given as valid filenames. Corresponding **_parameter.csv** and **_pauli.csv** files must exist\n", + "* qpu_ph: name with the qpu for executing the **VQE** step simulation.\n", + "* nb_shots: for setting the number of shots for the **VQE** step.\n", "* t_inv: True if the ansatz is transaltional invariant.\n", - "* truncation: integer for tuncating the Pauli coefficients\n", - "* save: for saving the results. The results will be saved with the followi9ng pattern:\n", - " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_ph\\_exe.csv**" + "* truncation: integer for truncating the Pauli coefficients\n", + "* save: for saving the results. The results will be saved with the following pattern that depends on the *base_fn*:\n", + " * **ansatz\\_{}\\_nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_ph\\_exe.csv**\n", + " * **nqubits\\_{}\\_depth\\_{}\\_qpu_ansatz\\_{}\\_ph\\_exe.csv**\n", + " * If in the base_fn the name does not have the **\\_qpu_ansatz** the created file does not have too." ] }, { @@ -458,6 +468,31 @@ "* --save: For storing results" ] }, + { + "cell_type": "markdown", + "id": "200e3276-bd37-433a-bb50-cd715e0c18ac", + "metadata": {}, + "source": [ + "**Example**\n", + "\n", + "We are going to use the example provided in the **01_Ansatzes.ipynb** and **02_Using_PH_Class.ipynb** notebooks where we have used the **ansatzes.py** module for doing computations for a **simple_02** ansatz of 6 **qubits** and **depth** 2, and the **parent_hamiltonian.py** module for computing the corresponding Pauli decomposition of its parent Hamiltonian. We need to have the following files in the folder **Saves**:\n", + "\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_parameters.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_state.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_solve_ansatz_time.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_ph_time.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_pauli.csv\n", + "\n", + "Now we can use the **vqe_step.py** module for executing a **VQE** step by using the following command (we have set truncation to 3 so all Pauli coefficients lower than $10^{-3}$ will be pruned):\n", + "\n", + " python vqe_step.py -basefn Saves/ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c -qpu_ph c -truncation 3 \n", + "--savee\n", + "\n", + "Now in the **Saves** folder, we should find the following fils (in addition to the other ones)\n", + "\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_phexe.csv)" + ] + }, { "cell_type": "markdown", "id": "1eea57b0", diff --git a/tnbs/BTC_04_PH/PH/notebooks/04_CompleteWorkflow.ipynb b/tnbs/BTC_04_PH/PH/notebooks/05_CompleteWorkflow.ipynb similarity index 82% rename from tnbs/BTC_04_PH/PH/notebooks/04_CompleteWorkflow.ipynb rename to tnbs/BTC_04_PH/PH/notebooks/05_CompleteWorkflow.ipynb index 860f9dc..026f93d 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/04_CompleteWorkflow.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/05_CompleteWorkflow.ipynb @@ -65,14 +65,12 @@ }, "outputs": [], "source": [ + "sys.path.append(\"../../\")\n", "# myQLM qpus\n", - "from qat.qpus import PyLinalg, CLinalg\n", - "qpu_c = CLinalg()\n", - "qpu_p = PyLinalg()\n", - "# QLM qpus\n", - "from qlmaas.qpus import LinAlg, MPS\n", - "qpu_qaass = LinAlg()\n", - "qpu_mps = MPS()" + "from get_qpu import get_qpu\n", + "# myQLM qpus\n", + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" ] }, { @@ -219,11 +217,11 @@ "source": [ "## Command Line\n", "\n", - "The **workflow** module can be executed from command line. Several arguments can be provided for configuring the complete execution. For getting a help type:\n", + "The **workflow** module can be executed from the command line. Several arguments can be provided for configuring the complete execution. To get a help type:\n", "\n", "**python workflow.py -h**\n", "\n", - "The following argumnets can be provided:\n", + "The following argument can be provided:\n", "\n", "* -nqubits NQUBITS Number of qbits for the ansatz.\n", "* -depth DEPTH Depth for ansatz.\n", @@ -237,6 +235,29 @@ "* --save For storing results" ] }, + { + "cell_type": "markdown", + "id": "b475b5e8-31d9-4423-ada7-5c3966dc79cb", + "metadata": {}, + "source": [ + "Examples:\n", + "\n", + "We can reproduce the examples from notebooks **01_Ansatzes.ipynb**, **02_Using_PH_Class.ipynb** and **03_ParentHamiltonian_execution.ipynb**: we are going to develop the complete workflow for an ansatz *simple_02* of 6 *qubits* and with *depth* 3. We are going to use a *truncation* of 3 ($10^{-3}$) for pruning the Pauli decomposition. We are going to save all into the *Saves2* folder:\n", + "\n", + " python workflow.py -nqubits 6 -depth 2 -ansatz simple02 -qpu_ansatz c -truncation 3 -qpu_ph c -folder Saves2 --save\n", + "\n", + "In the *Saves2* folder the following files should be found:\n", + "\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_parameters.csv\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_phexe.csv\n", + "* \n", + "ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_pauli.cs\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_solve_ansatz_time.cs\n", + "* \r\n", + "ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_ph_time.c\n", + "* ansatz_simple02_nqubits_6_depth_2_qpu_ansatz_c_state.csv" + ] + }, { "cell_type": "markdown", "id": "38ebe36e", @@ -273,7 +294,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/PH/notebooks/05_ParentHamiltonian_with_MPS.ipynb b/tnbs/BTC_04_PH/PH/notebooks/06_ParentHamiltonian_with_MPS.ipynb similarity index 98% rename from tnbs/BTC_04_PH/PH/notebooks/05_ParentHamiltonian_with_MPS.ipynb rename to tnbs/BTC_04_PH/PH/notebooks/06_ParentHamiltonian_with_MPS.ipynb index 54f15b7..149244b 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/05_ParentHamiltonian_with_MPS.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/06_ParentHamiltonian_with_MPS.ipynb @@ -7,21 +7,21 @@ "source": [ "# Parent Hamiltonian with MPS\n", "\n", - "For **Parent Hamiltonian** computations (**PH**) one mandatory step is computing the final state of the input ansatz. This approach have several important issues when the number of qubits increases:\n", + "For **Parent Hamiltonian** computations (**PH**) one mandatory step is computing the final state of the input ansatz. This approach has several important issues when the number of qubits increases:\n", "\n", - "* The vector state simulation is very computing demanding for high number of qubits: for more than 30 qubits high performance resources are needed and for more than 40 qubits this computation is unafordable for most power classical computers.\n", - "* Even in the case of having an efficient way of computing the state a second problem arises: the memory needed for storing a complete quantum state grows exponentially with the number of qubits so the **PH** computation can not be performed when the number of qubits increeases because we can't hold the state in memory.\n", + "* The vector state simulation is very computing demanding for a high number of qubits: for more than 30 qubits high performance resources are needed and for more than 40 qubits this computation is unaffordable for most power classical computers.\n", + "* Even in the case of having an efficient way of computing the state a second problem arises: the memory needed for storing a complete quantum state grows exponentially with the number of qubits so the **PH** computation can not be performed when the number of qubits increases because we can't hold the state in memory.\n", "\n", - "For avoiding these issues instead of state vector simulations, **Tensor Networks** (**TN**) techniques as **Matrix Product State** (**MPS**) can be used. In addition to their power computation, once the final **MPS** representation of the state is obtained, the state computation it is not mandatory because the main calculations needed for the **PH** (the computing of the reduced density matrix) can be performed in a very efficient way using **TN** techniqes over the **MPS**.\n", + "To avoid these issues instead of state vector simulations, **Tensor Networks** (**TN**) techniques as **Matrix Product State** (**MPS**) can be used. In addition to their power computation, once the final **MPS** representation of the state is obtained, the state computation is not mandatory because the main calculations needed for the **PH** (the computing of the reduced density matrix) can be performed in a very efficient way using **TN** techniques over the **MPS**.\n", "\n", - "Several modules were included in our library, for using this **MPS** formalism to obtain the desired **PH** for the used ansatz, for different number of qubits and different depths. The modules are:\n", + "Several modules were included in our library, for using this **MPS** formalism to obtain the desired **PH** for the used ansatz, for different numbers of qubits and different depths. The modules are:\n", "\n", - "* **gates_mps**: this module contains numpy implementation of the different gates needed for programing the mandatory ansatz of the **BTC**.\n", + "* **gates_mps**: this module contains numpy implementation of the different gates needed for programming the mandatory ansatz of the **BTC**.\n", "* **mps**: this module contains several functions needed for doing the computations of the **MPS** formalism.\n", "* **ansatz_mps**: this module contains the functions for building the **MPS** representation of the mandatory ansatz of the **BTC**.\n", - "* **parent_hamiltonian_mps**: this module contains the mandatory functions to compute the **PH** using **MPS**. This is a very similar package to the **parent_hamiltonian** one but the reduced density matrix calculations are done using **MPS** techniqes.\n", + "* **parent_hamiltonian_mps**: this module contains the mandatory functions to compute the **PH** using **MPS**. This is a very similar package to the **parent_hamiltonian** one but the reduced density matrix calculations are done using **MPS** techniques.\n", "\n", - "The **parent_hamiltonian_mps** have all the functions for building the **PH** for the **BTC** ansatz for several qubits and depths in a very easy and straightforward way. In this Notebook the **parent_hamiltonian_mps** will be explained. The **MPS** computations implemented in the different modules will be explained in the following notebooks.\n" + "The **parent_hamiltonian_mps** has all the functions for building the **PH** for the **BTC** ansatz for several qubits and depths in a very easy and straightforward way. In this Notebook, the **parent_hamiltonian_mps** will be explained. The **MPS** computations implemented in the different modules will be explained in the following notebooks.\n" ] }, { @@ -70,7 +70,7 @@ "source": [ "## 1. parent_hamiltonian_mps package\n", "\n", - "The main function from this package is the **run_parent_hamiltonian** one. This function computes the Pauli decomposition of the **PH** for the ansatz **BTC** for a given number of qbits and depth. The input of the function is the **configuration** python **kwargs**. The main keyword arguments that should be provided are:\n", + "The main function of this package is the **run_parent_hamiltonian** one. This function computes the Pauli decomposition of the **PH** for the ansatz **BTC** for a given number of qubits and depth. The input of the function is the **configuration** python **kwargs**. The main keyword arguments that should be provided are:\n", "\n", "* **nqubits**: it holds the number of qubits desired for **BTC** ansatz.\n", "* **depth**: it holds the depth desired for the **BTC** ansatz.\n", @@ -88,7 +88,7 @@ " * {base_fn}_mps_ph_time.csv: file for storing the time that the code needed for the **PH** computations.\n", " * The base_fn will have the following pattern: **ansatz\\_simple01\\_nqubits\\_{nqubits}\\_depth_{depth}_mps**\n", " \n", - "The {base_fn}_parameters.csv and the {base_fn}\\_pauli.csv have compatible formats for using it, straightoforwardly, with the **vqe_step** module (see notebook *03_ParentHamiltonian_execution.ipynb*)" + "The {base_fn}_parameters.csv and the {base_fn}\\_pauli.csv have compatible formats for using it, straightforwardly, with the **vqe_step** module (see notebook *03_ParentHamiltonian_execution.ipynb*)" ] }, { @@ -135,9 +135,7 @@ "cell_type": "code", "execution_count": null, "id": "04bfd8ba", - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "pauli_mps.head()" @@ -183,6 +181,7 @@ "outputs": [], "source": [ "# PH usign State Vector libraries\n", + "sys.path.append(\"../../\")\n", "from parent_hamiltonian import PH\n", "from ansatzes import run_ansatz" ] @@ -275,12 +274,6 @@ "Now we can use the **vqe_step** module for computing the **VQE** step of the computed **PH**." ] }, - { - "cell_type": "markdown", - "id": "573b0b8a", - "metadata": {}, - "source": [] - }, { "cell_type": "code", "execution_count": null, @@ -390,7 +383,7 @@ "source": [ "## 2 MPS Times\n", "\n", - "In order to provide a overview of why use **MPS** in the following graphs several time comparisons for computing **PH** for different **number of qubits** and **depths** using **myQLM StateVector** and **MPS** asre shown:\n", + "In order to provide an overview of why use **MPS** in the following graphs several time comparisons for computing **PH** for different **number of qubits** and **depths** using **myQLM StateVector** and **MPS** are shown:\n", "\n", "![image.png](attachment:image.png)" ] @@ -409,6 +402,32 @@ "\n", "![image-4.png](attachment:image-4.png)" ] + }, + { + "cell_type": "markdown", + "id": "ec5e3309-069e-4616-a0aa-bfbeff13cc87", + "metadata": {}, + "source": [ + "## 3. Command line execution\n", + "\n", + "The **parent_hamiltonian_mps.py** module can be executed from the command line. Several arguments can be provided for configuring the complete execution. To get help type:\n", + "\n", + " parent_hamiltonian_mps.py -h\n", + "\n", + "Example:\n", + "\n", + "For doing a parent Hamiltonian computation for a *simple01* ansatz of 24 *qubits* with *depth* 4 type and with a truncation for SVD of 0.001 type\n", + "\n", + " python parent_hamiltonian_mps.py -nqubits 24 -depth 4 --truncate -t_v 0.001 --t_inv --save --exe -folder SavesMPSg program" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4eef6f38-0988-45c1-9bdf-c173b0891f3b", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -427,7 +446,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/PH/notebooks/06_Ansatz_MPS.ipynb b/tnbs/BTC_04_PH/PH/notebooks/07_Ansatz_MPS.ipynb similarity index 99% rename from tnbs/BTC_04_PH/PH/notebooks/06_Ansatz_MPS.ipynb rename to tnbs/BTC_04_PH/PH/notebooks/07_Ansatz_MPS.ipynb index 5063c2a..7294b8d 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/06_Ansatz_MPS.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/07_Ansatz_MPS.ipynb @@ -14,7 +14,7 @@ "\n", "Here we document how to simulate the ansatz using **MPS** and the different functions implemented in the library. \n", "\n", - "First we provide some basic MPS naming:\n", + "First, we provide some basic MPS naming:\n", "\n", "![image.png](attachment:image.png)" ] @@ -65,10 +65,12 @@ "metadata": {}, "outputs": [], "source": [ + "sys.path.append(\"../../\")\n", "# myQLM qpus\n", - "from qat.qpus import PyLinalg, CLinalg\n", - "qpu_c = CLinalg()\n", - "qpu_p = PyLinalg()" + "from get_qpu import get_qpu\n", + "# myQLM qpus\n", + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" ] }, { @@ -143,7 +145,7 @@ "source": [ "### 1.2 Apply local gates\n", "\n", - "The firs step is apply a local gate. In this case the operation is trivial as can be seen in the Figure:\n", + "The first step is to apply a local gate. In this case, the operation is trivial as can be seen in the Figure:\n", "\n", "![image-2.png](attachment:image-2.png)\n", "\n" @@ -170,11 +172,11 @@ "id": "a1309c68", "metadata": {}, "source": [ - "We need to use the function *contract_indices* from **contractions** package for doing the contraction between the $|0\\rangle$ state and the local gate (in this case a $R_x$). This function contracts two input tensors by the index provided. Following figure shows how to execute the contraction operation:\n", + "We need to use the function *contract_indices* from **contractions** package for doing the contraction between the $|0\\rangle$ state and the local gate (in this case a $R_x$). This function contracts two input tensors by the index provided. The following figure shows how to execute the contraction operation:\n", "\n", "![image.png](attachment:image.png)\n", "\n", - "The resulting tensor will have the order convention showed in the middle pictures (the rule for oredering is: first the free indices of the first tensor and then free indices of the second one). So in order to keep our index convention we need to execute a transposition of the indices as showed in the Figure.\n" + "The resulting tensor will have the order convention shown in the middle pictures (the rule for ordering is: first the free indices of the first tensor and then the free indices of the second one). So to keep our index convention we need to execute a transposition of the indices as shown in the Figure.\n" ] }, { @@ -193,7 +195,7 @@ "id": "7355e08e", "metadata": {}, "source": [ - "We need to apply the same gate over all the rank-3 tensor of the MPS. In this case we can use the function *apply_local_gate* from **mps** package. The first input is the list with the **MPS** and the second one is a list where each element is the local gate that should be applied over each element of the **MPS**. If you don't want a gate over a fixed qubit (or qubits) only send a **None**." + "We need to apply the same gate over all the rank-3 tensors of the MPS. In this case, we can use the function *apply_local_gate* from the **mps** package. The first input is the list with the **MPS** and the second one is a list where each element is the local gate that should be applied over each element of the **MPS**. If you don't want a gate over a fixed qubit (or qubits) only send a **None**." ] }, { @@ -312,14 +314,13 @@ "\n", "The second step of the ansatz circuit is a circular waterfall of Controlled-Z gates.\n", "\n", - "\n", "#### General Non-Local Gate MPS simulation\n", "\n", "Given two generic rank-3 tensors that represent 2 qubits: $A_{ijk}$, with dimensions: $(d^A_0, d^A_1, d^A_2)$, and $B_{ijk}$, with dimensions: $(d^B_0, d^B_1, d^B_2)$, such that their **physical legs** has dimension 2 ($d^A_1=d^B_1=2$), and **non-local gate** that act between these 2 qubits ($d^{gate}_0 = d^{gate}_1 = 4$), the workflow for simulating the **non-local gate** using MPS is the following\n", "\n", "![image-2.png](attachment:image-2.png)\n", "\n", - "This complete workflow can be executed by using the function *apply_2qubit_gate* from **mps** package. The inputs are:\n", + "This complete workflow can be executed by using the function *apply_2qubit_gate* from the **mps** package. The inputs are:\n", "\n", "* tensor_1: first tensor\n", "* tensor_2 : second tensor\n", @@ -461,7 +462,7 @@ "id": "c550f1f4", "metadata": {}, "source": [ - "Finally we can compose all the MPS for getting the final state. In this case we need to contract the right leg of the last qubit with the left leg of the first qubit because the implemented ansatz is translational invari\n", + "Finally, we can compose all the MPS to get the final state. In this case, we need to contract the right leg of the last qubit with the left leg of the first qubit because the implemented ansatz is translational invariant\n", "\n", "![image.png](attachment:image.png)" ] @@ -542,9 +543,9 @@ "source": [ "**NOTE**\n", "\n", - "The ansatz for the **BTC** is trnaslational invariant so it is mandatory that the last qubit controls the first one giving place to a boundary condition. In this case the number of **non-local** gates is equal to the number of qubis.\n", + "The ansatz for the **BTC** is translational invariant so the last qubit must control the first one giving place to a boundary condition. In this case, the number of **non-local** gates is equal to the number of qubits.\n", "\n", - "For other type of circuits this boundary condition does no exist. In this case we can set the last element of **non-local** gates list to **None**." + "For other types of circuits, this boundary condition does not exist. In this case, we can set the last element of **non-local** gates list to **None**." ] }, { @@ -552,7 +553,7 @@ "id": "0f5be002", "metadata": {}, "source": [ - "### 1.4 Apply second group of local gates.\n", + "### 1.4 Apply the second group of local gates.\n", "\n", "Now we need to apply a group of $R_z$ gates. This can be done in an easy way using the function *apply_local_gate*, as explained before, and creating a list with the corresponding gate (*z_rotation* from **gates_mps**)" ] @@ -564,9 +565,9 @@ "source": [ "## 2. ansatz_mps function\n", "\n", - "In order to simplify the procces the *ansatz_mps* from **ansatz_mps** packages was created. This function needs following inputs:\n", + "To simplify the process the *ansatz_mps* from **ansatz_mps** packages was created. This function needs the following inputs:\n", "\n", - "* nqubits: number qbits for the ansazt\n", + "* nqubits: number qubits for the ansatz\n", "* depth : depth of the ansatz\n", "* angles: list with the angles for the ansatz\n", "* truncate : Bool for truncating or not the SVDs\n", @@ -670,6 +671,14 @@ "Test = np.isclose(pdf_myQLM[\"Amplitude\"], pdf_mps[\"Amplitude\"]).all()\n", "print(\"Test: {}\".format(Test))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ddc421e-84b8-48f7-ad1f-2c9dda9fc996", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -688,7 +697,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/PH/notebooks/07_ReducedDensityMatriceswithMPS.ipynb b/tnbs/BTC_04_PH/PH/notebooks/08_ReducedDensityMatriceswithMPS.ipynb similarity index 99% rename from tnbs/BTC_04_PH/PH/notebooks/07_ReducedDensityMatriceswithMPS.ipynb rename to tnbs/BTC_04_PH/PH/notebooks/08_ReducedDensityMatriceswithMPS.ipynb index 2c3027c..d91a98d 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/07_ReducedDensityMatriceswithMPS.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/08_ReducedDensityMatriceswithMPS.ipynb @@ -11,7 +11,7 @@ "$$\\newcommand{\\ket}[1]{\\left|{#1}\\right\\rangle}$$\n", "$$\\newcommand{\\bra}[1]{\\left\\langle{#1}\\right|}$$\n", "\n", - "As explained in notebooks: *02_Using_PH_Class.ipynb* and *05_ParentHamiltonian_with_MPS.ipynb* the main operation needed for computing a **PH** from an ansatz is the calculation of density matrices. In this notebook we explain how to compute them when the **MPS** representation is given." + "As explained in notebooks: *02_Using_PH_Class.ipynb* and *05_ParentHamiltonian_with_MPS.ipynb* the main operation needed for computing a **PH** from an ansatz is the calculation of density matrices. In this notebook, we explain how to compute them when the **MPS** representation is given." ] }, { @@ -60,9 +60,12 @@ "metadata": {}, "outputs": [], "source": [ + "sys.path.append(\"../../\")\n", "# myQLM qpus\n", - "from qat.qpus import CLinalg\n", - "qpu_c = CLinalg()" + "from get_qpu import get_qpu\n", + "# myQLM qpus\n", + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" ] }, { @@ -105,12 +108,12 @@ " =\\Psi_{\\color{red}{i_0i_1} \\cdots i_{k} i_{k+1} \\cdots i_{k+m} \\color{red}{i_{k+m+1} \\cdots i_{n-1}}}\n", " \\Psi^{*\\;\\color{red}{i_0i_1}\\cdots j_{k} j_{k+1} \\cdots j_{k+m} \\color{red}{i_{k+m+1} \\cdots i_{n-1}}}$$\n", " \n", - "In **MPS**^this reduced matrices can be depcited as follow:\n", + "In **MPS**^this reduced matrices can be depicted as follows:\n", "\n", "![image.png](attachment:image.png)\n", "\n", "\n", - "As can be seen, there is 2 types of indices in thhis computation: the **free indices** and the **contracted indices**." + "As can be seen, there are 2 types of indices in this computation: the **free indices** and the **contracted indices**." ] }, { @@ -265,6 +268,14 @@ "# Testing both implementations\n", "np.isclose(my_red_rho_mps, my_red_rho_state).all()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0eb8248e-ca7c-4418-98de-4bf02be40bf5", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -283,7 +294,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/PH/notebooks/parent_hamiltonian.svg b/tnbs/BTC_04_PH/PH/notebooks/parent_hamiltonian.svg new file mode 100755 index 0000000..814dd01 --- /dev/null +++ b/tnbs/BTC_04_PH/PH/notebooks/parent_hamiltonian.svg @@ -0,0 +1,622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file