Though gIS' answer concerns deterministic measurements, its conclusion doesn't change when considering probabilistic measurements.
Though it's not a formal proof, we can use picos to look for such a measurement. That is, we want it to look for $M_0$ and $M_1$ such that:
- Both are positive semi-definite;
- $M_0+M_1=I$
- For all $|\psi\rangle$ and $|\varphi\rangle$ such that $\langle\psi|\varphi\rangle=0$, $\mathrm{tr}\left(M_0|\psi,\varphi\rangle\!\langle\psi,\varphi|\right)=1$. This corresponds to the fact that the measurement identifies orthogonal states perfectly.
- The probability of getting the $0$ outcome on non-orthogonal states is as low as possible.
The last condition is not very formal, and the penultimate one is quite hard to test, so we'll solve a simpler problem: find $M_0$ and $M_1$ such that:
- Both are positive semi-definite;
- $M_0+M_1=I$
- We obtain the outcome $0$ with certainty on input $|0,1\rangle\!\langle0,1|$, $|1,0\rangle\!\langle1,0|$, $|+,-\rangle\!\langle+,-|$, $|-,+\rangle\!\langle-,+|$, $|i,-i\rangle\!\langle i,-i|$ and $|-i,i\rangle\!\langle -i,i|$.
- We want to minimize the average probability of getting the outcome $0$ on input $|0,0\rangle\!\langle0,0|$, $|1,1\rangle\!\langle1,1|$, $|+,+\rangle\!\langle+,+|$, $|-,-\rangle\!\langle-,-|$, $|i,i\rangle\!\langle i,i|$ and $|-i,-i\rangle\!\langle -i,-i|$.
Clearly, if a non-trivial measurement exists for the problem we care about, it will also be a non-trivial solution for the second one. Conversely, if there is no non-trivial measurement that solves the second problem, then no non-trivial measurement solves the first.
We thus input this to picos:
import numpy as np
import picos as pc
sdp = pc.Problem(verbosity = 0)
M0 = pc.HermitianVariable("M0", (4, 4))
M1 = pc.HermitianVariable("M1", (4, 4))
sdp.add_constraint(M0 >> 0)
sdp.add_constraint(M1 >> 0)
sdp.add_constraint(M0 + M1 == np.eye(4))
zero_state = np.array([[1], [0]])
one_state = np.array([[0], [1]])
plus_state = np.array([[1], [1]]) / np.sqrt(2)
minus_state = np.array([[1], [-1]]) / np.sqrt(2)
i_state = np.array([[1], [1j]]) / np.sqrt(2)
minus_i_state = np.array([[1], [-1j]]) / np.sqrt(2)
certainty_states = [
np.kron(zero_state, one_state),
np.kron(one_state, zero_state),
np.kron(plus_state, minus_state),
np.kron(minus_state, plus_state),
np.kron(i_state, minus_i_state),
np.kron(minus_i_state, i_state),
]
extremal_states = [
np.kron(zero_state, zero_state),
np.kron(one_state, one_state),
np.kron(plus_state, plus_state),
np.kron(minus_state, minus_state),
np.kron(i_state, i_state),
np.kron(minus_i_state, minus_i_state),
]
certainty_states = [s @ s.conj().T for s in certainty_states]
extremal_states = [s @ s.conj().T for s in extremal_states]
for state in certainty_states:
sdp.add_constraint(pc.trace(M0 * state) == 1)
obj = pc.trace(M0 * sum(extremal_states))
sdp.set_objective("min", obj)
sdp.solve()
print(sdp.value / 6)
print(np.array(M0))
This code yields:
0.9999999999605058
[[ 1.00000000e+00+0.00000000e+00j 1.97355128e-16-3.66797943e-16j
-3.26236171e-16+2.02131752e-16j 7.63261303e-16+4.46637958e-21j]
[ 1.97355128e-16+3.66797943e-16j 1.00000000e+00+0.00000000e+00j
1.29011297e-11-3.66985535e-21j -3.23831307e-16-3.85180042e-16j]
[-3.26236171e-16-2.02131752e-16j 1.29011297e-11+3.66985535e-21j
1.00000000e+00+0.00000000e+00j 1.98606930e-16+1.52525270e-16j]
[ 7.63261303e-16-4.46637958e-21j -3.23831307e-16+3.85180042e-16j
1.98606930e-16-1.52525270e-16j 1.00000000e+00+0.00000000e+00j]]
Thus, up to inaccuracies, the optimal measurement is the trivial one that always return $0$.
As a sanity check, we can invert the role of extremal_states and certainty_states in the code above in order to check that we get the POVM associated to the SWAP test (or something at least as good). Doing so yields:
0.499999987905889
[[1.00000000e+00+0.00000000e+00j 1.00930041e-16-3.04715104e-16j
2.41912746e-16-1.61029373e-16j 3.27055113e-16+6.68833130e-21j]
[1.00930041e-16+3.04715104e-16j 4.99999980e-01+0.00000000e+00j
4.99999997e-01+3.36471447e-18j 3.22435776e-16-2.47496372e-17j]
[2.41912746e-16+1.61029373e-16j 4.99999997e-01-3.36471447e-18j
4.99999980e-01+0.00000000e+00j 1.41739720e-16-7.93076212e-17j]
[3.27055113e-16-6.68833130e-21j 3.22435776e-16+2.47496372e-17j
1.41739720e-16+7.93076212e-17j 1.00000000e+00+0.00000000e+00j]]
which is what we expected.
All in all, there is no measurement other than the trivial one that behaves deterministically on orthogonal states.