Difference between revisions of "IsSeparable"

From QETLAB
Jump to navigation Jump to search
(Updated)
m
Line 46: Line 46:
 
The following code performs the same computation, but has <tt>VERBOSE</tt> set to 0 so that the method of proving that <tt>rho</tt> is entangled is not displayed.
 
The following code performs the same computation, but has <tt>VERBOSE</tt> set to 0 so that the method of proving that <tt>rho</tt> is entangled is not displayed.
 
<syntaxhighlight>
 
<syntaxhighlight>
>> IsSeparable(rho,[3,3],2,-1,0)
+
>> IsSeparable(rho,[3,3],2,0)
  
 
ans =
 
ans =

Revision as of 13:16, 22 September 2014

IsSeparable
Determines whether or not a bipartite operator is separable

Other toolboxes required cvx
Related functions IsPPT
IsPSD
OperatorSchmidtDecomposition
OperatorSchmidtRank
SchmidtNumber
SymmetricExtension
SymmetricInnerExtension

IsSeparable is a function that determines whether a bipartite operator is separable or entangled. A value of 0 indicates that the operator is entangled, a value of 1 indicates that the operator is separable, and a value of -1 indicates that the script was unable to determine whether the operator is separable or entangled.

Syntax

  • SEP = IsSeparable(X)
  • SEP = IsSeparable(X,DIM)
  • SEP = IsSeparable(X,DIM,STR)
  • SEP = IsSeparable(X,DIM,STR,VERBOSE)
  • SEP = IsSeparable(X,DIM,STR,VERBOSE,TOL)

Argument descriptions

  • X: A bipartite positive semidefinite operator.
  • DIM (optional, by default has both subsystems of equal dimension): A 1-by-2 vector containing the dimensions of the two subsystems that X acts on.
  • STR (optional, default 2): An integer that determines how hard the script should work to determine separability before giving up (STR = -1 means that the script won't stop working until it finds an answer. Other valid values are 0, 1, 2, 3, .... In practice, if STR >= 4 then most computers will run out of memory and/or the sun will explode before computation completes.
  • VERBOSE (optional, default 1): A flag (either 0 or 1) that indicates that the script will or will not display a line of text describing how it proved that X is or is not separable.
  • TOL (optional, default eps^(1/4)): The numerical tolerance used throughout the script.

Examples

Determining entanglement of a bound entangled state

The following code constructs a two-qutrit bound entangled state based on the "Tiles" unextendible product basis. This state's entanglement can not be detected by the positive partial transpose criterion, but the following code shows that it is indeed entangled.

>> v = UPB('Tiles');

>> rho = eye(9);
>> for j = 1:5
       rho = rho - v(:,j)*v(:,j)';
   end
>> rho = rho/4; % we are now done constructing the bound entangled state

>> IsSeparable(rho)
Determined to be entangled via the realignment criterion. Reference:
K. Chen and L.-A. Wu. A matrix realignment method for recognizing entanglement.
Quantum Inf. Comput., 3:193-202, 2003.

ans =

     0

The following code performs the same computation, but has VERBOSE set to 0 so that the method of proving that rho is entangled is not displayed.

>> IsSeparable(rho,[3,3],2,0)

ans =

     0

Mixtures with the maximally-mixed state

Every state that is sufficiently close to the maximally-mixed state is separable, so for every entangled state $\rho \in M_A \otimes M_B$, the state $\sigma_p := p\rho + \tfrac{1}{d_A d_B}(1-p)I$ is separable as long as $p$ is small enough.

For the remainder of this example, $\rho$ is the same bound entangled state based on the "Tiles" UPB from the previous example. It was shown in [1] that the Filter Covariance Matrix Criterion detects the entanglement in $\sigma_p$ when $p = 0.8723$, which we can verify as follows:

>> p = 0.8723; sigma = p*rho + (1-p)*eye(9)/9;
>> IsSeparable(sigma)
Determined to be entangled via the Filter Covariance Matrix Criterion. Reference:
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.

ans =

     0

However, if we decrease $p$ to $p = 0.8722$ then a stronger test of entanglement is needed to determine that $\sigma_p$ is entangled:

>> p = 0.8722; sigma = p*rho + (1-p)*eye(9)/9;
>> IsSeparable(sigma)
Determined to be entangled by not having a 2-copy symmetric extension. Reference:
A. C. Doherty, P. A. Parrilo, and F. M. Spedalieri. A complete family of separability
criteria. Phys. Rev. A, 69:022308, 2004.

ans =

     0

If we decrease $p$ further, then $\sigma_p$ becomes separable:

>> p = 0.2; sigma = p*rho + (1-p)*eye(9)/9;
>> IsSeparable(sigma)
Determined to be separable by closeness to the maximally mixed state. Reference:
L. Gurvits and H. Barnum. Largest separable balls around the maximally mixed bipartite
quantum state. Phys. Rev. A, 66:062311, 2002.

ans =

     1

If we increase $p$ back to $p = 0.4$ then $\sigma_p$ is still separable, but a stronger test is required to prove its separability:

>> p = 0.4; sigma = p*rho + (1-p)*eye(9)/9;
>> IsSeparable(sigma)
Determined to be separable via the semidefinite program based on 2-copy symmetric extensions from reference:
M. Navascues, M. Owari, and M. B. Plenio. A complete criterion for separability detection. Phys. Rev. Lett.,
103:160404, 2009.

ans =

     1

If we increase $p$ slightly more to $p = 0.45$ then $\sigma_p$ is still separable, but none of the default tests for separability are strong enough to determine this. To prove separability, we can increase the STR argument to 3:

>> p = 0.45; sigma = p*rho + (1-p)*eye(9)/9;
>> IsSeparable(sigma)

ans =

    -1

>> IsSeparable(sigma,[3,3],3)
Determined to be separable via the semidefinite program based on 3-copy symmetric extensions from reference:
M. Navascues, M. Owari, and M. B. Plenio. A complete criterion for separability detection. Phys. Rev. Lett., 103:160404, 2009.

ans =

     1

References

  1. 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]

Source code

Click here to view this function's source code on github.