toqito.measurements.pretty_good_measurement

Compute the set of pretty good measurements from an ensemble.

Module Contents

toqito.measurements.pretty_good_measurement.pretty_good_measurement(states, probs=None, tol=1e-08)[source]

Return the set of pretty good measurements from a set of vectors and corresponding probabilities.

This computes the “pretty good measurement” (PGM), also known as the square-root measurement, which is a widely used measurement for quantum state discrimination [@Belavkin_1975_Optimal,Hughston_1993_Complete].

The PGM is the set of POVMs ((G_1, ldots, G_n)) such that

[

G_i = P^{-1/2} left(p_i rho_iright) P^{-1/2} quad text{where} quad P = sum_{i=1}^n p_i rho_i.

]

!!! See Also

[pretty_bad_measurement()][toqito.measurements.pretty_bad_measurement.pretty_bad_measurement]

Examples

Consider the collection of trine states.

[

u_0 = |0rangle, quad u_1 = -frac{1}{2}left(|0rangle + sqrt{3}|1rangleright), quad text{and} quad u_2 = -frac{1}{2}left(|0rangle - sqrt{3}|1rangleright).

]

```python exec=”1” source=”above” from toqito.states import trine from toqito.measurements import pretty_good_measurement

states = trine() probs = [1 / 3, 1 / 3, 1 / 3] pgm = pretty_good_measurement(states, probs) print(pgm) ```

Raises:
  • ValueError – If number of vectors does not match number of probabilities.

  • ValueError – If probabilities do not sum to 1.

Parameters:
  • states (list[numpy.ndarray]) – A collection of states provided as either vectors or density matrices.

  • probs (list[float] | None) – A set of fixed probabilities for each quantum state. If not provided, a uniform distribution is assumed.

  • tol (float) – A tolerance value for numerical comparisons.

Returns:

A list of POVM operators for the PGM.

Return type:

list[numpy.ndarray]