Skip to main content

A Qiskit transpiler plugin for BIPMapping

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

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:

If you use qiskit-bip-mapper in your research, please cite our paper as per the included BibTeX file file.

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

qiskit-bip-mapper-0.1.0.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qiskit_bip_mapper-0.1.0-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file qiskit-bip-mapper-0.1.0.tar.gz.

File metadata

  • Download URL: qiskit-bip-mapper-0.1.0.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for qiskit-bip-mapper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fb98a7162ddefbba53d1e318c2b327a0ef93954daae882cbbe9192416ef1ba56
MD5 9ae4946eee378e63f643e37bfba4738b
BLAKE2b-256 b1d0ae35e945c6f203c73d4775f811037acdcfd167b9850523cf86cd9d3d29cd

See more details on using hashes here.

File details

Details for the file qiskit_bip_mapper-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: qiskit_bip_mapper-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for qiskit_bip_mapper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b41eef25c087896c9914910de965b418cb13f63a607727a82f2d23650fbe3d82
MD5 a730ffc52bce41908237a496a2141ecd
BLAKE2b-256 92fba123555215c6d176e2149b7b2d898457e7352ef019835fe6eb8674765de5

See more details on using hashes here.

Supported by

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