channel_props.is_positive¶
Determines if a channel is positive.
Functions¶
|
Determine whether the given channel is positive. |
Module Contents¶
- channel_props.is_positive.is_positive(phi, rtol=1e-05, atol=1e-08)¶
Determine whether the given channel is positive.
(Section: Linear Maps Of Square Operators from [1]).
A map \(\Phi \in \text{T} \left(\mathcal{X}, \mathcal{Y} \right)\) is positive if it holds that
\[\Phi(P) \in \text{Pos}(\mathcal{Y})\]for every positive semidefinite operator \(P \in \text{Pos}(\mathcal{X})\).
Alternatively, a channel is positive if the corresponding Choi matrix of the channel is both Hermitian-preserving and positive semidefinite.
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}\]This map is not completely positive, as we can verify as follows.
import numpy as np from toqito.channel_props import is_positive unitary_mat = np.array([[1, 1], [-1, -1]]) / np.sqrt(2) kraus_ops = [[np.identity(2), np.identity(2)], [unitary_mat, -unitary_mat]] is_positive(kraus_ops)
False
We can also specify the input as a Choi matrix. For instance, consider the Choi matrix corresponding to the \(4\)-dimensional completely depolarizing channel and may verify that this channel is positive.
from toqito.channels import depolarizing from toqito.channel_props import is_positive is_positive(depolarizing(4))
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 positive, and False otherwise.
- Return type:
bool