Qubit mapper

CNOT strucuture

The structure must be inserted as a single string. The string format is "control_qubit1 target_qubit1, control_qubit2 target_qubit2,...". Qubits should be named from 0 to n-1, where n is the number of qubits. An example: "0 1, 0 2, 0 3, 2 3"

Topologies

The performance can be measured with variable types of topologies:

  • Line: Qubits form a single line.
  • Star: Single qubit is connected to all other qubits.
  • Circular: Qubits form a single cycle.
  • Complete: All qubits are connected to each other.
  • Manual: The user can define the structure of the topolgy. The structure must be inserted as a single string. The string format is "qubit1 qubit2, qubit3 qubit4,...". Qubits should be named from 0 to n-1, where n is the number of qubits. An example: "0 1, 0 2, 0 3, 2 3"

Algorithms

  • Trivial mapping: Qubits are mapped 0->0, 1->1...
  • Manual mapping: The user can define the mapping. The mapping must be permutation of the qubits. For example, "1 2 3 0" means that logical qubit 0 is mapped to harware qubit 1, qubit 1 is mapped to qubit 1, etc.
  • A-Star: A-start search with heuristic h=sum(abs(pm1-pm2)).