toqito.channel_props.is_extremal

Determines whether a quantum channel is extremal.

Module Contents

toqito.channel_props.is_extremal.is_extremal(phi, tol=1e-09)[source]

Determine whether a quantum channel is extremal.

(Section 2.2.4: Extremal Channels from [@Watrous_2018_TQI]).

Theorem 2.31 in [@Watrous_2018_TQI] provides the characterization of extremal quantum channels as a channel (Phi) is an extreme point of the convex set of quantum channels if and only if the collection:

[

{ A_i^dagger A_j }_{i,j=1}^{r}

]

is linearly independent.

The channel can be provided in one of the following representations:

  • A Choi matrix, representing the quantum channel in the Choi representation. It will be converted internally to a set of Kraus operators.

  • A list of Kraus operators, representing the channel in Kraus form.

  • A nested list of Kraus operators, which will be flattened automatically.

Examples

The following demonstrates an example of an extremal quantum channel from Example 2.33 in [@Watrous_2018_TQI].

```python exec=”1” source=”above” import numpy as np from toqito.channel_props import is_extremal kraus_ops = [

(1 / np.sqrt(6)) * np.array([[2, 0], [0, 1], [0, 1], [0, 0]]), (1 / np.sqrt(6)) * np.array([[0, 0], [1, 0], [1, 0], [0, 2]])

]

print(is_extremal(kraus_ops)) ```

Raises:

ValueError – If the input is neither a valid list of Kraus operators nor a Choi matrix.

Parameters:
  • phi (numpy.ndarray | list[numpy.ndarray | list[numpy.ndarray]]) – The quantum channel, which may be given as a Choi matrix or a list of Kraus operators.

  • tol (float) – Tolerance value for numerical precision in rank computation.

Returns:

True if the channel is extremal; False otherwise.

Return type:

bool