channels.choi

Generates the Choi channel.

Functions

choi([a_var, b_var, c_var])

Produce the Choi channel or one of its generalizations [1].

Module Contents

channels.choi.choi(a_var=1, b_var=1, c_var=0)

Produce the Choi channel or one of its generalizations [1].

The Choi channel is a positive map on 3-by-3 matrices that is capable of detecting some entanglement that the transpose map is not.

The standard Choi channel defined with a=1, b=1, and c=0 is the Choi matrix of the positive map defined in [1]. Many of these maps are capable of detecting PPT entanglement.

Examples

The standard Choi channel is given as

\[\begin{split}\Phi_{1, 1, 0} = \begin{pmatrix} 1 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ -1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ -1 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 1 \end{pmatrix}\end{split}\]

We can generate the Choi channel in toqito as follows.

>>> from toqito.channels import choi
>>> import numpy as np
>>> choi()
array([[ 1.,  0.,  0.,  0., -1.,  0.,  0.,  0., -1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.],
       [-1.,  0.,  0.,  0.,  1.,  0.,  0.,  0., -1.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.],
       [-1.,  0.,  0.,  0., -1.,  0.,  0.,  0.,  1.]])

The reduction channel is the map \(R\) defined by:

\[R(X) = \text{Tr}(X) \mathbb{I} - X.\]

The matrix correspond to this is given as

\[\begin{split}\Phi_{0, 1, 1} = \begin{pmatrix} 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & -1 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ -1 & 0 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \end{pmatrix}\end{split}\]

The reduction channel is the Choi channel that arises when a = 0 and when b = c = 1. We can obtain this matrix using toqito as follows.

>>> from toqito.channels import choi
>>> import numpy as np
>>> choi(0, 1, 1)
array([[ 0.,  0.,  0.,  0., -1.,  0.,  0.,  0., -1.],
       [ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.],
       [-1.,  0.,  0.,  0.,  0.,  0.,  0.,  0., -1.],
       [ 0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.],
       [-1.,  0.,  0.,  0., -1.,  0.,  0.,  0.,  0.]])

See also

reduction

References

[1] (1,2,3)

Sung Je Cho, Seung-Hyeok Kye, and Sa Ge Lee. Generalized choi maps in three-dimensional matrix algebra. Linear Algebra and its Applications, 171:213–224, 1992. doi:https://doi.org/10.1016/0024-3795(92)90260-H.

Parameters:
  • a_var (int) – Default integer for standard Choi map.

  • b_var (int) – Default integer for standard Choi map.

  • c_var (int) – Default integer for standard Choi map.

Returns:

The Choi channel (or one of its generalizations).

Return type:

numpy.ndarray