Skip to main content

OpenQAOA is a python open-source multi-backend Software Development Kit to create, customise and execute the Quantum Approximate Optimisation Algorithm (QAOA) on Noisy Intermediate-Scale Quantum (NISQ) devices, and simulators

Reason this release was yanked:

Too old

Project description

OpenQAOA logo

build test Documentation Status License Contributor Covenant codecov

OpenQAOA

A multi-backend python library for quantum optimization using QAOA on Quantum computers and Quantum computer simulators.

OpenQAOA is currently in OpenBeta.

Please, consider joining our discord if you want to be part of our community and participate in the OpenQAOA's development.

Installation instructions

You can install the latest version of OpenQAOA directly from PyPi. First, create a virtual environment with python3.8+ and then simply pip install openqaoa with the following command

pip install openqaoa

Alternatively, you can install manually directly from the GitHub repository by

  1. Clone the git repository:
git clone git@github.com:entropicalabs/openqaoa.git
  1. Creating a python virtual environment for this project is recommended. (for instance, using conda). Instructions on how to create a virtual environment can be found here. Make sure to use python 3.8 for the environment.

  2. After cloning the repository cd openqaoa and pip install in edit mode. Use the following command for a vanilla install with the scipy optimizers:

pip install -e .

Should you face any issue during the installation, please drop us an email at openqaoa@entropicalabs.com or open an issue!

Getting started

The documentation for OpenQAOA can be found here.

We also provide a set of tutorials to get you started. Among the many, perhaps you can get started with the following ones:

Key Features

  • Build advanced QAOAs. Create complex QAOAs by specifying custom parametrisation, mixer hamiltonians, classical optimisers and 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 for IBMQ, Rigetti QCS, and AWS.

Available backend

Currently, the available devices are:

Device location Device Name
local ['qiskit.shot_simulator', 'qiskit.statevector_simulator', 'qiskit.qasm_simulator', 'vectorized', 'pyquil.statevector_simulator']
ibmq Please check the IBMQ backends available to your account
qcs [nq-qvm, Aspen-11, Aspen-M-1]

Running the tests

To run the test, first, make sure to have installed all the optional testing dependencies by running pip install .[tests] (note, the braket must to be escaped if you are using the popular zsh shell), and then just type pytest tests/. from the project's root folder. Bear in mind that test_pyquil_qvm.py requires an active qvm (see Rigetti's documentation here), and test_qpu_qiskit.py and test_qpu_auth.py require a valid IBMQ token in the file tests/credentials.json.

Contributing and feedback

If 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 EntropicaQAOA. If you have an application you'd like to tell us about, drop us an email at openqaoa@entropicalabs.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openqaoa-0.0.1.tar.gz (105.6 kB view hashes)

Uploaded Source

Built Distribution

openqaoa-0.0.1-py3-none-any.whl (136.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page