This project has been archived by its maintainers, and is no longer receiving any updates.
Qiskit BIPMapping Plugin
This repository contains a standalone routing stage to use the BIPMapping
routing pass. The BIP mapping pass solves the
routing
and layout
problems as a binary integer programming (BIP) problem. The algorithm used
in this pass is described in:
G. Nannicini et al. "Optimal qubit assignment and routing via integer programming." arXiv:2106.06446
This plugin depends on CPLEX to solve the BIP problem. While a no-cost version of CPLEX is available (and published on PyPI) this has limits set on the size of the problems it can solve which prevents it from being used except for very small quantum circuits. If you would like to use this transpiler pass for larger circuits a CPLEX license will be required.
Install and Use plugin
To use the unitary synthesis plugin first install qiskit terra with the pull request:
pip install qiskit-bip-mapper
To install the plugin package. As part of the install process pip will install
the no-cost version of CPLEX from PyPI automatically. However, if you're going to
use the qiskit-bip-mapper plugin for running transpile() on circuits more than
a couple qubits or with more than handful of 2 qubit gates you will likely need
to install the commercial version of CPLEX.
Using BIPMapping pass
Once you have the plugin package installed you can use the plugin via the
routing_method="bip" argument on Qiskit's transpile() function. For example,
if you wanted to use the BIPMapping method to compile a 15 qubit quantum
volume circuit for a backend you would do something like:
from qiskit import transpile
from qiskit.circuit.library import QuantumVolume
from qiskit.providers.fake_provider import FakePrague
qc = QuantumVolume(15)
qc.measure_all()
backend = FakePrague()
transpile(qc, backend, routing_method="bip")
Authors and Citation
The qiskit-bip-mapper is the work of many people who contribute to the project at different levels. Additionally, the plugin was originally developed as part of the Qiskit project itself and you can see the development history for it here:
- https://github.com/Qiskit/qiskit-terra/commits/0.23.3/qiskit/transpiler/passes/routing/bip_mapping.py
- https://github.com/Qiskit/qiskit-terra/commits/0.23.3/qiskit/transpiler/passes/routing/algorithms/bip_model.py
If you use qiskit-bip-mapper in your research, please cite our paper as per the included BibTeX file file.
Metadata
Release files for qiskit-bip-mapper 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qiskit-bip-mapper-0.1.0.tar.gz | 22.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qiskit_bip_mapper-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.2 kB
Release files / qiskit-bip-mapper-0.1.0.tar.gz
| Download URL | qiskit-bip-mapper-0.1.0.tar.gz |
|---|---|
| Size | 22.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb98a7162ddefbba53d1e318c2b327a0ef93954daae882cbbe9192416ef1ba56
|
|
BLAKE2b-256 checksum How to use checksums |
b1d0ae35e945c6f203c73d4775f811037acdcfd167b9850523cf86cd9d3d29cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.28.2 requests-toolbelt/0.9.1 urllib3/1.26.13 tqdm/4.62.3 importlib-metadata/5.0.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.10
|
Release files / qiskit_bip_mapper-0.1.0-py3-none-any.whl
| Download URL | qiskit_bip_mapper-0.1.0-py3-none-any.whl |
|---|---|
| Size | 23.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b41eef25c087896c9914910de965b418cb13f63a607727a82f2d23650fbe3d82
|
|
BLAKE2b-256 checksum How to use checksums |
92fba123555215c6d176e2149b7b2d898457e7352ef019835fe6eb8674765de5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.28.2 requests-toolbelt/0.9.1 urllib3/1.26.13 tqdm/4.62.3 importlib-metadata/5.0.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.10
|