# SkOperatorNorm

SkOperatorNorm | |

Computes the S(k)-norm of an operator | |

Other toolboxes required | cvx iden IsPSD kpNorm MaxEntangled normalize_cols opt_args PartialMap PartialTrace PartialTranspose PermuteSystems Realignment SchmidtDecomposition SchmidtRank SkVectorNorm sporth Swap |
---|---|

Related functions | IsBlockPositive |

` SkOperatorNorm` is a function that computes the S(k)-norm of an operator

^{[1]}

^{[2]}: $$ \|X\|_{S(k)} := \sup_{|v\rangle , |w\rangle } \Big\{ \big| \langle w| X |v \rangle \big| : \big\||v \rangle\big\| = \big\||w \rangle\big\| = 1 \Big\} $$

## Syntax

`LB = SkOperatorNorm(X)``LB = SkOperatorNorm(X,K)``LB = SkOperatorNorm(X,K,DIM)``LB = SkOperatorNorm(X,K,DIM,ITS)``LB = SkOperatorNorm(X,K,DIM,ITS,POS_MAP)``[LB,~,UB] = SkOperatorNorm(X,K,DIM,ITS,POS_MAP)``[LB,LWIT,UB,UWIT] = SkOperatorNorm(X,K,DIM,ITS,POS_MAP)`

## Argument descriptions

### Input arguments

`X`: A square matrix acting on bipartite space. Generally,`X`should be positive semidefinite – the bounds produced otherwise are quite poor.`K`(optional, default 1): A positive integer.`DIM`(optional, by default has both subsystems of equal dimension): A 1-by-2 vector containing the dimensions of the subsystems that`X`acts on.`ITS`(optional, default 10): The number of iterations used in an algorithm that computes the lower bound`LB`. Higher values of`ITS`result in better lower bounds but slower computations.`ITS`should be set to 0 if the user is only interested in`UB`.`ITS`(optional, default is the transpose map if`K = 1`and the`K`-positive map $\Phi(X) = K{\rm Tr}(X)I - X$ if`K > 1`): A`K`-positive (but not completely positive) map used in the computation of the upper bound`UB`. Different`K`-positive maps lead to different upper bounds. Maps that are not`K`-positive will not result in error messages, but may result in nonsensical or incorrect calculations, so it is the user's responsibility to ensure that`POS_MAP`really is`K`-positive.`PHI`should be provided either as a Choi matrix, or as a cell with 2 columns whose entries are its Kraus operators (see the tutorial to learn how to deal with superoperators in QETLAB).

### Output arguments

`LB`: A lower bound of the S(k)-operator norm of`X`.`LWIT`: A witness that verifies that`LB`is indeed a lower bound of the S(k)-operator norm of`X`. More specifically,`LWIT`is a unit vector such that`SchmidtRank(LWIT,DIM) <= K`and`LWIT'*X*LWIT = LB`.`UB`: An upper bound of the S(k)-operator norm of`X`.`UWIT`: A witness that verifies that`UB`is indeed an upper bound of the S(k)-operator norm of`X`. More specifically,`UWIT`is a positive semidefinite operator satisfying $\big\| X + (id \otimes \Phi^\dagger)(Y) \big\| = UB$, where $\Phi^\dagger$ is the dual map (in the sense of the Hilbert–Schmidt inner product) of`POS_MAP`.

To see why this implies that $\|X\|_{S(k)} \leq UB$, see Section 5.2.1 of ^{[3]}.

## Examples

### Exact computation in small dimensions

When `X` lives in $M_2 \otimes M_2$, $M_2 \otimes M_3$, or $M_3 \otimes M_2$ (i.e., when `prod(DIM) <= 6`), the script is guaranteed to compute the exact value of $\|X\|_{S(1)}$:

>> X = [5 1 1 1;1 1 1 1;1 1 1 1;1 1 1 1]/8; >> SkOperatorNorm(X) ans = 0.7286

The fact that this computation is correct is illustrated in Example 5.2.11 of ^{[3]}, where it was shown that the S(1)-norm is exactly $(3 + 2\sqrt(2))/8 \approx 0.7286$. However, if we were still unconvinced, we could request witnesses that verify that 0.7286 is both a lower bound and an upper bound of the S(1)-norm:

>> [lb,lwit,ub,uwit] = SkOperatorNorm(X) lb = 0.7286 lwit = 0.8536 + 0.0000i 0.3536 - 0.0000i 0.3536 + 0.0000i 0.1464 ub = 0.7286 uwit = 0.0516 -0.0624 - 0.0000i -0.0624 - 0.0000i 0.0004 + 0.0000i -0.0624 + 0.0000i 0.3013 -0.1246 + 0.0000i -0.0631 - 0.0000i -0.0624 + 0.0000i -0.1246 - 0.0000i 0.3013 -0.0631 - 0.0000i 0.0004 - 0.0000i -0.0631 + 0.0000i -0.0631 + 0.0000i 0.3026 >> lwit'*X*lwit % verify that the lower bound is correct ans = 0.7286 + 0.0000i >> norm(X + PartialTranspose(uwit,2)) % verify that the upper bound is correct ans = 0.7286

### Only interested in the lower and upper bounds; not the witnesses

If all you want are the lower and upper bounds, but don't require the witnesses `LWIT` and `UWIT`, you can use code like the following. Note that in this case, $\|X\|_{S(1)}$ is computed exactly, as the lower and upper bound are equal. However, all we know about $\|X\|_{S(2)}$ is that it lies in the interval [0.3522, 0.3546]. It is unsurprising that $\|X\|_{S(3)}$ is the usual operator norm of `X`, since this is always the case when `K >= min(DIM)`.

>> X = RandomDensityMatrix(9); >> [lb,~,ub] = SkOperatorNorm(X,1) lb = 0.2955 ub = 0.2955 >> [lb,~,ub] = SkOperatorNorm(X,2) lb = 0.3522 ub = 0.3546 >> [lb,~,ub] = SkOperatorNorm(X,3) lb = 0.3770 ub = 0.3770 >> norm(X) ans = 0.3770

## References

- ↑ N. Johnston and D. W. Kribs. A Family of Norms With Applications in Quantum Information Theory.
*J. Math. Phys.*, 51:082202, 2010. E-print: arXiv:0909.3907 [quant-ph] - ↑ N. Johnston and D. W. Kribs. A Family of Norms With Applications in Quantum Information Theory II. Quantum Information & Computation, 11(1 & 2):104–123, 2011. E-print: arXiv:1006.0898 [quant-ph]
- ↑
^{3.0}^{3.1}N. Johnston. Norms and Cones in the Theory of Quantum Entanglement. PhD thesis, University of Guelph, 2012. E-print: arXiv:1207.1479 [quant-ph]