Dealing with orbits under permutation groups.
SWITCH_TABLE
A switch table is a tool for finding lex-maximal or -minimal in orbits under the action of a permutation group. Its main ingredient is an upper-left triangular matrix with group elements as entries. See https://arxiv.org/abs/1709.04746 The output contains the support at every level, i.e. a number and a Set<Int>, the number is the size of the support and and the Set<Int> are the indices of those entries that can be permuted to the index of the current level while keeping previous level indices fixed. I.e. entry [i,j] will keep the first i entries of a vector fixed, while moving the j-th entry to position i. Note that we start counting at 0!
> $P = new PermutationAction(GENERATORS=>[[1,2,0,4,5,3],[2,1,0,5,4,3]]); > print $P->SWITCH_TABLE; Supports: (size, content) Level 0: 2 {1 2} Level 1: 1 {2} Entries: [0,1]: 1 0 2 4 3 5 [0,2]: 1 2 0 4 5 3 [1,2]: 0 2 1 3 5 4
BASE
A base for STRONG_GENERATORS
.
N_STRONG_GENERATORS
The number of STRONG_GENERATORS
.
STRONG_GENERATORS
Strong generating set with respect to BASE
.
TRANSVERSALS
Transversals along the stabilizer chain.
TRANSVERSAL_SIZES
The number of group elements per transversal.
Dealing with orbits under permutation groups.
lex_maximal
Assume the group acts on a vector by permuting its entries. Then this method gives the lex-maximal vector from the orbit of the input vector under the group action. See https://arxiv.org/abs/1709.04746
lex_minimal
Similar to lex_maximal
.