Placement
PhysicalPlacementStrategy
dataclass
PhysicalPlacementStrategy(
arch_spec: ArchSpec = get_physical_arch_spec(),
traversal: RustPlacementTraversal = (
lambda: RustPlacementTraversal(strategy="entropy")
)(),
target_generator: (
TargetGeneratorABC | TargetGeneratorCallable | None
) = None,
)
Bases: PlacementStrategyABC
flowchart TD
bloqade.lanes.heuristics.physical.placement.PhysicalPlacementStrategy[PhysicalPlacementStrategy]
bloqade.lanes.analysis.placement.strategy.PlacementStrategyABC[PlacementStrategyABC]
bloqade.lanes.analysis.placement.strategy.PlacementStrategyABC --> bloqade.lanes.heuristics.physical.placement.PhysicalPlacementStrategy
click bloqade.lanes.heuristics.physical.placement.PhysicalPlacementStrategy href "" "bloqade.lanes.heuristics.physical.placement.PhysicalPlacementStrategy"
click bloqade.lanes.analysis.placement.strategy.PlacementStrategyABC href "" "bloqade.lanes.analysis.placement.strategy.PlacementStrategyABC"
Physical placement strategy backed by the Rust MoveSolver.
rust_entropy_fallback_count
property
rust_entropy_fallback_count: int
Number of solved Rust entropy stages that used sequential fallback.
rust_nodes_expanded_total
property
rust_nodes_expanded_total: int
Total Rust solver node expansions for this strategy instance.
traced_blocked_locations
property
traced_blocked_locations: tuple[LocationAddress, ...]
Spectator atom positions for the traced CZ layer (atoms not in the active placement).
traced_target
property
traced_target: dict[int, LocationAddress]
First candidate target for the traced CZ layer (used by visualizers).
RustPlacementTraversal
dataclass
RustPlacementTraversal(
strategy: SearchStrategyName = "entropy",
max_movesets_per_group: int = 3,
max_goal_candidates: int = 3,
max_expansions: int | None = 300,
restarts: int = 1,
lookahead: bool = False,
collect_entropy_trace: bool = False,
)
Config for the Rust MoveSolver.
restarts and lookahead are now exposed and threaded into
SolveOptions; per-strategy entropy knobs (max_movesets_per_group,
max_goal_candidates, collect_entropy_trace) feed EntropyOptions
via :func:solve_options_from_traversal.
Not yet exposed (Rust defaults used): weight, deadlock_policy,
w_t. These will be threaded through once validated via Rust-only
benchmarking.