Quantum state exclusion¶
In this tutorial, we are going to cover the problem of quantum state
exclusion. We are going to briefly describe the problem setting and then
describe how one may use toqito
to calculate the optimal probability
with which this problem can be solved for a number of different scenarios.
Quantum state exclusion is very closely related to the problem of quantum state distinguishability. It may be useful to consult the following tutorial that covers quantum state distinguishability:
Further information beyond the scope of this tutorial can be found in the text [1] as well as the course [2].
The state exclusion problem¶
The quantum state exclusion problem is phrased as follows.
Alice possesses an ensemble of \(n\) quantum states:
\[\begin{equation} \eta = \left( (p_0, \rho_0), \ldots, (p_n, \rho_n) \right), \end{equation}\]
where \(p_i\) is the probability with which state \(\rho_i\) is selected from the ensemble. Alice picks \(\rho_i\) with probability \(p_i\) from her ensemble and sends \(\rho_i\) to Bob.
Bob receives \(\rho_i\). Both Alice and Bob are aware of how the ensemble is defined but he does not know what index \(i\) corresponding to the state \(\rho_i\) he receives from Alice is.
Bob wants to guess which of the states from the ensemble he was not given. In order to do so, he may measure \(\rho_i\) to guess the index \(i\) for which the state in the ensemble corresponds.
This setting is depicted in the following figure.
Note
The primary difference between the quantum state distinguishability scenario and the quantum state exclusion scenario is that in the former, Bob want to guess which state he was given, and in the latter, Bob wants to guess which state he was not given.
Perfect state exclusion (antidistinguishability)¶
We say that if one is able to perfectly (without error) exclude all quantum states in a set, then the set of states is antidistinguishable.
Definition: Let \(n\) and \(d\) be integers. A collection of quantum states \(S = \{|\psi_1\rangle, \ldots, |\psi_{n}\rangle\} \subset \mathbb{C}^d\) are antidistinguishable if there exists a collection of positive operator value measurements \(\{M_1, \ldots, M_{n}\}\) such that \(\langle \psi_i | M_i | \psi_i \rangle = 0\) for all \(1 \leq i \leq n\).
Recall that a collection of POVMs are positive semidefinite operators \(\{M_i : 1 \leq i \leq n\} \subset \mathbb{C}^d\) that satisfy
Properties:
If \(S\) is distinguishable then it is antidistinguishable.
If \(n = 2\) then \(S\) is distinguishable if and only if \(S\) is antidistinguishable.
Distinguishing one state from a pair of states is equivalent to excluding one of the states from that pair.
If \(n \geq 3\) then there are antidistinguishable sets that are not distinguishable.
Example: Trine states¶
The so-called trine states are a set of three states, each of dimension two defined as
>>> from toqito.states import trine
>>> psi1, psi2, psi3 = trine()
>>> print(f"|𝛙_1> = {psi1.reshape(1, -1)[0]}")
|𝛙_1> = [1 0]
>>> print(f"|𝛙_2> = {psi2.reshape(1, -1)[0]}")
|𝛙_2> = [-0.5 -0.8660254]
>>> print(f"|𝛙_3> = {psi3.reshape(1, -1)[0]}")
|𝛙_3> = [-0.5 0.8660254]
The trine states are three states in two dimensions. So they can’t be mutually orthogonal, but they are about “as close as you can get” for three states in two dimensions to be mutually orthogonal.
>>> from toqito.states import trine
>>> from toqito.state_props import is_mutually_orthogonal
>>> print(f"Are states mutually orthogonal: {is_mutually_orthogonal(trine())}")
Are states mutually orthogonal: False
An interesting property of these states is that they are antidistinguishable but not distinguishable.
>>> from toqito.states import trine
>>> from toqito.state_props import is_distinguishable, is_antidistinguishable
>>> print(f"Trine antidistinguishable: {is_antidistinguishable(trine())}")
Trine antidistinguishable: True
>>> print(f"Trine distinguishable: {is_distinguishable(trine())}")
Trine distinguishable: False
Here are a set of measurements that we can verify which satisfy the antidistinguishability constraints. We will see a method that we can use to obtain these directly later.
>>> import numpy as np
>>> M1 = 2/3 * (np.identity(2) - psi1 @ psi1.conj().T)
>>> M2 = 2/3 * (np.identity(2) - psi2 @ psi2.conj().T)
>>> M3 = 2/3 * (np.identity(2) - psi3 @ psi3.conj().T)
In order for \(M_1\), \(M_2\), and \(M_3\) to constitute as valid POVMs, each of these matrices must be positive semidefinite and we must ensure that \(\sum_{i \in \{1,2,3\}} M_i = \mathbb{I}_2\).
>>> from toqito.matrix_props import is_positive_semidefinite
>>> print(f"M_1 + M_2 + M_3 is identity: {np.allclose(M1 + M2 + M3, np.identity(2))}")
M_1 + M_2 + M_3 is identity: True
>>> print(f"Is M_1 PSD: {is_positive_semidefinite(M1)}")
Is M_1 PSD: True
>>> print(f"Is M_2 PSD: {is_positive_semidefinite(M2)}")
Is M_2 PSD: True
>>> print(f"Is M_3 PSD: {is_positive_semidefinite(M3)}")
Is M_3 PSD: True
Next, we must show that these measurements satisfy \(\langle \psi_i | M_i | \psi_i \rangle = 0\) for all \(i \in \{1,2,3\}\).
>>> print(f"<𝛙_1| M_1 |𝛙_1>: {np.around((psi1.reshape(1, -1)[0] @ M1 @ psi1)[0], decimals=5)}")
<𝛙_1| M_1 |𝛙_1>: 0.0
>>> print(f"<𝛙_2| M_2 |𝛙_2>: {np.around((psi2.reshape(1, -1)[0] @ M2 @ psi2)[0], decimals=5)}")
<𝛙_2| M_2 |𝛙_2>: 0.0
>>> print(f"<𝛙_3| M_3 |𝛙_3>: {np.around((psi3.reshape(1, -1)[0] @ M3 @ psi3)[0], decimals=5)}")
<𝛙_3| M_3 |𝛙_3>: 0.0
Since we have exhibited a set of measurements \(\{M_i: i \in \{1,2,3\}\} \subset \text{Pos}(\mathbb{C^d})\) that satisfy
for all \(i\), we conclude that the trine states are antidistinguishable.
An SDP for antidistinguishability¶
Whether a collection of states \(\{|\psi_1 \rangle, |\psi_2\rangle, \ldots, |\psi_{n}\rangle \}\) are antidistinguishable or not can be determined by the following semidefinite program (SDP).
Consider again the trine states from the previous example. We can determine that they are antidistinguishable by way of the antidistinguishability SDP.
>>> from toqito.states import trine
>>> from toqito.state_opt import state_exclusion
>>> opt_value, measurements = state_exclusion(trine(), probs=[1, 1, 1], primal_dual="dual")
>>> print(f"Optimal SDP value: {np.around(opt_value, decimals=2)}")
Optimal SDP value: 0.0
The SDP not only gives us the optimal value, which is $0$ in this case, indicating that the states are antidistinguishable, but we also get a set of optimal measurement operators. These should look familiar to the measurements we explicitly constructed earlier.
References¶
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.
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.