Simple layout
PhysicalLayoutHeuristicFixed
dataclass
PhysicalLayoutHeuristicFixed(
arch_spec: ArchSpec = get_physical_layout_arch_spec(),
)
Bases: LayoutHeuristicABC
flowchart TD
bloqade.lanes.heuristics.simple_layout.PhysicalLayoutHeuristicFixed[PhysicalLayoutHeuristicFixed]
bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC[LayoutHeuristicABC]
bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC --> bloqade.lanes.heuristics.simple_layout.PhysicalLayoutHeuristicFixed
click bloqade.lanes.heuristics.simple_layout.PhysicalLayoutHeuristicFixed href "" "bloqade.lanes.heuristics.simple_layout.PhysicalLayoutHeuristicFixed"
click bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC href "" "bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC"
compute_layout
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 | Description | Default |
|---|---|---|---|
all_qubits
|
tuple[int, ...]
|
Tuple of logical qubit indices to be mapped. |
required |
stages
|
list[tuple[tuple[int, int], ...]]
|
List of circuit stages, where each stage is a tuple of (control, target) qubit pairs representing two-qubit gates. |
required |
pinned
|
dict[int, LocationAddress] | 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. |
None
|
Returns:
| Type | Description |
|---|---|
LocationAddress
|
A tuple of LocationAddress objects mapping logical qubit indices |
...
|
to physical locations. Pinned IDs return their pinned address; |
tuple[LocationAddress, ...]
|
un-pinned IDs return the heuristic's choice. Raises if no legal |
tuple[LocationAddress, ...]
|
layout exists. |
Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/heuristics/simple_layout.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | |