FilterNormalForm

From QETLAB
Jump to: navigation, search
FilterNormalForm
Computes the filter normal form of an operator

Other toolboxes required none
Related functions IsSeparable
OperatorSchmidtDecomposition
OperatorSinkhorn
Function category Entanglement and separability

FilterNormalForm is a function that computes the filter normal form of a bipartite operator RHO (see Section IV.D of [1] for an introductory discussion of the filter normal form). Note that if RHO is not full rank, it may not have a filter normal form and hence an error may be produced by this function.

Syntax

  • XI = FilterNormalForm(RHO)
  • [XI,GA,GB] = FilterNormalForm(RHO)
  • [XI,GA,GB,FA,FB] = FilterNormalForm(RHO,DIM)
  • [XI,GA,GB,FA,FB] = FilterNormalForm(RHO,DIM,TOL)

Argument descriptions

Input arguments

  • RHO: An positive semidefinite operator (typically a density matrix) that acts on a bipartite Hilbert space. This operator will have its filter normal form computed.
  • DIM (optional, default has RHO acting on two subsystems of equal size): A vector containing the dimensions of the two subsystems on which RHO acts.
  • TOL (optional, default sqrt(eps)): The numerical tolerance used when computing the filter normal form.

Output arguments

  • XI: A vector containing the coefficients of the filter normal form of RHO, as defined in [1].
  • GA,GB (optional): Cells of mutually orthonormal matrices in the filter normal form of RHO.
  • FA,FB (optional): The local filtering operations used to convert RHO into its filter normal form.

To be explicit, the relationship between RHO and the output arguments is that kron(FA,FB)*RHO*kron(FA,FB)' == (eye(length(RHO)) + TensorSum(XI,GA,GB))/length(RHO). In usual math notation, this means that

\((F_A \otimes F_B)\rho(F_A \otimes F_B)^\dagger = \frac{1}{d_A d_B}\big(I + \displaystyle\sum_{k} \xi_k G_k^A \otimes G_k^B\big).\)

Examples

Finding and verifying the filter normal form

The following code computes the filter normal form of a random density matrix. The fact that FA and FB implement a local filter to this form is then verified (within reasonable numerical error).

>> rho = RandomDensityMatrix(9);
>> [xi,GA,GB,FA,FB] = FilterNormalForm(rho);
>> norm((eye(9) + TensorSum(xi,GA,GB))/9 - kron(FA,FB)*rho*kron(FA,FB)')
 
ans =
 
  6.8088e-016

Using the filter normal form to detect entanglement

As noted in [1], the coefficients XI of the filter normal form provide useful information about the entanglement of RHO. For example, if both subsystems have the same dimension D then we can conclude that RHO is entangled if sum(XI) > D^2 - D. Thus the following code generates a random two-qutrit density matrix and then determines that it is entangled:

>> d = 3;
>> rho = RandomDensityMatrix(d^2);
>> xi = FilterNormalForm(rho);
>> [sum(xi), d^2-d]
 
ans =
 
    6.3611    6.0000

Low-rank states may not have a filter normal form

It is known[2] that all full-rank density matrices have a filter normal form. However, low-rank density matrices may not have a filter normal form (although they usually do) – an error will be produced by this script when low-rank problems occur. The following code generates a random rank-2 density matrix in \(M_3 \otimes M_3\) just fine, but is unable to compute the filter normal form of a low-rank state that is constructed specifically so that it does not have a filter normal form:

>> xi = FilterNormalForm(RandomDensityMatrix(9,0,2)); % no errors will come from this
>> rho = kron(diag([1/2,1/2,0]),eye(3)/3);
>> xi = FilterNormalForm(rho);
Error using FilterNormalForm (line 68)
The state RHO can not be transformed into a filter normal form. This is often the case if RHO is not of full rank.

Source code

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

  1. %%  FILTERNORMALFORM    Computes the filter normal form of an operator
  2. %   This function has one required argument:
  3. %     RHO: a density matrix
  4. %
  5. %   XI = FilterNormalForm(RHO) is a vector of the coefficients in RHO's
  6. %   filter normal form (see Section IV.D of [1]), which are useful for
  7. %   showing that RHO is entangled.
  8. %
  9. %   The filter normal form is not guaranteed to exist if RHO is not full
  10. %   rank. If a filter normal form can not be found, an error is returned.
  11. %
  12. %   This function has two optional input arguments:
  13. %     DIM (default has both subsystems of equal dimension)
  14. %     TOL (default sqrt(eps))
  15. %
  16. %   This function has four optional output arguments:
  17. %     GA,GB: cells of mutually orthonormal matrices
  18. %     FA,FB: invertible matrices
  19. %
  20. %   [XI,GA,GB,FA,FB] = FilterNormalForm(RHO,DIM,TOL) returns XI, GA, GB,
  21. %   FA, FB such that (eye(length(RHO)) + TensorSum(XI,GA,GB))/length(RHO)
  22. %   equals kron(FA,FB)*RHO*kron(FA,FB)'. In other words, FA and FB are
  23. %   matrices implementing the local filter, XI is a vector of coefficients
  24. %   in the filter normal form, and GA and GB are cells of matrices in the
  25. %   tensor-sum decomposition of the filter normal form.
  26. %
  27. %   DIM is a 1-by-2 vector containing the dimensions of the subsystems on
  28. %   which RHO acts. TOL is the numerical tolerance used when constructing
  29. %   the filter normal form.
  30. %
  31. %   URL: http://www.qetlab.com/FilterNormalForm
  32. %
  33. %   References:
  34. %   [1] O. Gittsovich, O. Guehne, P. Hyllus, and J. Eisert. Unifying several
  35. %   separability conditions using the covariance matrix criterion. Phys.
  36. %   Rev. A, 78:052319, 2008. E-print: arXiv:0803.0757 [quant-ph]
  37.  
  38. %   requires: OperatorSchmidtDecomposition.m, OperatorSinkhorn.m,
  39. %             opt_args.m, PartialTrace.m, PermuteSystems.m,
  40. %             SchmidtDecomposition.m, Swap.m
  41. %             
  42. %   author: Nathaniel Johnston (nathaniel@njohnston.ca)
  43. %   package: QETLAB
  44. %   last updated: October 3, 2014
  45.  
  46. function [xi,GA,GB,FA,FB] = FilterNormalForm(rho,varargin)
  47.  
  48. lrho = length(rho);
  49.  
  50. % set optional argument defaults: dim=sqrt(length(rho)), tol=sqrt(eps)
  51. [dim,tol] = opt_args({ round(sqrt(lrho)), sqrt(eps) },varargin{:});
  52.  
  53. % allow the user to enter a single number for dim
  54. if(length(dim) == 1)
  55.     dim = [dim,lrho/dim];
  56.     if abs(dim(2) - round(dim(2))) >= 2*lrho*eps
  57.         error('FilterNormalForm:InvalidDim','If DIM is a scalar, it must evenly divide length(RHO); please provide the DIM array containing the dimensions of the subsystems.');
  58.     end
  59.     dim(2) = round(dim(2));
  60. end
  61.  
  62. try
  63.     [sigma,F] = OperatorSinkhorn(rho,dim);
  64. catch err
  65.     % Operator Sinkhorn didn't converge.
  66.     if(strcmpi(err.identifier,'OperatorSinkhorn:LowRank'))
  67.         error('FilterNormalForm:NoFNF','The state RHO can not be transformed into a filter normal form. This is often the case if RHO is not of full rank.');
  68.     else
  69.         rethrow(err);
  70.     end
  71. end
  72.  
  73. % Do some post-processing to make the output more useful and consistent
  74. % with the literature.
  75. pd = prod(dim);
  76. [xi,GA,GB] = OperatorSchmidtDecomposition(sigma - trace(sigma)*eye(pd)/pd,dim);
  77. xi = pd*xi;
  78. FA = F{1};
  79. FB = F{2};

References

  1. 1.0 1.1 1.2 O. Gittsovich, O. Gühne, P. Hyllus, and J. Eisert. Unifying several separability conditions using the covariance matrix criterion. Phys. Rev. A, 78:052319, 2008. E-print: arXiv:0803.0757 [quant-ph]
  2. J. M. Leinaas, J. Myrheim, and E. Ovrum. Geometrical aspects of entanglement. Phys. Rev. A, 74:012313, 2006. E-print: arXiv:quant-ph/0605079