channel_props.is_quantum_channel¶
Determines if an input is a quantum channel.
Functions¶
|
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:
\(\Phi\) is completely positive.
\(\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
- 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, andFalse
otherwise.- Return type:
bool