- dynprog
Source: Siraichi et al. (2018)
Paper: Qubit Allocation
Description: Dynamic programming algorithm that solves the
qubit allocation problem optimally, without reordering the
gates.
- wpm
Source: Siraichi et al. (2018)
Paper: Qubit Allocation
Description: Weighted partial matching algorithm.
It also does not reorder the gates.
It is a fast straight-forward solution that relies on simple
heuristics.
- qubiter
Source: https://github.com/artiste-qb-net/qubiter
Description: Old qubiter implementation.
It will only work on architectures that are reachable within
at most two steps.
- wqubiter
Description: Same as qubiter but with
wpm strategy for finding a good first mapping.
- wpm_random
Description: Same as wpm but without
its strategy for finding a good first mapping.
Instead, it generates a random mapping.
- ibm
Source: https://github.com/Qiskit/qiskit-terra
Description: IBM mapping algorithm.
- jku
Source: Zulehner et. al.
Paper: An Efficient Methodology for Mapping Quantum Circuits to the IBM QX Architectures.
Description: A-star search based algorithm.
It split the program into layers, and uses the A-star search to find a
mapping that is able to translate each of them directly.
- sabre
Source: Li et. al.
Paper: Tackling the Qubit Mapping Problem for NISQ-Era Quantum Devices.
Description: Hill-climbing like algorithm.
At each step, the algorithm tries to approximate the qubits, while taking
into account future gates.
- bmt
Source: Siraichi et al. (2019)
Paper: Qubit Allocation as a Combination of Subgraph Isomorphism and Token Swapping.
Description: The Bounded Mapping Tree algorithm.
It is a three-phase algorithm that: (i) splits the program into smaller
programs; (ii) finds how to best combine each of the smaller programs; and
(iii) combines them, solving the Token Swapping Problem.
- chw
Source: Zulehner et. al.
Paper: Compiling SU(4) Quantum Circuits to IBM QX Architectures.
Description: The IBM Developer Challenge winner.
It also uses a modified A-star algorithm in order to solve each of its
dependencies.
However, it does so by solving one CNOT gate at a time, and taking into
account future gates.