Layout
PhysicalLayoutHeuristicGraphPartitionCenterOut
dataclass
PhysicalLayoutHeuristicGraphPartitionCenterOut(
arch_spec: ArchSpec = get_physical_layout_arch_spec(),
max_words: int | None = None,
u_factor: int = 1,
partitioner_seed: int = 0,
)
Bases: LayoutHeuristicABC
flowchart TD
bloqade.lanes.heuristics.physical.layout.PhysicalLayoutHeuristicGraphPartitionCenterOut[PhysicalLayoutHeuristicGraphPartitionCenterOut]
bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC[LayoutHeuristicABC]
bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC --> bloqade.lanes.heuristics.physical.layout.PhysicalLayoutHeuristicGraphPartitionCenterOut
click bloqade.lanes.heuristics.physical.layout.PhysicalLayoutHeuristicGraphPartitionCenterOut href "" "bloqade.lanes.heuristics.physical.layout.PhysicalLayoutHeuristicGraphPartitionCenterOut"
click bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC href "" "bloqade.lanes.analysis.layout.analysis.LayoutHeuristicABC"
home_word_ids
property
home_word_ids: tuple[int, ...]
Home words for one-zone physical layout.
Uses the arch-level home-word computation from zone entangling pairs.
sites_per_partition
property
sites_per_partition: int
Maximum number of qubits placed per home word.
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/physical/layout.py
478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 | |