toqito.measurement_props.is_povm

Determine if a list of matrices are POVM elements.

Module Contents

toqito.measurement_props.is_povm.is_povm(mat_list)[source]

Determine if a list of matrices constitute a valid set of POVMs [@WikiPOVM].

A valid set of measurements are defined by a set of positive semidefinite operators

[

{P_a : a in Gamma} subset text{Pos}(mathcal{X}),

]

indexed by the alphabet (Gamma) of measurement outcomes satisfying the constraint that

[

sum_{a in Gamma} P_a = I_{mathcal{X}}.

]

Examples

Consider the following matrices:

[

M_0 = begin{pmatrix}

1 & 0 \ 0 & 0

end{pmatrix} quad text{and} quad M_1 = begin{pmatrix}

0 & 0 \ 0 & 1

end{pmatrix}.

]

Our function indicates that this set of operators constitute a set of POVMs.

```python exec=”1” source=”above” import numpy as np from toqito.measurement_props import is_povm

meas_1 = np.array([[1, 0], [0, 0]]) meas_2 = np.array([[0, 0], [0, 1]]) meas = [meas_1, meas_2]

print(is_povm(meas)) ```

We may also use the random_povm function from |toqito⟩, and can verify that a randomly generated set satisfies the criteria for being a POVM set.

```python exec=”1” source=”above” import numpy as np from toqito.rand import random_povm from toqito.measurement_props import is_povm

dim, num_inputs, num_outputs = 2, 2, 2 measurements = random_povm(dim, num_inputs, num_outputs)

print(is_povm([measurements[:, :, 0, 0], measurements[:, :, 0, 1]])) ```

Alternatively, the following matrices

[

M_0 = begin{pmatrix}

1 & 2 \ 3 & 4

end{pmatrix} quad text{and} quad M_1 = begin{pmatrix}

5 & 6 \ 7 & 8

end{pmatrix},

]

do not constitute a POVM set.

```python exec=”1” source=”above” import numpy as np from toqito.measurement_props import is_povm

non_meas_1 = np.array([[1, 2], [3, 4]]) non_meas_2 = np.array([[5, 6], [7, 8]]) non_meas = [non_meas_1, non_meas_2]

print(is_povm(non_meas)) ```

Parameters:

mat_list (list[numpy.ndarray]) – A list of matrices.

Returns:

Return True if set of matrices constitutes a set of measurements, and False otherwise.

Return type:

bool