state_opt.state_exclusion

Calculates the probability of error of single state conclusive state exclusion.

Functions

state_exclusion(vectors[, probs, strategy, solver, ...])

Compute probability of error 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.

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

Solve the primal problem for unambiguous quantum state distinguishability SDP.

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

Solve the dual problem for unambiguous quantum state distinguishability SDP.

Module Contents

state_opt.state_exclusion.state_exclusion(vectors, probs=None, strategy='min_error', solver='cvxopt', primal_dual='dual', **kwargs)

Compute probability of error 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 at least one out of the “n” possible quantum states by applying a measurement.

For strategy = "min_error", this is the default method that yields the minimal probability of error for Bob.

In that case, 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 \preceq p_1\rho_1, \\ & Y \preceq p_2\rho_2, \\ & \vdots \\ & Y \preceq p_n\rho_n, \\ & Y \in\text{Herm}(\mathcal{X}). \end{aligned} \end{equation}\end{split}\]

For strategy = "unambiguous", Bob never provides an incorrect answer, although it is possible that his answer is inconclusive. This function then yields the probability of an inconclusive outcome.

In that case, this function implements the following semidefinite program that provides the optimal probability with which Bob can conduct unambiguous quantum state distinguishability.

\[\begin{split}\begin{align*} \text{minimize:} \quad & \text{Tr}\left( \left(\sum_{i=1}^n p_i\rho_i\right)\left(\mathbb{I}-\sum_{i=1}^nM_i\right) \right) \\ \text{subject to:} \quad & \sum_{i=1}^nM_i \preceq \mathbb{I},\\ & M_1, \ldots, M_n \succeq 0, \\ & \langle M_1, \rho_1 \rangle, \ldots, \langle M_n, \rho_n \rangle =0 \end{align*}\end{split}\]
\[\begin{split}\begin{align*} \text{maximize:} \quad & 1 - \text{Tr}(N) \\ \text{subject to:} \quad & a_1p_1\rho_1, \ldots, a_np_n\rho_n \succeq \sum_{i=1}^np_i\rho_i - N,\\ & N \succeq 0,\\ & a_1, \ldots, a_n \in\mathbb{R} \end{align*}\end{split}\]

Note

It is known that it is always possible to perfectly exclude pure states that are linearly dependent. Thus, calling this function on a set of states with this property will return 0.

The conclusive state exclusion SDP is written explicitly in [2]. 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]
>>>
>>> np.around(state_exclusion(vectors, probs)[0], decimals=2)
np.float64(0.0)

Unambiguous state exclusion for unbiased states.

>>> from toqito.state_opt import state_exclusion
>>> import numpy as np
>>> states = [np.array([[1.], [0.]]), np.array([[1.],[1.]]) / np.sqrt(2)]
>>> res, _ = state_exclusion(states, primal_dual="primal", strategy="unambiguous", abs_ipm_opt_tol=1e-7)
>>> np.around(res, decimals=2)
np.float64(0.71)

Note

If you encounter a ZeroDivisionError or an ArithmeticError when using cvxopt as a solver (which is the default), you might want to set the abs_ipm_opt_tol option to a lower value (the default being 1e-8) or to set the cvxopt_kktsolver option to ldl.

See https://gitlab.com/picos-api/picos/-/issues/341

References

[1]

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.

[2] (1,2,3)

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.

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.

  • strategy (str) – Whether to perform minimal error or unambiguous discrimination task. Possible values are “min_error” and “unambiguous”.

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

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

  • kwargs – Additional arguments to pass to picos’ solve method.

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] | tuple[picos.HermitianVariable, picos.RealVariable]]

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

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', **kwargs)

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]]

state_opt.state_exclusion._unambiguous_primal(vectors, dim, probs=None, solver='cvxopt', **kwargs)

Solve the primal problem for unambiguous quantum state distinguishability SDP.

Implemented according to Equation (33) of [2].

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

  • dim (int)

  • probs (list[float])

  • solver (str)

Return type:

tuple[float, list[picos.HermitianVariable]]

state_opt.state_exclusion._unambiguous_dual(vectors, dim, probs=None, solver='cvxopt', **kwargs)

Solve the dual problem for unambiguous quantum state distinguishability SDP.

Implemented according to Equation (35) of [2].

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

  • dim (int)

  • probs (list[float])

  • solver (str)

Return type:

tuple[float, tuple[picos.HermitianVariable, picos.RealVariable]]