qrunch.quantum.circuits.synthesis.layout.layout_synthesis_protocols

Module containing protocols for layout synthesis.

Classes

LayoutSynthesisResult

Class hold the result from the layout synthesizer.

LayoutSynthesizer

Protocol for the layout synthesizer.

class LayoutSynthesisResult

Bases: object

Class hold the result from the layout synthesizer.

All fields are immutable (frozen=True) so an instance can be safely reused.

Parameters:
  • circuit – The synthesized circuit.

  • initial_mapping – The initial logical to physical qubit mapping.

  • final_mapping – The final logical to physical qubit mapping.

__init__(circuit: Circuit, initial_mapping: QubitMap, final_mapping: QubitMap) None
Parameters:
Return type:

None

circuit: Circuit
final_mapping: QubitMap
initial_mapping: QubitMap
class LayoutSynthesizer

Bases: Protocol

Protocol for the layout synthesizer.

__init__(*args, **kwargs)
synthesize(circuit: UniversalGateCircuit, device_data: DeviceData) LayoutSynthesisResult

Synthesize the given circuit into a new circuit and an initial and final logical-physical qubit maps.

Parameters:
  • circuit (UniversalGateCircuit) – Circuit to be synthesized.

  • device_data (DeviceData) – Hardware device data including qubit connectivity for the circuit to be mapped to.

Return type:

LayoutSynthesisResult