Skip to main content

A tool for Quantum Circuit Mapping

Project description

PyPI OS License: MIT CI Python-CI Bindings Documentation codecov

MQT QMAP - A tool for Quantum Circuit Compilation

A tool for quantum circuit compilation developed as part of the Munich Quantum Toolkit (MQT)[^1] by the Chair for Design Automation at the Technical University of Munich. It builds upon our quantum functionality representation (QFR).

Documentation

If you have any questions, feel free to contact us via quantum.cda@xcit.tum.de or by creating an issue on GitHub.

Getting Started

QMAP is available via PyPI for Linux, macOS, and Windows and supports Python 3.8 to 3.11.

(venv) $ pip install mqt.qmap

Compiling a given quantum circuit to a certain device is as easy as

from mqt import qmap
from qiskit import QuantumCircuit
from qiskit.providers.fake_provider import FakeLondon

circ = QuantumCircuit(3)
circ.h(0)
circ.cx(0, 1)
circ.cx(0, 2)

circ_mapped, results = qmap.compile(circ, arch=FakeLondon())

Optimizing a Clifford circuit is as easy as

from mqt import qmap
from qiskit import QuantumCircuit

circ = QuantumCircuit(2)
circ.h(1)
circ.cx(0, 1)
circ.h(0)
circ.h(1)

circ_opt, results = qmap.optimize_clifford(circ)

Detailed documentation on all available methods, options, and input formats is available at ReadTheDocs.

System Requirements and Building

The implementation is compatible with any C++17 compiler, a minimum CMake version of 3.19, and Python 3.8+. Please refer to the documentation on how to build the project.

Building (and running) is continuously tested under Linux, macOS, and Windows using the latest available system versions for GitHub Actions.

References

QMAP has been developed based on methods proposed in the following papers:

[1] A. Zulehner, A. Paler, and R. Wille. An Efficient Methodology for Mapping Quantum Circuits to the IBM QX Architectures. IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems (TCAD), 2018.

[2] R. Wille, L. Burgholzer, and A. Zulehner. Mapping Quantum Circuits to IBM QX Architectures Using the Minimal Number of SWAP and H Operations. In Design Automation Conference (DAC), 2019.

[3] S. Hillmich, A. Zulehner, and R. Wille. Exploiting Quantum Teleportation in Quantum Circuit Mapping. In Asia and South Pacific Design Automation Conference (ASP-DAC), 2021.

[4] L. Burgholzer, S. Schneider, and R. Wille. Limiting the Search Space in Optimal Quantum Circuit Mapping. In Asia and South Pacific Design Automation Conference (ASP-DAC), 2022.

[5] T. Peham, L. Burgholzer, and R. Wille. On Optimal Subarchitectures for Quantum Circuit Mapping. arXiv:2210.09321, 2022.

[6] S. Schneider, L. Burgholzer, and R. Wille. A SAT Encoding for Optimal Clifford Circuit Synthesis. In Asia and South Pacific Design Automation Conference (ASP-DAC), 2023.

[^1]: The Munich Quantum Toolkit was formerly known under the acronym JKQ and developed by the Institute for Integrated Circuits at the Johannes Kepler University Linz).

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

mqt.qmap-2.1.0.tar.gz (3.8 MB view details)

Uploaded Source

Built Distributions

mqt.qmap-2.1.0-cp311-cp311-win_amd64.whl (7.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

mqt.qmap-2.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

mqt.qmap-2.1.0-cp311-cp311-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mqt.qmap-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

mqt.qmap-2.1.0-cp310-cp310-win_amd64.whl (7.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

mqt.qmap-2.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

mqt.qmap-2.1.0-cp310-cp310-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mqt.qmap-2.1.0-cp310-cp310-macosx_10_15_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

mqt.qmap-2.1.0-cp39-cp39-win_amd64.whl (7.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

mqt.qmap-2.1.0-cp39-cp39-manylinux_2_28_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

mqt.qmap-2.1.0-cp39-cp39-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mqt.qmap-2.1.0-cp39-cp39-macosx_10_15_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

mqt.qmap-2.1.0-cp38-cp38-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

mqt.qmap-2.1.0-cp38-cp38-manylinux_2_28_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

mqt.qmap-2.1.0-cp38-cp38-macosx_11_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mqt.qmap-2.1.0-cp38-cp38-macosx_10_15_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

Details for the file mqt.qmap-2.1.0.tar.gz.

File metadata

  • Download URL: mqt.qmap-2.1.0.tar.gz
  • Upload date:
  • Size: 3.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.2

File hashes

Hashes for mqt.qmap-2.1.0.tar.gz
Algorithm Hash digest
SHA256 66c4876729dfddce8014d873350049e209dc67d47dd4fe15f8df944f5052ed5d
MD5 fcd10d9aed6455b0618e9f4f51422075
BLAKE2b-256 490b47ae18596947b331349d6fdd8583ec7c64db437f5b3612d3c6b586c81353

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 06de2a476dcf70e008bddaaa0192b44b22d9b5fc5e6da93e8b1cabc5fb0f0e2d
MD5 f4d8cb7c27b01a2bef951a16d88f7fc1
BLAKE2b-256 3d60cd3df8fb9207c245282553a89ff9b62c81fb6097d4f4829c1ee61ea75572

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9bdc92ae2f47917495b763838c1e3543061f0b9c9d3ab0dcfbf4c4620d0e5dca
MD5 5fee39595ecd28ceb964720c1c325de0
BLAKE2b-256 a7e56f36b515da4c2d23fafe28c6e31746fd9b386093a3fc5d575c5e26885caa

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc39f9cdaedfbdde0f5568b396eb16578fbdd2c29f864a04069042833fee7392
MD5 f73dc09733e8cbbf579ebc4ca32da206
BLAKE2b-256 5868b63d3ea0d58c4c28023ffaf978ea4a5f97d69df43974f474c31bb8ddead8

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d8fb4bdf648f4b0273bce52594cd17054ccad08a0047944269d1513ea5ffab78
MD5 acde9da5ffa771474c34bd9a16d3df2b
BLAKE2b-256 ffba468d1d710167d93e71767186da0d43a5eadc7b7514a0f4ec0eb0df898d99

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 52edda42633a9657e549dcaea27a2bbc81982935c31acbfcabd4ec550ed2788e
MD5 05a219a8d13c641aff39584e364216cc
BLAKE2b-256 3fd24290b65cb0651a6c54f4b43f9ba99a9e4d42cd5fb27fa7d424218fdbeb63

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b993b4ccc7688b73f4fedd2509946d80b6ccfccbfb834e7cbcb5b54e3e201534
MD5 67eebc19dfe4b71bfff654b3543024c6
BLAKE2b-256 22bd0deaccf8a10e462f38d10640c7decb90e19d8b41a853da576e4ac805a97e

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2f6a046065954819530b698d2a058a83c7bb82fa42babdcf903ab0c95cefcb5
MD5 d5f14725ad5cbbcb53554cd085c4e534
BLAKE2b-256 31f478a38fa58cb99831194405724be0c75dac042b7019e423aba601f494074a

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 651dd31b067eac026eba9290eaefcd808eb6337ec9fb7aaee305b3c8db59717b
MD5 5e87f44474abc6345c670e1527841df4
BLAKE2b-256 66b968caaa48afd21252a86413a9a6456e4c46b824498324c2743ba8fcbebf54

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mqt.qmap-2.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.2

File hashes

Hashes for mqt.qmap-2.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 248ae453ed6a1f317be003a21cd76997b67c207140a2587032c8fb7b276c5275
MD5 bc5b47ef5ac3f8595e015acc05f05d30
BLAKE2b-256 5ad59304657ab7d72ab136454ab5d4421deec906aef1256684ba09080e7a5414

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ad3d1af1cc5ea6b60e20ccbbcc9b9070e0b3d205ee13a6274e5df0b341fdb8e
MD5 cc629de56e8f47860486553c8b654513
BLAKE2b-256 cf5708a788c68df29bd323e70a444e77de97611d9620470e4f066cbb20206c13

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b45e25d1da889b65e574f0af332901bb285c7791944a6bc64fc3b5a1032f3ea0
MD5 f181f05830020a53008866105a436714
BLAKE2b-256 ef3a1d8fb1236a80e6f875397d162a698c6681c7ab5b4c0c41d4d8114e912338

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 820a608c31b6277e64c77a3269514eb58016caa7a29a9fd81d62aaf76e07cf90
MD5 b202d758be59eec203bbbe8885801104
BLAKE2b-256 d9b38a6d6ab2e99b3ebe5cb1d37defd2a2a00434c62106ade06d7160b865490d

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mqt.qmap-2.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.2

File hashes

Hashes for mqt.qmap-2.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 286752def901983b01b636cfdce17f30e5d749ae3ee76f3566bcdf40b272d169
MD5 cfc58665fa8fdfe9164cd0900f107738
BLAKE2b-256 8662cf7ecc8b026c3ba843fd98cbe10cbb0d4027794fa5b3b0e630eb70d0854e

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6866d377194cbd4e88f3334012f20d8e18b56e3f56e44c59a0770630352bff98
MD5 0fc57b4f2099be4c4bbddeb0579563b3
BLAKE2b-256 0b89168795fafa9602a79a035029a5a49311bff64bb3b1a729da8d6712d58efc

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 440c830b42d70bf86dacf7406a5eb61ed0fa704f70844e5e6ef5764858ec83a1
MD5 c7e00a3bd0ef498c281d38f2a230a9bc
BLAKE2b-256 f32688f9127faf1376dec05540f6ad5b1ebceaa104fed33973e1b01cb7d59fc8

See more details on using hashes here.

File details

Details for the file mqt.qmap-2.1.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-2.1.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6aee16c004ec161f3a22b25a49bfe306658687975e6ae1d6c21b96ac0379c24b
MD5 9bd1e70530ff592afd37f0088c45dc0f
BLAKE2b-256 859cc8929562ffdae5844934fb08da2daf72faf0b5eca2f95333e283bbc2c877

See more details on using hashes here.

Supported by

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