cirq_google.workflow.RandomDevicePlacer

Inherits From: QubitPlacer

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.GridQubits; otherwise cirq.LineQubit.

Methods

place_circuit

View source

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

Return self==value.