Giter Site home page Giter Site logo

openqaoa's Introduction

OpenQAOA

build test Documentation Status PyPI version arXiv License Contributor Covenant codecov Downloads Binder

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 [email protected]: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 [email protected] 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 IBM Quantum, Rigetti QCS, and Amazon Braket.

Available devives

Devices 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 location Device Name
local ['qiskit.shot_simulator', 'qiskit.statevector_simulator', 'qiskit.qasm_simulator', 'vectorized', 'pyquil.statevector_simulator']
Amazon Braket IonQ, Rigetti, OCQ, and simulators
IBMQ Please check the IBMQ backends available to your account
Rigetti QCS Aspen-11, Aspen-M-1, and QVM simulator

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.

⚠️ Some tests require authentication: all tests flagged api or qpu require valid qpu crendentials to be specified in tests/credentials.json

⚠️ Some tests require authentication: Please, note that the PyQuil-Rigetti tests contained in test_pyquil_qvm.py requires an active qvm (see Rigetti's documentation here)

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 [email protected].

openqaoa's People

Contributors

q-lds avatar vishal-ph avatar raulconchello avatar shahidee44 avatar shaohenc avatar ezerc avatar kilianpoirier avatar alejomonbar avatar krankgeflugel avatar adirlou avatar maldoalberto avatar emilianog-byte avatar voidburn avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.