toqito.channel_props.is_quantum_channel

Determines if an input is a quantum channel.

Module Contents

toqito.channel_props.is_quantum_channel.is_quantum_channel(phi, rtol=1e-05, atol=1e-08)[source]

Determine whether the given input is a quantum channel.

For more info, see Section 2.2.1: Definitions and Basic Notions Concerning Channels from [@Watrous_2018_TQI].

A map (Phi in text{T} left(mathcal{X}, mathcal{Y} right)) is a quantum channel for some choice of complex Euclidean spaces (mathcal{X}) and (mathcal{Y}), if it holds that:

  1. (Phi) is completely positive.

  2. (Phi) is trace preserving.

Examples

We can specify the input as a list of Kraus operators. Consider the map (Phi) defined as

[

Phi(X) = X - U X U^*

]

where

[

U = frac{1}{sqrt{2}} begin{pmatrix}

1 & 1 \ -1 & 1

end{pmatrix}.

]

To check if this is a valid quantum channel or not,

```python exec=”1” source=”above” import numpy as np from toqito.matrices import pauli from toqito.channel_props import is_quantum_channel

U = (1/np.sqrt(2))*np.array([[1, 1],[-1, 1]]) X = pauli(“X”) phi = X - np.matmul(U, np.matmul(X, np.conjugate(U)))

print(is_quantum_channel(phi)) ```

If we instead check for the validity of depolarizing channel being a valid quantum channel,

```python exec=”1” source=”above” from toqito.channels import depolarizing from toqito.channel_props import is_quantum_channel

choi_depolarizing = depolarizing(dim=2, param_p=0.2)

print(is_quantum_channel(choi_depolarizing)) ```

Parameters:
  • phi (numpy.ndarray | list[list[numpy.ndarray]]) – The channel provided as either a Choi matrix or a list of Kraus operators.

  • rtol (float) – The relative tolerance parameter (default 1e-05).

  • atol (float) – The absolute tolerance parameter (default 1e-08).

Returns:

True if the channel is a quantum channel, and False otherwise.

Return type:

bool