This notebook shows how we can check how much depolarizing noise a qubit positive operator-valued measure (POVM) can take before it becomes simulable by projective measurements. The general method is described in arXiv:1609.06139. The question of simulability by projective measurements boils down to an SDP problem. Eq. (8) from the paper defines the noisy POVM that we obtain subjecting a POVM $\mathbf{M}$ to a depolarizing channel $\Phi_t$:
$\left[\Phi_t\left(\mathbf{M}\right)\right]_i := t M_i + (1-t)\frac{\mathrm{tr}(M_i)}{d} \mathbb{1}$.
If this visibility $t\in[0,1]$ is one, the POVM $\mathbf{M}$ is simulable.
We will use Convex.jl to solve the SDP problem.
using Convex
For the qubit case, a four outcome qubit POVM $\mathbf{M} \in\mathcal{P}(2,4)$ is simulable if and only if
$M_{1}=N_{12}^{+}+N_{13}^{+}+N_{14}^{+},$
$M_{2}=N_{12}^{-}+N_{23}^{+}+N_{24}^{+},$
$M_{3}=N_{13}^{-}+N_{23}^{-}+N_{34}^{+},$
$M_{4}=N_{14}^{-}+N_{24}^{-}+N_{34}^{-},$
where Hermitian operators $N_{ij}^{\pm}$ satisfy $N_{ij}^{\pm}\geq0$ and $N_{ij}^{+}+N_{ij}^{-}=p_{ij}\mathbb{1}$, where $i<j$ , $i,j=1,2,3,4$ and $p_{ij}\geq0$ as well as $\sum_{i<j}p_{ij}=1$, that is, the $p_{ij}$ values form a probability vector. This forms an SDP feasibility problem, which we can rephrase as an optimization problem by adding depolarizing noise to the left-hand side of the above equations and maximizing the visibility $t$:
$\max_{t\in[0,1]} t$
such that
$t\,M_{1}+(1-t)\,\mathrm{tr}(M_{1})\frac{\mathbb{1}}{2}=N_{12}^{+}+N_{13}^{+}+N_{14}^{+},$
$t\,M_{2}+(1-t)\,\mathrm{tr}(M_{2})\frac{\mathbb{1}}{2}=N_{12}^{-}+N_{23}^{+}+N_{24}^{+},$
$t\,M_{3}+(1-t)\,\mathrm{tr}(M_{3})\frac{\mathbb{1}}{2}=N_{13}^{-}+N_{23}^{-}+N_{34}^{+},$
$t\,M_{4}+(1-t)\,\mathrm{tr}(M_{4})\frac{\mathbb{1}}{2}=N_{14}^{-}+N_{24}^{-}+N_{34}^{-}$.
We organize these constraints in a function that takes a four-output qubit POVM as its argument:
function get_visibility(K)
noise = real([trace(K[i])*eye(2)/2 for i=1:size(K, 1)])
P = [[ComplexVariable(2, 2) for i=1:2] for j=1:6]
q = Variable(6, Positive())
t = Variable(1, Positive())
constraints = [P[i][j] in :SDP for i=1:6 for j=1:2]
constraints += sum(q)==1
constraints += t<=1
constraints += [P[i][1]+P[i][2] == q[i]*eye(2) for i=1:6]
constraints += t*K[1] + (1-t)*noise[1] == P[1][1] + P[2][1] + P[3][1]
constraints += t*K[2] + (1-t)*noise[2] == P[1][2] + P[4][1] + P[5][1]
constraints += t*K[3] + (1-t)*noise[3] == P[2][2] + P[4][2] + P[6][1]
constraints += t*K[4] + (1-t)*noise[4] == P[3][2] + P[5][2] + P[6][2]
p = maximize(t, constraints)
solve!(p)
return p.optval
end
get_visibility (generic function with 1 method)
We check this function using the tetrahedron measurement (see Appendix B in arXiv:quant-ph/0702021). This measurement is non-simulable, so we expect a value below one.
function dp(v)
eye(2) + v[1]*[0 1; 1 0] + v[2]*[0 -im; im 0] + v[3]*[1 0; 0 -1]
end
b = [ 1 1 1;
-1 -1 1;
-1 1 -1;
1 -1 -1]/sqrt(3)
M = [dp(b[i, :]) for i=1:size(b,1)]/4;
get_visibility(M)
(size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) (size(coeff),size(var)) = ((4,4),(4,4)) Problem Name : Objective sense : min Type : CONIC (conic optimization problem) Constraints : 282 Cones : 0 Scalar variables : 104 Matrix variables : 12 Integer variables : 0 Optimizer started. Conic interior-point optimizer started. Presolve started. Linear dependency checker started. Linear dependency checker terminated. Eliminator started. Freed constraints in eliminator : 59 Eliminator terminated. Eliminator started. Freed constraints in eliminator : 0 Eliminator terminated. Eliminator - tries : 2 time : 0.00 Lin. dep. - tries : 1 time : 0.00 Lin. dep. - number : 48 Presolve terminated. Time: 0.00 Optimizer - threads : 2 Optimizer - solved problem : the primal Optimizer - Constraints : 123 Optimizer - Cones : 1 Optimizer - Scalar variables : 22 conic : 15 Optimizer - Semi-definite variables: 12 scalarized : 120 Factor - setup time : 0.00 dense det. time : 0.00 Factor - ML order time : 0.00 GP order time : 0.00 Factor - nonzeros before factor : 5110 after factor : 5110 Factor - dense dim. : 0 flops : 3.40e+05 ITE PFEAS DFEAS GFEAS PRSTATUS POBJ DOBJ MU TIME 0 1.1e+00 2.0e+00 1.0e+00 0.00e+00 0.000000000e+00 0.000000000e+00 1.0e+00 0.01 1 3.1e-01 5.5e-01 1.2e+00 3.75e+00 -1.038525343e+00 -1.086175515e+00 2.8e-01 0.01 2 7.7e-03 1.4e-02 2.4e-01 1.82e+00 -8.337943527e-01 -8.346388356e-01 6.9e-03 0.01 3 3.8e-05 6.7e-05 1.7e-02 1.03e+00 -8.165720352e-01 -8.165773403e-01 3.4e-05 0.01 4 1.6e-07 2.8e-07 1.1e-03 1.00e+00 -8.164968247e-01 -8.164968472e-01 1.4e-07 0.02 5 9.1e-09 1.6e-08 2.7e-04 1.00e+00 -8.164965879e-01 -8.164965892e-01 8.1e-09 0.02 Interior-point optimizer terminated. Time: 0.02. Optimizer terminated. Time: 0.04
0.8164965878595278
This value matches the one we obtained using PICOS.