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 take part of the OpenQAOA's development.
- Clone the git repository:
git clone [email protected]:entropicalabs/openqaoa.git
-
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. -
After cloning the repository
cd openqaoa
and pip install in edit mode. Use the following command for a vanilla install with thescipy
optimizers:
pip install -e .
Should you face any issue during the installation, please drop us an email at [email protected] or open an issue!
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 gest started with the following ones:
- Run your first OpenQAOA workflow
- How about trying some RQAOA for a change?
- Introducing EL's fast QAOA simulator
- Discover OpenQAOA's custom parametrizations
-
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
, andAWS
.
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] |
To run the test just type pytest tests/.
from the project's root folder. Bear in mind that test_pyquil_qvm.py
requires an active qvm
(see righetti's documentation here), and test_qpu_qiskit.py
and test_qpu_auth.py
require a valid IBMQ token in the file tests/credentials.json
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 [email protected].