toqito.perms.permutation_operator

Permutation operator is a unitary operator that permutes subsystems.

Module Contents

toqito.perms.permutation_operator.permutation_operator(dim, perm, inv_perm=False, is_sparse=False)[source]

Produce a unitary operator that permutes subsystems.

Generates a unitary operator that permutes the order of subsystems according to the permutation vector perm, where the (i^{th}) subsystem has dimension dim[i].

If inv_perm = True, it implements the inverse permutation of perm. The permutation operator return is full is is_sparse is False and sparse if is_sparse is True.

Examples

The permutation operator obtained with dimension (d = 2) is equivalent to the standard swap operator on two qubits

[

P_{2, [1, 0]} = begin{pmatrix}

1 & 0 & 0 & 0 \ 0 & 0 & 1 & 0 \ 0 & 1 & 0 & 0 \ 0 & 0 & 0 & 1

end{pmatrix}

]

Using |toqito⟩, this can be achieved in the following manner.

```python exec=”1” source=”above” from toqito.perms import permutation_operator

print(permutation_operator(2, [1, 0])) ```

Parameters:
  • dim (list[int] | int) – The dimensions of the subsystems to be permuted.

  • perm (list[int]) – A permutation vector.

  • inv_perm (bool) – Boolean dictating if perm is inverse or not.

  • is_sparse (bool) – Boolean indicating if return is sparse or not.

Returns:

Permutation operator of dimension dim.

Return type:

numpy.ndarray