Returns a AsymmetricDepolarizingChannel with given parameter.
cirq.ops.asymmetric_depolarize(
p_x: Optional[float] = None,
p_y: Optional[float] = None,
p_z: Optional[float] = None,
error_probabilities: Optional[Dict[str, float]] = None,
tol: float = 1e-08
) -> cirq.ops.AsymmetricDepolarizingChannel
Used in the notebooks
This channel applies one of 4**n disjoint possibilities: nothing (the
identity channel) or one of the 4**n - 1 pauli gates.
This channel evolves a density matrix via
$$
\sum_i p_i Pi \rho Pi
$$
where i varies from 0 to 4**n-1 and Pi represents n-qubit Pauli operator
(including identity). The input \\(\rho\\) is the density matrix before the
depolarization.
Args:
p_x: The probability that a Pauli X and no other gate occurs.
p_y: The probability that a Pauli Y and no other gate occurs.
p_z: The probability that a Pauli Z and no other gate occurs.
error_probabilities: Dictionary of string (Pauli operator) to its
probability. If the identity is missing from the list, it will
be added so that the total probability mass is 1.
tol: The tolerance used making sure the total probability mass is
equal to 1.
Examples of calls:
* Single qubit: AsymmetricDepolarizingChannel(0.2, 0.1, 0.3)
* Single qubit: AsymmetricDepolarizingChannel(p_z=0.3)
* Two qubits: AsymmetricDepolarizingChannel(
error_probabilities={'XX': 0.2})
Raises |
ValueError
|
if the args or the sum of the args are not probabilities.
|