IQMMoveLayout#

Module: iqm.qiskit_iqm.iqm_move_layout

class iqm.qiskit_iqm.iqm_move_layout.IQMMoveLayout(*args, **kwargs)#

Bases: TrivialLayout

Create a layout that is valid on the dynamic quantum architecture of the given IQM target.

The architecture defines which gate loci are available. This class tries to map the virtual/logical components of the circuit to the physical QPU components of the architecture, such that the gates in the circuit can be applied on those components.

This class is required because Qiskit’s basic layout algorithm assumes all connections between two qubits have the same two-qubit gates available, which isn’t true in general.

Note

This version of the layout generator only works reliably with a single resonator, and can only handle pure Star architecture circuits. It also assumes that a valid layout exists for the circuit that does not require SWAPs, which isn’t true in general.

Attributes

Methods

get_initial_layout

Returns the initial layout generated by the algorithm.

run

Creates a valid layout for the given quantum circuit.

run(dag: DAGCircuit) None#

Creates a valid layout for the given quantum circuit.

Parameters:

dag (DAGCircuit) – Circuit DAG to find layout for.

Raises:

TranspilerError – A valid layout could not be found.

Return type:

None

get_initial_layout() Layout#

Returns the initial layout generated by the algorithm.

Returns:

The initial layout.

Return type:

Layout

Inheritance

Inheritance diagram of iqm.qiskit_iqm.iqm_move_layout.IQMMoveLayout