perms.perfect_matchings

Perfect matchings refers to ways of grouping an even number of objects into pairs.

Functions

perfect_matchings(num)

Give all perfect matchings of num objects.

Module Contents

perms.perfect_matchings.perfect_matchings(num)

Give all perfect matchings of num objects.

The input can be either an even natural number (the number of objects to be matched) or a numpy array containing an even number of distinct objects to be matched.

Returns all perfect matchings of a given list of objects. That is, it returns all ways of grouping an even number of objects into pairs.

This function is adapted from QETLAB. [1].

Examples

This is an example of how to generate all perfect matchings of the numbers 0, 1, 2, 3.

>>> from toqito.perms import perfect_matchings
>>> perfect_matchings(4)
array([[0, 1, 2, 3],
       [0, 2, 1, 3],
       [0, 3, 2, 1]])

References

[1]

Nathaniel Johnston. QETLAB: A MATLAB toolbox for quantum entanglement. URL: https://github.com/nathanieljohnston/QETLAB, doi:10.5281/zenodo.44637.

Parameters:

num (list[int] | int | numpy.ndarray) – Either an even integer, indicating that you would like all perfect matchings of the integers 0, 1, … N-1, or a list or np.array containing an even number of distinct entries, indicating that you would like all perfect matchings of those entries.

Returns:

An array containing all valid perfect matchings of size num.

Return type:

numpy.ndarray