Make permutation space
Generates a list of tuples containing n_permutations of the given elements. This will be used later in make_combination_space so you can have the same permutation and combination spaces for different games played by the same set. Probably makes things more reproducible! The elements themselves can be anything I guess, I tried str (names/labels) and integers (indexes), and tuples (edges, from-to style). Briefly, the permutation space of (A,B,C) is something like this:
(A,B,C) (B,C,A) (C,B,A) (A,C,B) (C,A,B) (B,A,C) (C,A,B) . . . As you might have seen, there might be repetitions for small set of players and that's fine.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
elements |
list
|
A list of players to be shuffled n times. |
required |
n_permutations |
int
|
Number of permutations, Didn't check it systematically yet but just based on random explorations I'd say something around 1_000 is enough. |
required |
pair |
Optional[Tuple]
|
pair of elements that will always be together in every permutation |
None
|
rng |
Optional[Generator]
|
Numpy random generator object used for reproducable results. Default is None. |
None
|
random_seed |
Optional[int]
|
sets the random seed of the sampling process. Only used when |
None
|
Returns:
Type | Description |
---|---|
list[tuple]
|
Permutation space as a list of lists with shape (n_permutations, len(elements)) |