Skip to content

Releases: munich-quantum-toolkit/qmap

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

Release v1.7.0: Bugfixes and Modernization

27 Apr 21:23
f557687
Compare
Choose a tag to compare

This release fixes several bugs:

  • Circuits containing measurements and barriers could not be mapped due to the non-unitary nature of these gates
  • A bug in the heuristic mapper prevented it from correctly tracking the number of additional gates
  • Circuits containing only single-qubit gates could not be mapped by the exact mapper
  • Execution was not properly halted whenever the exact mapper did not return a valid result (timeout or unsat)
  • The search space limitation feature had a serious bug that prevented it from creating proper SAT instances in some cases
  • If the exact mapper found a solution that requires no overhead, it still tried out every possible combination of possible subsets.
  • sx and sxdg gates in .qasm files were not natively supported

In addition, this release modernizes the build and deployment configurations to be up-to-date with our other projects:

  • the README is updated with the new TUM information
  • the license is updated
  • z3 has been updated to version 3.8.16
  • versioning is now handled with setuptools-scm
  • ninja is now used per default for building the python package

What Else Has Changed

Full Changelog: v1.6.0...v1.7.0

Release v1.6.0: MQT QMAP

28 Feb 20:42
96e731b
Compare
Choose a tag to compare

This release marks the transition from the JKQ framework to the Munich Quantum Toolkit (MQT).

What's Changed

Full Changelog: v1.5.1...v1.6.0

Release 1.5.1: Bugfixes and Apple Silicon Support

07 Jan 14:44
d3fc4b9
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.5.0...v1.5.1