Inherits From: QubitPlacer
cirq_google.workflow.HardcodedQubitPlacer(
mapping: Dict[cirq.NamedTopology, Dict[Any, cirq.Qid]],
topo_node_to_qubit_func: Callable[[Hashable], cirq.Qid] = cirq_google.workflow.qubit_placement.default_topo_node_to_qubit
)
Args |
mapping
|
The hardcoded placements. This provides a placement for each supported
cirq.NamedTopology . The topology serves as the key for the mapping dictionary.
Each placement is a dictionary mapping topology node to final cirq.Qid device
qubit.
|
topo_node_to_qubit_func
|
A function that maps from cirq.NamedTopology nodes
to cirq.Qid . There is a correspondence between nodes and the "abstract" Qids
used to construct the un-placed circuit. We use this function to interpret
the provided mappings. By default: nodes which are tuples correspond
to cirq.GridQubit s; otherwise cirq.LineQubit .
|
Methods
place_circuit
View source
place_circuit(
circuit: cirq.AbstractCircuit,
problem_topology: NamedTopology,
shared_rt_info: 'cg.SharedRuntimeInfo',
rs: np.random.RandomState
) -> Tuple[cirq.FrozenCircuit, Dict[Any, cirq.Qid]]
Place a circuit according to the hardcoded placements.
Args |
circuit
|
The circuit.
|
problem_topology
|
The topologies (i.e. connectivity) of the circuit, use to look
up the placement in self.mapping .
|
shared_rt_info
|
A cg.SharedRuntimeInfo object; ignored for hardcoded placement.
|
rs
|
A RandomState ; ignored for hardcoded placement.
|
Returns |
A tuple of a new frozen circuit with the qubits placed and a mapping from input
qubits or nodes to output qubits.
|
Raises |
CouldNotPlaceError
|
if the given problem_topology is not present in the hardcoded
mapping.
|
__eq__
View source
__eq__(
other
)
Return self==value.