RobustnessCoherence
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).
Contents
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.
%% RobustnessCoherence Computes the robustness of coherence of a quantum state
% This function has one required argument:
% RHO: a pure state vector or a density matrix
%
% ROC = RobustnessCoherence(RHO) is the robustness of coherence (as
% defined in [1,2]) of the quantum state (density matrix) RHO.
%
% 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 submitted to PRL, 2016.
% [2] M. Piani, M. Cianciaruso, T. R. Bromley, C. Napoli,
% N. Johnston, G. Adesso. Robustness of asymmetry and
% coherence of quantum states. Preprint submitted to PRA,
% 2016.
%
% URL: http://www.qetlab.com/RobustnessCoherence
% requires: cvx (http://cvxr.com/cvx/), L1NormCoherence.m,
% pure_to_mixed.m
% author: Nathaniel Johnston (nathaniel@njohnston.ca)
% package: QETLAB
% last updated: January 12, 2016
function RoC = RobustnessCoherence(rho)
rho = pure_to_mixed(rho); % Let the user enter either a pure state vector or a density matrix.
n = length(rho);
% If the state is pure or single-qubit, we can compute it faster by
% recalling that it is equal to the l1-norm of coherence.
if(n <= 2 || rank(rho) == 1)
RoC = L1NormCoherence(rho);
return
end
% Robustness of coherence is computed by semidefinite programming
cvx_begin sdp quiet
cvx_precision best;
variable inc_state(n,1);
variable sig(n,n) hermitian;
minimize trace(sig);
subject to
sig >= 0;
rho + sig == diag(inc_state);
cvx_end
RoC = real(cvx_optval);
References
- ↑ 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.
- ↑ C. Napoli, T. R. Bromley, M. Cianciaruso, M. Piani, N. Johnston, G. Adesso. Robustness of asymmetry and coherence of quantum states. Preprint, 2016.