bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC
← Module overview
class
method
source
classLayoutHeuristicABC¶source
bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC
Bases: abc.ABC
class LayoutHeuristicABC(arch_spec: ArchSpec)Parameters
| Name | Type | Description |
|---|---|---|
arch_spec | ArchSpec |
Attributes
| Name | Type | Description |
|---|---|---|
arch_spec | ArchSpec |
methodcompute_layout¶source
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
| Name | Type | Default | Description |
|---|---|---|---|
all_qubits | tuple[int, ...] | required | Tuple of logical qubit indices to be mapped. |
stages | list[tuple[tuple[int, int], ...]] | required | List of circuit stages, where each stage is a tuple of (control, target) qubit pairs representing two-qubit gates. |
pinned | dict[int, LocationAddress] | None | None | Map 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.