channel_props.is_quantum_channel

Determines if an input is a quantum channel.

Functions

is_quantum_channel(phi[, rtol, atol])

Determine whether the given input is a quantum channel.

Module Contents

channel_props.is_quantum_channel.is_quantum_channel(phi, rtol=1e-05, atol=1e-08)

Determine whether the given input is a quantum channel.

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

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

\[\begin{split}U = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ -1 & 1 \end{pmatrix}.\end{split}\]

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

>>> 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)))
>>> is_quantum_channel(phi)
False

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

>>> from toqito.channels import depolarizing
>>> from toqito.channel_props import is_quantum_channel
>>> choi_depolarizing = depolarizing(dim=2, param_p=0.2)
>>> is_quantum_channel(choi_depolarizing)
True

References

[1]

John Watrous. The Theory of Quantum Information. Cambridge University Press, 2018. URL: https://johnwatrous.com/wp-content/uploads/TQI.pdf, doi:10.1017/9781316848142.

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