state_opt.state_exclusion

State exclusion.

Module Contents

Functions

state_exclusion(vectors[, probs, solver, primal_dual])

Compute probability of single state conclusive state exclusion.

_min_error_primal(vectors, dim[, probs, solver])

Find the primal problem for minimum-error quantum state exclusion SDP.

_min_error_dual(vectors, dim[, probs, solver])

Find the dual problem for minimum-error quantum state exclusion SDP.

state_opt.state_exclusion.state_exclusion(vectors, probs=None, solver='cvxopt', primal_dual='dual')

Compute probability of single state conclusive state exclusion.

The quantum state exclusion problem involves a collection of \(n\) quantum states

\[\rho = \{ \rho_0, \ldots, \rho_n \},\]

as well as a list of corresponding probabilities

\[p = \{ p_0, \ldots, p_n \}.\]

Alice chooses \(i\) with probability \(p_i\) and creates the state \(\rho_i\).

Bob wants to guess which state he was not given from the collection of states. State exclusion implies that ability to discard (with certainty) at least one out of the “n” possible quantum states by applying a measurement.

This function implements the following semidefinite program that provides the optimal probability with which Bob can conduct quantum state exclusion.

\[\begin{split}\begin{equation} \begin{aligned} \text{minimize:} \quad & \sum_{i=1}^n p_i \langle M_i, \rho_i \rangle \\ \text{subject to:} \quad & \sum_{i=1}^n M_i = \mathbb{I}_{\mathcal{X}}, \\ & M_0, \ldots, M_n \in \text{Pos}(\mathcal{X}). \end{aligned} \end{equation}\end{split}\]
\[\begin{split}\begin{equation} \begin{aligned} \text{maximize:} \quad & \text{Tr}(Y) \text{subject to:} \quad & Y \leq M_1, \\ & Y \leq M_2, \\ & \vdots \\ & Y \leq M_n, \\ & Y \text{Herm}(\mathcal{X}). \end{aligned} \end{equation}\end{split}\]

The conclusive state exclusion SDP is written explicitly in [1]. The problem of conclusive state exclusion was also thought about under a different guise in [1].

Examples

Consider the following two Bell states

\[\begin{split}\begin{equation} \begin{aligned} u_0 &= \frac{1}{\sqrt{2}} \left( |00 \rangle + |11 \rangle \right), \\ u_1 &= \frac{1}{\sqrt{2}} \left( |00 \rangle - |11 \rangle \right). \end{aligned} \end{equation}\end{split}\]

It is not possible to conclusively exclude either of the two states. We can see that the result of the function in toqito yields a value of \(0\) as the probability for this to occur.

>>> from toqito.state_opt import state_exclusion
>>> from toqito.states import bell
>>> import numpy as np
>>>
>>> vectors = [bell(0), bell(1)]
>>> probs = [1/2, 1/2]
>>>
>>> '%.2f' % state_exclusion(vectors, probs)[0]
'0.00'

Note

You do not need to use ‘%.2f’ % when you use this function.

We use this to format our output such that doctest compares the calculated output to the expected output upto two decimal points only. The accuracy of the solvers can calculate the float output to a certain amount of precision such that the value deviates after a few digits of accuracy.

References

[1]

Somshubhro Bandyopadhyay, Rahul Jain, Jonathan Oppenheim, and Christopher Perry. Conclusive exclusion of quantum states. Physical Review A, Feb 2014. URL: http://dx.doi.org/10.1103/PhysRevA.89.022336, doi:10.1103/physreva.89.022336.

[2]

Matthew F. Pusey, Jonathan Barrett, and Terry Rudolph. On the reality of the quantum state. Nature Physics, 8(6):475–478, May 2012. URL: http://dx.doi.org/10.1038/nphys2309, doi:10.1038/nphys2309.

Parameters:
  • vectors (list[numpy.ndarray]) – A list of states provided as vectors.

  • probs (list[float]) – Respective list of probabilities each state is selected. If no probabilities are provided, a uniform probability distribution is assumed.

  • solver (str) – Optimization option for picos solver. Default option is solver_option=”cvxopt”.

  • primal_dual (str) – Option for the optimization problem.

Returns:

The optimal probability with which Bob can guess the state he was not given from states along with the optimal set of measurements.

Return type:

tuple[float, list[picos.HermitianVariable]]

state_opt.state_exclusion._min_error_primal(vectors, dim, probs=None, solver='cvxopt')

Find the primal problem for minimum-error quantum state exclusion SDP.

Parameters:
  • vectors (list[numpy.ndarray])

  • dim (int)

  • probs (list[float])

  • solver (str)

Return type:

tuple[float, list[picos.HermitianVariable]]

state_opt.state_exclusion._min_error_dual(vectors, dim, probs=None, solver='cvxopt')

Find the dual problem for minimum-error quantum state exclusion SDP.

Parameters:
  • vectors (list[numpy.ndarray])

  • dim (int)

  • probs (list[float])

  • solver (str)

Return type:

tuple[float, list[picos.HermitianVariable]]