Skip to content

Releases: cda-tum/mqt-qmap

Release 1.11.2: Bugfix Release

09 Nov 10:20
1cc4741
Compare
Choose a tag to compare

This release mainly drops the requirement on retworkx and uses the (newly renamed) rustworkx library.
This follows suit with the recent QCEC release and, in combination, allows to use the most recent version of Qiskit in combination with both tools.

What's Changed

Full Changelog: v1.11.1...v1.11.2

Release 1.11.1: Bugfix Release

29 Oct 08:37
9555fad
Compare
Choose a tag to compare

This release mainly consists of a couple of bugfixes related to Qiskit compatibility (#165) and overall compilation requirements (#159).

What's Changed

Full Changelog: v1.11.0...v1.11.1

Release 1.11.0: Subarchitectures, Docs, and Internals

21 Oct 08:21
65b2f27
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.10.1...v1.11.0

Release 1.10.1: Infrastructure Updates

07 Sep 20:35
1cf5adc
Compare
Choose a tag to compare

This release mostly updates or introduces internal code quality measures.
It also updates Z3 to the latest version and introduces an option to disable the inclusion of measurements in the returned circuits.

What's Changed

Full Changelog: v1.10.0...v1.10.1

Release 1.10.0: LogicBlocks Integration

01 Sep 11:26
0c30f6b
Compare
Choose a tag to compare

This release marks the addition of the LogicBlocks submodule in QMAP as a drop-in replacement for Z3 that abstracts away most of the technical aspects related to Z3 (see #79 for more details on this change).

Please report any bugs that you encounter by creating an issue. Make sure to check whether the problem also occurs using previous versions (specifically v1.9.1). This helps in quickly isolating the problem.

Release 1.9.1: Dependency Update and Python 3.11 Wheels

30 Aug 15:42
c1b13f9
Compare
Choose a tag to compare

This minor release contains almost only dependency updates. The most notable change is the addition of wheels for Python 3.11 (introduced by #93).
This also marks the last release before the LogicBlocks project (https://github.com/IsFairy/LogicBlocks) is being added to QMAP in #79.

What's Changed

Full Changelog: v1.9.0...v1.9.1

Release 1.9.0: Improved Qiskit Integration

25 Jun 00:53
108dd52
Compare
Choose a tag to compare

This release brings improved and tighter integration with Qiskit.
First of all, QMAP now natively supports mapping to Qiskit Backends (such as FakeLondon, etc.).
In addition, QMAP now returns a Qiskit QuantumCircuit that explicitly contains layout information (how the original circuit's logical qubits are initially assigned to the device's physical ones) and measurements (indicating the output permutation of logical qubits).

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

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

qc_mapped, results = qmap.compile(qc, arch=FakeLondon())

This allows to conveniently verify the correctness of the resulting circuits using our mqt.qcec tool.

from mqt import qcec

result = qcec.verify(qc, qc_mapped)
print(result.equivalence())

Finally, QMAP is now also capable of parsing calibration data/properties from Qiskit Backends or from Qiskit BackendProperties/Target objects themselves. While this information is currently not used in the mapping itself, it serves as a preparation for future developments.
When providing such properties, an architecture need not be defined necessarily as it is deduced from the calibration data.

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

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

props = FakeLondon().properties()
qc_mapped, results = qmap.compile(qc, arch=None, calibration=props)

What's Changed

Full Changelog: v1.8.2...v1.9.0

Release 1.8.2: Additional Architectures

07 Jun 09:39
09a9e51
Compare
Choose a tag to compare

What's Changed

Dependency Updates

New Contributors

Full Changelog: v1.8.1...v1.8.2

MaxSAT Evaluation 2022

Additionally, benchmarks submitted to the 2022 MaxSAT Evaluation can be found in the zip file attached to this release. The WCNF instances were generated using the exact mapper of QMAP using benchmark circuits from MQT Bench.

Release 1.8.1: Bugfix Release

17 May 10:55
37ce12f
Compare
Choose a tag to compare

This release fixes some bugs that prevented custom encodings from working properly.

What's Changed

Full Changelog: v1.8.0...v1.8.1

Release v1.8.0: Usability Improvements

10 May 13:13
625b26a
Compare
Choose a tag to compare

This release adds many usability improvements to the QMAP tool:

  • mapped circuits now properly contain measurements at the end of the circuit
  • an option is provided to extract the WCNF formulation from Z3 for use in other solvers
  • a simple post-optimization is introduced that tried to cancel adjacent CNOTs and (parts of) SWAPs
  • the search for the minimum number of SWAPs required for a particular permutation is terminated according to the number of allowed SWAPs per layer
  • the exact mapper now allows to map to particular subgraphs of larger architectures (given as a set of qubits)
  • gate counts of the mapped circuit are now reported slightly differently (SWAPs, etc. are no longer listed extra but appropriately reflected in the CNOT gate count)
  • the output in verbose mode has been slightly improved for the exact mapper

What's Changed

Full Changelog: v1.7.0...v1.8.0