CBNorm
From QETLAB
CBNorm | |
Computes the completely bounded norm of a superoperator | |
Other toolboxes required | CVX |
---|---|
Related functions | DiamondNorm InducedSchattenNorm |
Function category | Norms |
Usable within CVX? | yes (convex) |
CBNorm is a function that computes the completely bounded (CB) norm $\|\Phi\|_{cb}$ of a superoperator $\Phi$.
Contents
Syntax
- CB = CBNorm(PHI)
- CB = CBNorm(PHI,DIM)
Argument descriptions
- PHI: A superoperator. Should be provided as either a Choi matrix, or as a cell with either 1 or 2 columns (see the tutorial page for more details about specifying superoperators within QETLAB).
- DIM (optional, default has input and output spaces of equal dimension): A 1-by-2 vector containing the input and output dimensions of PHI, in that order (equivalently, these are the dimensions of the first and second subsystems of the Choi matrix PHI, in that order). If the input or output space is not square, then DIM's first row should contain the input and output row dimensions, and its second row should contain its input and output column dimensions. DIM is required if and only if PHI has unequal input and output dimensions and is provided as a Choi matrix.
Examples
Relationship with the diamond norm
The CB norm of a superoperator $\Phi$ is equal to the diamond norm of the dual map $\Phi^\dagger$:
>> Phi = {[1 2;3 4],[0 1;1 0] ; [0 1;2 0],[1 1;1 1] ; [1 1;-1 3],[1 4;0 0]}; >> CBNorm(Phi) ans = 19.5928 >> DiamondNorm(DualMap(Phi)) ans = 19.5928
Can be used in CVX
Just like the DiamondNorm function, CBNorm is a convex function that can be used within CVX optimization problems. See the example on the DiamondNorm documentation page.
Source code
Click on "expand" to the right to view the MATLAB source code for this function.
%% CBNORM Computes the completely bounded norm of a superoperator
% This function has one required input argument:
% PHI: a superoperator
%
% CB = CBNorm(PHI) is the completely bounded (CB) norm of the
% superoperator PHI. PHI should be specified as either a cell with one or
% two columns of Kraus operators, or as a Choi matrix (see online QETLAB
% tutorial for details about specifying superoperators). If PHI is
% provided as a Choi matrix with unequal input and output dimensions, a
% second argument specifying the dimensions should also be provided (see
% below).
%
% This function has one optional input argument:
% DIM (default has both subsystems of equal dimension)
%
% CB = CBNorm(PHI,DIM) is the CB norm of PHI, as above, where DIM is a
% 1-by-2 vector containing the input and output dimensions of PHI, in
% that order (equivalently, these are the dimensions of the first and
% second subsystems of the Choi matrix PHI, in that order).
%
% URL: http://www.qetlab.com/CBNorm
% requires: ApplyMap.m, ComplementaryMap.m, ChoiMatrix.m, cvx
% (http://cvxr.com/cvx/), DiamondNorm.m, DualMap.m, iden.m,
% IsCP.m, IsHermPreserving.m, IsPSD.m, KrausOperators.m,
% MaxEntangled.m, opt_args.m, PermuteSystems.m, Swap.m
%
% author: Nathaniel Johnston (nathaniel@njohnston.ca), based on an
% algorithm by John Watrous
% package: QETLAB
% last updated: November 21, 2014
function cb = CBNorm(Phi,varargin)
if(~iscell(Phi) && ~isa(Phi,'cvx'))
Phi = KrausOperators(Phi,varargin{:});
end
cb = DiamondNorm(DualMap(Phi));