BrauerStates

From QETLAB
Jump to: navigation, search
BrauerStates
Produces all Brauer states

Other toolboxes required none
Related functions MaxEntangled
Function category Special states, vectors, and operators

BrauerStates is a function that returns all "Brauer" states: state that are the $p$-fold tensor product of the standard pure maximally-entangled state. Note that there are $(2p)!/(p!\cdot 2^p)$ such states, since this is the number of ways of choose $p$ pairs out of $2p$ objects (here, each pair corresponds to two subsystems that are maximally-entangled). Note that the states returned are unnormalized (i.e., all of their entries are 0 or 1, rather than being scaled so that the norm of each state is 1) and sparse.

Brauer states are interesting because they span the subspace that is invariant under the action of $X^{\otimes 2p}$ for every real orthogonal matrix $X$.

Syntax

  • B = BrauerStates(D,P)

Argument descriptions

  • D: The dimension of each local subsystem.
  • P: Half of the number of parties (i.e., the states that this function computes will live in $(\mathbb{C}^D)^{\otimes 2P}$).

Examples

Four-qubit Brauer States

The following code generates a matrix whose columns are all Brauer states on 4 qubits:

>> full(BrauerStates(2,2))
 
ans =
 
     1     1     1
     0     0     0
     0     0     0
     1     0     0
     0     0     0
     0     1     0
     0     0     1
     0     0     0
     0     0     0
     0     0     1
     0     1     0
     0     0     0
     1     0     0
     0     0     0
     0     0     0
     1     1     1

Indeed, the first column of the output above is the state that is maximally-entangled between qubits 1 and 2, and maximally-entangled between qubits 3 and 4. The second column is the state that is maximally-entangled between qubits 1 and 3 and between qubits 2 and 4. Finally, the third column is the state that is maximally-entangled between qubits 1 and 4 and between qubits 2 and 3.

Notes

  • In general, the output of this function will be a $N^{2P}$-by-$(2P)!/(P!\cdot 2^P)$ matrix.
  • The term "Brauer state" is not standard: it is used here because these states encode the Brauer algebra's relationship with the orthogonal group in the natural way.

Source code

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

  1. %%  BRAUERSTATES    Produces all Brauer states
  2. %   This function has two required arguments:
  3. %     D: the local dimension
  4. %     P: half of the number of parties (i.e., the states will live in
  5. %     (2*P)-partite space)
  6. %
  7. %   B = BrauerStates(D,P) is a matrix whose columns are all of the
  8. %   (unnormalized) "Brauer" states: states that are the P-fold tensor
  9. %   product of the standard maximally-entangled state pure state on D local
  10. %   dimensions. There are many such states, since there are many different
  11. %   ways to group the 2*P parties into P pairs (with each pair
  12. %   corresponding to one maximally-entangled state). The exact number of
  13. %   such states is (2*P)!/(P!*2^P), which is the number of columns of B.
  14. %
  15. %   URL: http://www.qetlab.com/BrauerStates
  16.  
  17. %   requires: iden.m, MaxEntangled.m, opt_args.m, perfect_matchings.m,
  18. %             PermuteSystems.m, Tensor.m
  19. %
  20. %   author: Nathaniel Johnston (nathaniel@njohnston.ca)
  21. %   package: QETLAB
  22. %   last updated: November 12, 2014
  23.  
  24. function B = BrauerStates(d,p)
  25.  
  26. phi = Tensor(MaxEntangled(d,1,0),p); % sparse, unnormalized
  27.  
  28. % The Brauer states are computed from perfect matchings of the complete
  29. % graph. So compute all perfect matchings first.
  30. pm = perfect_matchings(2*p);
  31. npm = size(pm,1);
  32. B = sparse(d^(2*p),npm);
  33.  
  34. % Now just turn these perfect matchings into the corresponding states.
  35. for j = 1:npm
  36.     B(:,j) = PermuteSystems(phi,pm(j,:),d*ones(1,2*p));
  37. end