CBNorm

From QETLAB
Jump to: navigation, search
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$.

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.

  1. %%  CBNORM    Computes the completely bounded norm of a superoperator
  2. %   This function has one required input argument:
  3. %     PHI: a superoperator
  4. %
  5. %   CB = CBNorm(PHI) is the completely bounded (CB) norm of the
  6. %   superoperator PHI. PHI should be specified as either a cell with one or
  7. %   two columns of Kraus operators, or as a Choi matrix (see online QETLAB
  8. %   tutorial for details about specifying superoperators). If PHI is
  9. %   provided as a Choi matrix with unequal input and output dimensions, a
  10. %   second argument specifying the dimensions should also be provided (see
  11. %   below).
  12. %
  13. %   This function has one optional input argument:
  14. %     DIM (default has both subsystems of equal dimension)
  15. %
  16. %   CB = CBNorm(PHI,DIM) is the CB norm of PHI, as above, where DIM is a
  17. %   1-by-2 vector containing the input and output dimensions of PHI, in
  18. %   that order (equivalently, these are the dimensions of the first and
  19. %   second subsystems of the Choi matrix PHI, in that order).
  20. %
  21. %   URL: http://www.qetlab.com/CBNorm
  22.  
  23. %   requires: ApplyMap.m, ComplementaryMap.m, ChoiMatrix.m, cvx
  24. %             (http://cvxr.com/cvx/), DiamondNorm.m, DualMap.m, iden.m,
  25. %             IsCP.m, IsHermPreserving.m, IsPSD.m, KrausOperators.m,
  26. %             MaxEntangled.m, opt_args.m, PermuteSystems.m, Swap.m
  27. %
  28. %   author: Nathaniel Johnston (nathaniel@njohnston.ca), based on an
  29. %           algorithm by John Watrous
  30. %   package: QETLAB
  31. %   last updated: November 21, 2014
  32.  
  33. function cb = CBNorm(Phi,varargin)
  34.  
  35. if(~iscell(Phi) && ~isa(Phi,'cvx'))
  36.     Phi = KrausOperators(Phi,varargin{:});
  37. end
  38. cb = DiamondNorm(DualMap(Phi));