Compiler for quantum algorithms
Project description
VulQano
The VulQano library enables the compilation of quantum circuits to produce equivalent circuits — implementing the same quantum algorithm — that can be executed on a noisy target machine with minimal expected infidelity.
This compilation process is hardware-aware: any gate set can be implemented, and the expected infidelity accounts for specific sources of error on the target machine, including gate infidelity and crosstalk.
Equivalent circuits are generated by replacing sub-circuits with equivalents listed in customizable set of equivalences.
The compilation is approached as a many-body problem: circuits are mapped to many-body states, and the expected infidelity is represented as a Hamiltonian. Techniques such as simulated annealing are then applied to optimize the circuits. Additionally, quantum optimization techniques like quantum annealing can be utilized. The corresponding quantum dynamics are simulated through the Python library qtealeaves.
Version 0.1.0 of Vulqano has been developed in the context of the European Project EuRyQa at the University of Padova.
Environment variables
The discrete rotation gates involved in the compilation include all the unitaries RZ(4pi/2^n)
with n
up to the environment variable R_MAX_VULQANO
. Default is 16.
Documentation
Here is the documentation. The documentation can also be built locally via sphinx.
License
The project vulqano
is hosted at the repository
https://baltig.infn.it/qpd/vulqano
,
and is licensed under the following license:
The license applies to the files of this project as indicated in the header of each file, but not its dependencies.
Examples
Examples for how to use the python module can be found in the repository at https://baltig.infn.it/qpd/vulqano
.
Installation
Installation via pip
The package is available via PyPi and pip install vulqano
.
After cloning the repository, an local installation via pip is
also possible via pip install .
.
Dependencies
The python dependencies can be found in the requirements.txt
and are required independently of the use-cases. qmatchatea
is an optional dependency and is required to run the circuit_tester
module.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file vulqano-0.1.2.tar.gz
.
File metadata
- Download URL: vulqano-0.1.2.tar.gz
- Upload date:
- Size: 60.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a4ff33eea23a092f98b15fced37ec86864a9ead011294878a49b94dce1fc1e8 |
|
MD5 | 6de6e02ee4615388992741aba871e06a |
|
BLAKE2b-256 | 0ff7546630e10183d43c808bc70fd8c89dbb63bd6bfb445461d0d643c661c566 |
File details
Details for the file vulqano-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: vulqano-0.1.2-py3-none-any.whl
- Upload date:
- Size: 78.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d69735f62f89882f470de34f11d8898c80ee70a684c6069feb8ad5f98164d6ee |
|
MD5 | 528d0a578bf126bbe9b5c4e78f36737d |
|
BLAKE2b-256 | 6235d1bb5c4979dfe46ab3205bf398c8ab22afe5ca29f0a51dcbc71dbaad1590 |