Inherits From: QubitPlacer
cirq_google.workflow.RandomDevicePlacer(
topo_node_to_qubit_func: Callable[[Any], cirq.Qid] = cirq_google.workflow.qubit_placement.default_topo_node_to_qubit
)
Args |
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. cirq.get_placements returns a dictionary
mapping from node to Qid. We use this function to transform it into a mapping
from "abstract" Qid to device Qid. 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: 'cirq.NamedTopology',
shared_rt_info: 'cg.SharedRuntimeInfo',
rs: np.random.RandomState
) -> Tuple['cirq.FrozenCircuit', Dict[Any, 'cirq.Qid']]
Place a circuit with a given topology onto a device via cirq.get_placements
with randomized selection of the placement each time.
This requires device information to be present in shared_rt_info
.
Args |
circuit
|
The circuit.
|
problem_topology
|
The topologies (i.e. connectivity) of the circuit.
|
shared_rt_info
|
A cg.SharedRuntimeInfo object that contains a device attribute
of type cirq.Device to enable placement.
|
rs
|
A RandomState as a source of randomness for random placements.
|
Returns |
A tuple of a new frozen circuit with the qubits placed and a mapping from input
qubits or nodes to output qubits.
|
Raises |
ValueError
|
If shared_rt_info does not have a device field.
|
__eq__
View source
__eq__(
other
)
Return self==value.