Skip to content

Physical movement

BFSPlacementTraversal dataclass

BFSPlacementTraversal(
    max_depth: int | None = None,
    max_expansions: int | None = 300,
)

Bases: PlacementTraversalABC

Placement traversal adapter backed by breadth-first search.

path_to_target_config

path_to_target_config(
    *,
    tree: ConfigurationTree,
    target: dict[int, LocationAddress]
) -> SearchResult

Run search and return one or more goal nodes.

Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/heuristics/physical_movement.py
130
131
132
133
134
135
136
137
138
139
140
141
142
def path_to_target_config(
    self,
    *,
    tree: ConfigurationTree,
    target: dict[int, layout.LocationAddress],
) -> SearchResult:
    return BFSTraversal().search(
        tree=tree,
        generator=ExhaustiveMoveGenerator(),
        goal=placement_goal(target),
        max_depth=self.max_depth,
        max_expansions=self.max_expansions,
    )

EntropyPlacementTraversal dataclass

EntropyPlacementTraversal(
    search_params: SearchParams = SearchParams(),
    max_depth: int | None = None,
    max_expansions: int | None = 300,
    on_search_step: OnSearchStep | None = None,
)

Bases: PlacementTraversalABC

Placement traversal adapter backed by entropy-guided search.

path_to_target_config

path_to_target_config(
    *,
    tree: ConfigurationTree,
    target: dict[int, LocationAddress]
) -> SearchResult

Run search and return one or more goal nodes.

Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/heuristics/physical_movement.py
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
def path_to_target_config(
    self,
    *,
    tree: ConfigurationTree,
    target: dict[int, layout.LocationAddress],
) -> SearchResult:
    params = self.search_params
    scorer = CandidateScorer(params=params, target=target)
    generator = HeuristicMoveGenerator(
        scorer=scorer,
        params=params,
        search_nodes={},
    )
    traversal = EntropyGuidedTraversal(
        target=target,
        params=params,
        on_step=self.on_search_step,
    )
    return traversal.search(
        tree=tree,
        generator=generator,
        goal=placement_goal(target),
        max_depth=self.max_depth,
        max_expansions=self.max_expansions,
    )

GreedyPlacementTraversal dataclass

GreedyPlacementTraversal(max_expansions: int | None = 300)

Bases: PlacementTraversalABC

Placement traversal adapter backed by greedy best-first search.

path_to_target_config

path_to_target_config(
    *,
    tree: ConfigurationTree,
    target: dict[int, LocationAddress]
) -> SearchResult

Run search and return one or more goal nodes.

Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/heuristics/physical_movement.py
109
110
111
112
113
114
115
116
117
118
119
120
def path_to_target_config(
    self,
    *,
    tree: ConfigurationTree,
    target: dict[int, layout.LocationAddress],
) -> SearchResult:
    return GreedyBestFirstTraversal(heuristic=_mismatch_heuristic(target)).search(
        tree=tree,
        generator=ExhaustiveMoveGenerator(),
        goal=placement_goal(target),
        max_expansions=self.max_expansions,
    )

PhysicalPlacementStrategy dataclass

PhysicalPlacementStrategy(
    arch_spec: ArchSpec = get_physical_arch_spec(),
    traversal: PlacementTraversalABC = EntropyPlacementTraversal(),
)

Bases: PlacementStrategyABC

Physical placement strategy backed by configuration-tree search.

PlacementTraversalABC

Bases: ABC

Placement-facing traversal API for target-configuration search.

path_to_target_config abstractmethod

path_to_target_config(
    *,
    tree: ConfigurationTree,
    target: dict[int, LocationAddress]
) -> SearchResult

Run search and return one or more goal nodes.

Source code in .venv/lib/python3.12/site-packages/bloqade/lanes/heuristics/physical_movement.py
41
42
43
44
45
46
47
48
49
@abc.abstractmethod
def path_to_target_config(
    self,
    *,
    tree: ConfigurationTree,
    target: dict[int, layout.LocationAddress],
) -> SearchResult:
    """Run search and return one or more goal nodes."""
    ...