perms.symmetric_projection

Symmetric projection operator produces a projection onto a symmetric subspace.

Functions

symmetric_projection(dim[, p_val, partial])

Produce the projection onto the symmetric subspace [1].

Module Contents

perms.symmetric_projection.symmetric_projection(dim, p_val=2, partial=False)

Produce the projection onto the symmetric subspace [1].

For a complex Euclidean space \(\mathcal{X}\) and a positive integer \(n\), the projection onto the symmetric subspace is given by

\[\frac{1}{n!} \sum_{\pi \in S_n} W_{\pi}\]

where \(W_{\pi}\) is the swap operator and where \(S_n\) is the symmetric group on \(n\) symbols.

Produces the orthogonal projection onto the symmetric subspace of p_val copies of dim-dimensional space. If partial = True, then the symmetric projection (PS) isn’t the orthogonal projection itself, but rather a matrix whose columns form an orthonormal basis for the symmetric subspace (and hence the PS * PS’ is the orthogonal projection onto the symmetric subspace).

This function was adapted from the QETLAB package.

Examples

The \(2\)-dimensional symmetric projection with \(p=1\) is given as \(2\)-by-\(2\) identity matrix

\[\begin{split}\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}.\end{split}\]

Using toqito, we can see this gives the proper result.

>>> from toqito.perms import symmetric_projection
>>> symmetric_projection(2, 1)
array([[1., 0.],
       [0., 1.]])

When \(d = 2\) and \(p = 2\) we have that

\[\begin{split}\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1/2 & 1/2 & 0 \\ 0 & 1/2 & 1/2 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}.\end{split}\]

Using toqito we can see this gives the proper result.

>>> from toqito.perms import symmetric_projection
>>> symmetric_projection(dim=2)
array([[1. , 0. , 0. , 0. ],
       [0. , 0.5, 0.5, 0. ],
       [0. , 0.5, 0.5, 0. ],
       [0. , 0. , 0. , 1. ]])

References

[1] (1,2)

Jianxin Chen, Zhengfeng Ji, David Kribs, Norbert Lütkenhaus, and Bei Zeng. Symmetric extension of two-qubit states. Physical Review A, Sep 2014. URL: http://dx.doi.org/10.1103/PhysRevA.90.032318, doi:10.1103/physreva.90.032318.

Parameters:
  • dim (int) – The dimension of the local systems.

  • p_val (int) – Default value of 2.

  • partial (bool) – Default value of 0.

Returns:

Projection onto the symmetric subspace.

Return type:

numpy.ndarray