Probabilistic transformations of quantum resources

Code accompanying the manuscripts Phys. Rev. Lett. 128, 110505 (2022) (arXiv:2109.04481) and arXiv:2112.11321.

We show how the computation of the projective robustness $\Omega_{\mathbb{F}}$ as well as the optimisation problems $\Xi_{\varepsilon}$ and $\Theta_{\varepsilon}$ that appear in the latter manuscript can be implemented in MATLAB using CVX. We consider a few representative resource theories.


Non-positive partial transpose

The free states $\mathbb{F}$ here are all quantum states with a positive partial transpose. The projective robustness $\Omega_{\mathbb{F}}$ is then implemented as follows. The code uses the helper function PartialTranspose from QETLAB, and for simplicity we assume that the two constituent subsystems are of equal dimension. In addition to the optimal value and an optimal primal solution, the program returns optimal dual variables A and B (following notation in the manuscript).

function [cvx_optval,F,A,B] = ProjRobPPT(rho)

d = size(rho,1);

cvx_begin sdp quiet

  variable F(d,d) hermitian semidefinite
  variable gam nonnegative
  dual variable A
  dual variable B

  A: rho <= F
  B: F <= gam*rho

  PartialTranspose(F) >= 0;

  minimize gam

cvx_end


end

One can similarly implement the problems $\Xi_\varepsilon$ (maximal probability of success for a fixed distillation error $\varepsilon$) and $\Theta_p$ (minimal distillation error for a fixed probability of success). We denote them by XiPPT and ThetaPPT, respectively.

function [cvx_optval,W,Z] = XiPPT(rho, k, err)

d = size(rho,1);
  
cvx_begin sdp quiet

    variable W(d,d) hermitian semidefinite
    variable Z(d,d) hermitian semidefinite
    variable Q(d,d) hermitian semidefinite
    
    W <= Z <= eye(d)
    
    trace(W*rho) == (1-err)*trace(Z*rho)

    Z/k - W >= PartialTranspose(Q)

    maximize trace(Z*rho)

cvx_end

end
function [cvx_optval,W,Z] = ThetaPPT(rho, k, p)

d = size(rho,1);
  
cvx_begin sdp quiet

    variable W(d,d) hermitian semidefinite
    variable Z(d,d) hermitian semidefinite
    variable Q(d,d) hermitian semidefinite
    
    W <= Z <= eye(d)
    trace(Z*rho) == p

    Z/k - W >= PartialTranspose(Q)

    maximize trace(W*rho)/p

cvx_end

end

Here, we used the fact that the dual cone of the set of all PPT states — the union of the dual cones of the set of all states and the set of all PPT (Hermitian) operators — is formed by operators of the form P + Q, where P is a PSD matrix and Q is a matrix such that PartialTranspose(Q) is PSD.


Coherence and imaginarity

Let us begin with the resource theory of coherence, where the free states $\mathbb{F}$ are all states whose density matrix is diagonal in the given basis. The implementation of the projective robustness is done very similarly.

function [cvx_optval,F,A,B] = ProjRobCoh(rho)

d = size(rho,1);

cvx_begin sdp quiet

  variable F(d,d) hermitian semidefinite
  variable gam nonnegative
  dual variable A
  dual variable B

  A: rho <= F
  B: F <= gam*rho

  F == diag(diag(F))

  minimize gam

cvx_end


end

To apply the above to the resource theory of imaginarity (where the free states are those whose density matrix has only real elements in the given basis), it suffices to replace diag(diag(...)) with real(...).

In the quantification of achievable probabilities/errors, care needs to be taken to impose strict equality in line with the definition of the problems $\Xi_\varepsilon^{\mathrm{aff}}$ and $\Theta_p^{\mathrm{aff}}$.

function [cvx_optval,W,Z] = XiCoh(rho, k, err)

d = size(rho,1);
  
cvx_begin sdp quiet

    variable W(d,d) hermitian semidefinite
    variable Z(d,d) hermitian semidefinite
    
    W <= Z <= eye(d)
    
    trace(W*rho) == (1-err)*trace(Z*rho)

    diag(diag(Z/k - W)) == 0

    maximize trace(Z*rho)

cvx_end

end
function [cvx_optval,W,Z] = ThetaCoh(rho, k, p)

d = size(rho,1);
  
cvx_begin sdp quiet

    variable W(d,d) hermitian semidefinite
    variable Z(d,d) hermitian semidefinite
    
    W <= Z <= eye(d)
    trace(Z*rho) == p

    diag(diag(Z/k - W)) == 0

    maximize trace(W*rho)/p

cvx_end

end

Magic (non-stabiliser) states

Evaluating the projective robustness for the theory of magic states proceeds slightly differently. Here, in addition to the input state rho, the function takes as an input argument a matrix T whose columns are the pure stabiliser states of the same dimension as the input state. Any free state can then be written as T*X*T' where X is a diagonal matrix whose diagonal entries $x_{ii}$ satisfy $x_{ii} \geq 0$, $\sum_i x_{ii} = 1$.

The T matrices for systems of 1-4 qubits can be downloaded here:

The following MATLAB program then computes $\Omega_{\mathbb{F}}(\rho)$.

function [cvx_optval,F,A,B,x] = ProjRobMag(rho, T)

d = size(rho,1);

cvx_begin sdp quiet

    variable x(size(T,2)) nonnegative
    variable gam nonnegative
    dual variable A
    dual variable B

    F = T*diag(x)*T';

    A: rho <= F
    B: F <= gam*rho

    minimize gam

cvx_end

end

The quantities $\Xi_\varepsilon$ (maximal probability of success for a fixed distillation error $\varepsilon$) and $\Theta_p$ (minimal distillation error for a fixed probability of success) are computed analogously. Note once again the additional argument T.

function [cvx_optval,W,Z] = XiMag(rho, k, err, T)

d = size(rho,1);
  
cvx_begin sdp quiet

    variable W(d,d) hermitian semidefinite
    variable Z(d,d) hermitian semidefinite
    variable Q(d,d) hermitian semidefinite
    
    W <= Z <= eye(d)
    
    trace(W*rho) == (1-err)*trace(Z*rho)

    for j=1:size(T,2)
        T(:,j)'*(Z/k - W)*T(:,j) >= 0
    end

    maximize trace(Z*rho)

cvx_end

end
function [cvx_optval,W,Z] = ThetaMag(rho, k, p, T)

d = size(rho,1);
  
cvx_begin sdp quiet

    variable W(d,d) hermitian semidefinite
    variable Z(d,d) hermitian semidefinite
    variable Q(d,d) hermitian semidefinite
    
    W <= Z <= eye(d)
    trace(Z*rho) == p

    for j=1:size(T,2)
        T(:,j)'*(Z/k - W)*T(:,j) >= 0
    end

    maximize trace(W*rho)/p

cvx_end

end