RobustnessCoherence

From QETLAB
Jump to: navigation, search
RobustnessCoherence
Computes the robustness of coherence of a quantum state

Other toolboxes required CVX
Related functions L1NormCoherence
RelEntCoherence
TraceDistanceCoherence
Function category Coherence and incoherence
Usable within CVX? yes (convex)

RobustnessCoherence is a function that computes the robustness of coherence of a quantum state $\rho$, defined as follows [1][2]:

\[C_{R}(\rho) := \min_{\tau}\left\{s \geq 0 \, \Big| \, \frac{\rho + s\tau}{1+s} \in \mathcal{I}\right\},\]

where the minimization is over all density matrices $\tau$ and $\mathcal{I}$ is the set of incoherent density matrices (i.e., the set of density matrices that are diagonal in the computational basis).

Syntax

  • ROC = RobustnessCoherence(RHO)

Argument descriptions

  • RHO: A state (either pure or mixed) to have its robustness of coherence computed.

Examples

Pure states

If $|v\rangle$ is a pure state then its robustness of coherence and ℓ1-norm of coherence coincide:

>> v = RandomStateVector(4);
>> L1NormCoherence(v)
 
ans =
 
    2.5954
 
>> RobustnessCoherence(v)
 
ans =
 
    2.5954

Can be used within CVX

The robustness of coherence is a convex function and can be used in the same way as any other convex function within CVX. Thus you can minimize the robustness of coherence or use the robustness of coherence in constraints of CVX optimization problems. For example, the following code minimizes the robustness of coherence over all density matrices that are within a trace distance of $1/2$ from the maximally coherent state $|v\rangle = (1,1,1,1,1)/\sqrt{5}$:

>> d = 5;
>> v = ones(d,1)/sqrt(d); % this is a maximally coherent state
>> cvx_begin sdp quiet
   variable rho(5,5) hermitian;
 
   minimize RobustnessCoherence(rho)
 
   subject to
       TraceNorm(rho - v*v') <= 0.5;
       % the next two constraints force rho to be a density matrix
       rho >= 0;
       trace(rho) == 1;
   cvx_end
   cvx_optval
 
cvx_optval =
 
    2.7500
 
>> rho
 
rho =
 
   0.2000    0.1375    0.1375    0.1375    0.1375
   0.1375    0.2000    0.1375    0.1375    0.1375
   0.1375    0.1375    0.2000    0.1375    0.1375
   0.1375    0.1375    0.1375    0.2000    0.1375
   0.1375    0.1375    0.1375    0.1375    0.2000

Source code

Click on "expand" to the right to view the MATLAB source code for this function.

  1. %%  RobustnessCoherence    Computes the robustness of coherence of a quantum state
  2. %   This function has one required argument:
  3. %     RHO: a pure state vector or a density matrix
  4. %
  5. %   ROC = RobustnessCoherence(RHO) is the robustness of coherence (as
  6. %   defined in [1,2]) of the quantum state (density matrix) RHO.
  7. %
  8. %   References: [1] C. Napoli, T. R. Bromley, M. Cianciaruso, M. Piani, 
  9. %                   N. Johnston, G. Adesso. Robustness of coherence: An
  10. %                   operational and observable measure of quantum
  11. %                   coherence. Preprint submitted to PRL, 2016.
  12. %               [2] M. Piani, M. Cianciaruso, T. R. Bromley, C. Napoli, 
  13. %                   N. Johnston, G. Adesso. Robustness of asymmetry and
  14. %                   coherence of quantum states. Preprint submitted to PRA,
  15. %                   2016.
  16. %
  17. %   URL: http://www.qetlab.com/RobustnessCoherence
  18.  
  19. %   requires: cvx (http://cvxr.com/cvx/), L1NormCoherence.m,
  20. %             pure_to_mixed.m
  21. %   author: Nathaniel Johnston (nathaniel@njohnston.ca)
  22. %   package: QETLAB
  23. %   last updated: January 12, 2016
  24.  
  25. function RoC = RobustnessCoherence(rho)
  26.  
  27. rho = pure_to_mixed(rho); % Let the user enter either a pure state vector or a density matrix.
  28. n = length(rho);
  29.  
  30. % If the state is pure or single-qubit, we can compute it faster by
  31. % recalling that it is equal to the l1-norm of coherence.
  32. if(n <= 2 || rank(rho) == 1)
  33.     RoC = L1NormCoherence(rho);
  34.     return
  35. end
  36.  
  37. % Robustness of coherence is computed by semidefinite programming
  38. cvx_begin sdp quiet
  39.     cvx_precision best;
  40.     variable inc_state(n,1);
  41.     variable sig(n,n) hermitian;
  42.  
  43.     minimize trace(sig);
  44.  
  45.     subject to
  46.         sig >= 0;
  47.         rho + sig == diag(inc_state);
  48. cvx_end
  49.  
  50. RoC = real(cvx_optval);

References

  1. C. Napoli, T. R. Bromley, M. Cianciaruso, M. Piani, N. Johnston, G. Adesso. Robustness of coherence: An operational and observable measure of quantum coherence. Preprint, 2016.
  2. C. Napoli, T. R. Bromley, M. Cianciaruso, M. Piani, N. Johnston, G. Adesso. Robustness of asymmetry and coherence of quantum states. Preprint, 2016.