AntisymmetricProjection

From QETLAB
Jump to navigation Jump to search
AntisymmetricProjection
Produces the projection onto the antisymmetric subspace

Other toolboxes required opt_args
perm_sign
PermutationOperator
PermuteSystems
sporth
Related functions SymmetricProjection
SwapOperator

AntisymmetricProjection is a function that computes the orthogonal projection onto the antisymmetric subspace of two or more subsystems. The output of this function is always a sparse matrix.

Syntax

  • PA = AntisymmetricProjection(DIM)
  • PA = AntisymmetricProjection(DIM,P)
  • PA = AntisymmetricProjection(DIM,P,PARTIAL)
  • PA = AntisymmetricProjection(DIM,P,PARTIAL,MODE)

Argument descriptions

  • DIM: The dimension of each of the subsystems.
  • P (optional, default 2): The number of subsystems.
  • PARTIAL (optional, default 0): If PARTIAL = 1 then PA isn't the orthogonal projection itself, but rather a matrix whose columns form an orthonormal basis for the antisymmetric subspace (and hence PA*PA' is the orthogonal projection onto the antisymmetric subspace).
  • MODE (optional, default -1): A flag that determines which of two algorithms is used to compute the antisymmetric projection. If MODE = -1 then this script chooses which algorithm it thinks will be faster based on the values of DIM and P. If you wish to force the script to use a specific one of the algorithms (not recommended!), they are as follows:
    • MODE = 0: Computes the antisymmetric projection by explicitly constructing an orthonormal basis of the symmetric subspace. The method for constructing such a basis is a modification of the procedure described for the symmetric subspace in [1]. This method is typically fast when DIM is small compared to P.
    • MODE = 1: Computes the antisymmetric projection by averaging all P! permutation operators (in the sense of the PermutationOperator function). Permutation operators corresponding to an even permutation are given a weight of +1, while permutation operators corresponding to an odd permutation are given a weight of -1.[2] Because P! grows very quickly, this method is only practical when P is small.

Examples

Two subsystems

To compute the antisymmetric projection on two-qubit space, the following code suffices:

>> AntisymmetricProjection(2)

ans =

   (2,2)       0.5000
   (3,2)      -0.5000
   (2,3)      -0.5000
   (3,3)       0.5000

Note that the output of this function is always sparse. If you want a full matrix (not recommended for even moderately large DIM or P), you must explicitly convert it.

More subsystems and PARTIAL

To compute a matrix whose columns form an orthonormal basis for the symmetric subspace of three-qutrit space, set PARTIAL = 1:

>> PA = AntisymmetricProjection(3,3,1)

PA =

   (6,1)       0.4082
   (8,1)      -0.4082
  (12,1)      -0.4082
  (16,1)       0.4082
  (20,1)       0.4082
  (22,1)      -0.4082

Note that PA is an isometry from the antisymmetric subspace (which is one-dimensional in this case) to the full three-qutrit space. In other words, PA'*PA is the identity matrix (i.e., the scalar 1 here) and PA*PA' is the orthogonal projection onto the antisymmetric subspace, which we can verify as follows:

>> PA'*PA

ans =

   (1,1)       1.0000

>> norm(PA*PA' - AntisymmetricProjection(3,3),'fro')

ans =

  3.3307e-016

When DIM is too small

When DIM < P, the antisymmetric subspace is zero-dimensional, as verified by the following line of code:

>> AntisymmetricProjection(4,6)

ans =

   All zero sparse: 4096-by-4096

References

  1. John Watrous. Lecture 21: The quantum de Finetti theorem, Theory of Quantum Information Lecture Notes, 2008.
  2. R.B. Griffiths. Systems of Identical Particles, 33-756 Quantum Mechanics II Course Notes, 2011.