cirq.NoiseModel

Replaces operations and moments with noisy counterparts.

Used in the notebooks

Used in the tutorials

A child class must override at least one of the following three methods:

noisy_moments
noisy_moment
noisy_operation

The methods that are not overridden will be implemented in terms of the ones that are.

Simulators told to use a noise model will use these methods in order to dynamically rewrite the program they are simulating.

Methods

from_noise_model_like

View source

Transforms an object into a noise model if unambiguously possible.

Args
noise None, a cirq.NoiseModel, or a single qubit operation.

Returns
cirq.NO_NOISE when given None, cirq.ConstantQubitNoiseModel(gate) when given a single qubit gate, or the given value if it is already a cirq.NoiseModel.

Raises
ValueError If noise is a cirq.Gate that acts on more than one qubit.
TypeError The input is not a cirq.NOISE_MODE_LIKE.

is_virtual_moment

View source

Returns true iff the given moment is non-empty and all of its operations are virtual.

Moments for which this method returns True should not have additional noise applied to them.

Args
moment cirq.Moment to check for non-virtual operations.

Returns
True if "moment" is non-empty and all operations in "moment" are virtual; false otherwise.

noisy_moment

View source

Adds noise to the operations from a moment.

Args
moment The moment to add noise to.
system_qubits A list of all qubits in the system.

Returns
An OP_TREE corresponding to the noisy operations for the moment.

noisy_moments

View source

Adds possibly stateful noise to a series of moments.

Args
moments The moments to add noise to.
system_qubits A list of all qubits in the system.

Returns
A sequence of OP_TREEs, with the k'th tree corresponding to the noisy operations for the k'th moment.

noisy_operation

View source

Adds noise to an individual operation.

Args
operation The operation to make noisy.

Returns
An OP_TREE corresponding to the noisy operations implementing the noisy version of the given operation.