cirq.contrib.graph_device.UndirectedGraphDevice

A device whose properties are represented by an edge-labelled graph.

Inherits From: Device

Each (undirected) edge of the device graph is labelled by an UndirectedGraphDeviceEdge or None. None indicates that any operation is allowed and has zero duration.

Each (undirected) edge of the constraint graph is labelled either by a function or None. The function takes as arguments operations on the adjacent device edges and raises an error if they are not simultaneously executable. If None, no such operations are allowed.

Note that

* the crosstalk graph is allowed to have vertices (i.e. device edges)
    that do not exist in the graph device.
* duration_of does not check that operation is valid.

device_graph An undirected hypergraph whose vertices correspond to qubits and whose edges determine allowable operations and their durations.
crosstalk_graph An undirected hypergraph whose vertices are edges of device_graph and whose edges give simultaneity constraints thereon.

TypeError If the crosstalk graph is not a valid crosstalk graph.

edges

labelled_edges

metadata Returns the associated Metadata with the device if applicable.
qubits

Methods

duration_of

View source

get_device_edge_from_op

View source

validate_circuit

View source

Raises an exception if a circuit is not valid.

Args
circuit The circuit to validate.

Raises
ValueError The circuit isn't valid for this device.

validate_crosstalk

View source

validate_moment

View source

Raises an exception if a moment is not valid.

Args
moment The moment to validate.

Raises
ValueError The moment isn't valid for this device.

validate_operation

View source

Raises an exception if an operation is not valid.

Args
operation The operation to validate.

Raises
ValueError The operation isn't valid for this device.

__add__

View source

__eq__

View source

Return self==value.