Skip to content

bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC

← Module overview

classLayoutHeuristicABCsource

bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC

Bases: abc.ABC

class LayoutHeuristicABC(arch_spec: ArchSpec)

Parameters

NameTypeDescription
arch_specArchSpec

Attributes

NameTypeDescription
arch_specArchSpec

methodcompute_layoutsource

bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC.compute_layout

Signature
def compute_layout(all_qubits: tuple[int, ...], stages: list[tuple[tuple[int, int], ...]], pinned: dict[int, LocationAddress] | None = None) -> tuple[LocationAddress, ...]

Compute the initial qubit layout from circuit stages.

Parameters

NameTypeDefaultDescription
all_qubitstuple[int, ...]requiredTuple of logical qubit indices to be mapped.
stageslist[tuple[tuple[int, int], ...]]requiredList of circuit stages, where each stage is a tuple of (control, target) qubit pairs representing two-qubit gates.
pinneddict[int, LocationAddress] | NoneNoneMap from logical qubit ID to pre-pinned LocationAddress. Implementations MUST place each pinned qubit at its requested address and MUST NOT use any address in pinned.values() for un-pinned qubits. None or empty preserves previous behavior. All values in pinned MUST be valid home positions for the architecture (i.e. present in arch_spec.home_sites); passing an out-of-arch address raises ValueError.

Returns

(LocationAddress, ..., tuple[LocationAddress, ...], tuple[LocationAddress, ...])A tuple of LocationAddress objects mapping logical qubit indices to physical locations. Pinned IDs return their pinned address; un-pinned IDs return the heuristic's choice. Raises if no legal layout exists.

source