channel_ops.kraus_to_choi

Computes the Choi matrix of a list of Kraus operators.

Functions

kraus_to_choi(kraus_ops[, sys])

Compute the Choi matrix of a list of Kraus operators.

Module Contents

channel_ops.kraus_to_choi.kraus_to_choi(kraus_ops, sys=2)

Compute the Choi matrix of a list of Kraus operators.

(Section: Kraus Representations of [1]).

The Choi matrix of the list of Kraus operators, kraus_ops. The default convention is that the Choi matrix is the result of applying the map to the second subsystem of the standard maximally entangled (unnormalized) state. The Kraus operators are expected to be input as a list of numpy arrays.

This function was adapted from the QETLAB package.

Examples

The transpose map:

The Choi matrix of the transpose map is the swap operator.

>>> import numpy as np
>>> from toqito.channel_ops import kraus_to_choi
>>> kraus_1 = np.array([[1, 0], [0, 0]])
>>> kraus_2 = np.array([[1, 0], [0, 0]]).conj().T
>>> kraus_3 = np.array([[0, 1], [0, 0]])
>>> kraus_4 = np.array([[0, 1], [0, 0]]).conj().T
>>> kraus_5 = np.array([[0, 0], [1, 0]])
>>> kraus_6 = np.array([[0, 0], [1, 0]]).conj().T
>>> kraus_7 = np.array([[0, 0], [0, 1]])
>>> kraus_8 = np.array([[0, 0], [0, 1]]).conj().T
>>>
>>> kraus_ops = [[kraus_1, kraus_2], [kraus_3, kraus_4], [kraus_5, kraus_6], [kraus_7, kraus_8]]
>>> kraus_to_choi(kraus_ops)
array([[1., 0., 0., 0.],
       [0., 0., 1., 0.],
       [0., 1., 0., 0.],
       [0., 0., 0., 1.]])

See also

choi_to_kraus

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:
  • kraus_ops (list[list[numpy.ndarray]]) – A list of Kraus operators.

  • sys (int) – The dimension of the system (default is 2).

Returns:

The corresponding Choi matrix of the provided Kraus operators.

Return type:

numpy.ndarray