Package: openqaoa
OpenQAOAA multi-backend python library for quantum optimization using QAOA on Quantum computers and Quantum computer simulators. Check out the OpenQAOA website athttps://openqaoa.entropicalabs.com/OpenQAOA is currently in OpenBeta.Please, considerjoining our discordif you want to be part of our community and participate in the OpenQAOA's development.Installation instructionsOpenQAOA is divided into separately installable plugins based on the requirements of the user. The core elements of the package are placed inopenqaoa-corewhich comes pre-installed with each flavour of OpenQAOA.Currently, OpenQAOA supports the following backends and each can be installed exclusively with the exception ofopenqaoa-azurewhich installsopenqaoa-qiskitas an additional requirement because Azure backends support circuit submissions viaqiskit.openqaoa-braketfor AWS Braketopenqaoa-azurefor Microsoft Azure Quantumopenqaoa-pyquilfor Rigetti Pyquilopenqaoa-qiskitfor IBM QiskitThe OpenQAOA metapackage,openqaoaallows you to install all OpenQAOA plug-ins together.Install via PyPIYou can install the latest version of OpenQAOA directly from PyPI. First, create a virtual environment with python3.8, 3.9, 3.10 and then pip install openqaoa with the following commandpip install openqaoaInstall via git cloneAlternatively, you can install OpenQAOA manually from the GitHub repository by following the instructions below.NOTE:We recommend creating a python virtual environment for this project using a python environment manager, for instance Anaconda. Instructions can be foundhere. Make sure to usepython 3.8(or newer) for the environment.Clone the git repository:git clone https://github.com/entropicalabs/openqaoa.gitAfter cloning the repositorycd openqaoaand pip install the package with instructions from the Makefile as followsmake local-installInstallation instructions for DevelopersUsers can install OpenQAOA in the developer mode via the Makefile. For a clean editable install of the package run the following command from theopenqaoafolder.make dev-installThe package can be installed as an editable with extra requirements defined in thesetup.py. If you would like to install the extra requirements to be able run the tests module or generate the docs, you can run the followingmake dev-install-x,   with x = {tests, docs, all}Should you face any issue during the installation, please drop us an email atopenqaoa@entropicalabs.comor open an issue!Getting startedThe API documentation for OpenQAOA can be foundhere. We also provide a set of tutorials to get you started. Among the many, perhaps you can get started with the following ones:Run your first OpenQAOA workflowHow about trying some RQAOA for a change?Introducing EL's fast QAOA simulatorDiscover OpenQAOA's custom parametrizationsKey FeaturesBuild advanced QAOAs. Create complex QAOAs by specifying customparametrisation,mixer hamiltonians,classical optimisersand execute the algorithm on either simulators or QPUs.Recursive QAOA. Run RQAOA with fully customisable schedules on simulators and QPUs alike.QPU access. Built in access forIBM Quantum,Rigetti QCS,Amazon BraketandAzure Quantum.Available devivesDevices are serviced both locally and on the cloud. For the IBM Quantum experience, the available devices depend on the specified credentials. For QCS and Amazon Braket, the available devices are listed in the table below:Device locationDevice Namelocal['qiskit.shot_simulator', 'qiskit.statevector_simulator', 'vectorized', 'pyquil.statevector_simulator']Amazon BraketIonQ, Rigetti, OQC, and simulatorsIBMQPlease check the IBMQ backends available to your accountRigetti QCSAspen-11, Aspen-M-1, and QVM simulatorAzureIonQ, Quantinuum, Rigetti, QCIRunning the testsTo run the unit-tests, first, make sure to have installed all the optional testing dependencies by runningmake dev-install-tests. Next typepytest tests/ /src/*/tests/from the project's root folder. This runs the common metapackage unit-tests and the unit-tests for each OpenQAOA plugin.:warning:Some tests require authentication: Please, check the flags inpytest.ini. Currently these testes are markedqpu,api,docker_aws,braket_api,sim:warning:Some tests require authentication: Please, note that the PyQuil-Rigetti tests contained intest_pyquil_qvm.pyrequires an activeqvm(see Rigetti's documentationhere)Contributing and feedbackIf you find any bugs or errors, have feature requests, or code you would like to contribute, feel free to open an issue or send us a pull request on GitHub.We are always interested to hear about projects built with OpenQAOA. If you have an application you'd like to tell us about, drop us an email atopenqaoa@entropicalabs.com